This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

How to define unique MAC address for AM335x?

Other Parts Discussed in Thread: AM3352

Hi,                

We are using 10\100 Ethernet on MII2 interface of the processor. We have concern regarding the MAC address definition for the port. I found two MAC ID registers (mac_id0 & mac_id1) in TRM to define MAC address. I have couple of queries related to same.

 

  1. How to define a unique MAC address per board for this MII interface?
  2. Is there any way to store the MAC address value in nonvolatile memory and reload into the MAC registers after every Power-on and System Reset?

Thanks & Regards,

Praveen Kajjam

  • Hi Praveen.

    The AM335X processor has 2 unique MAC addresses programmed into each individual device. These are stored in the mac_id0 and mac_id1 eFuse registers (read-only). Software reads these values and stores them into the P1_SA_LO/P1_SA_HI, resp. P2_SA_LO/P2_SA_HI registers.

    You can have your own MAC addresses stored in external EEPROM if required, and load these instead in the P1_SA_LO/P1_SA_HI, resp. P2_SA_LO/P2_SA_HI registers.

  • Actually, those two MAC addresses are the lowest and highest in a range of MAC address for the chip.

    Steve K.

  • Thanks for your response. It address my query.

    Best Regards,

    Praveen Kajjam.

  • If it is a range of MAC addresses, how big is the range. Another words, how many MAC addresses per chip: 2 only?
  • The two values define the range of MAC addresses as stated by Steve.

    If the two values are the same, this defines a single MAC address assigned to this device.  If the two values are consecutive, this defines two MAC addresses assigned to this device with each value being one of the two MAC addresses.  If difference of the two values is 2 or greater, this defines a range where the smallest value is the first MAC address assigned to this device and the largest values is the last MAC address assigned to this device.  Using a simple example, the device would have 6 MAC addresses assigned if the values were 3 and 8.  The value 3 would be the first MAC address, 4 would be the second MAC address, 5 would be the third MAC address, 6 would be the fourth MAC address, 7 would be the fifth MAC address, and 8 would be the sixth MAC address.

    Hopefully this answers your question.

    Regards,
    Paul

  • Hey Paul,
    Thanks for speed answer. Actually my question was specific to the AM335x. How many MAC addresses is TI assigning to that chip?
    I suspect 3 (because it has a 3-port switch) but I wanted to make sure.
  • The answer may vary based on the specific AM335x device part number. The devices that support Industrial Ethernet protocols may have more MAC addresses assigned than AM335x devices that do not support Industrial Ethernet protocols.

    Regards,
    Paul
  • Thank you for this discussion!

    I looked through the TRM and other docs, but have not been able to find the information in this discussion officially described. Where is the information regarding the range concept of MAC addresses officially documented? Is there a document that officially lists the expected range (number of MAC addresses) based on an AM335x part number?

    Thank you very much,

    Matthew

  • Matthew,

    There is no "range concept" beyond that range which is assigned to TI thru the IEEE organization. We do not publish, nor track, the MAC addresses we program into devices.

    Please do not rely on the MAC for anything other than a GUID as they may change drastically from one part to the next.

  • Hi DK,

    Yes, I understand they should be treated as a GUID, etc.

    However, in an earlier post in this thread it was stated:

    > The two values define the range of MAC addresses as stated by Steve.
    > If the two values are the same, this defines a single MAC address assigned to this device.
    > If the two values are consecutive, this defines two MAC addresses assigned to this device with
    > each value being one of the two MAC addresses. If difference of the two values is 2 or greater,
    > this defines a range where the smallest value is the first MAC address assigned to this device
    > and the largest values is the last MAC address assigned to this device.
    <<snip>>


    So, my question then is: where is this documented outside this post/discussion?

    For example, the AM3352 I'm working with now gives:
    mac id0 is: "8030dc631a99"
    mac id1 is: "8030dc631a9b"

    So, does this mean this device consumed xxxx99, xxxx9A, and xxxx9B addresses? (three addresses total?)

    If so, where is this concept officially documented? I do not see it in the TRM or datasheet, but I might be searching for the wrong terms, etc.

    Thank you very much,

    Matthew