Перейти к содержанию
    

Извините, по поводу автомата, неправильно выразился (мыслю изнутри логической функции).

А сигнал ENET_LINK он у меня по умолчанию в нуле.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

я вот об этом:

rgmiiclocks.th.png

 

сигнал на set_1000 выдает PHY, он же еще к светодиоду на плате подключен. причем он active_low. set_10 смело ставим в 0. выходы MAC, ena_10 и eth_mode переключают мультиплексор (на него завести с PLL три клока - 2.5, 25 и 125МГц)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо vadimuzzz, завтра буду пробовать поработать на гигабите.

Вечером поискал инициализацию для марвеловского PHY, но не нашел,

если Вам не трудно, напишите этот кусок кода или место, где посмотреть.

Заранее благодарен.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

как-то так:

...
    #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
...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

vadimuzzz, к сожалению на отладочной плате AIIGX сигнал LED_LINK1000 от PHY идет только на светодиод,

поэтому завести его на сигнал set_1000 нет возможности. Необходимо как-то узнать от PHY скорость подключения и

соответственно настроить MAC. Может Вы знаете как узнать скорость подключения PHY ( datasheet'а на Marvell у меня нету)?

 

P.S. Сигнал set_1000 аппаратно установил в 1, настроил сетевую карту на гигабит и все работает!!!!!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Порыв инфы в инете и прочитав регистры Марвела при гигабите и сотке выяснил, что

скорость подключения показывают 2 старших бита регистра 17.

10 - 1 Gbit

01 - 100 Mbit

Переделал инициализацию MAC, вроде все работает.

 

vadimuzzz, есть проблема. При приеме определенного количества пакетов

зависает собственно сам прием, пытаюсь разобраться. Вроде как такая проблема уже

обсуждалась (увеличил FIFO до 16К, не помогло), но если есть направление, где возможна проблема,

буду благодарен за ответ.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Переделал обработчик прерывания по примеру из проекта vadimuzzz,

вроде ничего не зависает.

И снова огромное спасибо, vadimuzzz!

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Снова здравствуйте. Возникли проблемы в доработке проекта под оптику. Прошу совета или указаний...

Требуемый результат:

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)

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...