echo "SkiffOS U-Boot for Pine64 H64 loaded from ${devtype} ${devnum}"

# U-Boot Parameters
setenv initrd_high "0xffffffff"
setenv fdt_high "0xffffffff"

# itest.b *0x10028 == 0x00 && echo "U-boot loaded from SD"
# itest.b *0x10028 == 0x02 && echo "U-boot loaded from eMMC or secondary SD"
# itest.b *0x10028 == 0x03 && echo "U-boot loaded from SPI"

# setenv silent 1
setenv condev "console=tty1 console=ttyS0,115200n8"
setenv verify 0
setenv bootlogo "false"

setenv kernel_addr_r "0x40008000"
setenv initramfs_addr_r "0x46000000"
setenv dtb_addr_r "0x44000000"

#---------------------------------
# Boots from memory.
# --------------------------------
setenv bootmem "root=/dev/ram0 ro ramdisk_size=100000"

# base kernel config options
setenv baseconfig "fsck.repair=yes consoleblank=0 no_console_suspend cma=256M splash plymouth.ignore-serial-consoles"

# CPU Governor Selection
# Available governos: conservative, userspace, powersave, ondemand, performance, schedutil
setenv governor "schedutil"

# Load kernel, initrd and dtb in that sequence
fatload mmc ${devnum}:1 ${kernel_addr_r} Image
fatload mmc ${devnum}:1 ${initramfs_addr_r} rootfs.cpio.uboot
fatload mmc ${devnum}:1 ${dtb_addr_r} sun50i-h6-pine-h64-model-b.dtb

fdt addr ${dtb_addr_r}
fdt resize

# final boot args
setenv bootargs "${bootmem} ${condev} ${baseconfig} governor=${governor}"

# Boot the board
booti ${kernel_addr_r} ${initramfs_addr_r} ${dtb_addr_r}
