Commit Graph

71 Commits

Author SHA1 Message Date
Ivaylo Ivanov
925a60bbf9 main: spew out a "versioning" tag that's defined in root makefile
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.
2025-07-08 19:05:46 +03:00
Ivaylo Ivanov
280972aec2 lib: debug: add printf functionality with nanoprintf
Add the respectively required definitions in unic.
2025-07-08 19:02:39 +03:00
Ivaylo Ivanov
0008ecfa60 arch: use per-arch makefile instead of hardcoding in the root one
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.
2025-07-08 18:07:32 +03:00
Ivaylo Ivanov
8dc27cc402 board: introduce Amazon Kindle PW3 support
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
2025-07-08 15:54:02 +03:00
Muhammad
20f759082d board: Add support for Samsung Galaxy A33
Adds basic support for the Exynos 1280 SoC in the Galaxy A33
2025-04-04 16:43:32 +03:00
Anri Dellal
b92c92452b board: add support for Samsung Galaxy A10
Add support for Samsung Galaxy A10, codenamed A105F.
2025-04-04 16:32:11 +03:00
Alexandru Chimac
95f4202dec gta4xl: Set CONFIG_RAMDISK_ENTRY 2025-04-04 16:15:06 +03:00
famfo
c41e339369 board: Add support for Samsung A127F
Add support for the Samsung Galaxy A12 Nacho, codenamed A127F,
as well as define the SoC.
2025-04-04 16:13:57 +03:00
Ivaylo Ivanov
5ee9fd9c1a board: add support for Volla Phone Quintus
Add support for the Volla Algiz phone, as well as define MT6877.
2025-04-04 16:01:57 +03:00
famfo
21bf08f9d4 main: Move initialization of board_data to the stack
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.
2025-04-04 15:57:39 +03:00
Ivaylo Ivanov
d3865c371b board: Add support for g0s (Samsung Galaxy S22+)
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>
2025-02-24 10:21:49 +02:00
Ivaylo Ivanov
39735b91f3 drivers: samsung: Introduce exynos-acpm
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>
2025-02-24 10:20:05 +02:00
Ivaylo Ivanov
15b9df6604 blob: Uncache blob files
To properly make use of the gitignore, drop the empty blob files.

Signed-off-by: Ivaylo Ivanov <ivo.ivanov.ivanov1@gmail.com>
2025-02-24 10:19:17 +02:00
Igor Belwon
3657d228bc check-lxdialog: Fix lxdialog check on new compilers
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>
2025-01-15 21:04:44 +01:00
Denzeel Oliva
b46bbd2a47 board: Add support for r8s (Samsung Galaxy S20 FE)
Add basic support for Galaxy S20 FE, based on the Exynos 990.

Signed-off-by: Denzeel Oliva <wachiturroxd150@gmail.com>
[added a commit message]
Signed-off-by: Ivaylo Ivanov <ivo.ivanov.ivanov1@gmail.com>
2024-12-01 22:16:01 +02:00
Ivaylo Ivanov
eba7aec49d drivers: samsung: Introduce exynos-speedy
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>
2024-10-28 15:09:59 +02:00
Ivaylo Ivanov
8b562d28fa board: Set CONFIG_RAMDISK_ENTRY for all exynos990 platforms
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>
2024-10-22 11:27:50 +03:00
Igor Belwon
2d34fc0f91 [FIX] board: samsung: Fix compile issues due to missing headers
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>
2024-10-12 19:49:36 +03:00
Igor Belwon
7b84c6bff6 [FIX] configs: Fix c1s_defconfig permissions
This file used 0777 permissions. Change to 664 to conform with other configuration files.

Signed-off-by: Igor Belwon <igor.belwon@mentallysanemainliners.org>
Signed-off-by: Ivaylo Ivanov <ivo.ivanov.ivanov1@gmail.com>
2024-10-12 19:45:43 +03:00
Ivaylo Ivanov
9c60b66f71 AARCH64: Allow for embedding an initramfs
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>
2024-10-12 19:43:05 +03:00
Ivaylo Ivanov
2de1d3c549 lib: video: Drop font.c temporarely
Since we're practically PIC, keep the massive array in the header.
Otherwise we exception.

Signed-off-by: Ivaylo Ivanov <ivo.ivanov.ivanov1@gmail.com>
2024-10-10 16:49:09 +03:00
Ivaylo Ivanov
a244bad67f lib: Completely drop neatlibc
It's of no use anymore, we have our own libc.

Signed-off-by: Ivaylo Ivanov <ivo.ivanov.ivanov1@gmail.com>
2024-10-10 16:38:42 +03:00
Ivaylo Ivanov
3b517ba95a lib: debug: Introduce loglevels + many minor changes
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>
2024-10-10 16:24:20 +03:00
Ivaylo Ivanov
be0ad76a97 lib: unic: Implement strcat
Also fix-up the strncpy func.

Signed-off-by: Ivaylo Ivanov <ivo.ivanov.ivanov1@gmail.com>
2024-10-10 16:21:48 +03:00
Ivaylo Ivanov
784bfd609a lib: unic: Optimize memcpy and memset for aarch64
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>
2024-10-09 18:49:23 +03:00
Ivaylo Ivanov
81d26edaa3 uniLoader: Mass rework
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>
2024-10-08 21:22:21 +03:00
Ivaylo Ivanov
b301e51432 board: Introduce board file configurations
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>
2024-09-26 15:34:26 +03:00
Ivaylo Ivanov
69c7156eb3 lib: simplefb: simplify cleaning framebuffer
Pretty self-explanatory, it's faster as well.

Suggested-by: Umer Uddin <umer.uddin@mentallysanemainliners.org>
Signed-off-by: Ivaylo Ivanov <ivo.ivanov.ivanov1@gmail.com>
2024-09-24 22:18:52 +03:00
Ivaylo Ivanov
3ab64bed39 lib: Introduce unic
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>
2024-09-23 20:17:44 +03:00
Ivaylo Ivanov
3fae0e9880 Merge pull request #18 from chmcax/gta4xl
Add support for gta4xl (Galaxy Tab S6 Lite)
2024-09-15 11:52:06 +03:00
chmcax
571fcac1f7 board: Add support for gta4xl (Samsung Galaxy Tab S6 Lite)
Signed-off-by: Alexandru Chimac	<alexchimac@protonmail.com>
2024-09-15 09:53:37 +03:00
chmcax
0d2f55d9f6 soc: Add basic support for Exynos9610
Signed-off-by: Alexandru Chimac <alexchimac@protonmail.com>
2024-09-15 09:53:36 +03:00
Ivaylo Ivanov
54d3d93a92 arch: aarch64: Set up Stack Pointer
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>
2024-08-06 19:23:47 +03:00
Ivaylo Ivanov
4a0977b0f6 lib: Replace the broken newlib implementation with neatlibc
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>
2024-08-06 13:25:07 +03:00
Ivaylo Ivanov
b37e225721 arch: arm: Implement TEXT_BASE instead of using a hardcoded address
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>
2024-08-06 11:12:31 +03:00
Ivaylo Ivanov
1b6ce821f7 README: Rework it according to the totally-recent build changes
Signed-off-by: Ivaylo Ivanov <ivo.ivanov.ivanov1@gmail.com>
2024-08-06 10:33:38 +03:00
Ivaylo Ivanov
108caaa77f Merge pull request #14 from predefine/master
j4lte: fix PAYLOAD_ENTRY
2024-03-12 23:10:09 +02:00
predefine
e3ecb8206c j4lte: fix PAYLOAD_ENTRY
0x40008000 is used by kernel, and can be rewrited by new payload
2024-03-13 04:02:43 +07:00
Ivaylo Ivanov
0147763114 Merge pull request #9 from predefine/fix-bgra
add BGRA support
2024-03-12 22:57:03 +02:00
predefine
61bb21275c add BGRA support 2023-11-10 23:06:34 +07:00
Ivaylo Ivanov
7ed7b2b902 soc: apple: Add basic support for Apple T8010 (aka A10)
Signed-off-by: Ivaylo Ivanov <ivo.ivanov.ivanov1@gmail.com>
2023-08-15 14:15:02 +03:00
Ivaylo Ivanov
f7906fff57 Merge pull request #8 from predefine/master
add Samsung Galaxy J4lte & Exynos 7570 support
2023-08-15 14:02:31 +03:00
Ivaylo Ivanov
c93df2826e Merge branch 'master' into master 2023-08-15 14:01:46 +03:00
Ivaylo Ivanov
db0f9e4bfd Merge pull request #7 from BotchedRPR/master
Add support for c1s (Samsung Galaxy Note20)
2023-08-15 14:01:00 +03:00
predefine
9d2a29835c add Samsung Galaxy J4lte & Exynos 7570 support 2023-08-12 01:35:57 +07:00
BotchedRPR
6f83a56d5e Add support for c1s (Samsung Galaxy Note20) 2023-08-09 13:56:10 +02:00
Ivaylo Ivanov
ed246836e9 lib: simplefb: Add support for RGB888 24bpp (dependant on the stride)
Also comes with small changes here and there.

Signed-off-by: Ivaylo Ivanov <ivo.ivanov.ivanov1@gmail.com>
2023-07-24 09:54:16 +03:00
Ivaylo Ivanov
a1be36ae02 EXPERIMENTAL: Partially implement NewLib
Signed-off-by: Ivaylo Ivanov <ivo.ivanov.ivanov1@gmail.com>
2023-07-19 19:37:17 +03:00
Ivaylo Ivanov
d85632eb76 Merge pull request #6 from halal-beef/master
Support for the exynos990 and the Samsung S20
2023-07-18 15:01:20 +03:00
Ivaylo Ivanov
05a43c1d73 Merge branch 'master' into master 2023-07-18 14:59:15 +03:00