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

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

С каким bootargs запускаемся ?

Поставь пару printk чтобы посмотреть где останавливается

Судя по тому что ты таки исправил ошибку machine ID кернел у тебя таки грузится

 

я вот тоже неделю или больше об этом подозреваю что грузится но выводит не туда....

но проверить это так и не удалось

 

вот bootargs виден с скрина

 

Area 3: C0028000 to C083FFFF

*** Warning - bad CRC, using default environment

 

In: serial

Out: serial

Err: serial

Hit any key to stop autoboot: 0

AT91RM9200_board$ printenv

bootargs=root=/dev/ram rw initrd=0x21100000,6000000 ramdisk_size=15360 console=ttyS0,115200,mem=32M

bootcmd=cp.b C002A000 20A00000 200000; bootm 20A00000

bootdelay=4

baudrate=115200

ethaddr=11:11:11:11:11:11

ipaddr=192.168.1.123

serverip=192.168.1.1

netmask=255.255.255.0

bootfile="uImage"

stdin=serial

stdout=serial

stderr=serial

 

Environment size: 331/8188 bytes

AT91RM9200_board$

 

вот он

bootargs=root=/dev/ram rw initrd=0x21100000,6000000 ramdisk_size=15360 console=ttyS0,115200,mem=32M

 

в параметрах "Boot options" кернела сказано

cat .config |grep CMDLINE

CONFIG_CMDLINE="mem=32M console=ttyS0,115200 initrd=0x20410000,3145728 root=/dev/ram0 rw"

CONFIG_MTD_CMDLINE_PARTS=y

пробовал ttyS4 - (как DBGU) - ни чего не менялось...

 

 

был кернель 2.6.16

намекнули что может версия нета(но ведь у других же работает 2.6.16), после вопроса об этом на lists.arm.linux.org.uk... решил на 2.6.19 попробовать...

пропатчил патчем от maxim, собрал...

щяс уже воюю с 2.6.19 - все та же ерунда....

 

TFTP from server 192.168.1.1; our IP address is 192.168.1.123

Filename 'uImage'.

Load address: 0x20800000

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

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

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

done

Bytes transferred = 942294 (e60d6 hex)

AT91RM9200_board$ bootm

## Booting image at 20800000 ...

Image Name:

Image Type: ARM Linux Kernel Image (gzip compressed)

Data Size: 942230 Bytes = 920.1 kB

Load Address: 20008000

Entry Point: 20008000

Verifying Checksum ... OK

Uncompressing Kernel Image ... OK

 

Starting kernel ...

такое впечатление что кернель наботает но выводит инфо кудато в другое место...

как проверить даже не знаю...

разъем на плате лиш один и тот на DBGU, для перевода его в ttyS0 нада передергивать джампера, пробовал передергивать на ttyS0 во время загрузки кернеля, ни каких месаджей на нем небыло...

 

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

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


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

tftpboot 20007fc0 uImage;bootm 20007fc0

 

а 20007fc0 - это что за адрес?

 

AT91RM9200_board$ tftpboot 20007fc0

AT91C_BASE_SPI->SPI_SR = 100F2

AT91C_BASE_PMC->PMC_MCKR = 302

change on AT91C_BASE_PMC->PMC_MCKR =

TFTP from server 192.168.1.1; our IP address is 192.168.1.123

Filename 'uImage'.

Load address: 0x20007fc0

Loading: #################################################################

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

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

done

Bytes transferred = 950008 (e7ef8 hex)

AT91RM9200_board$ bootm 20007fc0

Booting image at 20007fc0 ...

Image Name:

Image Type: ARM Linux Kernel Image (gzip compressed)

Data Size: 949944 Bytes = 927.7 kBSize: 942182 Bytes = 920.1 kB

Load Address: 20008000

Entry Point: 20008000

Load A

Verifying Checksum ... OK

Entry Point:

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

Verifying Checksum ... OK########0]b

GUNZIP ERROR - must RESET board to recoverÿ

 

и перезагружается...

я так понял из опыта что такое крайне редко и когда чтото вообще не верно узывается...

вероятно 20007fc0 не нравится

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


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

эти адреса зависят от утилиты mkinitrd, которой нужно обработать собранный кернел; утилита находится в u-boot/tools, для файловой системой с рам диском его тоже нужно обработать этой утилитой;

 

"mem=16M console=ttyS0,115200 root=/dev/ram0 init=/linuxrc rw panic=10";

 

для старта системы c рамдиска использую "tftpboot 20007fc0 uuImage;tftpboot 20300000 ramdisk;bootm 20007fc0 20300000"; пользуюсь не зипованными ramdisk и кернел

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


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

З.Ы.: да еще на AT45DB321 запись у romboot'а глючит

А поподробнее можно? а то у меня как раз 321-ая и есть проблемы, про которые я здесь хотел вычитать.

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


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

а вообще включен в Linux kernel

CONFIG_SERIAL_AT91=y

CONFIG_SERIAL_AT91_CONSOLE=y

?

включено, вот

 

#

# Non-8250 serial port support

#

CONFIG_SERIAL_ATMEL=y

CONFIG_SERIAL_ATMEL_CONSOLE=y

CONFIG_SERIAL_ATMEL_TTYAT=y

CONFIG_SERIAL_CORE=y

CONFIG_SERIAL_CORE_CONSOLE=y

CONFIG_UNIX98_PTYS=y

CONFIG_LEGACY_PTYS=y

CONFIG_LEGACY_PTY_COUNT=256

пробовал и с

CONFIG_SERIAL_ATMEL_TTYAT is not set

 

полностью конфиг тот что уже пересобранный раз 50, не получаетчя почему то прицепить :ohmy:

прийдется по кускам показывать...

 

 

 

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


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

>bootargs=root=/dev/ram rw initrd=0x21100000,6000000 ramdisk_size=15360 console=ttyS0,115200,mem=32M

>bootcmd=cp.b C002A000 20A00000 200000; bootm 20A00000

 

А kernel который в dataflash он грузится? или вообще не грузится ни самосборный kernel ни тот что шел с платой?

 

Пропробуй грузить kernel адресу 0x20A00000 как у тебя в bootcmd указано

Также попробуй грузить командой не bootm а просто go

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


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

>bootargs=root=/dev/ram rw initrd=0x21100000,6000000 ramdisk_size=15360 console=ttyS0,115200,mem=32M

>bootcmd=cp.b C002A000 20A00000 200000; bootm 20A00000

я вот щяс только заподозгил негаразд с вот этим - bootargs=root=/dev/ram, что то мне кажется что тут должно быть - bootargs "root=/dev/ram"

щяс буду пробовать еще так...

 

А kernel который в dataflash он грузится? или вообще не грузится ни самосборный kernel ни тот что шел с платой?

я делаю все как по статье - http://heavy-online.ru/arm-linux/

с платой ни чего не шло, это наша самодельная плата...

ядро пробовал разное грузить, и то что собрано под EVM9200 с сайта http://heavy-online.ru/arm-linux/ (версия 2.6.16 с патчами) и то что я сам кучу раз собрал(версия 2.6.16 с патчами и версия 2.6.19 с патчами, на последнем я остановился)...

может у кого-то есть возможность дать мне конфиг от кернела, свой что бы я мог сравнить его с моим конфигом (хотя я и у уверен что у меня поряк) ?

я гружу его по tftp в манять по адресу 20800000 и из памяти командой bootm его запускаю...

вобщемто все же видно по скринам которыя я выкладывал....

 

Пропробуй грузить kernel адресу 0x20A00000 как у тебя в bootcmd указано

Также попробуй грузить командой не bootm а просто go

я его(упакованный uImage) гружу по tftp по адрессу 0x20800000 ( или 0x20A00000)

щяс еще попробую не упакованный...

попробовал, вот что выдает на команду iminfo

## Checking Image at 20800000 ...

Bad Magic Number

 

...в статье сказано что именно упакованный надо грузить...

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


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

З.Ы.: да еще на AT45DB321 запись у romboot'а глючит

А поподробнее можно? а то у меня как раз 321-ая и есть проблемы, про которые я здесь хотел вычитать.

а что за проблеммы у Вас с romboot?

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


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

З.Ы.: да еще на AT45DB321 запись у romboot'а глючит

А поподробнее можно? а то у меня как раз 321-ая и есть проблемы, про которые я здесь хотел вычитать.

а что за проблеммы у Вас с romboot?

Сначала по Х-модему грузится, потом, как написано на 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!

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

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


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

Сначала по Х-модему грузится, потом, как написано на 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).

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

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


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

С каким bootargs запускаемся ?

Поставь пару printk чтобы посмотреть где останавливается

Судя по тому что ты таки исправил ошибку machine ID кернел у тебя таки грузится

честно говоря я уже и не уверен что грузится....

вот что нашел в исходнике от u-boot-1.1.6

 

u-boot-1.1.6-worked-070209/cpu/arm920t/at91rm9200/armlinux.c :258

...

/* we assume that the kernel is in place */

printf ("\nStarting kernel ...\n\n");

 

#ifdef CONFIG_USB_DEVICE

{

extern void udc_disconnect (void);

udc_disconnect ();

}

#endif

 

cleanup_before_linux ();

 

theKernel (0, bd->bi_arch_number, bd->bi_boot_params);

}

...

так что если верить переводу

/* we assume that the kernel is in place */

перевести можно как - /* мы допускаем что зерно `размещено (или на месте, или поступает) ` */

так что мессадж "Starting kernel ..." не гарантирует что оно загрузилось вообще...

 

но если верить всему сообщению

AT91RM9200_board$ bootm

## Booting image at 20800000 ...

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 ... OK

 

Starting kernel ...

... то можно увидить что оно распоковалось, но не факт что загрузилось....

 

плюс ко всему еще одно смутное место

u-boot-1.1.6-worked-070209/board/at91rm9200dk/at91rm9200dk.c

 

int board_init (void)

{

/* Enable Ctrlc */

console_init_f ();

 

/* Correct IRDA resistor problem */

/* Set PA23_TXD in Output */

((AT91PS_PIO) AT91C_BASE_PIOA)->PIO_OER = AT91C_PA23_TXD2;

 

/* memory and cpu-speed are setup before relocation */

/* so we do _nothing_ here */

 

/* arch number of AT91RM9200DK-Board */

gd->bd->bi_arch_number = MACH_TYPE_AT91RM9200;

/* adress of boot parameters */

gd->bd->bi_boot_params = PHYS_SDRAM + 0x100;

 

return 0;

}

 

здесь вооще странное место

gd->bd->bi_boot_params = PHYS_SDRAM + 0x100;

почему именно + 0x100 ???

вот из хидера at91rm9200dk.h

#define PHYS_SDRAM 0x20000000

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


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

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

1) собираем ядро, с поддержкой initrd

2) собираем файловую систему пакетом buildroot или берем готовую

3) обрабатываем их утилитой mkinitrd из uboot/tools, в качестве параметров к этой утилите задаются адреса загрузки и старта

4)загружаем ядро, загружаем файловую систему

5)запускаемся

 

результат:

 

u-boot> tftpboot 20007fc0 extuuImage

 

eth: setting MAC address to 00:12:34:56:78:9d

PHY: RTL8201(B)L detected

Link: 100baseTX Full Duplex

 

end eth_init

TFTP from server 192.168.4.28; our IP address is 192.168.4.172

Filename 'extuuImage'.

Load address: 0x20007fc0

Loading: #################################################################

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

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

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

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

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

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

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

######

done

Bytes transferred = 2688528 (290610 hex)

u-boot> tftpboot 20300000 extramdisk2

 

eth: setting MAC address to 00:12:34:56:78:9d

PHY: RTL8201(B)L detected

Link: 100baseTX Full Duplex

 

end eth_init

TFTP from server 192.168.4.28; our IP address is 192.168.4.172

Filename 'extramdisk2'.

Load address: 0x20300000

Loading: #################################################################

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

#######

done

Bytes transferred = 5357632 (51c040 hex)

u-boot> bootm 20007fc0 20300000

 

## Booting image at 20007fc0 ...

Image Name:

Image Type: ARM Linux Kernel Image (uncompressed)

Data Size: 2688464 Bytes = 2.6 MB

Load Address: 20007fc0

Entry Point: 20008000

Verifying Checksum ... OK

XIP Kernel Image ... OK

## Loading Ramdisk Image at 20300000 ...

Image Name:

Image Type: ARM Linux RAMDisk Image (uncompressed)

Data Size: 5357568 Bytes = 5.1 MB

Load Address: 20300000

Entry Point: 20300000

Verifying Checksum ... OK

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

 

Starting kernel ...

 

 

begin cleanup_before_linux

 

 

end cleanup_before_linux

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

Linux version 2.6.13 (root@debian) (gcc version 3.4.3) #412 Mon Jan 8 04:32:35 MSK 2007

CPU: ARM920Tid(wb) [41129200] revision 0 (ARMv4T)

Machine: Atmel AT91RM9200-DK

Memory policy: ECC disabled, Data cache writeback

CPU0: D VIVT write-back cache

CPU0: I cache: 16384 bytes, associativity 64, 32 byte lines, 8 sets

CPU0: D cache: 16384 bytes, associativity 64, 32 byte lines, 8 sets

Built 1 zonelists

Kernel command line: mem=16M console=ttyS0,115200 root=/dev/ram0 init=/linuxrc rw panic=10

AT91: 128 gpio irqs in 4 banks

PID hash table entries: 128 (order: 7, 2048 bytes)

Console: colour dummy device 80x30

Dentry cache hash table entries: 4096 (order: 2, 16384 bytes)

Inode-cache hash table entries: 2048 (order: 1, 8192 bytes)

Memory: 16MB = 16MB total

Memory: 8200KB available (2233K code, 411K data, 88K init)

Mount-cache hash table entries: 512

CPU: Testing write buffer coherency: ok

checking if image is initramfs...it isn't (bad gzip magic numbers); looks like an initrd

Freeing initrd memory: 5232K

NET: Registered protocol family 16

SCSI subsystem initialized

NetWinder Floating Point Emulator V0.97 (double precision)

NTFS driver 2.1.23 [Flags: R/O].

JFFS2 version 2.2. (NAND) © 2001-2003 Red Hat, Inc.

Initializing Cryptographic API

AT91 Real Time Clock driver.

AT91 SPI driver loaded

ttyS0 at MMIO 0xfefff200 (irq = 1) is a AT91_SERIAL

ttyS1 at MMIO 0xfefc0000 (irq = 6) is a AT91_SERIAL

ttyS2 at MMIO 0xfefc4000 (irq = 7) is a AT91_SERIAL

ttyS3 at MMIO 0xfefc8000 (irq = 8) is a AT91_SERIAL

ttyS4 at MMIO 0xfefcc000 (irq = 9) is a AT91_SERIAL

io scheduler noop registered

io scheduler anticipatory registered

RAMDISK driver initialized: 1 RAM disks of 6000K size 1024 blocksize

loop: loaded (max 8 devices)

eth0: Link now 100-FullDuplex

eth0: AT91 ethernet at 0xfefbc000 int=24 100-FullDuplex (00:12:34:56:78:9d)

eth0: Realtek RTL8201(B)L PHY

at91_dataflash: AT45DB642 detected [spi0] (8650752 bytes)

Creating 3 MTD partitions on "AT45DB642.spi0":

0x00000000-0x00042000 : "bootloader"

0x00042000-0x0035a000 : "kernel"

0x0035a000-0x00840000 : "filesystem3"

at91_init

Adapter name AT91RM9200

Registered as minor 0

Found AT91 i2c

NET: Registered protocol family 2

IP route cache hash table entries: 256 (order: -2, 1024 bytes)

TCP established hash table entries: 1024 (order: 1, 8192 bytes)

TCP bind hash table entries: 1024 (order: 0, 4096 bytes)

TCP: Hash tables configured (established 1024 bind 1024)

TCP reno registered

IPv4 over IPv4 tunneling driver

NET: Registered protocol family 1

NET: Registered protocol family 17

NET: Registered protocol family 8

NET: Registered protocol family 20

RAMDISK: ext2 filesystem found at block 0

RAMDISK: Loading 5232KiB [1 disk] into ram disk... done.

VFS: Mounted root (ext2 filesystem).

Freeing init memory: 88K

eth0: Link now 100-FullDuplex

Initializing random number generator... urandom start: failed.

done.

Starting network...

/bin/sh: run-parts: not found

/bin/sh: run-parts: not found

 

 

 

Welcome to the Erik's uClibc development environment.

 

uclibc login:

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


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

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

1) собираем ядро, с поддержкой initrd

2) собираем файловую систему пакетом buildroot или берем готовую

3) обрабатываем их утилитой mkinitrd из uboot/tools, в качестве параметров к этой утилите задаются адреса загрузки и старта

4)загружаем ядро, загружаем файловую систему

5)запускаемся

 

1)

в ядре сказано что с поддержкой initrd

< > Normal floppy disk support (NEW)

< > Loopback device support

< > Network block device support

<*> RAM disk support

(16) Default number of RAM disks

(8192) Default RAM disk size (kbytes)

(1024) Default RAM disk block size (bytes)

[*] Initial RAM filesystem and RAM disk (initramfs/initrd) support

< > Packet writing on CD/DVD media

< > ATA over Ethernet support

 

2),3) - пока не делал - нужно сначало что бы стартонуло ядро, позже разумеется буду делать файловую систему

 

4) я хочу сначала запустить только ядро, без файловой системы

5) вот это и есть - гвоздь программы %)

eth: setting MAC address to 00:12:34:56:78:9d

PHY: RTL8201( B) L detected

Link: 100baseTX Full Duplex

end eth_init

просто инетерсно, а откуда эти строки?

это ваши debug - printf() или какаято версия U-Boot специфическая у Вас?

 

bootm 20007fc0 20300000

второй адрес что означает, это адрес initrd?

если верить сайту автора убута

http://www.denx.de/wiki/view/DULG/UBootCmdGroupExec#Section_5.9.4.2.

To boot a Linux kernel image without a initrd ramdisk image, the following command can be used:

=> bootm ${kernel_addr}

If a ramdisk image shall be used, you can type:

=> bootm ${kernel_addr} ${ramdisk_addr}

в моем случае, я второй не указываю...

 

 

begin cleanup_before_linux

end cleanup_before_linux

 

а эти строчки откуда взялись?

 

 

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

Linux version 2.6.13 (root@debian) (gcc version 3.4.3) #412 Mon Jan 8 04:32:35 MSK 2007

....

вот это я уже просто мечтаю получить....

 

вот что говорит bdinfo у меня, если это может помочь хоть както...

AT91RM9200_board$ bdinfo

arch_number = 0x000000FB

env_t = 0x00000000

boot_params = 0x20000100

DRAM bank = 0x00000000

-> start = 0x20000000

-> size = 0x02000000

ethaddr = 11:11:11:11:11:11

ip_addr = 192.168.1.123

baudrate = 115200 bps

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


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

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

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

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

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

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

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

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

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

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