# U-boot extensions in 2009.01-rc1

U-Boot usage and documentation by Ulf Samuelsson.

- About U-Boot
- Board Support for AT91RM9200DK
- Board Support for AT91RM9200EK
- Board Support for AT91SAM9G20EK
- X-Modem/Raw extensions to minicom
- New Command: factory
- New Command: os
- New Command: fs
- New Command: setargs
- New Command: led
- New Command: mux
- New Command: ethinit
- Special environment variables

## About U-boot

[TOP]

U-Boot is an open source bootloader ported to a multitude of processors. See (U-Boot Home) for documentation for vanilla U-Boot. This document only describes changes compared to the vanilla u-boot.

## Board support for at91rm9200dk

[TOP]

"at91rm9200dk" is updated to use a linux like API for gpio. A new target "at91rm9200dk_df" is defined to support boot from dataflash.

## Board support for at91rm9200ek

[TOP]

The "at91rm9200ek" BSP supports booting from a parallel flash. The "at91rm9200df" BSP supports a generic target booting from dataflash.

## Board support for at91sam9g20ek

[TOP]

The "at91sam9g20ek" target with dataflash(card) and NAND boot support.

## Minicom extensions

[TOP]

"sx-at91" is a reliable X-Modem application allowing download to the at91rm9200 based board

"raw-at91" is a download application which will download binary data using minicom. Typically used to download an environment script.

## New command: factory

[TOP]

### `factory`

"factory" will set a selected set of environment variables back to the compile time default. The following will give some hints on capabilities, but is not yet complete.

It will generate a set of scripts which will facilitate downloading the kernel and root file system using tftp and will also add commands to store into and retrieve from flash

## New command: os

[TOP]

### `os```

"os" computes a new name for the linux kernel

## New command: fs

[TOP]

### `fs```

"fs" computes a new name for the file system

## New command: setargs

[TOP]

### `setargs```

"setargs" will create new bootcmd/bootargs combination from kernel name, filesystem name, and rootfs type.

## New command: led

[TOP]

### `led [green | yellow | red | all ] [ on | off ]```

"led" will turn on or off the specified (coloured) led

## New command: mux

[TOP]

### `mux [spi | mmc ]```

"mux" will select how to use the flash card connector on the at91rm9200dk or at91rm9200ek

## New command: ethinit

[TOP]

### `ethinit```

"ethinit" can be used to delay the boot of linux, until a valid network connection has been established. This is useful if the machine is NFS mounting the root file system and both this machine and the NFS server are powering up simultaneously. The NFS server could take a lot longer to boot, and waiting for this to boot may be neccessary for proper operation.

## Special environment variables

[TOP]

### `rd```

rd contains the name of the current root file system It is autmatically generated from ver and rd-1, rd-2 etc. The "fs-date" is added at the end.

### `ver```

You can handle a number of different root fs by defining `ver`. When running `fs` rd will be assigned from one of:

`rd-1, rd2, rd-3 ...```

By defining `ver` to a number you will select the appropriate disk name

### `fs-date```

"date" part of the root file system name

### `linux```

linux contains the name of the current kernel.

It is generated from several environment variables when `os` is run

A typical name would be "at91sam9263ek-linux-2.6.28-20090105.gz"

### `hostname```

"name" part of the kernel file name

### `kernel-version```

"version" part of the kernel file name

### `kernel-date```

"date" part of the kernel file name

### `fstype [ ram | flash ]```

You can have several file system types. bootargs is created depending on fstype..

[TOP]