Forum Discussion

Altera_Forum's avatar
Altera_Forum
Icon for Honored Contributor rankHonored Contributor
13 years ago

Marvell 88E1111 PHY on DE2-115

Hello all,

We're a couple of students doing our main project on this board, a design with no softcores. For handling the PHY we have a state machine and an MDIO component in place.

HW reset works fine, then we wait a bit... The chip negotiates a link, all is well.

It seems the config pins have a reasonable autonegotiate default.

We read off MII_BMCR, apply reset bit, and write back. The PHY does a soft reset and renegitiates a link once more.

The 125 MHz RX clock starts, but the 4 DATA wires show HIGH-LOW-HIGH-HIGH, obviously not data :)

What are we missing? I imagine it's something PHY specific.

Is there a magic sequence of read/writes/waits here?

I suspect the next thing to do is either turn off interrupts, or start polling for them. Unfortunately I cannot find this described anywhere for this chip.

If someone have managed to do this please point us in the right direction - we've been struggling with it for weeks :(

With best regards.

7 Replies

  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    --- Quote Start ---

    We're a couple of students doing our main project on this board, a design with no softcores.

    --- Quote End ---

    What is the point of not using an IP core that is already debugged and tested?

    --- Quote Start ---

    we've been struggling with it for weeks :(

    --- Quote End ---

    Which is why you should use a working IP core.

    If your task is to write an interface to the PHY, then I would recommend using a working IP core as a reference to see what it does to access the device. For example, Altera have a TSE core. Use it along with SignalTap II to trace what is going on in a working design.

    If your project involves just using the TSE core, then get your professor to request the license for the IP core via the University Program, and then use the board to do something more interesting :)

    Cheers,

    Dave
  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    --- Quote Start ---

    What is the point of not using an IP core that is already debugged and tested?

    Which is why you should use a working IP core.

    If your task is to write an interface to the PHY, then I would recommend using a working IP core as a reference to see what it does to access the device. For example, Altera have a TSE core. Use it along with SignalTap II to trace what is going on in a working design.

    If your project involves just using the TSE core, then get your professor to request the license for the IP core via the University Program, and then use the board to do something more interesting :)

    Cheers,

    Dave

    --- Quote End ---

    Well, the MDIO and ETH FSM checks out just fine. Just now set some states it in a loop, wired SW and LEDR into reading and writing off the basic management register. PHY responds and reports appropriately.

    We wanted to learn *VHDL*, no cores, big fun that at least THAT part of it is ok! :)

    Thanks for the tip about signaltapping into an existing design btw!
  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    --- Quote Start ---

    We wanted to learn *VHDL*, no cores

    --- Quote End ---

    In that case, start with something that you can get the whole data sheet to, eg., an asynchronous SRAM or Flash interface, an SSRAM interface, an SDRAM controller, etc. Marvell is a pain to get datasheets from.

    --- Quote Start ---

    Thanks for the tip about signaltapping into an existing design btw!

    --- Quote End ---

    Its also very useful to trying to understand what an Altera IP core does in hardware. Sometimes the documentation can be a little 'light' on details.

    Cheers,

    Dave
  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    Indeed. I guess one of the LED's blinking off for a few nanoseconds is kind of hard to see, LOL.

  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    --- Quote Start ---

    Indeed. I guess one of the LED's blinking off for a few nanoseconds is kind of hard to see, LOL.

    --- Quote End ---

    Yeah, I think what you are supposed to do is have an LED blinking circuit that detects an edge, and then turns on for a 100ms, so you can at least see it :)