mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-28 15:41:40 +00:00
Nokia RX-51: Add support for booting kernel in zImage format
Enable U-Boot bootz command and update env scripts to try loading also zImage file and to try booting via bootz command. Update also lowlevel_init.S code for checking validity of zImage magic to correctly relocate kernel in zImage format. This change allows U-Boot to directly boot Linux kernel without need for converting kernel image into U-Boot uImage format. Signed-off-by: Pali Rohár <pali@kernel.org> Signed-off-by: Lokesh Vutla <lokeshvutla@ti.com> Link: https://lore.kernel.org/r/20210618132704.32066-1-pali@kernel.org
This commit is contained in:
parent
149389424f
commit
cc434fccba
5 changed files with 91 additions and 19 deletions
|
@ -27,6 +27,9 @@ imagesize: /* maximal size of image */
|
||||||
ih_magic: /* IH_MAGIC in big endian from include/image.h */
|
ih_magic: /* IH_MAGIC in big endian from include/image.h */
|
||||||
.word 0x56190527
|
.word 0x56190527
|
||||||
|
|
||||||
|
z_magic: /* LINUX_ARM_ZIMAGE_MAGIC */
|
||||||
|
.word 0x016f2818
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Routine: save_boot_params (called after reset from start.S)
|
* Routine: save_boot_params (called after reset from start.S)
|
||||||
* Description: Copy attached kernel to address KERNEL_ADDRESS
|
* Description: Copy attached kernel to address KERNEL_ADDRESS
|
||||||
|
@ -75,6 +78,12 @@ copy_kernel_start:
|
||||||
ldr r4, [r0] /* r4 - 4 bytes header of kernel */
|
ldr r4, [r0] /* r4 - 4 bytes header of kernel */
|
||||||
ldr r5, ih_magic /* r5 - IH_MAGIC */
|
ldr r5, ih_magic /* r5 - IH_MAGIC */
|
||||||
cmp r4, r5
|
cmp r4, r5
|
||||||
|
beq copy_kernel_loop
|
||||||
|
|
||||||
|
/* check for valid kernel zImage */
|
||||||
|
ldr r4, [r0, #36] /* r4 - 4 bytes header of kernel at offset 36 */
|
||||||
|
ldr r5, z_magic /* r5 - LINUX_ARM_ZIMAGE_MAGIC */
|
||||||
|
cmp r4, r5
|
||||||
bne copy_kernel_end /* skip if invalid image */
|
bne copy_kernel_end /* skip if invalid image */
|
||||||
|
|
||||||
copy_kernel_loop:
|
copy_kernel_loop:
|
||||||
|
@ -85,7 +94,8 @@ copy_kernel_loop:
|
||||||
|
|
||||||
copy_kernel_end:
|
copy_kernel_end:
|
||||||
mov r5, #0
|
mov r5, #0
|
||||||
str r5, [r0] /* remove 4 bytes header of kernel */
|
str r5, [r0] /* remove 4 bytes header of kernel uImage */
|
||||||
|
str r5, [r0, #36] /* remove 4 bytes header of kernel zImage */
|
||||||
|
|
||||||
|
|
||||||
/* Fix u-boot code */
|
/* Fix u-boot code */
|
||||||
|
|
|
@ -18,6 +18,7 @@ CONFIG_CONSOLE_MUX=y
|
||||||
CONFIG_HUSH_PARSER=y
|
CONFIG_HUSH_PARSER=y
|
||||||
CONFIG_SYS_PROMPT="Nokia RX-51 # "
|
CONFIG_SYS_PROMPT="Nokia RX-51 # "
|
||||||
# CONFIG_CMD_BDI is not set
|
# CONFIG_CMD_BDI is not set
|
||||||
|
CONFIG_CMD_BOOTZ=y
|
||||||
# CONFIG_BOOTM_NETBSD is not set
|
# CONFIG_BOOTM_NETBSD is not set
|
||||||
# CONFIG_BOOTM_PLAN9 is not set
|
# CONFIG_BOOTM_PLAN9 is not set
|
||||||
# CONFIG_BOOTM_RTEMS is not set
|
# CONFIG_BOOTM_RTEMS is not set
|
||||||
|
|
|
@ -11,13 +11,14 @@ a kernel. In order to transparently boot the original kernel, it will be
|
||||||
appended to u-boot.bin at 0x40000. NOLO will load the entire image into
|
appended to u-boot.bin at 0x40000. NOLO will load the entire image into
|
||||||
(random) memory and execute u-boot, which saves hw revision, boot reason
|
(random) memory and execute u-boot, which saves hw revision, boot reason
|
||||||
and boot mode ATAGs set by NOLO. Then the bootscripts will attempt to load
|
and boot mode ATAGs set by NOLO. Then the bootscripts will attempt to load
|
||||||
uImage or boot.scr from a fat, ext2/ext3 or ext4 filesystem in external
|
uImage, zImage or boot.scr from a fat or ext2/3/4 filesystem on external
|
||||||
SD card or internal eMMC memory. If this fails or keyboard is closed then
|
SD card or internal eMMC memory. If this fails or keyboard is closed then
|
||||||
the appended kernel image will be booted using some generated and some
|
the appended kernel image will be booted using some generated and some
|
||||||
stored ATAGs (see boot order).
|
stored ATAGs (see boot order).
|
||||||
|
|
||||||
For generating combined image of u-boot and kernel there is a simple script
|
For generating combined image of u-boot and kernel (either in uImage or zImage
|
||||||
called u-boot-gen-combined. It is available in following repository:
|
format) there is a simple script called u-boot-gen-combined. It is available in
|
||||||
|
following repository:
|
||||||
|
|
||||||
https://github.com/pali/u-boot-maemo
|
https://github.com/pali/u-boot-maemo
|
||||||
|
|
||||||
|
@ -41,7 +42,8 @@ Boot from SD or eMMC in this order:
|
||||||
* 1.
|
* 1.
|
||||||
* 1.1 find boot.scr on first fat partition
|
* 1.1 find boot.scr on first fat partition
|
||||||
* 1.2 find uImage on first fat partition
|
* 1.2 find uImage on first fat partition
|
||||||
* 1.3 same order for 2. - 4. fat partition
|
* 1.3 find zImage on first fat partition
|
||||||
|
* 1.4 same order for 2. - 4. fat partition
|
||||||
* 2. same as 1. but for ext2/3 partition
|
* 2. same as 1. but for ext2/3 partition
|
||||||
* 3. same as 1. but for ext4 partition
|
* 3. same as 1. but for ext4 partition
|
||||||
|
|
||||||
|
|
|
@ -129,12 +129,14 @@ int rx51_kp_getc(struct stdio_dev *sdev);
|
||||||
"scriptboot=echo Running ${mmcscriptfile} from mmc " \
|
"scriptboot=echo Running ${mmcscriptfile} from mmc " \
|
||||||
"${mmcnum}:${mmcpart} ...; source ${scriptaddr}\0" \
|
"${mmcnum}:${mmcpart} ...; source ${scriptaddr}\0" \
|
||||||
"kernboot=echo Booting ${mmckernfile} from mmc " \
|
"kernboot=echo Booting ${mmckernfile} from mmc " \
|
||||||
"${mmcnum}:${mmcpart} ...; bootm ${kernaddr}\0" \
|
"${mmcnum}:${mmcpart} ...; bootm ${kernaddr} || " \
|
||||||
|
"bootz ${kernaddr}\0" \
|
||||||
"kerninitrdboot=echo Booting ${mmckernfile} ${mmcinitrdfile} from mmc "\
|
"kerninitrdboot=echo Booting ${mmckernfile} ${mmcinitrdfile} from mmc "\
|
||||||
"${mmcnum}:${mmcpart} ...; bootm ${kernaddr} ${initrdaddr}\0" \
|
"${mmcnum}:${mmcpart} ...; bootm ${kernaddr} ${initrdaddr} || " \
|
||||||
|
"bootz ${kernaddr} ${initrdaddr}\0" \
|
||||||
"attachboot=echo Booting attached kernel image ...;" \
|
"attachboot=echo Booting attached kernel image ...;" \
|
||||||
"setenv setup_omap_atag 1;" \
|
"setenv setup_omap_atag 1;" \
|
||||||
"bootm ${attkernaddr};" \
|
"bootm ${attkernaddr} || bootz ${attkernaddr};" \
|
||||||
"setenv setup_omap_atag\0" \
|
"setenv setup_omap_atag\0" \
|
||||||
"trymmcscriptboot=if run switchmmc; then " \
|
"trymmcscriptboot=if run switchmmc; then " \
|
||||||
"if run scriptload; then " \
|
"if run scriptload; then " \
|
||||||
|
@ -154,7 +156,8 @@ int rx51_kp_getc(struct stdio_dev *sdev);
|
||||||
"fi; " \
|
"fi; " \
|
||||||
"fi\0" \
|
"fi\0" \
|
||||||
"trymmcpartboot=setenv mmcscriptfile boot.scr; run trymmcscriptboot;" \
|
"trymmcpartboot=setenv mmcscriptfile boot.scr; run trymmcscriptboot;" \
|
||||||
"setenv mmckernfile uImage; run trymmckernboot\0" \
|
"setenv mmckernfile uImage; run trymmckernboot;" \
|
||||||
|
"setenv mmckernfile zImage; run trymmckernboot\0" \
|
||||||
"trymmcallpartboot=setenv mmcpart 1; run trymmcpartboot;" \
|
"trymmcallpartboot=setenv mmcpart 1; run trymmcpartboot;" \
|
||||||
"setenv mmcpart 2; run trymmcpartboot;" \
|
"setenv mmcpart 2; run trymmcpartboot;" \
|
||||||
"setenv mmcpart 3; run trymmcpartboot;" \
|
"setenv mmcpart 3; run trymmcpartboot;" \
|
||||||
|
|
|
@ -159,7 +159,7 @@ setenv bootdelay 1;
|
||||||
EOF
|
EOF
|
||||||
./mkimage -A arm -O linux -T script -C none -a 0 -e 0 -n bootmenu_uboot -d bootmenu_uboot bootmenu_uboot.scr
|
./mkimage -A arm -O linux -T script -C none -a 0 -e 0 -n bootmenu_uboot -d bootmenu_uboot bootmenu_uboot.scr
|
||||||
|
|
||||||
# Generate bootmenu for eMMC booting
|
# Generate bootmenu for eMMC booting (uImage)
|
||||||
cat > bootmenu_emmc << EOF
|
cat > bootmenu_emmc << EOF
|
||||||
setenv bootmenu_0 'uImage-2.6.28-omap1 from eMMC=setenv mmcnum 1; setenv mmcpart 1; setenv mmctype fat; setenv bootargs; setenv setup_omap_atag 1; setenv mmckernfile uImage-2.6.28-omap1; run trymmckernboot';
|
setenv bootmenu_0 'uImage-2.6.28-omap1 from eMMC=setenv mmcnum 1; setenv mmcpart 1; setenv mmctype fat; setenv bootargs; setenv setup_omap_atag 1; setenv mmckernfile uImage-2.6.28-omap1; run trymmckernboot';
|
||||||
setenv bootmenu_1;
|
setenv bootmenu_1;
|
||||||
|
@ -168,6 +168,15 @@ setenv bootdelay 1;
|
||||||
EOF
|
EOF
|
||||||
./mkimage -A arm -O linux -T script -C none -a 0 -e 0 -n bootmenu_emmc -d bootmenu_emmc bootmenu_emmc.scr
|
./mkimage -A arm -O linux -T script -C none -a 0 -e 0 -n bootmenu_emmc -d bootmenu_emmc bootmenu_emmc.scr
|
||||||
|
|
||||||
|
# Generate bootmenu for eMMC booting (zImage)
|
||||||
|
cat > bootmenu_emmc2 << EOF
|
||||||
|
setenv bootmenu_0 'zImage-2.6.28-omap1 from eMMC=setenv mmcnum 1; setenv mmcpart 1; setenv mmctype fat; setenv bootargs; setenv setup_omap_atag 1; setenv mmckernfile zImage-2.6.28-omap1; run trymmckernboot';
|
||||||
|
setenv bootmenu_1;
|
||||||
|
setenv bootmenu_delay 1;
|
||||||
|
setenv bootdelay 1;
|
||||||
|
EOF
|
||||||
|
./mkimage -A arm -O linux -T script -C none -a 0 -e 0 -n bootmenu_emmc2 -d bootmenu_emmc2 bootmenu_emmc2.scr
|
||||||
|
|
||||||
# Generate bootmenu for OneNAND booting
|
# Generate bootmenu for OneNAND booting
|
||||||
cat > bootmenu_nand << EOF
|
cat > bootmenu_nand << EOF
|
||||||
setenv bootmenu_0 'uImage-2.6.28-omap1 from OneNAND=mtd read initfs \${kernaddr}; setenv bootargs; setenv setup_omap_atag 1; bootm \${kernaddr}';
|
setenv bootmenu_0 'uImage-2.6.28-omap1 from OneNAND=mtd read initfs \${kernaddr}; setenv bootargs; setenv setup_omap_atag 1; bootm \${kernaddr}';
|
||||||
|
@ -177,10 +186,18 @@ setenv bootdelay 1;
|
||||||
EOF
|
EOF
|
||||||
./mkimage -A arm -O linux -T script -C none -a 0 -e 0 -n bootmenu_nand -d bootmenu_nand bootmenu_nand.scr
|
./mkimage -A arm -O linux -T script -C none -a 0 -e 0 -n bootmenu_nand -d bootmenu_nand bootmenu_nand.scr
|
||||||
|
|
||||||
|
# Generate bootmenu for default booting
|
||||||
|
cat > bootmenu_default << EOF
|
||||||
|
setenv bootmenu_delay 1;
|
||||||
|
setenv bootdelay 1;
|
||||||
|
EOF
|
||||||
|
./mkimage -A arm -O linux -T script -C none -a 0 -e 0 -n bootmenu_default -d bootmenu_default bootmenu_default.scr
|
||||||
|
|
||||||
# Generate combined image from u-boot and Maemo fiasco kernel
|
# Generate combined image from u-boot and Maemo fiasco kernel
|
||||||
dd if=kernel_2.6.28/boot/zImage-2.6.28-20103103+0m5.fiasco of=zImage-2.6.28-omap1 skip=95 bs=1
|
dd if=kernel_2.6.28/boot/zImage-2.6.28-20103103+0m5.fiasco of=zImage-2.6.28-omap1 skip=95 bs=1
|
||||||
|
./u-boot-gen-combined u-boot.bin zImage-2.6.28-omap1 combined_zimage.bin
|
||||||
./mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -n zImage-2.6.28-omap1 -d zImage-2.6.28-omap1 uImage-2.6.28-omap1
|
./mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -n zImage-2.6.28-omap1 -d zImage-2.6.28-omap1 uImage-2.6.28-omap1
|
||||||
./u-boot-gen-combined u-boot.bin uImage-2.6.28-omap1 combined.bin
|
./u-boot-gen-combined u-boot.bin uImage-2.6.28-omap1 combined_uimage.bin
|
||||||
|
|
||||||
# Generate combined hack image from u-boot and Maemo fiasco kernel (kernel starts at 2MB offset and qflasher puts 2kB header before supplied image)
|
# Generate combined hack image from u-boot and Maemo fiasco kernel (kernel starts at 2MB offset and qflasher puts 2kB header before supplied image)
|
||||||
cp u-boot.bin combined_hack.bin
|
cp u-boot.bin combined_hack.bin
|
||||||
|
@ -191,24 +208,37 @@ truncate -s 50MiB emmc_uboot.img
|
||||||
mformat -m 0xf8 -F -h 4 -s 16 -c 1 -t $((50*1024*1024/(4*16*512))) :: -i emmc_uboot.img
|
mformat -m 0xf8 -F -h 4 -s 16 -c 1 -t $((50*1024*1024/(4*16*512))) :: -i emmc_uboot.img
|
||||||
mcopy bootmenu_uboot.scr ::/bootmenu.scr -i emmc_uboot.img
|
mcopy bootmenu_uboot.scr ::/bootmenu.scr -i emmc_uboot.img
|
||||||
|
|
||||||
# Generate FAT32 eMMC image for eMMC booting
|
# Generate FAT32 eMMC image for eMMC booting (uImage)
|
||||||
truncate -s 50MiB emmc_emmc.img
|
truncate -s 50MiB emmc_emmc.img
|
||||||
mformat -m 0xf8 -F -h 4 -s 16 -c 1 -t $((50*1024*1024/(4*16*512))) :: -i emmc_emmc.img
|
mformat -m 0xf8 -F -h 4 -s 16 -c 1 -t $((50*1024*1024/(4*16*512))) :: -i emmc_emmc.img
|
||||||
mcopy uImage-2.6.28-omap1 ::/uImage-2.6.28-omap1 -i emmc_emmc.img
|
mcopy uImage-2.6.28-omap1 ::/uImage-2.6.28-omap1 -i emmc_emmc.img
|
||||||
mcopy bootmenu_emmc.scr ::/bootmenu.scr -i emmc_emmc.img
|
mcopy bootmenu_emmc.scr ::/bootmenu.scr -i emmc_emmc.img
|
||||||
|
|
||||||
|
# Generate FAT32 eMMC image for eMMC booting (zImage)
|
||||||
|
truncate -s 50MiB emmc_emmc2.img
|
||||||
|
mformat -m 0xf8 -F -h 4 -s 16 -c 1 -t $((50*1024*1024/(4*16*512))) :: -i emmc_emmc2.img
|
||||||
|
mcopy zImage-2.6.28-omap1 ::/zImage-2.6.28-omap1 -i emmc_emmc2.img
|
||||||
|
mcopy bootmenu_emmc2.scr ::/bootmenu.scr -i emmc_emmc2.img
|
||||||
|
|
||||||
# Generate FAT32 eMMC image for OneNAND booting
|
# Generate FAT32 eMMC image for OneNAND booting
|
||||||
truncate -s 50MiB emmc_nand.img
|
truncate -s 50MiB emmc_nand.img
|
||||||
mformat -m 0xf8 -F -h 4 -s 16 -c 1 -t $((50*1024*1024/(4*16*512))) :: -i emmc_nand.img
|
mformat -m 0xf8 -F -h 4 -s 16 -c 1 -t $((50*1024*1024/(4*16*512))) :: -i emmc_nand.img
|
||||||
mcopy bootmenu_nand.scr ::/bootmenu.scr -i emmc_nand.img
|
mcopy bootmenu_nand.scr ::/bootmenu.scr -i emmc_nand.img
|
||||||
|
|
||||||
|
# Generate FAT32 eMMC image for default booting
|
||||||
|
truncate -s 50MiB emmc_default.img
|
||||||
|
mformat -m 0xf8 -F -h 4 -s 16 -c 1 -t $((50*1024*1024/(4*16*512))) :: -i emmc_default.img
|
||||||
|
mcopy bootmenu_default.scr ::/bootmenu.scr -i emmc_default.img
|
||||||
|
|
||||||
# Generate MTD image for U-Boot serial console testing
|
# Generate MTD image for U-Boot serial console testing
|
||||||
rm -f mtd_uboot.img
|
rm -f mtd_uboot.img
|
||||||
./qflasher -v -x xloader-qemu.bin -s secondary-qemu.bin -k u-boot.bin -m rx51 -o mtd_uboot.img
|
./qflasher -v -x xloader-qemu.bin -s secondary-qemu.bin -k u-boot.bin -m rx51 -o mtd_uboot.img
|
||||||
|
|
||||||
# Generate MTD image for RAM booting from bootloader nolo images, compiled image and rootfs image
|
# Generate MTD image for RAM booting from bootloader nolo images, compiled image and rootfs image
|
||||||
rm -f mtd_ram.img
|
rm -f mtd_ram.img
|
||||||
./qflasher -v -x xloader-qemu.bin -s secondary-qemu.bin -k combined.bin -r ubi.img -m rx51 -o mtd_ram.img
|
./qflasher -v -x xloader-qemu.bin -s secondary-qemu.bin -k combined_uimage.bin -r ubi.img -m rx51 -o mtd_ram.img
|
||||||
|
rm -f mtd_ram2.img
|
||||||
|
./qflasher -v -x xloader-qemu.bin -s secondary-qemu.bin -k combined_zimage.bin -r ubi.img -m rx51 -o mtd_ram2.img
|
||||||
|
|
||||||
# Generate MTD image for eMMC booting from bootloader nolo images, u-boot image and rootfs image
|
# Generate MTD image for eMMC booting from bootloader nolo images, u-boot image and rootfs image
|
||||||
rm -f mtd_emmc.img
|
rm -f mtd_emmc.img
|
||||||
|
@ -238,7 +268,7 @@ wait -n $sleep_pid $qemu_pid || true
|
||||||
kill -9 $tail_pid $sleep_pid $qemu_pid 2>/dev/null || true
|
kill -9 $tail_pid $sleep_pid $qemu_pid 2>/dev/null || true
|
||||||
wait || true
|
wait || true
|
||||||
|
|
||||||
# Run MTD image in qemu and wait for 300s if kernel from RAM is correctly booted
|
# Run MTD image in qemu and wait for 300s if uImage kernel from RAM is correctly booted
|
||||||
rm -f qemu_ram.log
|
rm -f qemu_ram.log
|
||||||
./qemu-system-arm -M n900 -mtdblock mtd_ram.img -serial /dev/stdout -display none > qemu_ram.log &
|
./qemu-system-arm -M n900 -mtdblock mtd_ram.img -serial /dev/stdout -display none > qemu_ram.log &
|
||||||
qemu_pid=$!
|
qemu_pid=$!
|
||||||
|
@ -250,7 +280,19 @@ wait -n $sleep_pid $qemu_pid || true
|
||||||
kill -9 $tail_pid $sleep_pid $qemu_pid 2>/dev/null || true
|
kill -9 $tail_pid $sleep_pid $qemu_pid 2>/dev/null || true
|
||||||
wait || true
|
wait || true
|
||||||
|
|
||||||
# Run MTD image in qemu and wait for 300s if kernel from eMMC is correctly booted
|
# Run MTD image in qemu and wait for 300s if zImage kernel from RAM is correctly booted
|
||||||
|
rm -f qemu_ram2.log
|
||||||
|
./qemu-system-arm -M n900 -mtdblock mtd_ram2.img -sd emmc_default.img -serial /dev/stdout -display none > qemu_ram2.log &
|
||||||
|
qemu_pid=$!
|
||||||
|
tail -F qemu_ram2.log &
|
||||||
|
tail_pid=$!
|
||||||
|
sleep 300 &
|
||||||
|
sleep_pid=$!
|
||||||
|
wait -n $sleep_pid $qemu_pid || true
|
||||||
|
kill -9 $tail_pid $sleep_pid $qemu_pid 2>/dev/null || true
|
||||||
|
wait || true
|
||||||
|
|
||||||
|
# Run MTD image in qemu and wait for 300s if uImage kernel from eMMC is correctly booted
|
||||||
rm -f qemu_emmc.log
|
rm -f qemu_emmc.log
|
||||||
./qemu-system-arm -M n900 -mtdblock mtd_emmc.img -sd emmc_emmc.img -serial /dev/stdout -display none > qemu_emmc.log &
|
./qemu-system-arm -M n900 -mtdblock mtd_emmc.img -sd emmc_emmc.img -serial /dev/stdout -display none > qemu_emmc.log &
|
||||||
qemu_pid=$!
|
qemu_pid=$!
|
||||||
|
@ -262,6 +304,18 @@ wait -n $sleep_pid $qemu_pid || true
|
||||||
kill -9 $tail_pid $sleep_pid $qemu_pid 2>/dev/null || true
|
kill -9 $tail_pid $sleep_pid $qemu_pid 2>/dev/null || true
|
||||||
wait || true
|
wait || true
|
||||||
|
|
||||||
|
# Run MTD image in qemu and wait for 300s if zImage kernel from eMMC is correctly booted
|
||||||
|
rm -f qemu_emmc2.log
|
||||||
|
./qemu-system-arm -M n900 -mtdblock mtd_emmc.img -sd emmc_emmc2.img -serial /dev/stdout -display none > qemu_emmc2.log &
|
||||||
|
qemu_pid=$!
|
||||||
|
tail -F qemu_emmc2.log &
|
||||||
|
tail_pid=$!
|
||||||
|
sleep 300 &
|
||||||
|
sleep_pid=$!
|
||||||
|
wait -n $sleep_pid $qemu_pid || true
|
||||||
|
kill -9 $tail_pid $sleep_pid $qemu_pid 2>/dev/null || true
|
||||||
|
wait || true
|
||||||
|
|
||||||
# Run MTD image in qemu and wait for 300s if kernel from OneNAND is correctly booted
|
# Run MTD image in qemu and wait for 300s if kernel from OneNAND is correctly booted
|
||||||
rm -f qemu_nand.log
|
rm -f qemu_nand.log
|
||||||
./qemu-system-arm -M n900 -mtdblock mtd_nand.img -sd emmc_nand.img -serial /dev/stdout -display none > qemu_nand.log &
|
./qemu-system-arm -M n900 -mtdblock mtd_nand.img -sd emmc_nand.img -serial /dev/stdout -display none > qemu_nand.log &
|
||||||
|
@ -281,13 +335,15 @@ echo "============================="
|
||||||
echo
|
echo
|
||||||
|
|
||||||
if grep -q 'Successfully booted' qemu_uboot.log; then echo "U-Boot serial console is working"; else echo "U-Boot serial console test failed"; fi
|
if grep -q 'Successfully booted' qemu_uboot.log; then echo "U-Boot serial console is working"; else echo "U-Boot serial console test failed"; fi
|
||||||
if grep -q 'Successfully booted' qemu_ram.log; then echo "Kernel was successfully booted from RAM"; else echo "Failed to boot kernel from RAM"; fi
|
if grep -q 'Successfully booted' qemu_ram.log; then echo "Kernel (uImage) was successfully booted from RAM"; else echo "Failed to boot kernel (uImage) from RAM"; fi
|
||||||
if grep -q 'Successfully booted' qemu_emmc.log; then echo "Kernel was successfully booted from eMMC"; else echo "Failed to boot kernel from eMMC"; fi
|
if grep -q 'Successfully booted' qemu_ram2.log; then echo "Kernel (zImage) was successfully booted from RAM"; else echo "Failed to boot kernel (zImage) from RAM"; fi
|
||||||
if grep -q 'Successfully booted' qemu_nand.log; then echo "Kernel was successfully booted from OneNAND"; else echo "Failed to boot kernel from OneNAND"; fi
|
if grep -q 'Successfully booted' qemu_emmc.log; then echo "Kernel (uImage) was successfully booted from eMMC"; else echo "Failed to boot kernel (uImage) from eMMC"; fi
|
||||||
|
if grep -q 'Successfully booted' qemu_emmc2.log; then echo "Kernel (zImage) was successfully booted from eMMC"; else echo "Failed to boot kernel (zImage) from eMMC"; fi
|
||||||
|
if grep -q 'Successfully booted' qemu_nand.log; then echo "Kernel (uImage) was successfully booted from OneNAND"; else echo "Failed to boot kernel (uImage) from OneNAND"; fi
|
||||||
|
|
||||||
echo
|
echo
|
||||||
|
|
||||||
if grep -q 'Successfully booted' qemu_uboot.log && grep -q 'Successfully booted' qemu_ram.log && grep -q 'Successfully booted' qemu_emmc.log && grep -q 'Successfully booted' qemu_nand.log; then
|
if grep -q 'Successfully booted' qemu_uboot.log && grep -q 'Successfully booted' qemu_ram.log && grep -q 'Successfully booted' qemu_ram2.log && grep -q 'Successfully booted' qemu_emmc.log && grep -q 'Successfully booted' qemu_emmc2.log && grep -q 'Successfully booted' qemu_nand.log; then
|
||||||
echo "All tests passed"
|
echo "All tests passed"
|
||||||
exit 0
|
exit 0
|
||||||
else
|
else
|
||||||
|
|
Loading…
Reference in a new issue