Xperia 1 VI is a flagship phone manufactured by Sony, based on the
Qualcomm Snapdragon 8 Gen 3 Mobile Platform.
Add support for this board.
NOTE: This board is new, and as such, it requires some ugly hax and
a fallback boot method to boot any sort of [u-boot/uniLoader/mainline]
In short:
- build:
- ARCH=aarch64 CROSS_COMPILE=aarch64-linux-gnu- make -j32
- cat uniLoader.gz dummy.dtb > uni.dtb
- mkbootimg --kernel uni.dtb --ramdisk <some ramdisk (required)> \
--pagesize 4096 --base 0x0 --kernel_offset 0x8000 \
--ramdisk_offset 0x1000000 --tags_offset 0x100 \
--dtb_offset 0x1f00000 --header_version 0 --os_version 16.0.0 \
--os_patch_level 2026-04 -o boot.img
(yes, all properties are required.)
- prepare device:
- boot to fastboot mode (volume up and plug in USB)
- fastboot erase dtbo erase vendor_boot
- flash:
- fastboot flash boot boot.img continue
Where:
- dummy.dtb is a skeleton.dtsi with a reserved memory node called
splash_region as a child of the chosen node.
Signed-off-by: Igor Belwon <igor.belwon@mentallysanemainliners.org>
Add basic support for Motorola tundra, usable to boot mainline Linux.
UniLoader has to be packaged with mkbootimg (header_version 3), as it
acts as a wrapper for the kernel image and tree.
This commit adds support for the PSVita 1xxx/2xxx variants, which have:
- 4x Cortex A9
- OLED/LCD display (both types get init. by libbaremetal before)
- 512MB RAM (ew)
- Some PowerVR custom GPU (ew)
* Needs to be unlocked via an exploit
* mkbootimg --kernel uniLoader.lz4 --header_version 4 --out boot.img
* Has very slow fastboot (usb 1.1 speeds slow), so flashing via the
SoC flash mode or fastbootd is recommended
* fastboot flash boot boot.img reboot
Signed-off-by: Igor Belwon <igor.belwon@mentallysanemainliners.org>
gzip: qemu shall use uniLoader.o as the kernel which also enables symbol maps and other cool stuff.
so, the gzip-compressed uniLoader image is useless and can slow down the compile process
libfdt: temporary. it doesn't seem to pick up the fdt that is passed when booting raw kernel
Signed-off-by: Igor Belwon <igor.belwon@mentallysanemainliners.org>
Fix build errors for j5lte by casting mmio addresses in writel's. While
at it, do some quality of life changes, like moving entry addresses out
of board/Kconfig into the j5lte defconfig and setting LINUX_KRNL_HEADER_IMG.
This platform can be used for testing and easier debug of the bootloader.
After compiling, the emulation can be started with this command line:
qemu-system-aarch64 -machine virt -cpu cortex-a72 -nographic -m 512m -kernel uniLoader.o
Simple framebuffer doesn't work due to the previous bootloader messing
up with the display on exit uefi boot services. Uart works with a
usb3.1 cable and a breakout board, where a 51k resistor is connected
A5 and A6, A5 is wired to the +5V, B8 to RX and GND to GND.
This is done with the idea of uncluttering the Kconfig. The device
is assumed to need POSITION_INDEPENDENT. There's a small possibility it
may not work because it has not yet been tested on real hw.
This is done with the idea of uncluttering the Kconfig. The device
is assumed to need POSITION_INDEPENDENT. There's a small possibility it
may not work because it has not yet been tested on real hw.
This is done with the idea of uncluttering the Kconfig. The device
is assumed to need POSITION_INDEPENDENT. There's a small possibility it
may not work because it has not yet been tested on real hw.
All newer exynos devices with s-boot have the "feature" of placing the
android kernel at a random location in dram, specifically around
0x80000000 and 0x83000000. This made it hard to assume where we are at,
hence why we made everything as PiE (position-independent) as possible.
This, however, resulted in a lot of issues. I usually managed to get
around them with ugly hacks, but in the last 5-6 commits, with the
fixed support for armv7, everything fell apart for arm64.
So, the solution for this is to implement code at the beginning
of the bootloader that relocates it to a safe place in memory.
This is currently enabled for dreamlte, and it must be enabled
and configured for all other boards with that issue. Otherwise they
will NOT boot anymore. Boards that don't need this can keep
CONFIG_POSITION_INDEPENDENT disabled.
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
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>
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>