How can I upgrade Linux kernel remotely uploading a new Linux kernel version on an i.mx28 reference board. Running Linux kernel 2.6.35.3. Can I copy a new imx28_ivt_linux.sb without overwriting the existing one onto the board and boot into this new image?

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

How can I upgrade Linux kernel remotely uploading a new Linux kernel version on an i.mx28 reference board. Running Linux kernel 2.6.35.3. Can I copy a new imx28_ivt_linux.sb without overwriting the existing one onto the board and boot into this new image?

1,735 Views
zekibulbul
Contributor I

How could I safely upgrade a Linux kernel image (imx28_ivt_linux.sb) remotely on a reference imx28 board.

What are my options? E.g. dual partition and dual kernel images? Copy the new kernel to a new directory and able to pint to it for booting? ...

Linux kernel version is 2.6.35.3

Labels (1)
0 Kudos
5 Replies

1,111 Views
GraceH
Senior Contributor II

You can't run imx_ivt_linux.sb from a running kernel. Because imx_ivt_linux.sb includes 4 images which be loaded by ROM and run sequentially.  you can reference imx-bootlets-src-2.6.35.3-1.1.0/linux_ivt.bd.

Grace

1,111 Views
zekibulbul
Contributor I

Thank you for the response. I see that linux_ivt.bd calls power_prep, sdram_prep, linux_prep and then loads zImage and jumps to0x8000. Can the linux_ivt.bd script updated at runtime and e.g. change the zImage path and reboot? How about using kexec? Would loading a new zimage with kexec-l and then executing the new kernel with kexec -e work?

1,111 Views
GraceH
Senior Contributor II

Linux_ivt.bd script is for ROM. "load" "jump" are all ROM commands.

kexec can be used to load kernel image on runtime. But unfortunately kexec can't work well in i.mx28 2.6.35.3 kernel.

Grace

0 Kudos

1,111 Views
alejandrolozan1
NXP Employee
NXP Employee

Hi Grace,

I tried to use dd from the imx23 and copy the /boot/imx23_linux.sb with the corresponding offsets to the mmcblk0p1 in this case.

It did not work, It thought it must work but it did not.

One of the possible ways I use to think  that Zeki could use was to use TFTP to get the new .sb file and then just dd to replace the older one.

Can you provide more details about the correct procedure?

Best Regards,

Alejandro

0 Kudos

1,111 Views
GraceH
Senior Contributor II

For MX23, follow below steps to create SD card for boot.

1. run fdisk /dev/sdb to create partition like below. the type of partition 2 is 53.

Disk /dev/sdb: 1977 MB, 1977614336 bytes

61 heads, 62 sectors/track, 1021 cylinders

Units = cylinders of 3782 * 512 = 1936384 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk identifier: 0xa9280686

   Device Boot      Start         End      Blocks   Id  System

/dev/sdb1               1          18       34007    b  W95 FAT32

/dev/sdb2              19          36       34038   53  OnTrack DM6 Aux3

/dev/sdb3              37        1021     1862635   83  Linux

2.

sudo dd if=/dev/zero of=mmc_boot_partition.raw bs=512 count=4

sudo dd if=imx23_linux.sb of=mmc_boot_partition.raw ibs=512 seek=4 conv=sync,notrunc

sudo dd if=mmc_boot_partition.raw of=/dev/sdb2

3. copy rootfs to partition 3

Grace

0 Kudos