IMX27 PDK NAND Flashing RedBoot

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

IMX27 PDK NAND Flashing RedBoot

IMX27 PDK NAND Flashing RedBoot

Flashing Kernel and Root File System using RedBoot


Creating an image

A kernel image and a root file system can be created using All Boards LTIB or compiling the kernel and setting the correct set of files.

Create a root file system image from a set of files converting the files to a jffs2 file system. For this, install the package mtd-tools.

In Ubuntu type

apt-get install mtd-tools 

For making an root file system for flash, use the jffs2 file system like:

mkfs.jffs2 -r rootfs -e 0x20000 -s 0x800 –n -o rootfs.jffs2 

Where rootfs/ is the original set of file for the file system and rootfs.jffs2 is the output image file.

Flashing

Some connections errors can be avoided by Configuring RedBoot.

The process below uses TFTP to copy the files between host and target. See All Boards TFTP for detail in configurations.

Copy the kernel image and the root file system image to the TFTP dir. For example, in LTIB dir, type

sudo cp ./rootfs/boot/zImage /tftpboot
sudo cp rootfs.jffs2 /tftpboot/

Where /tftpboot is the dir configured for TFTP

The next steps are performed in a Minicom session, and happens on the board.

Formatting the flash:

Format the flash

redboot> fis init -f 

Make a Bad Block Table

redboot> nand scan 

Flashing kernel

Load kernel image (zImage) using the command below. Remember to modify the host IP address:

redboot> load -r -b 0x100000 /tftpboot/zImage -h 10.29.244.99 

The address 0x100000 is used as a temporary location

Create the kernel at the right address (0x100000, for IMX27PDK)

redboot> fis create -f 0x100000 kernel 

Flashing root file system

Load root file system image (rootfs.jffs2) to the temporary address. Remember to modify the host IP address:

redboot> load -r -b 0x100000 /tftpboot/rootfs.jffs2 -h 10.29.244.99 

Create the root file system in the right address (0x600000, for IMX27PDK)

redboot> fis create -f 0x600000 root 

Testing

This step can be omitted!

You can now load your kernel in the flash by typing:

fis load kernel 

To know if the root file system written in the flash was correctly saved, execute the NFS file system and mount the flash.

For load the the root file system by NFS, type:

exec -c "noinitrd console=ttymxc0,115200 root=nfs nfsroot=<server_ip>:<root_path_on_server> ip=dhcp" 

Wait the system go up, then mount the flash at /mnt. Reminde that the flash has a jffs2 file system.

mount -t jffs2 /dev/mtdblock4 /mnt ls /mnt 

List the /mnt contents. The output must be the right file system.

For testing root file system on NAND, type

exec -c "noinitrd console=ttymxc0,115200 root=/dev/mtdblock4 rw rootfstype=jffs2 ip=dhcp" 

Modifying the initial script

Reset the board and press CTRL-C.

Type fc to modify the configurations and insert the initialization script.

RedBoot> fc 
Run script at boot: true 
Boot script: 
Enter script, terminate with empty line 
>> fis load kernel 
>> exec -c "noinitrd console=ttymxc0,115200 root=/dev/mtdblock4 rw rootfstype=jffs2 ip=dhcp" 
>> 
Boot script timeout (1000ms resolution): 1 
Use BOOTP for network configuration: false 
Gateway IP address: 10.29.241.254 
Local IP address: 10.29.241.6 Local IP address mask: 255.255.254.0 
Default server IP address: 10.29.244.99 
Board specifics: 0 
Console baud rate: 115200 
Set eth0 network hardware address [MAC]: false 
GDB connection port: 9000 
Force console for special debug messages: false 
Network debug at boot time: false 
Update RedBoot non-volatile configuration - continue (y/n)? y 
... Read from 0x07ee0000-0x07eff000 at 0x00080000: . 
... Erase from 0x00080000-0x000a0000: . 
... Program from 0x07ee0000-0x07f00000 at 0x00080000: . 
RedBoot>

Remember to save the configuration in the flash by typing y

Reset the system.

To certify that the board is loading the system from flash, remove the ethernet cable.


Labels (1)
Tags (2)
No ratings
Version history
Last update:
‎09-10-2020 03:33 AM
Updated by: