Данные на шине RMII - есть (CRS_DV, RXD0/1 - ведут себя вроде правильно). Настройка от порта LwIP - тоже вроде верная (уверен не на 100%, т.к. по битам регистров ETH - не гуру). Но какой бы пакет не передавал (ping или TCP) - статистика не увеличивается.
При этом - отправка пакета - вроде идёт правильно (статистика увеличивается, но в сниффере - пока не смотрел).
Насколько я понял по описанию - в случае отбраковки по какому-либо параметру на уровне MAC: все равно я должен иметь увеличивающуюся статистику.
Поставил loopback на MAC, дают передачу пакета - все равно статистика приема - не увеличивается.
Далее - значения всех регистров MAC и ETH_DMA:
CODE
www[0] = ETH->MACFFR; // 0000 0000
www[1] = ETH->MACFCR; // 0000 0000
www[2] = ETH->MACRWUFFR; // 0000 0000
www[3] = ETH->MACSR; // 0000 0000
www[4] = ETH->MACIMR; // 0000 0000
www[5] = ETH->MACA0HR; // 8000 0100 // 01.00.00.00.00.00.00 - MAC-адрес изделия.
// Сделаем 00.D0.59.12.32.5B.
www[6] = ETH->MACA0LR; // 0000 0000
www[7] = ETH->MACA1HR; // 0000 FFFF
www[8] = ETH->MACA1LR; // FFFF FFFF
www[9] = ETH->MACA2HR; // 0000 FFFF
www[10] = ETH->MACA2LR; // FFFF FFFF
www[11] = ETH->MACA3HR; // 0000 FFFF
www[12] = ETH->MACA3LR; // FFFF FFFF
www[13] = 0xA3FFFFA0;
www[14] = ETH->MMCCR; // 0000 0000
www[15] = ETH->MMCRIR; // 0000 0000 // Прерываний по статистике приема - не было.
www[16] = ETH->MMCTIR; // 0000 0000 // Прерываний по статистике передачи - не было.
www[17] = ETH->MMCRIMR; // 0000 0000 // Прерывания разрешены ?
www[18] = ETH->MMCTIMR; // 0000 0000 // Прерывания разрешены ?
www[19] = ETH->MMCTGFSCCR; // 0000 0000 // Количество переданных фреймов в HalfDuplex после одной коллизии.
www[20] = ETH->MMCTGFMSCCR; // 0000 0000 // Количество переданных фреймов в HalfDuplex после нескольких коллизий.
www[21] = ETH->MMCTGFCR; // 0000 0001 // !!!___ Количество удачно переданных фреймов.
www[22] = ETH->MMCRFCECR; // 0000 0000 // !!!___ Количество принятых фреймов с ошибкой CRC.
www[23] = ETH->MMCRFAECR; // 0000 0000 // !!!___ Количество притяных фреймов с ошибкой выравнивания.
www[24] = ETH->MMCRGUFCR; // 0000 0000 // !!!___ Кол-во хороших принятых фреймов с unicast.
www[25] = 0xA3FFFFA0;
www[26] = ETH->DMABMR; // 0002 0100
www[27] = ETH->DMATPDR; // 0000 0000
www[28] = ETH->DMARPDR; // 0000 0000
www[29] = ETH->DMARDLAR; // 2000 A930
www[30] = ETH->DMATDLAR; // 2000 A970
www[31] = ETH->DMASR; // 0066 0404
www[32] = ETH->DMAOMR; // 0000 2002
www[33] = ETH->DMAIER; // 0001 0040
www[34] = ETH->DMAMFBOCR; // 0000 0000
www[35] = ETH->DMACHTDR; // 2000 A980
www[36] = ETH->DMACHRDR; // 2000 A930
www[37] = ETH->DMACHTBAR; // 2000 C740
www[38] = ETH->DMACHRBAR; // 2000 A990
www[1] = ETH->MACFCR; // 0000 0000
www[2] = ETH->MACRWUFFR; // 0000 0000
www[3] = ETH->MACSR; // 0000 0000
www[4] = ETH->MACIMR; // 0000 0000
www[5] = ETH->MACA0HR; // 8000 0100 // 01.00.00.00.00.00.00 - MAC-адрес изделия.
// Сделаем 00.D0.59.12.32.5B.
www[6] = ETH->MACA0LR; // 0000 0000
www[7] = ETH->MACA1HR; // 0000 FFFF
www[8] = ETH->MACA1LR; // FFFF FFFF
www[9] = ETH->MACA2HR; // 0000 FFFF
www[10] = ETH->MACA2LR; // FFFF FFFF
www[11] = ETH->MACA3HR; // 0000 FFFF
www[12] = ETH->MACA3LR; // FFFF FFFF
www[13] = 0xA3FFFFA0;
www[14] = ETH->MMCCR; // 0000 0000
www[15] = ETH->MMCRIR; // 0000 0000 // Прерываний по статистике приема - не было.
www[16] = ETH->MMCTIR; // 0000 0000 // Прерываний по статистике передачи - не было.
www[17] = ETH->MMCRIMR; // 0000 0000 // Прерывания разрешены ?
www[18] = ETH->MMCTIMR; // 0000 0000 // Прерывания разрешены ?
www[19] = ETH->MMCTGFSCCR; // 0000 0000 // Количество переданных фреймов в HalfDuplex после одной коллизии.
www[20] = ETH->MMCTGFMSCCR; // 0000 0000 // Количество переданных фреймов в HalfDuplex после нескольких коллизий.
www[21] = ETH->MMCTGFCR; // 0000 0001 // !!!___ Количество удачно переданных фреймов.
www[22] = ETH->MMCRFCECR; // 0000 0000 // !!!___ Количество принятых фреймов с ошибкой CRC.
www[23] = ETH->MMCRFAECR; // 0000 0000 // !!!___ Количество притяных фреймов с ошибкой выравнивания.
www[24] = ETH->MMCRGUFCR; // 0000 0000 // !!!___ Кол-во хороших принятых фреймов с unicast.
www[25] = 0xA3FFFFA0;
www[26] = ETH->DMABMR; // 0002 0100
www[27] = ETH->DMATPDR; // 0000 0000
www[28] = ETH->DMARPDR; // 0000 0000
www[29] = ETH->DMARDLAR; // 2000 A930
www[30] = ETH->DMATDLAR; // 2000 A970
www[31] = ETH->DMASR; // 0066 0404
www[32] = ETH->DMAOMR; // 0000 2002
www[33] = ETH->DMAIER; // 0001 0040
www[34] = ETH->DMAMFBOCR; // 0000 0000
www[35] = ETH->DMACHTDR; // 2000 A980
www[36] = ETH->DMACHRDR; // 2000 A930
www[37] = ETH->DMACHTBAR; // 2000 C740
www[38] = ETH->DMACHRBAR; // 2000 A990
Где может быть отброс пакета ? Вообще как-то можно узнать: данные с RMII - поступают на вход MAC ?