Cirrus Logic EP9315 |
|
Redboot User’s Guide |
|
Linux 2.6.8.1 for Cirrus Logic ARM Processors |
|
Cirrus Logic : Public Access for Cirrus Logic EPD ARM Users |
|
HOWTO for EDB93XX board |
|
How to Boot Linux using RedBoot |
Installing/Configuring TFTP Server |
This quick setup explains how to configure your Linux host machine to support PXE. Take a look at the link described above for a general setup.
Here is my setup:
server=192.168.0.2, EDB9315A=192.168.0.11
My /tftpboot layout:
~/html/cross-stuff/htdocs$ tree /tftpboot/
/tftpboot/
|-- EDB9315A
| |--
initrd.gz
| |--
rootfs-jffs2.img
| `-- zImage
|-- LITE5200
| |--
flashfs-jffs2-be.img
| |--
initrd.gz
| |--
rootfs-jffs2-be.img
| |--
rootfs-jffs2.img
| `--
vmlinux.img
|-- PCM3350
| |--
bzImage
| |--
initrd.gz
| `--
rootfs-jffs2.img
|-- pxelinux.0
`-- pxelinux.cfg
`-- C0A8000C
This method describes how to boot both Linux and the root file-system from the Network (tftp):
· The script build-linux-2.6.18.sh should have build the kernel image as /tftpboot/EDB9315A/bzImage
· Customize the root filesystem build script as this
· Then run it, that will generate the file /tftpboot/EDB9315A/initrd.gz
· Power the EDB9315A board and hit Ctrl-C to stay in RedBoot.
·
Configure RedBoot and reinitialize the Flash:
RedBoot> fis init –f
Run script at boot: true
Boot script:
Enter script, terminate with empty line
>>
Boot script timeout (1000ms resolution): 10
Use BOOTP for network configuration: false
Gateway IP address: 192.168.0.1
Local IP address: 192.168.0.11
Local IP address mask: 255.255.255.0
Default server IP address: 192.168.0.2
DNS server IP address: 192.168.0.2
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)?
·
Load the ramdisk compressed image and the
kernel:
load -r -v -b 0x800000
EDB9315A/initrd.gz
load -r -v -b 0x80000 EDB9315A/zImage
· You now have 2 options:
·
Run the kernel using the console, assuming you have
attached a USB keyboard and a CRT to the VGA output:
exec -r 0x800000 -s
0x800000
·
Run the kernel using the serial port:
exec -r 0x800000 -s
0x800000 -c "root=/dev/ram console=ttyAM"
This method describes how to boot Linux from the Network and have the root filesystem mounted through NFS:
· The script build-linux-2.6.18.sh should have build the kernel image as /tftpboot/EDB9315A/bzImage
· Customize the root filesystem build script as this
· Then run it, that will generate the file /tftpboot/EDB9315A/initrd.gz
· Power the EDB9315A board and hit Ctrl-C to stay in RedBoot.
· If needed configure
·
Load the ramdisk compressed image and the
kernel:
load -r -v -b 0x80000
EDB9315A/zImage
exec -r 0x800000 -s 0x600000 -c "root=/dev/nfs rw
nfsroot=192.168.0.2:/home/osingla/sf/cross-stuff/armle/EDB9315A/rootfs
ip=192.168.0.20:192.168.0.2::::eth0:off"
·
This would work also as well (use of the serial
port instead of the console)
exec -r 0x800000 -s
0x600000 -c "root=/dev/nfs rw
nfsroot=192.168.0.2:/home/osingla/sf/cross-stuff/armle/EDB9315A/rootfs ip=192.168.0.20:192.168.0.2::::eth0:off
console=ttyAM"
Reset the board, and put the kernel in Flash:
RedBoot> load -v -r -b 0x80000 EDB9315A/zImage
-
Raw file loaded 0x00080000-0x001849cb, assumed entry
at 0x00080000
RedBoot> fis create -b 0x80000 -l 0x00140000
zImage
... Erase from 0x60040000-0x60180000: ..........
... Program from 0x00080000-0x001c0000 at
0x60040000: ..........
... Erase from 0x60fe0000-0x61000000: .
... Program from 0x03fdf000-0x03fff000 at 0x60fe0000:
.
RedBoot>
Modify now the startup script to automatically load the kernel from flash, load the ramdisk image from NFS, and then start Linux:
RedBoot> fconfig
Run script at boot: true
Boot script:
Enter script, terminate with empty line
>> fis load zImage
>> exec -c "root=/dev/nfs rw
nfsroot=192.168.0.2:/home/osingla/sf/cross-stuff/xcross/EDB9315A/rootfs
ip=192.168.0.11:192.168.0.2::::eth0:off"
>>
Boot script timeout (1000ms resolution): 10
Use BOOTP for network configuration: false
Gateway IP address: 192.168.0.1
Local IP address: 192.168.0.11
Local IP address mask: 255.255.255.0
Default server IP address: 192.168.0.2
DNS server IP address: 192.168.0.2
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
... Erase from 0x60fc0000-0x60fc1000: .
... Program from 0x03fde000-0x03fdf000 at
0x60fc0000: .
RedBoot>reset
Put the root filesystem in Flash (will mounted as a Ramdisk):
RedBoot> load -v -r -b 0xa00000
EDB9315A/rootfs-jffs2.img
-
Raw file loaded 0x00a00000-0x0136ffff, assumed entry
at 0x00a00000
RedBoot> fis create -b 0xa00000 -l 0x00A00000
rootfs
... Erase from 0x60180000-0x60b80000:
..........................................
... Program from 0x00a00000-0x01400000 at
0x60180000: ..........................
... Erase from 0x60fe0000-0x61000000: .
... Program from 0x03fdf000-0x03fff000 at
0x60fe0000: .
Modify now the startup script to automatically load the kernel from flash, load the ramdisk image from NFS, and then run Linux:
RedBoot> fconfig
Run script at boot: true
Boot script:
Enter script, terminate with empty line
>> fis load zImage
>> exec -c " root=/dev/mtdblock2 ro
rootfstype=jffs2 console=ttyAM"
>>
Boot script timeout (1000ms resolution): 10
Use BOOTP for network configuration: false
Gateway IP address: 192.168.0.1
Local IP address: 192.168.0.11
Local IP address mask: 255.255.255.0
Default server IP address: 192.168.0.2
DNS server IP address: 192.168.0.2
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
... Erase from 0x60fc0000-0x60fc1000: .
... Program from 0x03fde000-0x03fdf000 at
0x60fc0000: .
RedBoot>