Оживляю кит AIIGX125.
Как самоцель - хочу в одном проекте получить всю (ну или почти всю) периферию, установленную на плате. Референсные проекты делают это только частично и через некоторую жопу, так что все делаю самостоятельно с нуля.
Сейчас работает: гигабайтная SODIMM-планка памяти DDR2, чип памяти DDR3. В данный момент оживляю Marvell и имею следующую проблему:
Ось (ucos) грузится, проходит инициализация сети (без dhcp), но плата не пингуется. Вижу что светодиоды RX мигают (в соотсетвтсии с пингом), но TX лед молчит...
Вот не могу никак понять где засел корень зла - в констрейнах, в некорректно собранном SOPC'е или еще где... Кто сталкивался с подобным - в какую сторону думать?
Пробовал брать констрейны на Tse_mac от сторонних проектов с сетью под эту плату - нет результата. ПРобовал различные сишные фиксы, связанные с инициализацией tse_mac с альтерафорумс - тоже никакого результата.....
привожу лог загрузки:
Код
[crt0.S] Inst & Data Cache Initialized.
[crt0.S] Setting up stack and global pointers.
[crt0.S] Clearing BSS
[crt0.S] Calling alt_main.
[alt_main.c] Entering alt_main, calling alt_irq_init.
[alt_main.c] Done alt_irq_init, calling alt_os_init.
[alt_main.c] Done OS Init, calling alt_sem_create.
[alt_main.c] Calling alt_sys_init.
[alt_main.c] Done alt_sys_init.
[alt_main.c] Redirecting IO.
[alt_main.c] Calling C++ constructors.
[alt_main.c] Calling atexit.
[alt_main.c] Calling main.
InterNiche Portable TCP/IP, v3.1
Copyright 1996-2008 by InterNiche Technologies. All rights reserved.
prep_tse_mac 0
Can't read the MAC address from your board. We will assign you
a MAC address.
Please enter your 9-digit serial number. This is printed on a
label under your Nios dev. board. The first 3 digits of the
label are ASJ and the serial number follows this.
-->Created "Inet main" task (Prio: 2)
Created "clock tick" task (Prio: 3)
456789123
456789123
Your Ethernet MAC address is 00:07:ed:ff:0c:83
Static IP Address is 192.168.1.2
prepped 1 interface, initializing...
[tse_mac_init]
INFO : TSE MAC 0 found at address 0x10002000
INFO : PHY Marvell 88E1111 found at PHY address 0x00 of MAC Group[0]
INFO : PHY[0.0] - Automatically mapped to tse_mac_device[0]
INFO : PHY[0.0] - Restart Auto-Negotiation, checking PHY link...
INFO : PHY[0.0] - Auto-Negotiation PASSED
MARVELL : Mode changed to RGMII/Modified MII to Copper mode
MARVELL : Enable RGMII Timing Control
MARVELL : PHY reset
INFO : PHY[0.0] - Checking link...
INFO : PHY[0.0] - Link not yet established, restart auto-negotiation...
INFO : PHY[0.0] - Restart Auto-Negotiation, checking PHY link...
INFO : PHY[0.0] - Auto-Negotiation PASSED
INFO : PHY[0.0] - Link established
INFO : PHY[0.0] - Speed = 1000, Duplex = Full
OK, x=2, CMD_CONFIG=0x00000000
MAC post-initialization: CMD_CONFIG=0x0400020b
[tse_sgdma_read_init] RX descriptor chain desc (1 depth) created
mctest init called
IP address of et1 : 192.168.1.2
Simple Socket Server starting up
[sss_task] Simple Socket Server listening on port 30
Created "simple socket server" task (Prio: 4)
[crt0.S] Setting up stack and global pointers.
[crt0.S] Clearing BSS
[crt0.S] Calling alt_main.
[alt_main.c] Entering alt_main, calling alt_irq_init.
[alt_main.c] Done alt_irq_init, calling alt_os_init.
[alt_main.c] Done OS Init, calling alt_sem_create.
[alt_main.c] Calling alt_sys_init.
[alt_main.c] Done alt_sys_init.
[alt_main.c] Redirecting IO.
[alt_main.c] Calling C++ constructors.
[alt_main.c] Calling atexit.
[alt_main.c] Calling main.
InterNiche Portable TCP/IP, v3.1
Copyright 1996-2008 by InterNiche Technologies. All rights reserved.
prep_tse_mac 0
Can't read the MAC address from your board. We will assign you
a MAC address.
Please enter your 9-digit serial number. This is printed on a
label under your Nios dev. board. The first 3 digits of the
label are ASJ and the serial number follows this.
-->Created "Inet main" task (Prio: 2)
Created "clock tick" task (Prio: 3)
456789123
456789123
Your Ethernet MAC address is 00:07:ed:ff:0c:83
Static IP Address is 192.168.1.2
prepped 1 interface, initializing...
[tse_mac_init]
INFO : TSE MAC 0 found at address 0x10002000
INFO : PHY Marvell 88E1111 found at PHY address 0x00 of MAC Group[0]
INFO : PHY[0.0] - Automatically mapped to tse_mac_device[0]
INFO : PHY[0.0] - Restart Auto-Negotiation, checking PHY link...
INFO : PHY[0.0] - Auto-Negotiation PASSED
MARVELL : Mode changed to RGMII/Modified MII to Copper mode
MARVELL : Enable RGMII Timing Control
MARVELL : PHY reset
INFO : PHY[0.0] - Checking link...
INFO : PHY[0.0] - Link not yet established, restart auto-negotiation...
INFO : PHY[0.0] - Restart Auto-Negotiation, checking PHY link...
INFO : PHY[0.0] - Auto-Negotiation PASSED
INFO : PHY[0.0] - Link established
INFO : PHY[0.0] - Speed = 1000, Duplex = Full
OK, x=2, CMD_CONFIG=0x00000000
MAC post-initialization: CMD_CONFIG=0x0400020b
[tse_sgdma_read_init] RX descriptor chain desc (1 depth) created
mctest init called
IP address of et1 : 192.168.1.2
Simple Socket Server starting up
[sss_task] Simple Socket Server listening on port 30
Created "simple socket server" task (Prio: 4)
Судя по логу - все прошло штатно и корректно. ОДнако, TX led вообще мертвый.
Очень не хочется брать за основу какой-то референсный дизайн - хочу полностью свое собрать.
Спасибо.
П.С.: эта же кросс-тема с некоторой предысторией на альерафорумс: ссылка
П.П.С.: если интересно, могу выложить сюда проект.