Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Embedded Linux и загрузчик u-boot (работа с сетью)  (Прочитано 29253 раз)
0 Пользователей и 1 Гость смотрят эту тему.
den
Интересующийся

ru
Offline Offline

« : 19-01-2010 13:29 » 

Здравствуйте уважаемые!
Хочу спросить, может кто собирал и ставил U-boot для каких-либо архитертур?
Если есть такие, то теперь более конкретно.
Есть одноплатный компьютер Colibri PXA320 (806 MHz), архитертура ARM. Кому интресно то вот:
http://www.toradex.com/En/Products/Colibri_XScale_Computer_Modules_Overview_PXA255_PXA270_PXA270M_PXA300_PXA310_PXA320_ARM.
Для загрузки ОС Линукс очень рекомендуют в роли загрузчика использовать U-boot.
Что я и сделал, но сетевая подсистема убута никак не хочет работать. А она нужна хотя бы для загрузки по TFTP.
Для работы с сетью на плате есть ethernet контроллер ax88796BLF компании ASIX.
Общался с разработчиками (компания Toradex), писал в майллисты разработчиков убута, все говорят, что поддержка этих плат (PXA320) в загрузчике реализована! Но у меня никак это не работает.

В конфигурационном файле загрузчика есть такое определение
#define AX88796B_BASE   0x08000000.
Думаю что дело именно в этом адресе, т.к. обращение к регистрам сетевого контроллера основывается именно на этом базовом адресе + смещение.
Вот очень бы хотелось знать откуда берется этот адрес? Это в даташите написано?

Спасибо!
Записан
den
Интересующийся

ru
Offline Offline

« Ответ #1 : 20-01-2010 09:27 » 

в общем....
Вот что я нашел по этой теме

The AX88796B provides industrial standard NE2000 registers level compatible instruction set.
The NE2000 is a memory-mapped device. The base address is the address where the AX88796B
sits in your board's memory map. You need to supply the I/O base address of the AX88796B so the
driver module knows where to look.

Думаю, что тема закрыта... Благодарить к сожалению некого...
Записан
den
Интересующийся

ru
Offline Offline

« Ответ #2 : 04-07-2010 16:41 » 

Гм... Давненько сюда не заходил, но все-таки решил дополнить эту тему. Вдруг кому-нибудь и будет интересно прочитать.
Проблема решается так:
1) В конф. файле загрузчика (U-Boot'a) определяем
#define AX88796B_BASE   0x08000000

2) Затем надо инициализировать так называемый system clock
этим кодом
        ldr r0, =CKENA
        ldr r1, [r0]
        orr r1, r1, #(CKENA_4_NAND | CKENA_9_SMC)
        str r1, [r0]
        ldr r1, [r0]
(Большое спасибо Дениэлу Маку за это...)
И ... все... компиляция и "заливка" на флэш память...
Конечно, я многое опустил, IPL например, но кто захочет - тот найдет

Всем удачи!
Записан
den
Интересующийся

ru
Offline Offline

« Ответ #3 : 04-07-2010 16:42 » 

*Извиняюсь, не #define AX88796B_BASE   0x08000000, a #define AX88796B_BASE   0x10000000
Записан
den
Интересующийся

ru
Offline Offline

« Ответ #4 : 04-07-2010 16:44 » 

И даже не #define AX88796B_BASE   0x10000000, a #define CONFIG_DRIVER_NE2000_BASE 0x10000000
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines