[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[microblaze-uclinux] Problem with ethernet (no PHY detected)
Hello,
I have a problem regarding the configuration of my ethernet peripheric
for my board.
Here are the steps that I did to integrate opb_ethernet:
1) Took the uClinux_auto platform.
2) Add the opb_ethernet in "add cores" in EDK
3) Put ethernet in slave mode
4) Generate the addresses
5) Add all the signals in the "ports tab", except "Freeze". Made
external all the PHY signals.
Connected the interrupt signal to the interrupt controller (just after
the timer interrupt).
Additionally, I connected another interrupt signal (phy_mii_int_n) which
goes through a misc_logic.
6) Customized ethernet whith those parameters values:
PARAMETER C_DMA_PRESENT = 1
PARAMETER C_OPB_CLK_PERIOD_PS = 15000
PARAMETER C_IPIF_RDFIFO_DEPTH = 16384
PARAMETER C_IPIF_WRFIFO_DEPTH = 16384
PARAMETER C_RESET_PRESENT = 0
PARAMETER C_DEV_BLK_ID = 0
7) Compiled the uClinux kernel with networking support and ethernet driver.
Here is the message when I boot uClinux:
eth0: using fifo mode.
eth0: No PHY detected. Assuming a PHY at address 0.
eth0: Xilinx EMAC #0 at 0xFFFF8000 mapped to 0xFFFF8000, irq=1
eth0: id 0.0a; block id 0, type 0
Any idea?
Thanks,
Arnaud Lagger
----
Here is the part of my .mhs concerning ethernet:
BEGIN opb_ethernet
PARAMETER INSTANCE = enet
PARAMETER HW_VER = 1.02.a
PARAMETER C_DMA_PRESENT = 1
PARAMETER C_OPB_CLK_PERIOD_PS = 15000
PARAMETER C_IPIF_RDFIFO_DEPTH = 16384
PARAMETER C_IPIF_WRFIFO_DEPTH = 16384
PARAMETER C_RESET_PRESENT = 0
PARAMETER C_BASEADDR = 0xffff8000
PARAMETER C_HIGHADDR = 0xffffbfff
PARAMETER C_DEV_BLK_ID = 0
BUS_INTERFACE SOPB = mb_opb
PORT PHY_crs = enet_PHY_crs
PORT PHY_dv = enet_PHY_dv
PORT PHY_rx_clk = enet_PHY_rx_clk
PORT PHY_tx_clk = enet_PHY_tx_clk
PORT PHY_col = enet_PHY_col
PORT PHY_rx_data = enet_PHY_rx_data
PORT PHY_rx_er = enet_PHY_rx_er
PORT IP2INTC_Irpt = enet_IP2INTC_Irpt
PORT emac_intrpts = enet_emac_intrpts
PORT PHY_Mii_data = enet_PHY_Mii_data
PORT PHY_rst_n = net_vcc
PORT PHY_tx_data = enet_PHY_tx_data
PORT PHY_tx_er = enet_PHY_tx_er
PORT PHY_rx_en = enet_PHY_rx_en
PORT PHY_tx_en = enet_PHY_tx_en
PORT PHY_Mii_clk = enet_PHY_Mii_clk
PORT OPB_Clk = sys_clk
PORT Freeze = net_gnd
END
----
Here is my ucf:
# Ethernet
NET "enet_PHY_rx_data<0>" LOC = "A10";
NET "enet_PHY_rx_data<1>" LOC = "B10";
NET "enet_PHY_rx_data<2>" LOC = "C10";
NET "enet_PHY_rx_data<3>" LOC = "D10";
NET "enet_PHY_rx_data<0>" NODELAY;
NET "enet_PHY_rx_data<1>" NODELAY;
NET "enet_PHY_rx_data<2>" NODELAY;
NET "enet_PHY_rx_data<3>" NODELAY;
NET "enet_PHY_tx_data<0>" LOC = "D7";
NET "enet_PHY_tx_data<1>" LOC = "E7";
NET "enet_PHY_tx_data<2>" LOC = "A8";
NET "enet_PHY_tx_data<3>" LOC = "B8";
NET "enet_PHY_dv" LOC = "E10";
NET "enet_PHY_dv" NODELAY;
NET "enet_PHY_rx_er" LOC = "A11";
NET "enet_PHY_rx_er" NODELAY;
NET "enet_PHY_tx_en" LOC = "C8";
# Not needed for etlite
NET "enet_PHY_tx_er" LOC = "D8";
NET "enet_PHY_tx_clk" LOC = "E20";
NET "enet_PHY_rx_clk" LOC = "F22";
NET "enet_PHY_tx_clk" TNM_NET = "TXCLK_GRP";
NET "enet_PHY_rx_clk" TNM_NET = "RXCLK_GRP";
TIMESPEC "TSTXOUT" = FROM "TXCLK_GRP" TO "PADS" 10 ns;
TIMESPEC "TSRXIN" = FROM "PADS" TO "RXCLK_GRP" 6 ns;
NET "enet_PHY_tx_clk" MAXSKEW = 2.0 ns;
NET "enet_PHY_rx_clk" MAXSKEW = 2.0 ns;
NET "enet_PHY_tx_clk" PERIOD = 40 ns HIGH 14 ns;
NET "enet_PHY_rx_clk" PERIOD = 40 ns HIGH 14 ns;
NET "enet_PHY_crs" LOC = "B7";
NET "enet_PHY_crs" NODELAY;
NET "enet_PHY_col" LOC = "C7";
NET "enet_PHY_col" NODELAY;
#NET "enet_PHY_rst_n" LOC = "B18";
#NET "enet_PHY_rst_n" TIG;
#not needed for etlite
NET "enet_PHY_Mii_data" LOC = "B17";
NET "enet_PHY_Mii_clk" LOC = "C17";
NET "misc_logic_0_phy_mii_int_n" LOC = "C18";
___________________________
microblaze-uclinux mailing list
microblaze-uclinux@itee.uq.edu.au
Project Home Page : http://www.itee.uq.edu.au/~jwilliams/mblaze-uclinux
Mailing List Archive : http://www.itee.uq.edu.au/~listarch/microblaze-uclinux/