JeDay
-
Постов
278 -
Зарегистрирован
-
Посещение
Сообщения, опубликованные JeDay
-
-
sasamy спасибо за наводку, буду знать :)
Только что скачал ядро 2.6.22, накатил патч от http://maxim.org.za и применил дефолтный конфиг at91sam9260ek_defconfig он как раз под это ядро, изменил частоту кварца на 12МГц и скомпилил.
Ядро заработало :disco: Теперь надо ФС прикрутить ну и экспериментировать с настройками ядра... В общем уже есть точка опоры.
U-Boot> tftp macb0: link up, 10Mbps half-duplex (lpa: 0x0020) Using macb0 device TFTP from server 192.168.0.34; our IP address is 192.168.0.107 Filename 'uImage.bin'. Load address: 0x22000000 Loading: ################################################################# ########################## done Bytes transferred = 1322354 (142d72 hex) U-Boot> bootm ## Booting kernel from Legacy Image at 22000000 ... Image Name: JedaY Linux 2.6.22 Kernel Image Image Type: ARM Linux Kernel Image (gzip compressed) Data Size: 1322290 Bytes = 1.3 MiB Load Address: 20008000 Entry Point: 20008000 Verifying Checksum ... OK Uncompressing Kernel Image ... OK Starting kernel ... Linux version 2.6.22 (jeday@vmachine) (gcc version 4.4.1 (Sourcery G++ Lite 2010q1-188) ) #2 Tue Oct 26 21:01:31 MSD 2010 CPU: ARM926EJ-S [41069265] revision 5 (ARMv5TEJ), cr=00053177 Machine: Atmel AT91SAM9260-EK Memory policy: ECC disabled, Data cache writeback Clocks: CPU 200 MHz, master 100 MHz, main 12.000 MHz CPU0: D VIVT write-back cache CPU0: I cache: 8192 bytes, associativity 4, 32 byte lines, 64 sets CPU0: D cache: 8192 bytes, associativity 4, 32 byte lines, 64 sets Built 1 zonelists. Total pages: 16256 Kernel command line: console=ttyS0,115200 root=/dev/mtdblock0 mtdparts=atmel_nand:-(root) rw rootfstype=jffs2 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: 62080KB available (2464K code, 232K data, 108K init) Mount-cache hash table entries: 512 CPU: Testing write buffer coherency: ok NET: Registered protocol family 16 Generic PHY: Registered new driver SCSI subsystem initialized usbcore: registered new interface driver usbfs usbcore: registered new interface driver hub usbcore: registered new device driver usb NET: Registered protocol family 2 IP route cache hash table entries: 1024 (order: 0, 4096 bytes) TCP established hash table entries: 2048 (order: 2, 16384 bytes) TCP bind hash table entries: 2048 (order: 1, 8192 bytes) TCP: Hash tables configured (established 2048 bind 2048) TCP reno registered NetWinder Floating Point Emulator V0.97 (double precision) JFFS2 version 2.2. (NAND) (SUMMARY) © 2001-2006 Red Hat, Inc. io scheduler noop registered io scheduler anticipatory registered (default) atmel_usart.0: ttyS0 at MMIO 0xfefff200 (irq = 1) is a ATMEL_SERIAL atmel_usart.1: ttyS1 at MMIO 0xfffb0000 (irq = 6) is a ATMEL_SERIAL atmel_usart.2: ttyS2 at MMIO 0xfffb4000 (irq = 7) is a ATMEL_SERIAL RAMDISK driver initialized: 16 RAM disks of 8192K size 1024 blocksize loop: module loaded Davicom DM9161E: Registered new driver Davicom DM9161A: Registered new driver Davicom DM9131: Registered new driver macb macb: detected PHY at address 1 (ID 0022:1619) eth0: Atmel MACB at 0xfffc4000 irq 21 (3e:36:65:ba:6f:be) No NAND device found!!! atmel_spi atmel_spi.0: Atmel SPI Controller at 0xfffc8000 (irq 12) atmel_spi atmel_spi.1: Atmel SPI Controller at 0xfffcc000 (irq 13) usbmon: debugfs is not available at91_ohci at91_ohci: AT91 OHCI at91_ohci at91_ohci: new USB bus registered, assigned bus number 1 at91_ohci at91_ohci: irq 20, io mem 0x00500000 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 interface driver usb-storage USB Mass Storage support registered. udc: at91_udc version 3 May 2006 mice: PS/2 mouse device common for all mice i2c /dev entries driver at91_i2c at91_i2c: AT91 i2c bus driver. AT91 MMC: 4 wire bus mode not supported by this driver - using 1 wire usbcore: registered new interface driver usbhid drivers/hid/usbhid/hid-core.c: v2.6:USB HID core driver Advanced Linux Sound Architecture Driver Version 1.0.14 (Thu May 31 09:03:25 2007 UTC). ALSA device list: No soundcards found. TCP cubic registered NET: Registered protocol family 1 NET: Registered protocol family 17 Root-NFS: No NFS server available, giving up. VFS: Unable to mount root fs via NFS, trying floppy. List of all partitions: No filesystem could mount root, tried: jffs2 Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(2,0)
-
п1,2 просто не нужны - достаточно одной моей команды.
Эти пункты есть в документации README на u-boot.
/mkimage -A arm -O linux -C none -T kernel -a 20008000 -e 20008000 -n linux-2.6 -d arch/arm/boot/zImage zlinuxНазовите файл на выходе (который у меня zlinux) как вам нужно - это готовый образ ядра для загрузки его через uboot.
А что значит этот путь? :)
arch/arm/boot/zImage
-
Последовательность упаковки ядра:
П.1 arm-none-linux-gnueabi-objcopy -O binary -R .note -R .comment -S vmlinux linux.bin
П.2 gzip -9 linux.bin
П.3 mkimage -A arm -O linux -T kernel -C gzip -a 0x20008000 -e 0x20008000 -n "Linux Kernel Image" -d linux.bin.gz uImage.bin
Эта последовательность отрабатывает правильно. Пробовал так упаковывать vmlinux который шел на диске уже скомпиленный.
Исходный vmlinux - 3.7Мб.
П.1 linux.bin - 2.8Мб.
П.2 linux.bin.gz - 1.4Мб.
П.3 uImage.bin - 1.4Мб.
У меня исходный vmlinux (2.6.36) 4.1Мб, после 1-й комагды linux.bin равен 3Гб.
To sasamy Проблема с бинарником возникает на П1 следовательно ключи для mkimage нипричем.
Есть еще какие нибуть варианты? :)
-
Для надежности MACHINE_ID в u-boot для платы AT91SAM9260EK в файле
u-boot-2010.09\board\atmel\at91sam9260ek\at91sam9260ek.c
прописал
/* arch number of AT91SAM9260EK-Board */ gd->bd->bi_arch_number = MACH_TYPE_AT91SAM9260EK;
в
u-boot-2010.09\include\configs\at91sam9260ek.h
тоже жестко на всякий случай прописал
#define CONFIG_AT91SAM9260 1
Скомпилировал заново, бинарник старого и нового билда отличаются только хедером с временем компиляции. Значит MACHINE_ID у меня точно равен MACH_TYPE_AT91SAM9260EK (1099).
В конфигах ядра прописано. Логи включены. За основу брал конфиг at91sam9260ek_defconfig.txt с сайта at91.com
CONFIG_ARCH_AT91=y CONFIG_MACH_AT91SAM9260EK=y CONFIG_MACH_AT91SAM9260EK=y
MACHINE_ID тоже равен 1099. (файл linux-2.6.36/arch/arm/tools/mach-types)
Пробовал с моим u-boot грузить ядро 2.6.24 с дика который в комплекте шет, грузится нормально.
Значит получается я неправильно бинарник собираю.
Подметил что я собирал ядро компилером с префиксом "arm-none-eabi-" который делает бинарник исполняющийся на процессоре без ОС,
а разработчик starterkit собирал с префиксом "arm-none-linux-gnueabi-".
Скомпилил еще раз ядро с "arm-none-linux-gnueabi", файл vmlinux 4.1Мб.
Теперь начал проявляться странный ефект, при выполнении команды:
arm-none-linux-gnueabi-objcopy -O binary -R .note -R .comment -S vmlinux linux.bin
файл linux.bin получается размером 3Гб :(
Никто не сталкивался с такой проблемой ?
-
mdmitry bootstrap здесь нипричем, я свой первичный загрузчик написал и хорошо протестировал.
sasamy спасибо за наводку, посмотрю. MACHINE ID это некое число или текстовая строка?
А на счет конфига я хотел сказать что базировался на готовом. Например в нем есть поддежка фреймбуфера и звука, я это все отключил.
Мне сейчас главное чтобы ядро хоть как-то задышало..
Пробовал запускать собраное ядро с сайта www.at91.com скомпиленное под фирмовую борду с кварцем 18.432, так оно показывает признаки жизни: после строки "Starting kernel ..." некоторое время еще что-то ероглифами в лог пишет.
-
Решил пока здесь спросить т.к. здесь людей опытных побольше...
-
Добрый день всем.
Осваиваю Linux на сабжевой плате.
Имеется:
u-boot-2010.09.
arm-2010q1-188-arm-none-eabi
linux-2.6.36
Конфиг ядра взят с сайта http://dmilvdv.narod.ru/AT91SAM9260/index.html
u-boot
Конфиг командной строки и аргументов ядра по умолчанию.
Исправлена частота 200МГц
#define AT91C_MAIN_CLOCK 200000000
Понизил частоту SPI (согласовать с Bootstrap):
#define AT91C_SPI_CLK 2000000
Установить адрес микросхемы физического интерфейса Ethernet в cpu/arm926ejs/at91sam9/ether.c:
macb_eth_initialize(0, (void *)AT91SAM9260_BASE_EMAC, 0x01);
Ядро
Никакие патчи не применял за исключением исправлений описанный на сайте (ссылка выше).
Собирал с ключем "arm-none-eabi-"
После сборки заливаю образ ядра по TFTP, вижу лог:
U-Boot> tftp macb0: link up, 10Mbps half-duplex (lpa: 0x0020) Using macb0 device TFTP from server 192.168.0.34; our IP address is 192.168.0.107 Filename 'uImage.bin'. Load address: 0x22000000 Loading: ################################################################# ############################################### done Bytes transferred = 1635311 (18f3ef hex) U-Boot> bootm ## Booting kernel from Legacy Image at 22000000 ... Image Name: Linux Kernel Image 2.6.36 Image Type: ARM Linux Kernel Image (gzip compressed) Data Size: 1635247 Bytes = 1.6 MiB Load Address: 20008000 Entry Point: 20008000 Verifying Checksum ... OK Uncompressing Kernel Image ... OK Starting kernel ...
Дальше ничего не происходит или происходит но этого не видно.
Подскажите в чем может быть проблема? В какую сторону копать?
Читал на форуме что "Starting kernel ..." пишет уже распаковщик ядра, значит управление ему передалось...
Может надо было собирать компилером с префиксом "arm-none-linux-eabi-" ?
Аналогичная проблема уже подымалась, но ответа по данному вопросу нет:
http://electronix.ru/forum/index.php?showt...ng+kernel\
Спасибо.
-
Попробовал запустить модуль GE864-QUAD - таже самая ситуация: стартует, выходит в сеть, проглатывает команду установки точки доступа, но на команду дозвона ничего не отвечает.
(Предыдущий модуль GE864-DUAL V2).
Фирменная техподдежка уже сутки молчит :(
Может у кого нибуть была похожая проблема?
-
Всем добрый день.
Есть разработанное ус-во на базе Siemens MC-55i. Для выхода в интернет используется внешний PPP и TCP/IP стек. Пару дней назад решил затестить работу GE864 модема.
Различия в моем коде было только в одной команде - это проверка наличия сим-карты: AT#QSS - Telite и AT^SCKS - Siemens.
Плюс добавил команду "AT#DIALMODE=2" чтобы команда дозвона отрабатывала соединение для передачи данных, а не только голосовой дозвон.
Грабли возникли в команде дозвона "ATD*99***1#", модем просто на нее не отвечает. (Сименс отвечает CONNECT в течении 15 секунд, дальше идут РРР пакеты).
Собственно вопрос: как добиться дозвона в этом модеме? Может я не заметил дополнительные команды настроек в даташите?
-
У меня тоже самое было при установке WinCE6.0.
Именно так себя инсталятор ведет, если вы не установили Вижуал Студию 2005 (именно она нужна, а не 2008).
-
Всехм спасибо.
У меня SK-MAT91, кварц на 12МГц, прекрасно работает по USB - я что-то делаю не так?У меня не работает, всплывает сообщение "ус-во не опознано".
Всё верно, чтобы SAM-BA заработала с USB, нужен кварц 18,432 МГц. А с 12 МГц - SAM-BA через COM-порт (если он, конечно есть )ИМХО, проще кварц перепаять.
В общем подлкючился через JTAG, пока все работает. С USB потом разбираться буду, почему он не работает.
-
Добрый день!
Есть плата с сабжевым процессором и кварцем на 12 МГц. Хочу залить скомпиленный Bootstrap. При подключении к USB девайс не регистрируется. На сколько я понимаю это изза того что кварц не 18.432 МГц.
Вопросы:
1. как заставить работать плату с SAM-BA?
2. Если с кварцем 12 Мгц частота работы USB устанавливается неправильно и SAM-BA не заработает, то как тогда во внешнюю влешь грузить прошивки?
Спасибо.
-
В проект под uCOS надо прикрутить обработчик SWI прерываний.
В функции "void OS_CPU_ExceptHndlr (CPU_DATA except_id)" надо сделать свое ответвление на обработчик.
Собственно как реализовать этот обработчик, чтобы "#pragma swi_number=хх" отрабатывались штатным обработчиком?
-
Благодарствую
-
Добрый день всем.
Поднял стек на LPC2468+ucos. Все вроди работает. Теперь на втором этапе хочу запустить стек РРР.
Создал файл sio.c и прописал функции: sio_read_abort, sio_read, sio_write.
При компиляции выдает ошибку, надо создать функцию sys_jiffies().
Собственно теперь вопрос:
В каком файле данную функцию создать и что она должна делать? (С исходников понял лишь то, что она как-то к времени должна быть привязана)
Спасибо
-
Я тоже натолкнулся на фичу с ногой PCTLZ. Потом отказался от этой функции и подтянул шину резистором.
-
Да, точно не заметил в даташите:
Memory Mapping Control simply selects one out of three available sources of data (sets of64 bytes each) necessary for handling ARM exceptions (interrupts).
Спасибо за подсказку, буду пробовать
-
Добрый день.
Имеется плата с МК LPC23 серии. Во флеше живет 2 проекта: вторичный загрузчик и основное приложение (ОП), которое начинается с адреса 0х4000. Бутер использует основные адреса прерываний, а приложение - отремапленные.
В ОП используется RTOS, обработчики прерывания представляют собой "relative branch" - "ldr pc,[pc,#24]".
Собственно вопрос: как заставить работать обработчик прерывания? (с приложениями, в которых ISR адрес берется с VIC напрямую "ldr pc,[pc, #-0x0120]", проблем нет)
Вот похожая тема, но там не решена моя задача:
http://electronix.ru/forum/index.php?showt...branch&st=0
Спасибо.
-
Мы купили 3 таких девайса. Никаких проблем не замечено. Только вот в нем SWD интерфейс не выведен, который обещали. Может быть разъем не впаян, в общем не проверял еще.
-
Спасибо всем, теперь понялно
Стормозил млин, все элементарно просто.. незнаю почему я зациклился на этом. :)
-
Может я что-то не доганяю, но size-3 это пакет без FCS, а size+1 это полный пакет(согласно вашим словам).
Напрашивается вопрос: почему же NXP говорит что длина пакета равна size-1? :)
Глубо зацикливаться, но все же интерестно..
-
Все равно не сходится длина.
преамбула ethernet и SFD откидывается и в буфере данных их нет. В StatusInfo хранится длина фрейма Size, хотя реальное значение равно (Size-3) а согласно даташиту (Size-1). Получается несоответствие в 2 байта и 4-х байтный FCS имхо здесь нипричем
-
Что, никто над этим вопросом не заморачивался?
-
Всем спасибо, оживил драйвер.
По ходу дела возник следующий вопрос: В структуре статуса принятых фреймов( RxStatus[RXCONSUMEINDEX].StatusInfo ) есть поле длины. Реальная длина пакета равна (Size-1), но во всех драйверах ЕМАС длина считается как (Size-3). Почему так?
Linux на SK-AT91SAM9XE512-S3E
в Linux
Опубликовано · Пожаловаться
Всем доброго времени суток.
Продолжаю осваивать Linux на плате SK-AT91SAM9XE512-S3E. Ядро научился запускать, дело дошло до RootFS.
Исходные данные:
Первичный загрузчик, u-boot окружение и ядро находятся в dataflash, RootFS располагается в NAND. Карта памяти здесь:
http://www.at91.com/linux4sam/bin/view/Linux4SAM/GettingStarted
расположение блоков в u-boot по умолчанию:
u-boot-2010.09\board\atmel\at91sam9260ek\partition.c
Аргументы передаваемые ядру тоже не менялись:
u-boot-2010.09\include\configs\at91sam9260ek.h
В ядре
linux-2.6.36\arch\arm\mach-at91\board-sam9260ek.c
прописано:
т.е. ,как я понял, rootfs располагается в NAND по смещению 4М и занимает все оставшееся место.
Но в логе загрузки ядра видно что раздел rootfs создается на весь размер флешки.
Вопросы в следующем:
1. Почему ядро пытается создать раздел в начале NAND а не с адреса 0х400000?
2. Где можно почитать про передачу аргументов в ядро, именно: root и mtdparts?
В файле linux-2.6.36\Documentation\kernel-parameters.txt они есть, но синтаксиса нету, есть только ссылка на исходник:
"See drivers/mtd/cmdlinepart.c".
3. Правильно я понимаю, что u-boot знает где лежит RootFS только для того, чтобы по TFTP его автоматом в нужное место флешки записывать (т.е. на нахождение rootfs ядром это не влияет) ?
4. Откуда берется параметр в аргументе "atmel_nand" ? В исходниках ядра так и не смог распутать клубок...