pmaports/device/community/device-pine64-pinephone/uboot-script.cmd
Johannes Krampf 8e0a56fd1d
pine64-pinephone: fix u-boot user script load address (MR 5980)
Fixes #3414.

The package `device-pine64-pinephone-vccq-mod` installs a u-boot user script.
The user script was loaded at address 0x50700000 partially overwriting
the initramfs (0x4FF00000-0x50883fd1), and causing a boot loop.

The user script load address was increased to 0x50f00000, leaving 16MB
of free space for the initramfs, the current initramfs size is 9.52MB.

Tested: Build and install package on Pinephone 1.2a running PMOS 24.12.
[ci:skip-build]: already built successfully in CI
2025-01-05 13:46:07 +01:00

61 lines
1.5 KiB
Batchfile

gpio set 98
gpio set 114
if test ${mmc_bootdev} -eq 0 ; then
echo "Booting from SD";
setenv bootdev 0;
else
echo "Booting from eMMC";
setenv bootdev 2;
fi;
setenv bootargs init=/init.sh rw console=tty0 console=ttyS0,115200 earlycon=uart,mmio32,0x01c28000 panic=10 consoleblank=0 loglevel=1 PMOS_FORCE_PARTITION_RESIZE pmos_boot=/dev/mmcblk${bootdev}p1 pmos_root=/dev/mmcblk${bootdev}p2
printenv
echo Detecting psci idle state
fdt addr ${fdtcontroladdr}
fdt get name pscifdt /cpus/idle-states /
if test $? -eq 0; then
echo PSCI idle state enabled;
setenv iscpscienabled 1;
else
echo PSCI idle state disabled;
fi
echo Loading DTB
load mmc ${mmc_bootdev}:1 ${fdt_addr_r} ${fdtfile}
fdt addr ${fdt_addr_r}
fdt resize 2048
if printenv ram_freq; then
echo Adding FTD RAM clock
fdt mknode / memory
fdt set /memory ram_freq ${ram_freq}
fi
if test ${iscpscienabled} -eq 1; then
echo Applying PSCI DTBO;
load mmc ${mmc_bootdev}:1 ${fdtoverlay_addr_r} sun50i-a64-psci.dtbo
fdt apply ${fdtoverlay_addr_r}
fi
echo Loading Initramfs
load mmc ${mmc_bootdev}:1 ${ramdisk_addr_r} initramfs
setenv ramdisk_size ${filesize}
echo Loading Kernel
load mmc ${mmc_bootdev}:1 ${kernel_addr_r} vmlinuz
gpio set 115
echo Loading user script
setenv user_scriptaddr 0x50f00000
load mmc ${mmc_bootdev}:1 ${user_scriptaddr} user.scr
if test $? -eq 0; then source ${user_scriptaddr}; else echo No user script found; fi
echo Booting kernel
gpio set 116
gpio clear 98
booti ${kernel_addr_r} ${ramdisk_addr_r}:${ramdisk_size} ${fdt_addr_r}