Ник:
Пароль:

Контакты

E-mail: info@starterkit.ru
тел.: +7 922 680-21-73
тел.: +7 922 680-21-74
Телеграм: t.me/starterkit_ru
Партнеры:
otladka.com.ua - г.Киев

Способы оплаты

User Info


Добро пожаловать,
Guest

Регистрация или входРегистрация или вход
Потеряли пароль?Потеряли пароль?

Ник:
Пароль:

ПользователейПользователей:1
Поисковых ботовПоисковых ботов:3
ГостейГостей:1

ОбновитьПодробнееВсегоВсего:5
Форум » starterkit.ru » Embedded Linux
sasamy (Guest)
Добавлено 19.02.2009 19:55 Редактировалось 19.02.2009 19:55 Сообщение: 81
sasamy (Guest)

Цитата
получается ks8721 туда прицепить

чтобы работал tftp клиент достаточно в файле u-boot-1.3.4/drivers/net/macb.c найти
phy_id = macb_mdio_read(macb, MII_PHYSID1);
if (phy_id == 0xffff) {
printf("%s: No PHY present", netdev->name);
return 0;
}
и убрать проверку на наличие phy - можно вообще убрать этот кусок, можно заменить на if (phy_id != 0xffff)

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Отредактированно sasamy 19.02.2009 г. в 19:56:05
Спуститься к концу Подняться к началу
repairman (Guest)
Добавлено 19.02.2009 23:41 Редактировалось 19.02.2009 23:41 Сообщение: 82
repairman (Guest)

Хм... версия с phy_id не подтвердилась...

Этот фрагмент кода безгрешен, проверка на присутствие "чего-нибудь", отсутствие чипа = 0xffff... -> No PHY present, все верно...

Проблемы была в другом... к SAM'у можно подключить до 32 ethernet phy, каждый phy имеет свой адрес, который задается pull up/down 'ами на ногах PHAD0-4 при сбросе чипов, после разборок оказалось, что PHY на плате имеет адрес 0x01 (???), а ищется он безусловно на 0x00, потому и не находится...
Что интересно, что в старом драйвере ks8721 от SK - PHY тупо искался в цикле по все адресам от 0 до 31, и никаких pull up/down, которыми и должен устанавливаться адрес PHY в момент сброса на плате НЕТ (???)
PHAD0, PHAD3, PHAD4 - заведены на SAM, PHAD1,PHAD2 - висят в воздухе, я например, не могу сказать КАКОЙ адрес будет у PHY, хотя он с хорошей вероятностью становится 0x01...

2Starterkit:
IMHO, адрес нужно задать явно pull'ами... то, что сейчас работает - случайность...

Чтобы в UBoot 2009.01 (1.3.4) работала сеть - в файле board/atmel/at91sam9260ek/at91sam9260ek.c изменить адрес PHY c 0x00 на 0x01:

rc = macb_eth_initialize(0, (void *)AT91SAM9260_BASE_EMAC, 0x01);

Код

RomBOOT
>Start AT91Bootstrap...


U-Boot 2009.01 (�Ф�е�в 19 2009 - 22:40:24)

DRAM: 32 MB
NAND: No NAND device found!!!
0 MiB
DataFlash:AT45DB321
Nb pages: 8192
Page Size: 528
Size= 4325376 bytes
Logical address: 0xC0000000
Area 0: C0000000 to C00041FF (RO) Bootstrap
Area 1: C0004200 to C00083FF Environment
Area 2: C0008400 to C0041FFF (RO) U-Boot
Area 3: C0042000 to C0251FFF Kernel
Area 4: C0252000 to C041FFFF FS
In: serial
Out: serial
Err: serial
Net: macb0
macb0: Starting autonegotiation...
macb0: Autonegotiation complete
macb0: link up, 100Mbps full-duplex (lpa: 0x45e1)
Hit any key to stop autoboot: 0
U-Boot>


_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Отредактированно repairman 20.02.2009 г. в 00:20:25
Спуститься к концу Подняться к началу
AntonKr (Guest)
Добавлено 20.02.2009 11:41 Редактировалось 20.02.2009 11:41 Сообщение: 83
AntonKr (Guest)

Век живи - век учись! Действительно, никакие операции по сжатию ядра после компиляции делать не нужно. Большое спасибо repairman-у за подсказку. К UBoot-у пока не прикасался. Но опять я наступаю на грабли. Ядро работает замечательно, но после сборки buildroot-ом корневой файловой системы, упорно не хочет запускаться консоль, постоянно требует ввести имя пользователя. Судя по всему, и из inittab-а процессы не стартуют (которые я ставлю в автозагрузку).
Что пытался сделать:
1. Поменял в booildroot настройку на OABI.
2. Пробовал BusyBox собирать отдельно.
Ничего не помогло. Тулчейн собрал свой, с использованием конфига s-tools и конфига uClibc от sasamy. При сборке в booildroot-е, по какойто причине, в /lib не кладутся указанные дополнительные библиотеки uClibc, пришлось в ручную копировать. Все прочитал. Понимаю, что такое у многих было и единственное что помогало - смена на OABI, но у меня и это не помогает. Неужели все собирать по новой? А так порадовал размер итоговый . Заодно хотел узнать где в booildroot-е указывается максимальный размер файловой системы, а то он подгоняет автоматически и бывает, что не хватает места чтобы положить дополнительные модули и программы.

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Отредактированно AntonKr 20.02.2009 г. в 11:41:26
Спуститься к концу Подняться к началу
repairman (Guest)
Добавлено 20.02.2009 12:28 Редактировалось 20.02.2009 12:28 Сообщение: 84
repairman (Guest)

Цитата

К UBoot-у пока не прикасался. Но опять я наступаю на грабли. Ядро работает замечательно, но после сборки buildroot-ом корневой файловой системы, упорно не хочет запускаться консоль, постоянно требует ввести имя пользователя. Судя по всему, и из inittab-а процессы не стартуют (которые я ставлю в автозагрузку).


Проходили... busybox по segmentation fault уничтожается системой... Проблема в тулчейне... Возьми/собери все заново БЕЗ eabi... с OABI итоговый размер порадует еще больше...

p.s. что интересно рутфс eabi у меня на QEMU работает, на плате - НЕТ... (???) Не могу понять в чем разница...

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Отредактированно repairman 20.02.2009 г. в 14:02:06
Спуститься к концу Подняться к началу
AntonKr (Guest)
Добавлено 20.02.2009 13:59 Редактировалось 20.02.2009 13:59 Сообщение: 85
AntonKr (Guest)

Видимо надо искать в другом месте, т.к. у меня
uclibc.config:
Код
#
# Target Architecture Features and Options
#
TARGET_ARCH="arm"
FORCE_OPTIONS_FOR_ARCH=y
CONFIG_ARM_OABI=y
# CONFIG_ARM_EABI is not set
USE_BX=y
# CONFIG_GENERIC_ARM is not set
# CONFIG_ARM610 is not set
# CONFIG_ARM710 is not set
# CONFIG_ARM7TDMI is not set
# CONFIG_ARM720T is not set
# CONFIG_ARM920T is not set
# CONFIG_ARM922T is not set
CONFIG_ARM926T=y

.config тулчейна:
Код

#
# General target options
#
# CT_ARCH_alpha is not set
CT_ARCH_arm=y
# CT_ARCH_ia64 is not set
# CT_ARCH_mips is not set
# CT_ARCH_powerpc is not set
# CT_ARCH_sh is not set
# CT_ARCH_x86_64 is not set
# CT_ARCH_x86 is not set
# CT_ARCH_ALPHA_EV4 is not set
# CT_ARCH_ALPHA_EV45 is not set
# CT_ARCH_ALPHA_EV5 is not set
# CT_ARCH_ALPHA_EV56 is not set
# CT_ARCH_ALPHA_EV6 is not set
# CT_ARCH_ALPHA_EV67 is not set
# CT_ARCH_ARM_EABI is not set
CT_ARCH_ARM_ABI_OK=y


Где еще есть опции по EABI/OABI ?
Спуститься к концу Подняться к началу
repairman (Guest)
Добавлено 20.02.2009 14:01 Редактировалось 20.02.2009 14:01 Сообщение: 86
repairman (Guest)

Указание EABI в ядре, в uclibc и в buildroot - у меня НИКАК не влияет на результат, главное - префикс тулчейна.... ЧЕМ собрал, ТО и получаешь...

Размер ramdisk задается в BR2_TARGET_UBOOT_FILESYSTEM_SIZE, в меню это в параметрах UBoot....

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Отредактированно repairman 20.02.2009 г. в 14:05:13
Спуститься к концу Подняться к началу
AntonKr (Guest)
Добавлено 20.02.2009 14:25 Редактировалось 20.02.2009 14:25 Сообщение: 87
AntonKr (Guest)

Правильно ли я понимаю, что мне можно скачать Ваш тулчейн или CodeSourcery и использовать его при сборке своего?
Спуститься к концу Подняться к началу
repairman (Guest)
Добавлено 20.02.2009 14:29 Редактировалось 20.02.2009 14:29 Сообщение: 88
repairman (Guest)

Для сборки кросс-тулчейна используется штатный нативный компилятор хоста (i686), я все собираю стандартным:
gcc версия 4.1.2 20070925 (ASPLinux 4.1.2-27) из репозитория ASPLinux... host=target=i686, подобный есть в любом дистрибутиве линукс.


Кросс-тулчейном можно собирать на i686 машине бинарники для armv5... ядро, rootfs и т.п. - этот у меня armv5l-linux-uclibc... (4.2.4), ссылку на готовые бинарники я выкладывал во втором посте... host=i686, target=armv5l-linux-uclibc

Потому и кросс, что host <> target...

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Отредактированно repairman 20.02.2009 г. в 15:03:52
Спуститься к концу Подняться к началу
rw9uao (Guest)
Добавлено 20.02.2009 16:59 Редактировалось 20.02.2009 16:59 Сообщение: 89
rw9uao (Guest)

насчет сетевого фи. я сразу в куниховом драйвере делал поиск по всем 32 адресам. во избежании. в первой версии платы на 9200-ом давиком (9261 что-ли) убегал иногда с 0х00 на куда попало =(
Спуститься к концу Подняться к началу
repairman (Guest)
Добавлено 20.02.2009 21:40 Редактировалось 20.02.2009 21:40 Сообщение: 90
repairman (Guest)

Цитата

насчет сетевого фи. я сразу в куниховом драйвере делал поиск по всем 32 адресам. во избежании. в первой версии платы на 9200-ом давиком (9261 что-ли) убегал иногда с 0х00 на куда попало =(


Ну понятное дело, т.к. его никто "не держал"... pull'ов нет, наводки на CMOS входы плодят хаос... Ладно, хоть и нехорошо, но обходится... хотя... откуда же младший бит в 1 взялся ??? Линукс всегда находит phy на 0x01...

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Отредактированно repairman 20.02.2009 г. в 21:46:00
Спуститься к концу Подняться к началу
Форум » starterkit.ru » Embedded Linux