_nikita 0 8 сентября, 2011 Опубликовано 8 сентября, 2011 · Жалоба Извините, по поводу автомата, неправильно выразился (мыслю изнутри логической функции). А сигнал ENET_LINK он у меня по умолчанию в нуле. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vadimuzzz 0 8 сентября, 2011 Опубликовано 8 сентября, 2011 · Жалоба я вот об этом: сигнал на set_1000 выдает PHY, он же еще к светодиоду на плате подключен. причем он active_low. set_10 смело ставим в 0. выходы MAC, ena_10 и eth_mode переключают мультиплексор (на него завести с PLL три клока - 2.5, 25 и 125МГц) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_nikita 0 8 сентября, 2011 Опубликовано 8 сентября, 2011 · Жалоба Спасибо vadimuzzz, завтра буду пробовать поработать на гигабите. Вечером поискал инициализацию для марвеловского PHY, но не нашел, если Вам не трудно, напишите этот кусок кода или место, где посмотреть. Заранее благодарен. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vadimuzzz 0 9 сентября, 2011 Опубликовано 9 сентября, 2011 · Жалоба как-то так: ... #define PHY 0x12 ... alt_u32 t; /* PHY and other board peripherial initialization */ IOWR_ALTERA_TSEMAC_MDIO_ADDR0(TSE_MAC_BASE,PHY); t = IORD_ALTERA_TSEMAC_MDIO(TSE_MAC_BASE,0,0x1B);//Extended PHY Specific Status Register t &= 0xFFF0; IOWR_ALTERA_TSEMAC_MDIO(TSE_MAC_BASE,0,0x1B,t|0xB);//RGMII to Copper t = IORD_ALTERA_TSEMAC_MDIO(TSE_MAC_BASE,0,0x14);//Extended PHY Specific Control Register IOWR_ALTERA_TSEMAC_MDIO(TSE_MAC_BASE,0,0x14,t|0x82);//Add Delay to RX_CLK for RXD Outputs; Add Delay to GTX_CLK for TXD Inputs t = IORD_ALTERA_TSEMAC_MDIO(TSE_MAC_BASE,0,ALTERA_TSEMAC_PHY_ADDR_CONTROL); IOWR_ALTERA_TSEMAC_MDIO(TSE_MAC_BASE,0,ALTERA_TSEMAC_PHY_ADDR_CONTROL,t|PCS_CTL_sw_reset);//Previous Operations Require SW Reset ... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_nikita 0 9 сентября, 2011 Опубликовано 9 сентября, 2011 · Жалоба vadimuzzz, к сожалению на отладочной плате AIIGX сигнал LED_LINK1000 от PHY идет только на светодиод, поэтому завести его на сигнал set_1000 нет возможности. Необходимо как-то узнать от PHY скорость подключения и соответственно настроить MAC. Может Вы знаете как узнать скорость подключения PHY ( datasheet'а на Marvell у меня нету)? P.S. Сигнал set_1000 аппаратно установил в 1, настроил сетевую карту на гигабит и все работает!!!!! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_nikita 0 9 сентября, 2011 Опубликовано 9 сентября, 2011 · Жалоба Порыв инфы в инете и прочитав регистры Марвела при гигабите и сотке выяснил, что скорость подключения показывают 2 старших бита регистра 17. 10 - 1 Gbit 01 - 100 Mbit Переделал инициализацию MAC, вроде все работает. vadimuzzz, есть проблема. При приеме определенного количества пакетов зависает собственно сам прием, пытаюсь разобраться. Вроде как такая проблема уже обсуждалась (увеличил FIFO до 16К, не помогло), но если есть направление, где возможна проблема, буду благодарен за ответ. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_nikita 0 9 сентября, 2011 Опубликовано 9 сентября, 2011 · Жалоба Переделал обработчик прерывания по примеру из проекта vadimuzzz, вроде ничего не зависает. И снова огромное спасибо, vadimuzzz! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Hatory 0 25 декабря, 2011 Опубликовано 25 декабря, 2011 · Жалоба Снова здравствуйте. Возникли проблемы в доработке проекта под оптику. Прошу совета или указаний... Требуемый результат: FPGA ->(optic cable)-> Media Converter 1000Base-FX to 1000Base-TX->(copper cable)->PC Система: nios II processor+ddr2 sdram controller with altmemphy+2x sgdma+descriptor memory+interval timer+triple speed ethernet (mac+pcs+pma, sgmii bridge disable) Распиновка: ref_clk - 156.25MHz (1.5 PCML), txp и rxp - присоединены к sfpa_tx и sfpa_rx соответственно (1.5 PCML), gxb_cal_blk_clk_to_the_tse_mac и ref_clk_to_the_tse_mac присоединены к ref_clk ПО: simple socket server Конвертор: TP Flow Control: NWay auto-negotiation; Fiber Flow Control: NWay at full-duplex mode При настройках по умолчанию: 1) при использовании петли: линк устанавливается, auto-negotiation enable, сигналы char_err и disp_err установлены в 0 2) при использовании конвертора (с помощью megawizard plug-in manager редактирую altera_tse_alt2gxb_gige, убирая serial loopback): линк не устанавливается, auto-negotiation disable, сигналы char_err и disp_err установлены в 1 InterNiche Portable TCP/IP, v3.1 Copyright 1996-2008 by InterNiche Technologies. All rights reserved. prep_tse_mac 0 Your Ethernet MAC address is 00:07:ed:ff:00:01 prepped 1 interface, initializing... [tse_mac_init] INFO : TSE MAC 0 found at address 0x08004000 INFO : PHY Marvell 88E1111 found at PHY address 0x12 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... WARNING : PHY[0.0] - Auto-Negotiation FAILED MARVELL : Enabling auto crossover MARVELL : PHY reset INFO : PCS[0.0] - Configuring PCS operating mode INFO : PCS[0.0] - PCS SGMII mode disabled 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... WARNING : PHY[0.0] - Auto-Negotiation FAILED WARNING : PHY[0.0] - Link could not established WARNING : PHY[0.0] - Auto-Negotiation not completed! Speed = 1000, Duplex = Full OK, x=0, CMD_CONFIG=0x00000000 MAC post-initialization: CMD_CONFIG=0x0000022b Регистры PCS: control register = 0x 140 (gigabit, full duplex) status register = 0x 9 (link status 0, auto_negotiation_ability 1, auto-negotiation_complete 0) dev_ability register = 0x 1a0 (full duplex, pause is supported on transmit and receive, ACK 0) partner_ability register = 0x 0 an_expansion register = 0x 0 link_timer registers: 0x12d0, 0x 13 if_mode register = 0x 0 (SGMII_ENA 0, USE_SGMII_AN 0) PHY register 0 = 0x1140 PHY register 1 = 0x7949 PHY register 4 = 0x de1 PHY register 5 = 0x 0 PHY register 6 = 0x 4 PHY register 7 = 0x2801 PHY register 8 = 0x 0 PHY register 9 = 0x f00 PHY register 10 = 0x4000 PHY register 15 = 0x3000 PHY register 16 = 0x 18 PHY register 17 = 0x8100 PHY register 18 = 0x 0 PHY register 19 = 0x 0 PHY register 20 = 0x c60 PHY register 21 = 0x 0 PHY register 22 = 0x 0 PHY register 23 = 0x 0 PHY register 24 = 0x4100 PHY register 25 = 0x 0 PHY register 26 = 0x a PHY register 27 = 0x808f PHY register 28 = 0x 0 PHY register 29 = 0x 0 PHY register 30 = 0x 40 [tse_sgdma_read_init] RX descriptor chain desc (1 depth) created mctest init called IP address of et1 : 192.168.1.1 Created "Inet main" task (Prio: 2) Created "clock tick" task (Prio: 3) DHCP timed out, going back to default IP address(es) Simple Socket Server starting up [sss_task] Simple Socket Server listening on port 30 Created "simple socket server" task (Prio: 4) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться