Здравствуйте!
Все таки запустил Linux на плату RainBow v1.1, как и обещал.
Точнее сказать, почти запустил , с ошибками. Главное система работает, консоль отвечает
Тепрь осталось довести систему до ума. Буду рад любым советам.
Если кому интересно, прикладываю лог.
Большое спасибо Алексею Преснякову за оказанную помощь, а также за руководство "Сброка toolchain для ARM и запуск Linux на AT91RM9200."
Оригинал находится тут: http://electronix.ru/redirect.php?http://heavy-online.ru/arm-linux/
Evgeny_CD, обязательно. Как только доведу плату до ума, пока есть проблемы с USB и LAN, так сразу напишу мануал.
Йееее! Поздравляю от всей души!
Сам я так и не сподвигся в сторону линуха, все как-то страшно браться за это совершенно незнакомое дело
Да и времени, как обычно, стало катострофически не хватать на свои интересы...
Поздравляю еще раз!
C USB я не начинал работать, но свой исходник по LAN выкладываю. Заранее прошу прощения за бардачность в нем - он собирался кусками из различных исходников, плюс мои собственные изменения/дополнения, плюс зачатки приспособляемости под RTOS, плюс закладки на будущее и т.п. .
В соседней теме я уже ответил, что перемычки по умолчанию все открыты.
Вот архив исходника: http://electronix.ru/redirect.php?http://mc.neora.ru/rm9200/net.rar
[b]AndyBig[\b], ничего сложного в Linux-e нет Спасибо, за помощь, буду разбираться дальше
"C USB я не начинал работать, но свой исходник по LAN выкладываю. Заранее прошу прощения за бардачность в нем - он собирался кусками из различных исходников, плюс мои собственные изменения/дополнения, плюс зачатки приспособляемости под RTOS, плюс закладки на будущее и т.п. smile.gif.
В соседней теме я уже ответил, что перемычки по умолчанию все открыты.
Вот архив исходника: http://electronix.ru/redirect.php?http://mc.neora.ru/rm9200/net.rar"
По ссылке скачивается битый файл
Добрый день!
Нужна помощь - никак не могу запустить Ethernet.
Что самое интересное, в u-boot все работает прекрсано. Ethernet работает, по tftp удается качать файлы, все ОК. Но в Linux Ethernet не работает.
В кернеле Linux - ID чипа PHY по всем 32 адресам читается 0xFFFF.
Что делать - не знаю...
А PHY точно тот на который драйвер расчитан?
Может "ток" по проводочкам управления PHY не течет, надо полагать сообщение загрузчика "PHY not connected!!" не спроста.
Настройки по умолчанию самого PHY скорее всего самодостаточны, а вот как себя линуховый драйвер поведет если при инициализации не найдет PHY ...
Ругается, потому что в u-boot нет поддержки KS8721BL - не прописанны ID микросхемы.
u-boot конечно ругается - "PHY not connected!!" , но Ethernet работает.
u-boot по tftp скачивает кернел и образ файловой системы, запускает кернел. Это уже говорит о том, что сеть работает исправно.
A Linux не может найти PHY, хотя в кернеле есть поддержка этой микросхемы (KS8721BL )...
"at91_ether: probe of at91_ether failed with error -1" - это кернел не может прочитать ID чипа PHY - по всем 32 адресам читается 0xFFFF.
ifconfig говрит что нет у меня ничего кроме loopback
BogoMips - ~90.
Что успел протестировать:
- Картридер с CompactFlash нашелся и определился правильно.
- ИК USB dongle определился правильно.
В общем, надо разбираться почему конфигурация PHY не работатет.
Ну а для теста сетевых возможностей линуха можно драйвер кастрировать, скорее всего он при инициализации не находя PHY вылетает, или где-нибудь в IOCTL.
USB host в проц встроен или отдельным чипом стоит?
Есть идея для начала руками вписать правильный ID микросхемы. Для теста.
USB host встроен в проц.
На линии MDIO отсутствует pullup-ный резистор. С пожеланиями успехов...
А какой получается размер образа? В мегабайтную флеш поместится?
d__, так и есть на самом деле (см. файл, 6-я страница). Спасибо !
http://electronix.ru/redirect.php?http://www.micrel.com/_PDF/Ethernet/app-notes/an-133.pdf
psL, чуть больше 1 Мб.
( pull-up резистор не помог. Так же читает 0xFFFF. Может дело в другом? Конфигурация линии MDC и т.п. ? Кто сопрягал KS8721 и Linux, отзвитесь!
Ндя-я-я... Гламурненько... Пришлось повторно с неоры скачивать схемы и повторно их анализировать... У вас господа на PHY чип reset заведен инверсно.. Другой бы по современной привычке посмеялся, но я сочувствую...
В доке:
"Chip reset. Active low, minimum of 50 uS pulse is required."
В схеме притянут через 10к к питанию. По движению ноги PB26 CPU через резистор 100 Ом и транзистор, притягивается к земле, на время. Вроде так?
Когда стартует u-boot на выводе ресета PHY имеем "1". Сеть работает. Как только стартует кернел - имеем "0" - ресет по полной. Планирую вывод напрямую подключить к выходу MCP
Туда ему и дорога...
Выпаял R9. Запаял перемычку между J13-1 (MCU_RESET) и R8 (RESET33).
Сеть работает Host и target пингуют друг друга.
Большое спасибо d__ за помощь.
По поводу резета - учтется. Сделаю напрямую от МК. Почему не от MCPшки - потому, что MCPшку не всегда можно купить, да и сбросить периферию программно иногда полезно.
Можно сделать два варианта.
от MCP и от процессора. Выбирать перемычкой.
IRQ от PHY заведено на процессор. Вот только не помню на какую ногу. Дома уточню.
SD карта.
Почему-то разъем который у меня есть, никак не хочет ложиться точно по площадкам. Да еще на ней одна нога лишняя Две ноги вместо одной WP. Вторая вроде определяет присутствие карты памяти в разъеме. Может разъем у меня такой хитрый?
Планы по плате следующие:
- Разобраться с SD/MMC картой.
- Запустить NFS.
- Поставить Gentoo Linux
P.S. Вчера подключил USB картридер со вставленной Compact Flash. Плата определила все правильно.
Создал раздел, отформатировал, записал/считал файл. Все работало отлично.
Запустил SD/MMC карту под Linux. Не обошлось без доработок
Не подпаивал ногу WP разъема, т.к. на этой линии висит дебажный компорт.
Подпаял линию CD(Card detect) к P7-22 (PORTA_26). Подтянул к питанию через резистор 10К.
Работоспособность проверял картой Kingston SD 512Mb.
Создал раздел, отформатировал, записал/считал файл. Все работало отлично.
Снова я, снова с дурными вопросами Кто нибудь пробовал собрать линух, как это описано тут:http://heavy-online.ru/arm-linux/, НО в кигвине? У меня собирается binutils,
Под cygwin не собирал.
А нельзяли выложить загрузчик и хоть какой-нибудь образ, гарантированно работающий на этой плате, а то я думал, у меня проблемы с железом, пока разобрался, вроде прогнал тест SDRAM, даже протестировал случайными числами DataFlash, а roomboot при загрузке и верификации говорит Verify DataFlash: Failed
Разумная мысль.
Постараюсь на днях выложить файлы.
Выложил файлы сюда - upload/MCs/ARM/rainbow/
romboot
u-boot.bin
uImage
fsImage
Желательно почитать "запуск Linux на AT91RM9200"
http://electronix.ru/redirect.php?http://www.heavy-online.ru/arm-linux/
Простите за назойливость, под какую кофигурацию эти файлы? Имеется ввиду клоки СДРАМ, размер датафлешь и частота кварца? Просто первичный загрузчик в упор не видит датафлешь, а у-бут, загруженный моим загрузчиком, виснет намертво
Прошу прошение за долгле молчание и за то что не выслал пакеты
Какнал связи не позволил
И начальство тоже
Выкладываю здесь потом напишу как ставил сам
Где и в каком пункте (по мануалу с heavy-online) должны быть прописаны UNAME_SYSNAME, UNAME_RELEASE, UNAME_VERSION и UNAME_MACHINE? А главное где?.. Это при сборке glibc ругается...
З.Ы. Уже за**ся.
Внесу свои пять копеек.
Со сборкой мучился долго но так и не смог полностью собрать. Постоянно выскакивали ошибки. Потом плюнулю Скачал собраный разархивировал. И вуаля заработал.
Сегодня попробую собрать под Слакой из других исходников
Playnet,
все просто и понятно.
Почитайте доку - http://electronix.ru/redirect.php?http://www.gentoo.org/proj/en/base/embedded/cross-development.xml
я собирал arm-rainbow-linux-uclibc.
rainbow - потому что понравилось. На функциональность не влияет.
баш дейстивтельно не собирается. и еще куча пакетов
Есть два способа решения проблемы.
1. Собирать все на целевом устройстве (плате rainbow).
2. Собирать в симуляторе qemu.
У каждого способа свои "+" и "-".
1. Все что собирается - уже точно работает. Но процесс сборки идет медленно.
2. Работает очень быстро, но нет гарантии что все заработает.
> xmerge -av gentoo-sources
что выводит?
xmerge -av gentoo-sources
checking for alloca... (cached) yes
checking whether getpgrp requires zero arguments... yes
checking whether setvbuf arguments are reversed... configure: error: cannot run test program while cross compiling
!!! Please attach the following file when filing a report to bugs.gentoo.org:
!!! /var/tmp/portage/app-shells/bash-3.1_p17/work/bash-3.1/config.log
!!! ERROR: app-shells/bash-3.1_p17 failed.
Как лечить?
Собираю бутром, вшиваю.
Правильнее USE="-*" xmerge -avO gentoo-sources
так собираем кросскомпилятор в gentoo:
1. emerge -av crossdev
2. USE="-iconv" crossdev-stable -v --b 2.16.1-r3 --g 3.4.6-r2 --k 2.6.11-r3 --l 0.9.28 --ex-gdb -t arm-rainbow-linux-uclibc
если нужен softfloat, то пишем так:
USE="-iconv" crossdev-stable -v --b 2.16.1-r3 --g 3.4.6-r2 --k 2.6.11-r3 --l 0.9.28 --ex-gdb -t arm-softfloat-linux-uclibc
Может пора уже страничку на http://electronix.ru/redirect.php?http://www.wikipedia.org/ заводить?
Решил все-таки собрать это под цигвин. Собрал binutils, собрал гнуся. Дело за библиотекой - и вот какая фигня:
Есть еще интересный вариант с QEMU. Можно симулировать систему на арм процессоре. Работает и под виндой. Сам правда пользуюсь версией под Linux для сборки рутфс для платы. Если есть желающие могу написать подробнее.
конечно есть
Ок. распишу подробнее.
На сайте heavy-online.ru описана ситуация, когда линух и файловая система загружаются из SPI-ной DataFlash в ОЗУ. А можно сделать, чтобы линух загружался из NAND-flash и вся, необходимая ему FS находилась там же? А в SPI DataFlash будет только загрузчик (romboot и u-boot). В проекте вроде вешают NAND-flash на CS3 (SmartMedia). Можно с нее же и загружаться?
Нужны ли какие-то особые телодвижения для прикручивания KS8721 к u-boot'у? Чуть подредактировал конфиг от at91rm9200dk, добавил команду PING и по мелочи. При попытке пингануть что-нить пишет:
PHY not connected!!
ping failed; host 192.168.0.3 is not alive
Хотя некоторое время зеленый светодиод мигает...
З.Ы. патчи от Черкашина поставить не удалось, т.к. они под 1.1.1 а у меня у-бут 1.1.6
А патчи от Черкашина как-то на сетевую часть влияют?..
Здравствуйте !
Подскажите, пожалуйста, какой файл /dev/???? в файловой системе соответствует физическому интерфейсу SPI процессора AT91RM9200. Мне нужно вывести строку символов через SPI интерфейс и посмотреть сигнал в осциллограф (#echo 'my_string' > /dev/???? ).
Кто-нибудь пытался запустить плату с образом uImage от хэви? У меня проверку CRC проходит... Распаковывает и сыпет на экран мусор, потом виснет.
И еще проблема.. Получаю образ, пытаюсь записать его во флэш.
U-Boot> cp.b 21000000 c0028000 133000
получаю
Copy to Flash... -X- Data
И тишина.
Причем я так на сутки оставил -- то же и было.
md c0028000 показывает начало ядра. Будто начали писать и заглохли.
memtest тоже виснет. Но память я гонял через JTAG+прога от Dron_Gus, порядка 10 проходов -- память в порядке.
Это не мусор. у него ядро собрано под кварц 18.хххх
\arm\usr\src\linux-2.6.17.1\arch\arm\mach-at91rm9200\board-rb9200.c
static void __init rb9200_map_io(void)
{
at91rm9200_map_io();
/* Initialize clocks: 16.000 MHz crystal */
at91_clock_init(16000000);
/* Setup the LEDs */
/*at91_init_leds(AT91_PIN_PB2, AT91_PIN_PB2);*/
/* Setup the serial ports and console */
at91_init_serial(&rb9200_uart_config);
}
Изучаем строчку
/* Initialize clocks: 16.000 MHz crystal */
at91_clock_init(16000000);
Сильно занят был
очень постараюсь все подробно расписать.
Здравствуйте.
А можно посмотреть результат работы команды ( файлик a.txt ):
$dmesg > a.txt
на рабочей, с загруженным Linux'ом, плате Rainbow ?
Народ, помогите!
Не запускается ФС из RAM... Юзаю самодельную плату похожую на RainBow и читаю активно heavy-online. От них же взял и образ ФС.
u-boot> bootm 10000000 10200000
## Booting image at 10000000 ...
Image Name:
Image Type: ARM Linux Kernel Image (gzip compressed)
Data Size: 932967 Bytes = 911.1 kB
Load Address: 20008000
Entry Point: 20008000
Verifying Checksum ... OK
Uncompressing Kernel Image ... OK
## Loading Ramdisk Image at 10200000 ...
Image Name:
Image Type: ARM Linux RAMDisk Image (gzip compressed)
Data Size: 1807723 Bytes = 1.7 MB
Load Address: 20288000
Entry Point: 20288000
Verifying Checksum ... OK
Starting kernel ...
Linux version 2.6.20 (root@linux) (gcc version 3.4.6) #9 Tue May 15 21:27:29 EEST 2007
CPU: ARM920T [41129200] revision 0 (ARMv4T), cr=c0003177
Machine: Router-board
Memory policy: ECC disabled, Data cache writeback
Clocks: CPU 180 MHz, master 60 MHz, main 20.000 MHz
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. Total pages: 16256
Kernel command line: root=/dev/mem initrd=0x20288000,0x30000
AT91: 96 gpio irqs in 3 banks
PID hash table entries: 256 (order: 8, 1024 bytes)
Console: colour dummy device 80x30
Dentry cache hash table entries: 8192 (order: 3, 32768 bytes)
Inode-cache hash table entries: 4096 (order: 2, 16384 bytes)
Memory: 64MB = 64MB total
Memory: 62732KB available (1692K code, 152K data, 88K init)
Mount-cache hash table entries: 512
CPU: Testing write buffer coherency: ok
NET: Registered protocol family 16
Generic PHY: Registered new driver
NET: Registered protocol family 2
IP route cache hash table entries: 1024 (order: 0, 4096 bytes)
TCP established hash table entries: 2048 (order: 1, 8192 bytes)
TCP bind hash table entries: 1024 (order: 0, 4096 bytes)
TCP: Hash tables configured (established 2048 bind 1024)
TCP reno registered
checking if image is initramfs...it isn't (bad gzip magic numbers); looks like an initrd
Freeing initrd memory: 192K
NetWinder Floating Point Emulator V0.97 (double precision)
JFFS2 version 2.2. (NAND) © 2001-2006 Red Hat, Inc.
io scheduler noop registered
io scheduler anticipatory registered (default)
at91_spi: Baud rate set to 5000000
AT91 SPI driver loaded
atmel_usart.0: ttyS0 at MMIO 0xfefff200 (irq = 1) is a ATMEL_SERIAL
atmel_usart.1: ttyS1 at MMIO 0xfffc4000 (irq = 7) is a ATMEL_SERIAL
RAMDISK driver initialized: 8 RAM disks of 4096K size 1024 blocksize
LXT970: Registered new driver
LXT971: Registered new driver
at91_ether: Your bootloader did not configure a MAC address.
eth0: Link now 100-FullDuplex
eth0: AT91 ethernet at 0xfefbc000 int=24 100-FullDuplex (00:00:00:00:00:00)
eth0: Intel LXT971A PHY
physmap platform flash device: 01000000 at 10000000
physmap-flash.0: Found 1 x16 devices at 0x0 in 16-bit bank
Amd/Fujitsu Extended Query Table at 0x0040
physmap-flash.0: CFI does not contain boot bank location. Assuming top.
number of CFI chips: 1
cfi_cmdset_0002: Disabling erase-suspend-program due to code brokenness.
RedBoot partition parsing not available
kobject_add failed for physmap-flash.0 with -EEXIST, don't try to register things with the same name in the same directory.
block2mtd: version $Revision: 1.30 $
mice: PS/2 mouse device common for all mice
TCP cubic registered
NET: Registered protocol family 1
NET: Registered protocol family 17
RAMDISK: Couldn't find valid RAM disk image starting at 0.
VFS: Cannot open root device "mem" or unknown-block(0,0)
Please append a correct "root=" boot option
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)
Увеличил размер диска:
...
RAMDISK driver initialized: 8 RAM disks of 8192K size 1024 blocksize
...
Передал initrd больше места:
...
Kernel command line: root=/dev/mem initrd=0x20288000,500000
...
Все равно кернел в панике
Смущает это:
RAMDISK: Couldn't find valid RAM disk image starting at 0.
Образ диска ведь запакован, и что-то не видно надписи (как в ядре), что он распаковывается. Или я что-то не понимаю?.. Может при компиляции ядра надо указать что-то еще кроме CONFIG_BLK_DEV_RAM, CONFIG_BLK_DEV_INITRD и CONFIG_EXT2_FS?
Проверяйте переменные окружения, всё должно работать.
(сейчас нет rainbow под рукой, лог из ucrouter, для дополнения так сказать)
Если собирать по инструкции от heavy, то должно получаться так:
boot 1.0 32Mb 45MHz (Jan 25 2005 - 01:40:16)
SDRAM Test...
Ok
Uncompressing image...
Done
U-Boot 1.1.1 (Sep 14 2006 - 17:46:55)
U-Boot code: 20F00000 -> 20F1BD8C BSS: -> 20F206A4
RAM Configuration:
Bank #0: 20000000 32 MB
AMD: 29LV160B (16 M, bottom sector)
Flash: 2 MB
DataFlash:AT45DB321
Nb pages: 8192
Page Size: 528
Size= 4325376 bytes
Logical address: 0xC0000000
Area 0: C0000000 to C0007FFF (RO)
Area 1: C0008000 to C001FFFF (RO)
Area 2: C0020000 to C0027FFF
Area 3: C0028000 to C041FFFF
In: serial
Out: serial
Err: serial
eth: setting MAC address to 12:34:56:78:9a:bc
PHY: RTL8201(L detected
Link: cable disconnected
Link: cable disconnected
MAC: error during MII initialization
Hit any key to stop autoboot: 0
## Booting image at 20a00000 ...
Image Name:
Image Type: ARM Linux Kernel Image (gzip compressed)
Data Size: 915757 Bytes = 894.3 kB
Load Address: 20008000
Entry Point: 20008000
Verifying Checksum ... OK
Uncompressing Kernel Image ... OK
## Loading Ramdisk Image at 20c0000
Image Name:
Image Type: ARM Linux RAMDisk Image (gzip compressed)
Data Size: 1824589 Bytes = 1.7 MB
Load Address: 20288000
Entry Point: 20288000
Verifying Checksum ... OK
Starting kernel ...
Linux version 2.6.16 (root@sunny) (gcc version 3.4.6) #1 Thu Apr 26 15:00:56 MSD
2007
CPU: ARM920Tid(wb) [41129200] revision 0 (ARMv4T)
Machine: uCrouter
Memory policy: ECC disabled, Data cache writeback
Clocks: CPU 179 MHz, master 44 MHz, main 18.432 MHz
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: root=/dev/ram rw initrd=0x20288000,0x500000 ramdisk_size=50
00 console=ttyS0,115200 mem=32M
AT91: 128 gpio irqs in 4 banks
PID hash table entries: 256 (order: 8, 4096 bytes)
Console: colour dummy device 80x30
Dentry cache hash table entries: 8192 (order: 3, 32768 bytes)
Inode-cache hash table entries: 4096 (order: 2, 16384 bytes)
Memory: 32MB = 32MB total
Memory: 25332KB available (1508K code, 339K data, 88K init)
Mount-cache hash table entries: 512
CPU: Testing write buffer coherency: ok
checking if image is initramfs...it isn't (no cpio magic); looks like an initrd
Freeing initrd memory: 5120K
NET: Registered protocol family 16
usbcore: registered new driver usbfs
usbcore: registered new driver hub
io scheduler noop registered
io scheduler anticipatory registered (default)
AT91 Real Time Clock driver.
AT91 SPI driver loaded
AT91 Watchdog Timer enabled (5 seconds, nowayout=1)
at91_usart.0: ttyS0 at MMIO 0xfefff200 (irq = 1) is a AT91_SERIAL
at91_usart.1: ttyS1 at MMIO 0xfffc4000 (irq = 7) is a AT91_SERIAL
RAMDISK driver initialized: 16 RAM disks of 5000K size 1024 blocksize
eth0: AT91 ethernet at 0xfefbc000 int=24 10-HalfDuplex (12:34:56:78:9a:bc)
eth0: Realtek RTL8201(L PHY
physmap flash device: 200000 at 10000000
phys_mapped_flash: Found 1 x16 devices at 0x0 in 16-bit bank
Amd/Fujitsu Extended Query Table at 0x0040
number of CF
cfi_cmdset_0002: Disabling erase-suspend-program due to code brokenness.
RedBoot partition parsing not available
at91_dataflash: AT45DB321B detected [spi0] (4325376 bytes)
Creating 3 MTD partitions on "AT45DB321B.spi0":
0x00000000-0x00042000 : "bootloader"
0x00042000-0x0014a000 : "kernel"
0x0014a000-0x00420000 : "filesystem"
at91_cf: irqs det #64, io #0
at91_ohci at91_ohci: AT91 OHCI
at91_ohci at91_ohci: new USB bus registered, assigned bus number 1
at91_ohci at91_ohci: irq 23, io mem 0x00300000
usb usb1: Product
usb usb1: Manufacturer: Linux 2.6.16 ohci_hcd
usb usb1: SerialNumber: at91
usb usb1: configuration #1 chosen from 1 choice
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 2 ports detected
udc: at91_udc version 8 March 2005
mice: PS/2 mouse device common for all mice
i2c /dev entries driver
at91_i2c at91_i2c: AT91 i2c bus driver.
NET: Registered protocol family 2
IP route cache hash table entries: 512 (order: -1, 2048 bytes)
TCP established hash table entries: 2048 (order: 1, 8192 bytes)
TCP bind hash table entries: 2048
TCP: Hash tables configured (established 2048 bind 2048)
TCP reno registered
TCP bic registered
NET: Registered protocol family 1
NET: Registered protocol family 17
RAMDISK: Compressed image found at block 0
VFS: Mounted root (ext2 filesystem).
Freeing init memory: 88K
init started: BusyBox v1.1.2 (2006.05.05-15:29+0000) multi-call binary
Starting system...
usb 1-2: new low speed USB device using at91_ohci and address 2
Configuring loopback interface...
usb 1-2: device descriptor read/64, error -110
Configuring eth0: 192.168.2.77...
Starting telnetd...
BusyBox v1.1.2 (2006.05.05-15:29+0000) Built-in shell (ash)
Enter 'help' for a list of built-in commands.
[root@arm /]$usb 1-2: device descriptor read/64, error -110
usb 1-2: new low speed USB device using at91_ohci and address 3
usb 1-2: device descriptor read/64, error -110
usb 1-2: device descriptor read/64, error -110
usb 1-2: new low speed USB device using at91_ohci and address 4
usb 1-2: device not accepting address 4, error -110
usb 1-2: new low speed USB device using at91_ohci and address 5
usb 1-2: device not accepting address 5, error -110
[root@arm /]$dmesg
Linux version 2.6.16 (root@sunny) (gcc version 3.4.6) #1 Thu Apr 26 15:00:56 MSD
2007
CPU: ARM920Tid(wb) [41129200] revision 0 (ARMv4T)
Machine: uCrouter
Memory policy: ECC disabled, Data cache writeback
On node 0 totalpages: 8192
DMA zone: 8192 pages, LIFO batch:1
DMA32 zone: 0 pages, LIFO batch:0
Normal zone: 0 pages, LIFO batch:0
HighMem zone: 0 pages, LIFO batch:0
Clocks: CPU 179 MHz, master 44 MHz, main 18.432 MHz
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: root=/dev/ram rw initrd=0x20288000,0x500000 ramdisk_size=50
00 console=ttyS0,115200 mem=32M
AT91: 128 gpio irqs in 4 banks
PID hash table entries: 256 (order: 8, 4096 bytes)
Console: colour dummy device 80x30
Dentry cache hash table entries: 8192 (order: 3, 32
Inode-cache hash table entries: 4096 (order: 2, 16384 bytes)
Memory: 32MB = 32MB total
Memory: 25332KB available (1508K code, 339K data, 88K init)
Calibrating delay loop... 89.70 BogoMIPS (lpj=448512)
Mount-cache hash table entries: 512
CPU: Testing write buffer coherency: ok
checking if image is initramfs...it isn't (no cpio magic); looks like an initrd
Freeing initrd memory: 5120K
NET: Registered protocol family 16
usbcore: registered new driver usbfs
usbcore: registered new driver hub
io scheduler noop registe
io scheduler anticipatory registered (default)
AT91 Real Time Clock driver.
AT91 SPI driver loaded
AT91 Watchdog Timer enabled (5 seconds, nowayout=1)
at91_usart.0: ttyS0 at MMIO 0xfefff200 (irq = 1) is a AT91_SERIAL
at91_usart.1: ttyS1 at MMIO 0xfffc4000 (irq = 7) is a AT91_SERIAL
RAMDISK driver initialized: 16 RAM disks of 5000K size 1024 blocksize
eth0: AT91 ethernet at 0xfefbc000 int=24 10-HalfDuplex (12:34:56:78:9a:bc)
eth0: Realtek RTL8201(L PHY
physmap flash device: 200000 at 10000000
phys_mapped_flash: Found 1 x16 devices at 0x0 in 16-bit bank
Amd/Fujitsu Extended Query Table at 0x0040
number of CFI chips: 1
cfi_cmdset_0002: Disabling erase-suspend-program due to code brokenness.
RedBoot partition parsing not available
at91_dataflash: AT45DB321B detected [spi0] (4325376 bytes)
Creating 3 MTD partitions on "AT45DB321B.spi0":
0x00000000-0x00042000 : "bootloader"
0x00042000-0x0014a000 : "kernel"
0x0014a000-0x00420000 : "filesystem"
at91_cf: irqs det #64, io #0
at91_ohci at91_ohci: starting AT91
at91_ohci at91_ohci: AT91 OHCI
drivers/usb/core/inode.c: creating file 'devices'
drivers/usb/core/inode.c: creating file '001'
at91_ohci at91_ohci: new USB bus registered, assigned bus number 1
at91_ohci at91_ohci: irq 23, io mem 0x00300000
at91_ohci at91_ohci: resetting from state 'reset', control = 0x0
at91_ohci at91_ohci: OHCI controller state
at91_ohci at91_ohci: OHCI 1.0, NO legacy support registers
at91_ohci at91_ohci: control 0x083 HCFS=operational CBSR=3
at91_ohci at91_ohci: cmdstatus 0x00000 SOC=0
at91_ohci at91_ohci: intrstatus 0x00000044 RHSC SF
at91_ohci at91_ohci: intrenable 0x8000001a MIE UE RD WDH
at91_ohci at91_ohci: hcca frame #0005
at91_ohci at91_ohci: roothub.a 02000202 POTPGT=2 NPS NDP=2(2)
at91_ohci at91_ohci: roothub.b 00000000 PPCM=0000 DR=0000
at91_ohci at91_ohci: roothub.status 00008000 DRWE
at91_ohci at91_ohci: roothub.portstatus [0] 0x00000100 PPS
at91_ohci at91_ohci: roothub.portstatus [1] 0x00000100 PPS
at91_ohci at91_ohci: created debug files
usb usb1: default language 0x0409
usb usb1: new device strings: Mfr=3, Product=2, SerialNumber=1
usb usb1: Product: AT91 OHCI
usb usb1: Manufacturer: Linux 2.6.16 ohci_hcd
usb usb1: SerialNumber: at91
usb usb1: uevent
usb usb1: device is self-powered
usb usb1: configuration #1 chosen from 1 choice
usb usb1: adding 1-0:1.0 (config #1, interface 0)
usb 1-0:1.0: uevent
hub 1-0:1.0: usb_probe_interface
hub 1-0:1.0: usb_probe_interface - got id
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 2 ports detected
hub 1-0:1.0: standalone hub
hub 1-0:1.0: no power sw
hub 1-0:1.0: global over-current protection
hub 1-0:1.0: power on to power good time: 4ms
hub 1-0:1.0: local power source is good
hub 1-0:1.0: no over-current condition exists
hub 1-0:1.0: state 7 ports 2 chg 0000 evt 0000
drivers/usb/core/inode.c: creating file '001'
udc: at91_udc version 8 March 2005
mice: PS/2 mouse device common for all mice
i2c /dev entries driver
at91_i2c at91_i2c: AT91 i2c bus driver.
NET: Registered protocol family 2
IP route cache hash table entries: 512 (order: -1, 2048 bytes)
TCP established hash table entries: 2048 (order: 1, 8192 bytes)
TCP bind hash table entries: 2048 (order: 1, 8192 bytes)
TCP: Hash tables configured (established 2048 bind 2048)
TCP reno registered
TCP bic registered
NET: Registered protocol family 1
NET: Registered protocol family 17
RAMDISK: Compressed image found at block 0
hub 1-0:1.0: state 7 ports 2 chg 0000 evt 0004
at91_ohci at91_ohci: GetStatus roothub.portstatus [1] = 0x00010101 CSC PPS CCS
hub 1-0:1.0: port 2, status 0101, change 0001, 12 Mb/s
VFS: Mounted root (ext2 filesystem).
Freeing init memory: 88K
hub 1-0:1.0: debounce: port 2: total 100ms stable 100ms status 0x101
at91_ohci at91_ohci: GetStatus roothub.portstatus [1] = 0x00100303 PRSC LSDA PPS
PES CCS
usb 1-2: new low speed USB device using at91_ohci and address 2
at91_ohci at91_ohci: urb c18a0c00 path 2 ep0in 5ec20000 cc 5 --> status -110
at91_ohci at91_ohci: urb c18a0c00 path 2 ep0in 5ec20000 cc 5 --> status -110
at91_ohci at91_ohci: urb c18a0c00 path 2 ep0in 5ec20000 cc 5 --> status -110
at91_ohci at91_ohci: GetStatus roothub.portstatus [1] = 0x00100303 PRSC LSDA PPS
PES CCS
usb 1-2: device descriptor read/64, error -110
at91_ohci at91_ohci: urb c18a0360 path 2 ep0in 5ec20000 cc 5 --> status -110
at91_ohci at91_ohci: urb c18a0360 path 2 ep0in 5ec20000 cc 5 --> status -110
at91_ohci at91_ohci: urb c18a0360 path 2 ep0in 5ec20000 cc 5 --> status -110
at91_ohci at91_ohci: GetStatus roothub.portstatus [1] = 0x00100303 PRSC LSDA PPS
PES CCS
usb 1-2: device descriptor read/64, error -110
at91_ohci at91_ohci: GetStatus roothub.portstatus [1] = 0x00100303 PRSC LSDA PPS
PES CCS
usb 1-2: new low speed USB device using at91_ohci and address 3
at91_ohci at91_ohci: urb c18a0360 path 2 ep0in 5ec20000 cc 5 --> status -110
at91_ohci at91_ohci: urb c18a0360 path 2 ep0in 5ec20000 cc 5 --> status -110
at91_ohci at91_ohci: urb c18a0360 path 2 ep0in 5ec20000 cc 5 --> status -110
at91_ohci at91_ohci: GetStatus roothub.portstatus [1] = 0x00100303 PRSC LSDA PPS
PES CCS
usb 1-2: device descriptor read/64, error -110
at91_ohci at91_ohci: urb c18a0360 path 2 ep0in 5ec20000 cc 5 --> status -110
at91_ohci at91_ohci: urb c18a0360 path 2 ep0in 5ec20000 cc 5 --> status -110
at91_ohci at91_ohci: urb c18a0360 path 2 ep0in 5ec20000 cc 5 --> status -110
at91_ohci at91_ohci: GetStatus roothub.portstatus [1] = 0x00100303 PRSC LSDA PPS
PES CCS
usb 1-2: device descriptor read/64, error -110
at91_ohci at91_ohci: GetStatus roothub.portstatus [1] = 0x00100303 PRSC LSDA PPS
PES CCS
usb 1-2: new low speed USB device using at91_ohci and address 4
at91_ohci at91_ohci: urb c18a0360 path 2 ep0out 5ec20000 cc 5 --> status -110
at91_ohci at91_ohci: urb c18a0360 path 2 ep0out 5ec20000 cc 5 --> status -110
usb 1-2: device not accepting address 4, error -110
at91_ohci at91_ohci: GetStatus roothub.portstatus [1] = 0x00100303 PRSC LSDA PPS
PES CCS
usb 1-2: new low speed USB device using at91_ohci and address 5
at91_ohci at91_ohci: urb c18a0360 path 2 ep0out 5ec20000 cc 5 --> status -110
at91_ohci at91_ohci: urb c18a0360 path 2 ep0out 5ec20000 cc 5 --> status -110
usb 1-2: device not accepting address 5, error -110
hub 1-0:1.0: state 7 ports 2 chg 0000 evt 0004
[root@arm /]$
Спасибо всем, помогло! Я потом сделал запуск сразу с флешки: root=/dev/mtdblock1 и т.д... Ни у кого с Ethernet проблем не было? Если кабель высунут при запуске, то u-boot пишет:
...
MAC: error during MII initialization
...
а ядро пишет:
...
eth0: Link down.
...
И потом, сунув кабель, все равно пинги не ходят. Получается, потом линух не анализирует активность интерфейса? Я использую LXT971A.
Спасибо, помогло!
Но, согласитесь, это не выход. Должен быть механизм автоматического определия наличия линии и поднятия интерфейса. На обычных PC мы же не набираем каждый раз ifconfig up, а интерфейс подымается автоматически. Наверно в драйвер надо добавить что-то?
Здравствуйте!
Скажите, сколько времени происходит загрузка linuxa ?
Ну кто-нибуть может сказать сколько времени у него длится загрузка linux.
Если не трудно то по этапно:
от включения питания до окончания.
Заранее спасибо
От включения питания до начала распаковывания ядра около 20с, от распаковки до полной готовности около 40с.
Да, функциональность полная. Сэкономить можно, процентов на 20-30 если постараться то до 50. Надо смотреть по конкретной задаче.
Хм ... интересный баг.
romboot.bin от COMA запустил:
Init hardware
press any key
run 10%
Freq OSC Main - 16005120 Hz
Freq PLLA - 180057600 Hz
Freq PLLB - 96030720 Hz
Freq PCK - 180057600 Hz
Freq MCK - 90028800 Hz
DBGU BR - 170454 Hz
ATMEL LOADER VER SV.01 Jul 30 2006 17:29:57
*----------------------------------------*
DataFlash : AT45DB642
Number pages = 8192
Page size = 1056
*----------------------------------------*
1: Download Dataflash [addr]
2: Read Dataflash [addr]
3: Start U-BOOT
4: Clear bootloader section in Dataflash
*----------------------------------------*
однако, при попытке послать команду 1 C0000000
он выдает:
Download Dataflash [0xc0000000]
ATMEL LOADER VER SV.01 Jul 30 2006 17:29:57
*----------------------------------------*
DataFlash : AT45DB642
Number pages = 8192
Page size = 1056
*----------------------------------------*
1: Download Dataflash [addr]
2: Read Dataflash [addr]
3: Start U-BOOT
4: Clear bootloader section in Dataflash
*----------------------------------------*
т.е. даже и не пытается посылать CCCCC
При команде 1 он пытается что-то получить
SV> 1
Download Dataflash [0x0]
CCCCCCC
в ромбуте датафлеш висит по адресу 0x00000000
Я не раз писал, что мой ромбут написан конкретно под мою плату. Используйте стандартный от heavy.
Если "romboot от хеви - пишет без проблем " то железо исправно. Можете заливать кернел смотреть как все грузится.
Попробовал я залить ядро: u-boot> loadb 20800000
Но iminfo 20800000 пишет:
## Checking Image at 20800000 ...
Bad Header Checksum
Ну и соответственно, при попытке загрузиться пишет:
## Booting image at 20a00000 ...
Bad Header Checksum
Пытаюсь собрать u-boot, возникла вот такая ошибка:
arm-elf-gcc -g -Os -fno-strict-aliasing -fno-common -ffixed-r8
-mshort-load-bytes -msoft-float
-D__KERNEL__ -DTEXT_BASE=0x01000000 -I/u/code/denx/u-boot/include
-fno-builtin -ffreestandin
g -nostdinc -isystem /usr/local/lib/gcc-lib/arm-elf/2.95.3/include
-pipe -DCONFIG_ARM -D__ARM__ -
mapcs-32 -march=armv4 -Wall -Wstrict-prototypes -c -o cfi_flash.o cfi_flash.c
In file included from cfi_flash.c:48:
/u/code/denx/u-boot/include/asm/processor.h:52: parse error before `1'
/u/code/denx/u-boot/include/asm/processor.h:52: warning: no semicolon
at end of struct or union
/u/code/denx/u-boot/include/asm/processor.h:54: parse error before `}'
/u/code/denx/u-boot/include/asm/processor.h:58: field `insn' has incomplete type
Причем, я уже не первый:
http://electronix.ru/redirect.php?http://mailman.uclinux.org/pipermail/uclinux-dev/2004-August/027789.html
Победил-таки с помощью Odiemus и всего форума!
AT91F_LowLevelInit(): Debug channel initialized
press any key to enter bootloader
Load U-BOOT from dataflash[c0008000] to SDRAM[20f00000]
Set PLLA to 180Mhz and Master clock to 45Mhz and start U-BOOT
AT91F_ResetRegistersÿ
U-Boot 1.1.1 (May 4 2006 - 11:47:26)
U-Boot code: 20F00000 -> 20F1BC3C BSS: -> 20F20554
RAM Configuration:
Bank #0: 20000000 32 MB
Unknown flash manufacturer 0x00900090
Flash: 0 kB
DataFlash:AT45DB642
Nb pages: 8192
Page Size: 1056
Size= 8650752 bytes
Logical address: 0xC0000000
Area 0: C0000000 to C0007FFF (RO)
Area 1: C0008000 to C001FFFF (RO)
Area 2: C0020000 to C0027FFF
Area 3: C0028000 to C083FFFF
In: serial
Out: serial
Err: serial
eth: setting MAC address to 12:34:56:78:9a:bc
PHY not connected!!
Link: 100baseTX Full Duplex
Hit any key to stop autoboot: 0
## Booting image at 20a00000 ...
Image Name:
Image Type: ARM Linux Kernel Image (gzip compressed)
Data Size: 1124113 Bytes = 1.1 MB
Load Address: 20008000
Entry Point: 20008000
Verifying Checksum ... OK
Uncompressing Kernel Image ... OK
## Loading Ramdisk Image at 20c00000 ...
Image Name:
Image Type: ARM Linux RAMDisk Image (gzip compressed)
Data Size: 1807723 Bytes = 1.7 MB
Load Address: 20288000
Entry Point: 20288000
Verifying Checksum ... OK
Starting kernel ...
Linux version 2.6.16 (root@heavy) (gcc version 3.4.6) #16 Sat May 6 16:31:56 MSD
2006
CPU: ARM920Tid(wb) [41129200] revision 0 (ARMv4T)
Machine: Atmel AT91RM9200-DK
Memory policy: ECC disabled, Data cache writeback
Clocks: CPU 180 MHz, master 45 MHz, main 18.432 MHz
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: root=/dev/ram rw initrd=0x20288000,0x500000 ramdisk_size=50
00 mtdparts=AT45DB642.spi0:0x2A000(boot)ro,0x136000(kernel)ro,0x200300(initrd)ro
,-(filesystem) console=ttyS0,115200 mem=64M
AT91: 128 gpio irqs in 4 banks
PID hash table entries: 512 (order: 9, 8192 bytes)
Console: colour dummy device 80x30
Dentry cache hash table entries: 16384 (order: 4, 65536 bytes)
Inode-cache hash table entries: 8192 (order: 3, 32768 bytes)
Memory: 64MB = 64MB total
Memory: 57324KB available (1868K code, 406K data, 88K init)
Mount-cache hash table entries: 512
CPU: Testing write buffer coherency: ok
checking if image is initramfs...it isn't (no cpio magic); looks like an initrd
Freeing initrd memory: 5120K
NET: Registered protocol family 16
Generic PHY: Registered new driver
SCSI subsystem initialized
usbcore: registered new driver usbfs
usbcore: registered new driver hub
NetWinder Floating Point Emulator V0.97 (double precision)
JFFS2 version 2.2. (NAND) © 2001-2003 Red Hat, Inc.
io scheduler noop registered
io scheduler anticipatory registered (default)
AT91 Real Time Clock driver.
AT91 SPI driver loaded
AT91 Watchdog Timer enabled (5 seconds, nowayout=1)
at91_usart.0: ttyS0 at MMIO 0xfefff200 (irq = 1) is a AT91_SERIAL
at91_usart.1: ttyS1 at MMIO 0xfffc4000 (irq = 7) is a AT91_SERIAL
RAMDISK driver initialized: 16 RAM disks of 5000K size 1024 blocksize
at91_ether: probe of at91_ether failed with error -1
at91_dataflash: AT45DB642 detected [spi0] (8650752 bytes)
4 cmdlinepart partitions found on MTD device AT45DB642.spi0
Creating 4 MTD partitions on "AT45DB642.spi0":
0x00000000-0x0002a000 : "boot"
0x0002a000-0x00160000 : "kernel"
0x00160000-0x00360300 : "initrd"
0x00360300-0x00840000 : "filesystem"
at91_ohci at91_ohci: AT91 OHCI
at91_ohci at91_ohci: new USB bus registered, assigned bus number 1
at91_ohci at91_ohci: irq 23, io mem 0x00300000
usb usb1: Product: AT91 OHCI
usb usb1: Manufacturer: Linux 2.6.16 ohci_hcd
usb usb1: SerialNumber: at91
usb usb1: configuration #1 chosen from 1 choice
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 2 ports detected
Initializing USB Mass Storage driver...
usbcore: registered new driver usb-storage
USB Mass Storage support registered.
mice: PS/2 mouse device common for all mice
i2c /dev entries driver
at91_i2c at91_i2c: AT91 i2c bus driver.
Advanced Linux Sound Architecture Driver Version 1.0.11rc2 (Wed Jan 04 08:57:20
2006 UTC).
usbcore: registered new driver snd-usb-audio
ALSA device list:
No soundcards found.
NET: Registered protocol family 2
IP route cache hash table entries: 1024 (order: 0, 4096 bytes)
TCP established hash table entries: 4096 (order: 2, 16384 bytes)
TCP bind hash table entries: 4096 (order: 2, 16384 bytes)
TCP: Hash tables configured (established 4096 bind 4096)
TCP reno registered
TCP bic registered
NET: Registered protocol family 1
NET: Registered protocol family 17
RAMDISK: Compressed image found at block 0
RAMDISK: incomplete write (8192 != 32768) 5111808
VFS: Mounted root (ext2 filesystem).
Freeing init memory: 88K
init started: BusyBox v1.1.2 (2006.05.05-15:29+0000) multi-call binary
Starting system...
usb 1-2: new low speed USB device using at91_ohci and address 2
usb 1-2: device descriptor read/64, error -110
Configuring loopback interface...
Configuring eth0: 192.168.2.77...
SIOCSIFADDR: No such device
usb 1-2: device descriptor read/64, error -110
SIOCGIFFLAGS: No such device
Starting telnetd...
BusyBox v1.1.2 (2006.05.05-15:29+0000) Built-in shell (ash)
Enter 'help' for a list of built-in commands.
[root@AT91RM9200 /]$usb 1-2: new low speed USB device using at91_ohci and addres
s 3
usb 1-2: device descriptor read/64, error -110
usb 1-2: device descriptor read/64, error -110
usb 1-2: new low speed USB device using at91_ohci and address 4
usb 1-2: device not accepting address 4, error -110
usb 1-2: new low speed USB device using at91_ohci and address 5
usb 1-2: device not accepting address 5, error -110
[root@AT91RM9200 /]$
Только, какого хрена u-boot у меня пишет 32 ??? Я его кстати так и не смог собрать
А как смонтировать MMC карточку ?
в системе определилась:
mmc0: host does not support reading read-only switch. Assuming write-enable.
mmcblk0: mmc0:94a3 S016B 14560KiB
mmcblk0: p1
А вот смонтировать не могу
Прошу помощи по поводу сети!
Под u-boot - все работает (и пинг и tftp), в Линуксе (ядро с сайте хеви) все определяется:
eth0: Link now 100-FullDuplex
eth0: AT91 ethernet at 0xfefbc000 int=24 100-FullDuplex (12:34:56:78:9a:bc)
eth0: Micrel KS8721 PHY
...
Configuring loopback interface...
Configuring eth0: 192.168.2.77...
eth0: Link now 100-FullDuplex
но не работает даже пинг ... лампочка причем мигает исправно ...
ХЕЛП!
А кстати, куда должна идти нога 25 KS8721 ? Это же как я понимаю прерывание, которое использует линукс, но не использует U-boot ?
Судя по схеме open-arm.narod.ru она не идет ни куда. Куда ее нужно завести, что бы запустить ядро от хеви ?
С сетью разобрался.
Господа! А может кто-нибудь выложит свои файлы board-dk.c и .config ? А то я чего-то запутался немного.
rainbow\gentoo_tiny\usr\src\linux-2.6.20\
.config
rainbow\gentoo_tiny\usr\src\linux-2.6.20\arch\arm\mach-at91rm9200\
board-rb9200.c
Makefile
Kconfig
Да, кстати, про сеть на плате от astrо.
Прерывание от KS8721 никуда не заведено - и что бы сеть начала нормально работать под линуксом, нужно установить ядро 2.6.17 или выше и поправить board-dk.c на предмет:
Обновил ядро и rootfs для платы RainBow.
Файлы выложены на фтп - /upload/MCs/ARM/rainbow/
- romboot
- u-boot.bin
- uimage
- fsimage
- 2.6.20-sakura.patch.gz
Ядро - 2.6.20.18 с патчем http://electronix.ru/redirect.php?http://maxim.org.za/AT91RM9200/2.6/2.6.20-at91.patch.gz
Часы и MMC работают.
В rootfs добавил nano, screen, dropbear, wget.
Сеть настроена на 192.168.1.5/24, route 192.168.1.1
Файл - 2.6.20-sakura.patch.gz - патч на плату RainBow v1.1 и на мою плату Sakura.
Последствия применения патча:
В папке .../linux/arch/arm/configs/ появятся два конфига на платы rainbow_defconfig и sakura_defconfig.
В папке .../linux/arch/arm/mach-at91rm9200/ два файла board-rb9200.c и board-sakura.c
В меню конфигурации ядра два пункта RainBow v1.1 board и Sakura board.
Карта памяти:
Dataflash:
C000 0000 - romboot
C000 8000 - u-boot
C002 8000 - u-boot config
C002 A000 - kernel
C026 0000 - initrd(rootfs)
RAM:
2000 8000 - kernel (0x280000)
20A0 0000 - compressed kernel (0x200000)
20C0 0000 - compressed initrd (0x200000)
20F0 0000 - u-boot
2100 8000 - initrd(rootfs) (0x500000)
Мой ромбут специфический, видит только один тип флеш, и считает что флеш лежит по адресу 00000000.
Работа с u-boot.
запись образов во флеш:
tftpboot 20800000 uImage; cp.b 20800000 C002A000 200000; tftpboot 20800000 fsImage; cp.b 20800000 c0260000 200000
работа из SPI флеш:
setenv bootargs "root=/dev/ram rw initrd=0x21000000,0x500000 ramdisk_size=5000 console=ttyS0,115200 mem=128M"
setenv bootcmd "cp.b C002A000 20A00000 200000; cp.b C0260000 20C00000 200000; bootm 20A00000 20C00000"
работа с USB флеш:
setenv bootargs "noinitrd root=/dev/sda1 console=ttyS0,115200 mem=128M rootdelay=10"
setenv bootcmd "cp.b C002A000 20A00000 200000; bootm 20A00000"
Вроде ничего не забыл
Заблы добавить. Мой патч накладывать после патча http://electronix.ru/redirect.php?http://maxim.org.za/AT91RM9200/2.6/2.6.20-at91.patch.gz
Hello All !
Если не трудно, подскажите пожалуйста, что надо поменять в моем config'е ядра (2.6.20), чтобы мое ядро увидело флэшку (USB Mass Strorage ).
С другими ядрами (от heavy, slava2005 ) плата Rainbow мои флэшки с файловой системой Ext2 видит, а с моим ядром почему-то нет. Ядро пропатчено, как положено, патчем от Maxim + отключено rmii и прерывания от PHY ( rmii=0; phy_irq_pin=0). Сеть работает нормально.
С ядром от heavy у меня не работает сеть, с ядром от slava2005 система не может загрузить initrd в мои 16М SDRAM - - приходится грузить файловую систему с USB Flash.
Ядро от sakura у меня вообще не грузится - "Starting kernel ..." и зависает - . Аналогичного результата мне удавалось добится с работающими ядрами уменьшая размер оперативной памяти в командной строке bootargs. Так что причина, вероятно, в недостаточном у меня на плате объеме SDRAM для этого ядра.
Исходя из вышеизложенного, приходится собирать свое ядро.
смотрю я на Ваш конфиги поражаюсь...
он и работать то толком не должен уже по этим пунктам...
# General setup
#
CONFIG_LOCALVERSION=""
CONFIG_LOCALVERSION_AUTO=y
# CONFIG_SWAP is not set
CONFIG_SYSVIPC=y
# CONFIG_IPC_NS is not set
# CONFIG_POSIX_MQUEUE is not set
# CONFIG_BSD_PROCESS_ACCT is not set
# CONFIG_TASKSTATS is not set
# CONFIG_UTS_NS is not set
# CONFIG_AUDIT is not set
# CONFIG_IKCONFIG is not set
CONFIG_SYSFS_DEPRECATED=y
# CONFIG_RELAY is not set
CONFIG_INITRAMFS_SOURCE=""
CONFIG_CC_OPTIMIZE_FOR_SIZE=y
CONFIG_SYSCTL=y
# CONFIG_EMBEDDED is not set
CONFIG_UID16=y
CONFIG_SYSCTL_SYSCALL=y
CONFIG_KALLSYMS=y
# CONFIG_KALLSYMS_ALL is not set
# CONFIG_KALLSYMS_EXTRA_PASS is not set
CONFIG_HOTPLUG=y
CONFIG_PRINTK=y
CONFIG_BUG=y
CONFIG_ELF_CORE=y
CONFIG_BASE_FULL=y
CONFIG_FUTEX=y
CONFIG_EPOLL=y
CONFIG_SHMEM=y
CONFIG_SLAB=y
CONFIG_VM_EVENT_COUNTERS=y
CONFIG_RT_MUTEXES=y
# CONFIG_TINY_SHMEM is not set
CONFIG_BASE_SMALL=0
# CONFIG_SLOB is not set
...
#
# Boot options
#
CONFIG_ZBOOT_ROM_TEXT=0x0
CONFIG_ZBOOT_ROM_BSS=0x0
CONFIG_CMDLINE="mem=32M console=ttyS0,115200 initrd=0x20410000,3145728 root=/dev/ram0 rw"
# CONFIG_XIP_KERNEL is not set
CONFIG_CMDLINE - чтото Вы тут намудлили кажется еще и с initrd=0x20410000,3145728
вобщем мрак...
что касается USB - так вот Вам и ответ
что это такое?
# SCSI device support
#
# CONFIG_RAID_ATTRS is not set
CONFIG_SCSI=y
# CONFIG_SCSI_TGT is not set
# CONFIG_SCSI_NETLINK is not set
CONFIG_SCSI_PROC_FS=y
и этого не достаточно
а дебаг зачем влючили? от него спрошние проблеммы - выключайте скорее
так дальше, читаем внимательно
# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
в общем совет - берите сонфиг от сакуры или Хэви - они рабочие
кстати я бы вам предложил еще метод постка различий системму/программу diff
направите на вее сакуру и свой файл - и посмотрите различия
.
2PrSt
1) По поводу CONFIG_CMDLINE - я использую bootargs из окружения romboot'a, а то, что попало в обсуждаемый config, при этом не работает ( как попало - скорее всего из взятого за основу чужого файла ). В log"е при загрузке ядра в Hyperterminal'е присутствует CMDLINE именно от romboot'a.
2) По поводу Ваших замечаний о USB - спасибо, буду разбираться.
3) По поводу взятия за основу config' ов от heavy или сакуры - в принципе так и хотел сделать сначала, но чтот-то не получилось: отдельно файлов config' ов к их ядрам не прилагается, приходится накладывать на ядро патчи от максима, а с этим у меня, видимо, вышла неувязка: вероятно, надо было ручками копировать пропатченный файл linux-2.6.XX/arch/arm/configs/at91rm9200dk_defconfig
в католог /usr/src/linux-2.6.XX/.config ???
Sorry, но ядра приходится собирать не каждый день -.
Конфиги легко выдрать из патча. Это обычный текстовый файл.
Я писал про свой патч
[quote name='Vishay' date='Sept 24 2007, 14:43' post='309243']
[/q
Hello All !
Если не трудно, подскажите пожалуйста, что надо поменять в моем config'е ядра (2.6.20), чтобы мое ядро увидело флэшку (USB Mass Strorage ).
С другими ядрами (от heavy, slava2005 ) плата Rainbow мои флэшки с файловой системой Ext2 видит, а с моим ядром почему-то нет. Ядро пропатчено, как положено, патчем от Maxim + отключено rmii и прерывания от PHY ( rmii=0; phy_irq_pin=0). Сеть работает нормально.
С ядром от heavy у меня не работает сеть, с ядром от slava2005 система не может загрузить initrd в мои 16М SDRAM - - приходится грузить файловую систему с USB Flash.
Ядро от sakura у меня вообще не грузится - "Starting kernel ..." и зависает - . Аналогичного результата мне удавалось добится с работающими ядрами уменьшая размер оперативной памяти в командной строке bootargs. Так что причина, вероятно, в недостаточном у меня на плате объеме SDRAM для этого ядра.
Исходя из вышеизложенного, приходится собирать свое ядро.
/]
Вот что получилось в результате пересборки ядра: некий аналог ядра от heavy 2.6.16, но работающий с сетью в схеме с int_phy = 0, умещающийся 16 МБ SDRAM вместе с initrd, работающее с usb flash.
Русская версия Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)