This will be useful for tracking bugs of users in the future. Also
lowercase each print and drop exclamation marks because I like this
aesthetic of unofficialness a bit better.
At some point building for arm32 was broken, because the assumption
of an assembly memcpy existing was made. It, however, did not exist
for arm32, only arm64, hence build failing. Avoid this.
With support for this board also come the following changes:
- rework blobs handling to get past the 0 size bug
- basic cpu "set up" in start.S
- assembly memcpy
- uart debugging
When the board_data is initialized at compile time, it is placed into
the data section, which doesn't get relocated by the linker. The resulting
address of the board_data that is passed to board_init lies within reserved
memory and the device crashes.
Add basic support for S22+. Set up some regulators via ACPM and kill
the watchdog till we have proper watchdog feeding.
Signed-off-by: Ivaylo Ivanov <ivo.ivanov.ivanov1@gmail.com>
Implement an ACPM driver with helpers to allow communicating
with PMIC via SPMI for newer exynos devices.
Signed-off-by: Ivaylo Ivanov <ivo.ivanov.ivanov1@gmail.com>
This causes menuconfig to not work, as without the function
return type, gcc will produce a warning.
Fixes:
$ make menuconfig
HOSTCC scripts/kconfig/conf.o
*** Unable to find the ncurses libraries or the
*** required header files.
*** 'make menuconfig' requires the ncurses libraries.
***
*** Install ncurses (ncurses-devel) and try again.
***
make[1]: *** [/home/igor/phones/z3s/uniLoader/scripts/kconfig/Makefile:219: scripts/kconfig/dochecklxdialog] Error 1
Signed-off-by: Igor Belwon <igor.belwon@mentallysanemainliners.org>
Speedy is a serial communication bus that is typically used in
Exynos SoC devices for communicating with a PMIC. Implement
basic support for it, as well as add its first user - s2mps17 in
board-dreamlte.
Also, while at it, implement a simple readl function.
Signed-off-by: Ivaylo Ivanov <ivo.ivanov.ivanov1@gmail.com>
Needed for Linux to boot a ramdisk, works on all 990 platforms and
removes the need of configuring it manually.
Signed-off-by: Umer Uddin <umer.uddin@mentallysanemainliners.org>
The board files for all boards except for dreamlte and j4lte
are missing drivers/framework.h and lib/simplefb.h headers.
This causes build failures on all targets except for dreamlte
and j4lte.
This commit includes said headers.
Signed-off-by: Igor Belwon <igor.belwon@mentallysanemainliners.org>
Signed-off-by: Ivaylo Ivanov <ivo.ivanov.ivanov1@gmail.com>
This actually breaks the armv7 port. It has to be revisited in the
future, since it not only is not compilable right now, but also
cannot boot linux properly. TODO
Also introduce a new C-based __memcpy_optimized that does not
cause an exception on some devices when copying the initramfs.
This issue has to be debugged further.
Signed-off-by: Ivaylo Ivanov <ivo.ivanov.ivanov1@gmail.com>
Implement 8 loglevels to use with printk:
While at it, separate the font in a new "video" directory, which
also makes space for a proper video probing implementation. Fill
in the font from 32 to 256. Scale the font to render twice as big.
Implement dynamic line length detection. Change a few things here
and there to follow the linux kernel code style. Add a nice logo.
Signed-off-by: Ivaylo Ivanov <ivo.ivanov.ivanov1@gmail.com>
Move onto using asmdefs macros in assembly files. Implement an
assembly-based memcpy for aarch64 and a C-optimized memset, while
also making place for replacing functions with more optimized ones
in the future.
Signed-off-by: Ivaylo Ivanov <ivo.ivanov.ivanov1@gmail.com>
arch: aarch64: Load addresses via page + offset
arch: aarch64: Align the TEXT region
drivers: Introduce an empty framework
board: Rework to be PIC
Signed-off-by: Ivaylo Ivanov <ivo.ivanov.ivanov1@gmail.com>
This is meant to replace the current Kconfig / SoC / Board files
configuration, which is ugly and annoying to maintain. Begin
by creating the board files registration framework and
transitioning all exynos boards to it. This also opens room for
creating the drivers registration framework in the future.
All non-samsung boards will be no longer able to do their board
configuration until they're also transitioned.
Every new board must have the following structure:
struct board_data default_board = {
.name = "DEFAULT",
.init = NULL,
.late_init = NULL,
.driver_setup = NULL,
};
Signed-off-by: Ivaylo Ivanov <ivo.ivanov.ivanov1@gmail.com>
unic is a small library of C functions that is currently written
in plain C. It's purpose isn't to be fast, but "universal" - as
in include as little architecture-specific code as possible.
The old neatlibc still resides, but isn't being built. There is
still more to do, including implementation of memory management,
so keep it there for now.
Signed-off-by: Ivaylo Ivanov <ivo.ivanov.ivanov1@gmail.com>
Introduce stack and bss memory regions, rename Start.S to start.S
This commit should allow jumping out of assembly code for certain
SoCs that had issues with SP like MTK and QCOM.
Signed-off-by: Ivaylo Ivanov <ivo.ivanov.ivanov1@gmail.com>
Make 2 different folders for armv7 and aarch64 assembly neatlibc
functions. Add the neatlibc submodule, make it work against the
Makefile system. Pray.
Signed-off-by: Ivaylo Ivanov <ivo.ivanov.ivanov1@gmail.com>
This was an issue for other armv7 boards that have slightly different
addresses till now. This also allows to start working on relocation
in the near future for both armv7 and aarch64.
While we're at it, fix some mistakes here and there.
Signed-off-by: Ivaylo Ivanov <ivo.ivanov.ivanov1@gmail.com>