# 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}