If the kernel is broken, how to boot from the backup kernel

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

If the kernel is broken, how to boot from the backup kernel

704 Views
logerhong
Contributor I

My partitionedis as follows,;

8000000.nor: Found 1 x16 devices at 0x0 in 16-bit bank. Manufacturer ID 0x000001 Chip ID 0x002801
Amd/Fujitsu Extended Query Table at 0x0040
Amd/Fujitsu Extended Query version 1.5.
number of CFI chips: 1
12 cmdlinepart partitions found on MTD device 8000000.nor
Creating 12 MTD partitions on "8000000.nor":
0x000000000000-0x000000180000 : "uboot"
0x000000180000-0x000000200000 : "env"
0x000000200000-0x000000d80000 : "kernel"
0x000000d80000-0x000000e00000 : "dtb"
0x000000e00000-0x000003600000 : "rootfs"
0x000003600000-0x000004180000 : "kernel_bk"
0x000004180000-0x000004200000 : "dtb_bk"
0x000004200000-0x000006a00000 : "rootfs_bk"
0x000006a00000-0x000006b00000 : "productinfo"
0x000006b00000-0x000006c00000 : "config"
0x000006c00000-0x000007c00000 : "log"
0x000007c00000-0x000008000000 : "reserved"

 

I now want to start kuble in uboot failed to start from kernel_bk, how should i judge kernle start failure, then in uboot, then jump to backup kernel_bk start it,
I now configure the boot as follows:

norargs=setenv bootargs console=${console},${baudrate} ${smp} ubi.mtd=4 root=ubi0:rootfs rootfstype=ubifs mtdparts=8000000.nor:1536k(uboot),512k(env),11776k(kernel),512k(dtb),40m(rootfs),11776k(kernel_bk),512k(dtb_bk),40m(rootfs_bk),1024k(productinfo),1024k(config),16m(log),-(reserved)
norboot=echo Booting from nor flash ...; run norargs; run norbootcmd;
norbootcmd=cp.b 0x08200000 ${loadaddr} 0x700000; cp.b 0x8d80000 ${fdt_addr} 0x20000;bootz ${loadaddr} - ${fdt_addr}

 

Thank you for your reply!

Labels (1)
0 Kudos
1 Reply

467 Views
igorpadykov
NXP Employee
NXP Employee

Hi  秋宏 罗

> how should i judge kernle start failure, then in uboot, then jump to backup kernel_bk start it,

seems most simple way is to start watchdog and set some persistent bit (indicating second kernel usage)
for example in SRC_GPR9, smth similar to https://community.nxp.com/docs/DOC-93964 .
After reboot uboot can analyze persistent bit and use other bootargs for second backup kernel.

Best regards
igor
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

0 Kudos