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.

EMAC boot mode problem

I would like to use the EMAC for bootloading but I see a bit of a problem.  Two of the boot mode GPIO are also used by the default EMAC pins namely TXER and RXDV.  This causes a conflict since the ethernet switch to which this connects needs to power up in order to communicate but at the same time I need to drive these two pins low so that the processor kicks into EMAC boot mode.  I can force the pins low but what indication via hardware might I have that the EMAC boot mode has been selected and now I can release the pins to function as part of the MAC interface?  Or is there another way to approach this?

  • Usually this is accomplished by resistor strap options.

  • Resistor straps are the plan but here is the problem: to use the EMAC boot option the RXDV input must be assigned to PG3_GPIO43 which is also one of the three Mboot option discretes.  I am calling it Mboot0.  At some time during bootup the master CPU checks this input to determine the boot mode.  At the same time the DLR switch we will be using is also powering up and presumable driving this input either high or low.  It needs to be low for EMAC boot but it may also need to be one if the flash has already been programed and is not being changed.  I can hold the switch in reset, this will force its outputs to a tri-state condition but how do I know when to release the reset so that the switch can boot up.  At this point I am left with a delay timer to release the reset.  The other option is to do our own boot program and abandon the built in capability.

    It would have been smarter to use a GPIO that is not forced to be an input with a driving output that is expected to be there for the EMAC boot to work.

  • Russ,

    Russ Parker said:
    It needs to be low for EMAC boot but it may also need to be one if the flash has already been programed and is not being changed. 

    as of today any unsupported boot mode, boots to flash. So boot mode 6 (mboot0 LOW) and boot mode 7 (mboot0 HIGH) both boot to flash. The proceedure you are following to hold the switch in reset on boot is the perfect solution and we are working towards publishing those numbers in the datasheet. We are planning on keeping boot mode 6 reserved for now and let it boot to flash.

    Hope that helps.

    Best Regards

    Santosh