Skip to content

Commit 761d04e

Browse files
vidplace7igorpecovnik
authored andcommitted
RV1106: Switch u-boot from extlinux to bootscript
Switch u-boot autoboot method from extlinux to the typical Armbian bootscript. This is required in order to support devicetree overlays in this family.
1 parent 6061128 commit 761d04e

6 files changed

Lines changed: 115 additions & 13 deletions

File tree

config/bootenv/rv1106.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
verbosity=1
2+
extraargs=coherent_pool=2M cma=0 video=off udev.children-max=1
3+
bootlogo=false

config/bootscripts/boot-rv1106.cmd

Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
# DO NOT EDIT THIS FILE
2+
#
3+
# Please edit /boot/armbianEnv.txt to set supported parameters
4+
#
5+
6+
setenv load_addr "0x02080000"
7+
setenv ramdisk_addr_r "0x02400000"
8+
setenv overlay_error "false"
9+
# default values
10+
setenv rootdev "/dev/mmcblk0p1"
11+
setenv verbosity "1"
12+
setenv console "serial"
13+
setenv bootlogo "false"
14+
setenv rootfstype "ext4"
15+
setenv docker_optimizations "off"
16+
setenv earlycon "on"
17+
18+
echo "Boot script loaded from ${devtype} ${devnum}"
19+
20+
if test -e ${devtype} ${devnum} ${prefix}armbianEnv.txt; then
21+
load ${devtype} ${devnum} ${load_addr} ${prefix}armbianEnv.txt
22+
env import -t ${load_addr} ${filesize}
23+
fi
24+
25+
if test "${logo}" = "disabled"; then setenv logo "logo.nologo"; fi
26+
27+
if test "${console}" = "display" || test "${console}" = "both"; then setenv consoleargs "console=tty1"; fi
28+
if test "${console}" = "serial" || test "${console}" = "both"; then setenv consoleargs "console=ttyFIQ0,115200n8 ${consoleargs}"; fi
29+
if test "${earlycon}" = "on"; then setenv consoleargs "earlycon ${consoleargs}"; fi
30+
if test "${bootlogo}" = "true"; then
31+
setenv consoleargs "splash plymouth.ignore-serial-consoles ${consoleargs}"
32+
else
33+
setenv consoleargs "splash=verbose ${consoleargs}"
34+
fi
35+
36+
# get PARTUUID of first partition on SD/eMMC the boot script was loaded from
37+
if test "${devtype}" = "mmc"; then part uuid mmc ${devnum}:1 partuuid; fi
38+
39+
setenv bootargs "earlyprintk root=${rootdev} rootwait rootfstype=${rootfstype} ${consoleargs} consoleblank=0 loglevel=${verbosity} ubootpart=${partuuid} usb-storage.quirks=${usbstoragequirks} ${extraargs} ${extraboardargs}"
40+
41+
if test "${docker_optimizations}" = "on"; then setenv bootargs "${bootargs} cgroup_enable=cpuset cgroup_memory=1 cgroup_enable=memory"; fi
42+
43+
load ${devtype} ${devnum} ${ramdisk_addr_r} ${prefix}uInitrd
44+
load ${devtype} ${devnum} ${kernel_addr_r} ${prefix}zImage
45+
46+
load ${devtype} ${devnum} ${fdt_addr_r} ${prefix}dtb/${fdtfile}
47+
fdt addr ${fdt_addr_r}
48+
fdt resize 65536
49+
for overlay_file in ${overlays}; do
50+
if load ${devtype} ${devnum} ${load_addr} ${prefix}dtb/overlay/${overlay_prefix}-${overlay_file}.dtbo; then
51+
echo "Applying kernel provided DT overlay ${overlay_prefix}-${overlay_file}.dtbo"
52+
fdt apply ${load_addr} || setenv overlay_error "true"
53+
fi
54+
done
55+
for overlay_file in ${user_overlays}; do
56+
if load ${devtype} ${devnum} ${load_addr} ${prefix}overlay-user/${overlay_file}.dtbo; then
57+
echo "Applying user provided DT overlay ${overlay_file}.dtbo"
58+
fdt apply ${load_addr} || setenv overlay_error "true"
59+
fi
60+
done
61+
if test "${overlay_error}" = "true"; then
62+
echo "Error applying DT overlays, restoring original DT"
63+
load ${devtype} ${devnum} ${fdt_addr_r} ${prefix}dtb/${fdtfile}
64+
else
65+
if load ${devtype} ${devnum} ${load_addr} ${prefix}dtb/overlay/${overlay_prefix}-fixup.scr; then
66+
echo "Applying kernel provided DT fixup script (${overlay_prefix}-fixup.scr)"
67+
source ${load_addr}
68+
fi
69+
if test -e ${devtype} ${devnum} ${prefix}fixup.scr; then
70+
load ${devtype} ${devnum} ${load_addr} ${prefix}fixup.scr
71+
echo "Applying user provided fixup script (fixup.scr)"
72+
source ${load_addr}
73+
fi
74+
fi
75+
76+
bootz ${kernel_addr_r} ${ramdisk_addr_r} ${fdt_addr_r}
77+
78+
# Recompile with:
79+
# mkimage -C none -A arm -T script -d /boot/boot.cmd /boot/boot.scr

config/sources/families/rockchip-rv1106.conf

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -21,13 +21,8 @@ ARCH=armhf
2121
BOOTDELAY=1
2222
SERIALCON="ttyFIQ0"
2323
RKBIN_DIR="$SRC/cache/sources/rkbin-tools"
24-
SRC_EXTLINUX="yes"
25-
# Bootargs:
26-
# cma=0 -- disable CMA allocations (used by video / ipc) to save memory
27-
# video=off -- disable video subsystem to save memory
28-
# udev.children-max=1 -- limit number of udev child processes to save memory early in boot
29-
# console=ttyFIQ0,115200n8 -- set console to FIQ0 serial port at 115200 baud
30-
SRC_CMDLINE="cma=0 video=off udev.children-max=1 console=ttyFIQ0,115200n8"
24+
BOOTSCRIPT="boot-rv1106.cmd:boot.cmd"
25+
BOOTENV_FILE="rv1106.txt"
3126
OVERLAY_PREFIX="rv1106"
3227
OFFSET=16
3328
SPL_FIT_GENERATOR="arch/arm/mach-rockchip/make_fit_optee.sh"
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
diff --git a/cmd/source.c b/cmd/source.c
2+
--- a/cmd/source.c
3+
+++ b/cmd/source.c
4+
@@ -82,12 +82,9 @@
5+
return 1;
6+
}
7+
8+
- /*
9+
- * scripts are just multi-image files with one component, seek
10+
- * past the zero-terminated sequence of image lengths to get
11+
- * to the actual image data
12+
- */
13+
- while (*data++ != IMAGE_PARAM_INVAL);
14+
+ /* Skip past multi-image header: [u32 length][u32 terminator] */
15+
+ data += 2;
16+
+
17+
break;
18+
#endif
19+
#if defined(CONFIG_FIT)

patch/u-boot/legacy/u-boot-rockchip-buildroot/rv1103-rv1106-sysboot-extlinux.patch renamed to patch/u-boot/legacy/u-boot-rockchip-buildroot/rv1103-rv1106-bootscr.patch

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,29 +2,35 @@ diff --git a/include/configs/rv1103b_common.h b/include/configs/rv1103b_common.h
22
index f30d0197e0..5b22db2e42 100644
33
--- a/include/configs/rv1103b_common.h
44
+++ b/include/configs/rv1103b_common.h
5-
@@ -78,8 +78,8 @@
5+
@@ -78,8 +78,11 @@
66
"boot_fit;"
77
#else
88
#define RKIMG_BOOTCOMMAND \
99
- "boot_fit;" \
1010
- "boot_android ${devtype} ${devnum};"
11+
+ "setenv devtype mmc;" \
12+
+ "setenv devnum 1;" \
13+
+ "setenv prefix /boot/;" \
1114
+ "setenv bootargs;" \
12-
+ "sysboot mmc 1:1 any ${scriptaddr} /boot/extlinux/extlinux.conf;"
15+
+ "load ${devtype} ${devnum} ${scriptaddr} ${prefix}boot.scr && source ${scriptaddr};"
1316
#endif
1417

1518
/* Update define for tiny image */
1619
diff --git a/include/configs/rv1106_common.h b/include/configs/rv1106_common.h
1720
index d6912a88ba..b5378106e6 100644
1821
--- a/include/configs/rv1106_common.h
1922
+++ b/include/configs/rv1106_common.h
20-
@@ -88,8 +88,8 @@
23+
@@ -88,8 +88,11 @@
2124
"boot_fit;"
2225
#else
2326
#define RKIMG_BOOTCOMMAND \
2427
- "boot_fit;" \
2528
- "boot_android ${devtype} ${devnum};"
29+
+ "setenv devtype mmc;" \
30+
+ "setenv devnum 1;" \
31+
+ "setenv prefix /boot/;" \
2632
+ "setenv bootargs;" \
27-
+ "sysboot mmc 1:1 any ${scriptaddr} /boot/extlinux/extlinux.conf;"
33+
+ "load ${devtype} ${devnum} ${scriptaddr} ${prefix}boot.scr && source ${scriptaddr};"
2834
#endif
2935

3036
/* Update define for tiny image */

patch/u-boot/legacy/u-boot-rockchip-buildroot/rv1103-rv1106-mem_layout.patch

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ index f6ee6f88dc..f30d0197e0 100644
2525
+ "ramdisk_addr_r=0x02400000\0" \
2626
+ "fdt_high=0x03900000\0" \
2727
+ "initrd_high=0x03900000\0" \
28-
+ "load_addr=0x02000000\0"
28+
+ "load_addr=0x02080000\0"
2929
#endif
3030

3131
#define CONFIG_EXTRA_ENV_SETTINGS \
@@ -56,7 +56,7 @@ index dc927a8f36..d6912a88ba 100644
5656
+ "ramdisk_addr_r=0x02400000\0" \
5757
+ "fdt_high=0x03900000\0" \
5858
+ "initrd_high=0x03900000\0" \
59-
+ "load_addr=0x02000000\0"
59+
+ "load_addr=0x02080000\0"
6060
#endif
6161

6262
#define CONFIG_EXTRA_ENV_SETTINGS \

0 commit comments

Comments
 (0)