123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183 |
- =========================
- BOOTING FR-V LINUX KERNEL
- =========================
- ======================
- PROVIDING A FILESYSTEM
- ======================
- First of all, a root filesystem must be made available. This can be done in
- one of two ways:
- (1) NFS Export
- A filesystem should be constructed in a directory on an NFS server that
- the target board can reach. This directory should then be NFS exported
- such that the target board can read and write into it as root.
- (2) Flash Filesystem (JFFS2 Recommended)
- In this case, the image must be stored or built up on flash before it
- can be used. A complete image can be built using the mkfs.jffs2 or
- similar program and then downloaded and stored into flash by RedBoot.
- ========================
- LOADING THE KERNEL IMAGE
- ========================
- The kernel will need to be loaded into RAM by RedBoot (or by some alternative
- boot loader) before it can be run. The kernel image (arch/frv/boot/Image) may
- be loaded in one of three ways:
- (1) Load from Flash
- This is the simplest. RedBoot can store an image in the flash (see the
- RedBoot documentation) and then load it back into RAM. RedBoot keeps
- track of the load address, entry point and size, so the command to do
- this is simply:
- fis load linux
- The image is then ready to be executed.
- (2) Load by TFTP
- The following command will download a raw binary kernel image from the
- default server (as negotiated by BOOTP) and store it into RAM:
- load -b 0x00100000 -r /tftpboot/image.bin
- The image is then ready to be executed.
- (3) Load by Y-Modem
- The following command will download a raw binary kernel image across the
- serial port that RedBoot is currently using:
- load -m ymodem -b 0x00100000 -r zImage
- The serial client (such as minicom) must then be told to transmit the
- program by Y-Modem.
- When finished, the image will then be ready to be executed.
- ==================
- BOOTING THE KERNEL
- ==================
- Boot the image with the following RedBoot command:
- exec -c "<CMDLINE>" 0x00100000
- For example:
- exec -c "console=ttySM0,115200 ip=:::::dhcp root=/dev/mtdblock2 rw"
- This will start the kernel running. Note that if the GDB-stub is compiled in,
- then the kernel will immediately wait for GDB to connect over serial before
- doing anything else. See the section on kernel debugging with GDB.
- The kernel command line <CMDLINE> tells the kernel where its console is and
- how to find its root filesystem. This is made up of the following components,
- separated by spaces:
- (*) console=ttyS<x>[,<baud>[<parity>[<bits>[<flow>]]]]
- This specifies that the system console should output through on-chip
- serial port <x> (which can be "0" or "1").
- <baud> is a standard baud rate between 1200 and 115200 (default 9600).
- <parity> is a parity setting of "N", "O", "E", "M" or "S" for None, Odd,
- Even, Mark or Space. "None" is the default.
- <stop> is "7" or "8" for the number of bits per character. "8" is the
- default.
- <flow> is "r" to use flow control (XCTS on serial port 2 only). The
- default is to not use flow control.
- For example:
- console=ttyS0,115200
- To use the first on-chip serial port at baud rate 115200, no parity, 8
- bits, and no flow control.
- (*) root=<xxxx>
- This specifies the device upon which the root filesystem resides. It
- may be specified by major and minor number, device path, or even
- partition uuid, if supported. For example:
- /dev/nfs NFS root filesystem
- /dev/mtdblock3 Fourth RedBoot partition on the System Flash
- PARTUUID=00112233-4455-6677-8899-AABBCCDDEEFF/PARTNROFF=1
- first partition after the partition with the given UUID
- 253:0 Device with major 253 and minor 0
- Authoritative information can be found in
- "Documentation/kernel-parameters.txt".
- (*) rw
- Start with the root filesystem mounted Read/Write.
- The remaining components are all optional:
- (*) ip=<ip>::::<host>:<iface>:<cfg>
- Configure the network interface. If <cfg> is "off" then <ip> should
- specify the IP address for the network device <iface>. <host> provide
- the hostname for the device.
- If <cfg> is "bootp" or "dhcp", then all of these parameters will be
- discovered by consulting a BOOTP or DHCP server.
- For example, the following might be used:
- ip=192.168.73.12::::frv:eth0:off
- This sets the IP address on the VDK motherboard RTL8029 ethernet chipset
- (eth0) to be 192.168.73.12, and sets the board's hostname to be "frv".
- (*) nfsroot=<server>:<dir>[,v<vers>]
- This is mandatory if "root=/dev/nfs" is given as an option. It tells the
- kernel the IP address of the NFS server providing its root filesystem,
- and the pathname on that server of the filesystem.
- The NFS version to use can also be specified. v2 and v3 are supported by
- Linux.
- For example:
- nfsroot=192.168.73.1:/nfsroot-frv
- (*) profile=1
- Turns on the kernel profiler (accessible through /proc/profile).
- (*) console=gdb0
- This can be used as an alternative to the "console=ttyS..." listed
- above. I tells the kernel to pass the console output to GDB if the
- gdbstub is compiled in to the kernel.
- If this is used, then the gdbstub passes the text to GDB, which then
- simply dumps it to its standard output.
- (*) mem=<xxx>M
- Normally the kernel will work out how much SDRAM it has by reading the
- SDRAM controller registers. That can be overridden with this
- option. This allows the kernel to be told that it has <xxx> megabytes of
- memory available.
- (*) init=<prog> [<arg> [<arg> [<arg> ...]]]
- This tells the kernel what program to run initially. By default this is
- /sbin/init, but /sbin/sash or /bin/sh are common alternatives.
|