Перейти к содержанию
    

AT91RM9200 - мистика? SPI? или romboot.bin?

пункт 3, а именно обработку утилитой mkinitrd, нужно выполнить и для ядра

это делаю, как и рекомердуют в статье на heavy-online...

root@server:new# cat build_image.sh

#!/bin/bash

./mkimage -A arm -O linux -C gzip -a 0x20008000 -e 0x20008000 -d Image.gz uImage

 

mkimage из состава сборки U-Boot-1.1.6

 

получаю uImage, и его по tftp забираю грузить...

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

выполни c опциями -A arm -O linux -T kernel -C gzip -a=0x20007fc0 -e=20008000 -d .... , а потом tftpboot 20007fc0 uImage; bootm 20007fc0

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

выполни c опциями -A arm -O linux -T kernel -C gzip -a=0x20007fc0 -e=20008000 -d .... , а потом tftpboot 20007fc0 uImage; bootm 20007fc0

вот результат...

AT91RM9200_board$ tftpboot 20007fc0

MAC: error during MII initialization

TFTP from server 192.168.1.1; our IP address is 192.168.1.123

Filename 'uImage'.

Load address: 0x20007fc0

Loading: T #################################################################

#################################################################

########################################################

done

Bytes transferred = 950008 (e7ef8 hex)

AT91RM9200_board$

AT91RM9200_board$ bootm 20007fc0

## Booting image at 20007fc0 ...

Image Name:

Image Type: ARM Linux Kernel Image (gzip compressed)

Data Size: 949944 Bytes = 927.7 kB

Load Address: 20008000

Entry Point: 20008000

Verifying Checksum ... OK

Uncompressing Kernel Image ... Error: inflate() returned -3

GUNZIP ERROR - must RESET board to recover

AT91F_LowLevelInit(): Debug channel initialized

press any key to enter bootloader

Load U-BOOT from dataflash[c0008000] to SDRAM[20f00000]

тоесть перегружается после строки GUNZIP ERROR...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

выполни c опциями -A arm -O linux -T kernel -C gzip -a=0x20007fc0 -e=20008000 -d .... , а потом tftpboot 20007fc0 uImage; bootm 20007fc0

вот результат...

AT91RM9200_board$ tftpboot 20007fc0

MAC: error during MII initialization

TFTP from server 192.168.1.1; our IP address is 192.168.1.123

Filename 'uImage'.

Load address: 0x20007fc0

Loading: T #################################################################

#################################################################

########################################################

done

Bytes transferred = 950008 (e7ef8 hex)

AT91RM9200_board$

AT91RM9200_board$ bootm 20007fc0

## Booting image at 20007fc0 ...

Image Name:

Image Type: ARM Linux Kernel Image (gzip compressed)

Data Size: 949944 Bytes = 927.7 kB

Load Address: 20008000

Entry Point: 20008000

Verifying Checksum ... OK

Uncompressing Kernel Image ... Error: inflate() returned -3

GUNZIP ERROR - must RESET board to recover

AT91F_LowLevelInit(): Debug channel initialized

press any key to enter bootloader

Load U-BOOT from dataflash[c0008000] to SDRAM[20f00000]

тоесть перегружается после строки GUNZIP ERROR...

 

load address и entry point должны соответствовать тем что введены в mkinitrd:

-a load address -e entry point

 

у тебя они совпадают, не тот файл подгружаешь

 

выполнять надо c опциями -A arm -O linux -T kernel -C gzip -a 0x20007fc0 -e 20008000 -d .... (сорри за знаки равно, случайно воткнул)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

load address и entry point должны соответствовать тем что введены в mkinitrd:

-a load address -e entry point

у тебя они совпадают, не тот файл подгружаешь

выполнять надо c опциями -A arm -O linux -T kernel -C gzip -a 0x20007fc0 -e 20008000 -d .... (сорри за знаки равно, случайно воткнул)

про знаки равно я догодался разумеется и поправил сразу же%)

AT91RM9200_board$ tftp 20007fc0

MAC: error during MII initialization

TFTP from server 192.168.1.1; our IP address is 192.168.1.123

Filename 'uImage'.

Load address: 0x20007fc0

Loading: T #################################################################

....

########################################################

done

Bytes transferred = 950008 (e7ef8 hex)

AT91RM9200_board$

AT91RM9200_board$ bootm 20007fc0

## Booting image at 20007fc0 ...

Image Name:

Image Type: ARM Linux Kernel Image (gzip compressed)

Data Size: 949944 Bytes = 927.7 kB

Load Address: 20007fc0

Entry Point: 20008000

Verifying Checksum ... OK

Uncompressing Kernel Image ... Error: inflate() returned -3

GUNZIP ERROR - must RESET board to recover

AT91F_LowLevelInit(): Debug channel initialized

press any key to enter bootloader

 

он даже распоковать не может - Error: inflate() returned -3

только что это значит нада посмотреть

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

попробуй не зипованый кернел, возможно в u-boot косяк какой-нибудь, вместо -с gzip поставь -c none

 

файл ядра для mkinitrd надо брать из: ../linux/arch/arm/boot/Image (незипованный)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

попробуй не зипованый кернел, возможно в u-boot косяк какой-нибудь, вместо -с gzip поставь -c none

файл ядра для mkinitrd надо брать из: ../linux/arch/arm/boot/Image (незипованный)/quote]

так я его и беру не зипованный как Image, потом чипую ручками и получаю Image.gz

и его подкармливаю сюда

./mkimage -A arm -O linux -C none -a 0x20007fc0 -e 0x20008000 -d Image.gz uImage

 

С -c none теперь чуточку иное

 

AT91RM9200_board$ bootm 20007fc0

## Booting image at 20007fc0 ...

Image Name:

Image Type: ARM Linux Kernel Image (uncompressed)

Data Size: 949944 Bytes = 927.7 kB

Load Address: 20007fc0

Entry Point: 20008000

Verifying Checksum ... OK

XIP Kernel Image ... OK

No initrd

## Transferring control to Linux (at address 20008000) ...

 

Starting kernel ...

 

-F- Data Abort detected

 

о-о-о-о-пачки...

теперь еще и новые сообщения появились

XIP Kernel Image ... OK

No initrd

## Transferring control to Linux (at address 20008000) ...

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

ты меня неправильно понял, ты взял тот же самый файл зипованного кернела и объявил его незипованным, а надо взять файл незипованного кернела и обработать его с "-c none"

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

ты меня неправильно понял, ты взял тот же самый файл зипованного кернела и объявил его незипованным, а надо взять файл незипованного кернела и обработать его с "-c none"

вероятно действительно неверно понял

 

щяс вот как я получаю uImage, Image - не зипованный...

 

./mkimage -A arm -O linux -C none -a 0x20007fc0 -e 0x20008000 -d Image uImage

 

вот что получаю

 

Load address: 0x20007fc0

Loading: T #################################################################

...

###########################################################

done

Bytes transferred = 1965424 (1dfd70 hex)

AT91RM9200_board$ bootm 20007fc0

## Booting image at 20007fc0 ...

Image Name:

Image Type: ARM Linux Kernel Image (uncompressed)

Data Size: 1965360 Bytes = 1.9 MB

Load Address: 20007fc0

Entry Point: 20008000

Verifying Checksum ... OK

XIP Kernel Image ... OK

No initrd

## Transferring control to Linux (at address 20008000) ...

 

Starting kernel ...

и все также стоит на месте(как и раньше)....

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

авторизуй меня в Icq

Спасибо... авторизовал, готово!

может так будет лучше... 8)))))

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Сначала по Х-модему грузится, потом, как написано на http://heavy-online.ru/arm-linux/ гружу его же по адресу 0хС0000000, выдается

Modification of Arm Vector 6 :421a015

Write 10240 bytes in DataFlash [0xc0000000]

Verify Dataflash:

Failed

Hit a Key!

и можно все начинать сначала. Причем я уже и память и флешку тестировал, грешил на них, все тесты вроде проходят.

могу сказать что мне пришлось изрядно перелокопатьти исходник от romboot что бы найти подобную проблему и устранить причину...

обратите внимание на ваш код возврата :421a015 и сравните его с датащитом на AT91RM9200 стр. 87,112 - там расписано что Вы должны получить для вашей AT45DB321 ...

кстати, в моем случае устранение проблеммы свелось к понижению скорости работы SPI в 32 раза в конфигурационном регистре(смотри в сторону - DIV32).

Рекомендую перечитать этот пост внимательно с начала... может это ваш случай?

Сравнил с даташитом... именно это и должно получаться, по крайней мере 0x421A0xx получилось из расчетов по 87-ой странице дш. И при этом не хочет во флеш писаться загрузчик :(

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Сравнил с даташитом... именно это и должно получаться, по крайней мере 0x421A0xx получилось из расчетов по 87-ой странице дш. И при этом не хочет во флеш писаться загрузчик :(

если я все верно помню, то эта флэша, только в последовательном режиме(SPI) работает, Вы уверены что Ваш U-Boot просит/пишет по SPI?

кстаи, патчи на SPI приклеены?

было бы еще не плохо Вам пройтись по коду U-Boot... нужно найти где в ваей версии он вываливается...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Разобрался, почти сразу после того как написал. Проблема была в инициализации СДРАМ. Но спрашивал я не про U-Boot, а про romboot, у меня он не хотел вставать, а у-бут после уже запустился без вопросов, тока его теперь надо под мою плату собрать. Вернее, не под мою, а под радужную Rainbow/

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...