Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
120901-Linux-On-AT91RM9200-SK-new.doc
Скачиваний:
33
Добавлен:
05.03.2016
Размер:
798.21 Кб
Скачать
      1. U‑boot‑1.1.1/include/configs/rm9200.H - набор сетевых команд

В файле RM9200.hесть возможность выбирать конфигурацию отдельных команд дляu‑boot.

Листинг программы, отображающий изменения в исходном тексте:

(CONFIG_CMD_DFL | \

CFG_CMD_NET | \

CFG_CMD_PING | \

CFG_CMD_I2C | \

CFG_CMD_EEPROM \

& ~(CFG_CMD_BDI | \

CFG_CMD_FPGA | \

CFG_CMD_NAND \

) \

)

С полным списком возможных команд можно ознакомиться в файле - u‑boot‑1.1.1/README

    1. Компиляция u-boot-1.1.1

u-boot-1.1.1сpatch-ем отДмитрия Черкашина ("Dmitriy I.Cherkashin" ) приходится собирать сGCC 2.95.3(более новые версииGCCего не собирают...).

В нашем случае ПОдля сборкиu-boot-1.1.1, называется –Toolchain-2.

Нужно распаковать u-boot-1.1.1и использоватьpatch-файлы отЧеркашина.

      1. Перечень программ и утилит для сборки u-boot-1.1.1

arm-gcc-2.95.3.tgzGCC для сборки (уже пересобранный)

readme.u-boot.patchesфайл описания процесса патча

u-boot-EVM9200.patchПатч под кофигурацию сборки

dataflash-u-boot.bin – Патч для SPI Dataflash

u-boot-1.1.1.tar.bz2исходный текстu-boot-1.1.1

u-boot-RM9200.diffПатч основной

Процесс установки патча и сборки обновленной конфигурации u‑boot‑1.1.1 описан в файлеreadme.u‑boot.patches.

      1. Содержимое файла readme.U‑boot.Patches

Листинг файла, отображающий последовательность действий:

1. Files.

u-boot-RM9200.diff - RM9200 board support

u-boot-EVM9200.patch - EVM9200 board support

u-boot-1.1.1.tar.bz2 - u-boot version 1.1.1

Original version u-boot-RM9200.diff located at:

http://imsystems.ru/AT91RM9200

2. Install.

Copy files u-boot-1.1.1.tar.bz2, u-boot-RM9200.diff,

u-boot-EVM9200.patch to directory /opt and execute

following commands:

bash# cd /opt

bash# tar -xjvf ./u-boot-1.1.1.tar.bz2

bash# patch -p0 <./u-boot-RM9200.diff

bash# patch -p0 <./u-boot-EVM9200.patch

3. Configure & compile.

bash# cd /opt/u-boot-1.1.1

bash# make RM9200_config

bash# make

Resulting files:

u-boot.bin - binary image

u-boot.bin.gz - compressed binary image

/tftpboot/u-boot.bin.gz - compressed binary image in tftp server

files directory

4. Update target u-boot

4.1 Update target u-boot via kermit protocol

From console enter load binary image via Kermit protocol

command:

u->boot>loadb 20800000

Where:

loadb - load binary image command

20800000 - RAM address

Send from the host file u-boot.bin.gz.

C-Kermit (Linux host) command line example

(serial cable connected to COM1):

bash# kermit -y ./.kermrc -i -b 115200 -l /dev/ttyS0 -s u-boot.bin.gz

Where, file .kermrc contain the following kermit settings:

SET CARRIER OFF

SET FLOW OFF

SET PREFIX ALL

Erase u-boot flash sector and copy u-boot image from RAM to flash

u-boot>protect off 10010000 1001FFFF

u-boot>erase 10010000 1001FFFF

u-boot>cp.b 20800000 10010000 FFFF

Where:

10010000 - u-boot sector start address

1001FFFF - u-boot sector end address

FFFF - bytes to copy

Reboot target.

4.2 Update target u-boot via tftp (Ethernet)

Examle Linux host tftpd configuration file /etc/xinetd.d/tftp:

service tftp

{

socket_type = dgram

protocol = udp

wait = yes

user = root

server = /usr/sbin/in.tftpd

server_args = -c -s /tftpboot

disable = no

}

From console enter load binary image via tftp protocol command:

u-boot>tftpboot 20800000 u-boot.bin.gz

Erase u-boot flash sector and copy u-boot image

from RAM to flash:

u-boot>protect off 10010000 1001FFFF

u-boot>erase 10010000 1001FFFF

u-boot>cp.b 20800000 10010000 FFFF

Reboot target.

Для сохранения переменных окружения в dataflashнужно исправить конфигурацию в файлеinclude/configs/RM9200.h следующим образом:

  • Установить:

#define CFG_ENV_IS_IN_DATAFLASH

  • Убедиться, что больше оно нигде не переопределено.

  • Поправить адреса, для Ethernet. Не забыть оMAC-адресе

(u‑bootего устанавливает, а ядро потом пользуется уже установленным).

  • Включить поддержку Dataflash:

#define CONFIG_HAS_DATAFLASH 1

  • Поправить адрес конфигурации в Dataflash:

Листинг программы, отображающий изменения в исходном тексте:

#if defined(CFG_ENV_IS_IN_DATAFLASH)

#define CFG_ENV_OFFSET 0x28000 <--- вот тут

#define CFG_ENV_ADDR (CFG_DATAFLASH_LOGIC_ADDR_CS0 + CFG_ENV_OFFSET)

#define CFG_ENV_SIZE 0x2000 /* 0x8000 */

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]