66 lines
2.4 KiB
Batchfile

# Pinecube u-boot script
# Adapted from Armbian
echo "[+] Helium u-boot script for Pinecube"
echo "[+] Congratulations! Boot ROM has found and started the bootloader."
# Setup
setenv load_addr "0x45000000"
setenv overlay_error "false"
# Default options
setenv verbosity "7"
setenv console "on"
setenv disp_mem_reserves "off"
setenv docker_optimizations "on"
setenv earlycon "on"
# Deault rootfs
setenv devnum "0"
setenv rootdev "/dev/mmcblk${devnum}p1"
setenv rootfstype "ext4"
# Print boot source
itest.b *0x28 == 0x00 && setenv boot_source "Primary SD card"
itest.b *0x28 == 0x02 && setenv boot_source "eMMC/Secondary SD card"
itest.b *0x28 == 0x03 && setenv boot_source "SPI ROM"
echo "[+] Boot source: ${boot_source}"
# Set up boot device info
if test "${devtype}" = "mmc"; then
part uuid mmc ${devnum}:1 partuuid;
setenv devnum ${mmc_bootdev}
setenv rootdev "/dev/mmcblk${mmc_bootdev}p1"
fi
echo "[+] Boot script loaded from ${devtype}:${devnum}"
# Load boot configuration
if test -e ${devtype} ${devnum} ${prefix}boot.cfg; then
load ${devtype} ${devnum} ${load_addr} ${prefix}boot.cfg
env import -t ${load_addr} ${filesize}
echo "[+] Loaded boot configuration: ${devtype}:${devnum}:${prefix}boot.cfg"
else
echo "[-] No boot configuration found, running defaults"
fi
# Apply boot configuration
if test "${console}" = "on"; then setenv consoleargs "console=ttyS0,115200 console=tty1"; fi
if test "${earlyconsole}" = "on"; then setenv consoleargs "earlycon ${consoleargs}"; fi
setenv bootargs "root=${rootdev} rootwait rootfstype=${rootfstype} ${consoleargs} consoleblank=0 loglevel=${verbosity} ubootpart=${partuuid} ubootsource=${devtype} usb-storage.quirks=${usbstoragequirks} ${extraargs} ${extraboardargs}"
if test "${disp_mem_reserves}" = "off"; then setenv bootargs "${bootargs} sunxi_ve_mem_reserve=0 sunxi_g2d_mem_reserve=0 sunxi_fb_mem_reserve=16"; fi
if test "${docker_optimizations}" = "on"; then setenv bootargs "${bootargs} cgroup_enable=memory swapaccount=1"; fi
# Load boot files
echo "[+] Loading kernel image ${devtype}:${devnum}:${prefix}zImage @ ${kernel_addr_r}"
load ${devtype} ${devnum} ${kernel_addr_r} ${prefix}zImage
echo "[+] Loading device tree ${devtype}:${devnum}:${prefix}${fdtfile} @ ${fdt_addr_r}"
load ${devtype} ${devnum} ${fdt_addr_r} ${prefix}${fdtfile}
fdt addr ${fdt_addr_r}
fdt resize 65536
echo "[+] Setup finished, booting..."
# We're booting without initramfs
bootz ${kernel_addr_r} - ${fdt_addr_r}