diff --git a/boot.cmd b/boot.cmd index c0ff17c..80732bd 100644 --- a/boot.cmd +++ b/boot.cmd @@ -1,60 +1,87 @@ +# DO NOT EDIT THIS FILE +# +# Please edit /boot/orangepiEnv.txt to set supported parameters +# + setenv load_addr "0x9000000" setenv overlay_error "false" # default values -setenvrootdev -setenvunamer -setenv envfile "${prefix}uEnv.txt-${unamer}" -setenv dtbdir "${prefix}dtb-${unamer}" +setenv rootdev "/dev/mmcblk0p1" +setenv verbosity "1" +setenv console "both" +setenv bootlogo "false" +setenv rootfstype "ext4" +setenv docker_optimizations "on" +setenv earlycon "off" +setenv uname_r "-5.10.160-1.el9.aarch64+64k" +setenv other_uname_r "-5.10.160" echo "Boot script loaded from ${devtype} ${devnum}" -echo "Testing for existence ${devtype} ${devnum} ${envfile}" -if test -e ${devtype} ${devnum} ${envfile}; then - echo "Loading ${devtype} ${devnum} ${load_addr} ${envfile}" - load ${devtype} ${devnum} ${load_addr} ${envfile} - echo "Loaded ${devtype} ${devnum} ${envfile} into ${load_addr} filesize ${filesize}" - echo "Importing into environment" - env import -t ${load_addr} ${filesize} - echo "${envfile} imported into environment" +if test -e ${devtype} ${devnum} ${prefix}orangepiEnv.txt; then + load ${devtype} ${devnum} ${load_addr} ${prefix}orangepiEnv.txt + env import -t ${load_addr} ${filesize} +fi + +if test "${logo}" = "disabled"; then setenv logo "logo.nologo"; fi + +if test "${console}" = "display" || test "${console}" = "both"; then setenv consoleargs "console=tty1"; fi +if test "${console}" = "serial" || test "${console}" = "both"; then setenv consoleargs "console=ttyS2,1500000 ${consoleargs}"; fi +if test "${earlycon}" = "on"; then setenv consoleargs "earlycon ${consoleargs}"; fi +if test "${bootlogo}" = "true"; then + setenv consoleargs "splash plymouth.ignore-serial-consoles ${consoleargs}" +else + setenv consoleargs "splash=verbose ${consoleargs}" fi # get PARTUUID of first partition on SD/eMMC the boot script was loaded from if test "${devtype}" = "mmc"; then part uuid mmc ${devnum}:1 partuuid; fi -load ${devtype} ${devnum} ${ramdisk_addr_r} ${prefix}uInitrd-${unamer} -load ${devtype} ${devnum} ${kernel_addr_r} ${prefix}vmlinuz-${unamer} +setenv bootargs "root=${rootdev} rootwait rootfstype=${rootfstype} ${consoleargs} consoleblank=0 loglevel=${verbosity} ubootpart=${partuuid} usb-storage.quirks=${usbstoragequirks} ${extraargs} ${extraboardargs}" -load ${devtype} ${devnum} ${fdt_addr_r} ${dtbdir}/${fdtfile} +if test "${docker_optimizations}" = "on"; then setenv bootargs "${bootargs} cgroup_enable=cpuset cgroup_memory=1 cgroup_enable=memory swapaccount=1"; fi + +#load ${devtype} ${devnum} ${ramdisk_addr_r} ${prefix}uInitrd +#load ${devtype} ${devnum} ${kernel_addr_r} ${prefix}Image +load ${devtype} ${devnum} ${ramdisk_addr_r} ${prefix}uInitrd${uname_r} +load ${devtype} ${devnum} ${kernel_addr_r} ${prefix}vmlinuz${other_uname_r} + +load ${devtype} ${devnum} ${fdt_addr_r} ${prefix}dtb${uname_r}/${fdtfile} fdt addr ${fdt_addr_r} fdt resize 65536 for overlay_file in ${overlays}; do - if load ${devtype} ${devnum} ${load_addr} ${dtbdir}/rockchip/overlay/${overlay_prefix}-${overlay_file}.dtbo; then - echo "Applying kernel provided DT overlay ${overlay_prefix}-${overlay_file}.dtbo" - fdt apply ${load_addr} || setenv overlay_error "true" - elif load ${devtype} ${devnum} ${load_addr} ${dtbdir}/rockchip/overlay/${overlay_file}.dtbo; then - echo "Applying kernel provided DT overlay ${overlay_file}.dtbo" - fdt apply ${load_addr} || setenv overlay_error "true" - fi + if load ${devtype} ${devnum} ${load_addr} ${prefix}dtb${uname_r}/rockchip/overlay/${overlay_prefix}-${overlay_file}.dtbo; then + echo "Applying kernel provided DT overlay ${overlay_prefix}-${overlay_file}.dtbo" + fdt apply ${load_addr} || setenv overlay_error "true" + fi done for overlay_file in ${user_overlays}; do - if load ${devtype} ${devnum} ${load_addr} ${prefix}overlay-user/${overlay_file}.dtbo; then - echo "Applying user provided DT overlay ${overlay_file}.dtbo" - fdt apply ${load_addr} || setenv overlay_error "true" - fi + if load ${devtype} ${devnum} ${load_addr} ${prefix}overlay-user/${overlay_file}.dtbo; then + echo "Applying user provided DT overlay ${overlay_file}.dtbo" + fdt apply ${load_addr} || setenv overlay_error "true" + fi done if test "${overlay_error}" = "true"; then - echo "Error applying DT overlays, restoring original DT" - load ${devtype} ${devnum} ${fdt_addr_r} ${dtbdir}/${fdtfile} + echo "Error applying DT overlays, restoring original DT" + load ${devtype} ${devnum} ${fdt_addr_r} ${prefix}dtb${uname_r}/${fdtfile} else - if load ${devtype} ${devnum} ${load_addr} ${dtbdir}/rockchip/overlay/${overlay_prefix}-fixup.scr; then - echo "Applying kernel provided DT fixup script (${overlay_prefix}-fixup.scr)" - source ${load_addr} - fi - if test -e ${devtype} ${devnum} ${prefix}fixup.scr; then - load ${devtype} ${devnum} ${load_addr} ${prefix}fixup.scr - echo "Applying user provided fixup script (fixup.scr)" - source ${load_addr} - fi + if load ${devtype} ${devnum} ${load_addr} ${prefix}dtb${uname_r}/rockchip/overlay/${overlay_prefix}-fixup.scr; then + echo "Applying kernel provided DT fixup script (${overlay_prefix}-fixup.scr)" + source ${load_addr} + fi + if test -e ${devtype} ${devnum} ${prefix}fixup.scr; then + load ${devtype} ${devnum} ${load_addr} ${prefix}fixup.scr + echo "Applying user provided fixup script (fixup.scr)" + source ${load_addr} + fi fi -kaslrseed + +if test "${ethernet_phy}" = "rtl8211f"; then + fdt set /ethernet@ff540000 tx_delay <0x24> + fdt set /ethernet@ff540000 rx_delay <0x18> +fi + booti ${kernel_addr_r} ${ramdisk_addr_r} ${fdt_addr_r} + +# Recompile with: +# mkimage -C none -A arm -T script -d /boot/boot.cmd /boot/boot.scr diff --git a/uEnv.txt b/uEnv.txt index a76693d..7cda58c 100644 --- a/uEnv.txt +++ b/uEnv.txt @@ -1,5 +1,8 @@ verbosity=1 bootlogo=false -overlay_prefix=rockchip-rk3588 +extraargs=cma=128M +overlay_prefix=rk3588 fdtfile=rockchip/rk3588s-orangepi-5.dtb +rootdev=UUID=db4e6004-8585-4150-984e-66abe5a77000 rootfstype=ext4 +bootcmd=run distro_bootcmd