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.

AM3356: PRU and GPMC conflict in Pinmux tool

Part Number: AM3356

Hi,

PINMUX doesn't let me use pin T17 for GPMC signal "Wait0" when I use MII1_PRUSS1, although I haven't used "COL signal" with this pin.

Is this bad working of PINMUX software or is that a restriction when using PRU?

Thank you so much.

Regards

  • Hi,

    Can you post the pinmux file?
  • You have a lot of errors:

    You must resolve these errors. Most of them come from the fact that pins you have selected are not available in the selected GPMC IOSet.

  • Hi again,

    The file I have sent to you is a working file, so every problem is in proccess to be solve, either changing pinout (that is the case of the GPIO peripheral) or adding external logic (that is the solution I have thought for having additional CS in GPMC peripheral). But the bigger problem is signal WAIT0, as we are not using this pin for MII1_PRU1, but Pinmux doesn't allow us to use it for GPMC. So the question is: 

    PINMUX doesn't let me use pin T17 for GPMC signal "Wait0" when I use MII1_PRUSS1, although I haven't used "COL signal" with this pin.

    Is this bad working of PINMUX software or is that a restriction when using PRU?

    We are assuming we don't need the signal COL, so this pin should be available for other peripherals. Is this true?

  • Hi ,

    Looks like you are using gpmc in ioset52, however the signal "Wait0" on T17 is now available in this ioset. Make sure you rearrange your configuration so that correct ioset is configured where "Wait0" on T17 is present. Does that make sense? 

    Also, I see a lot of "any" configuration in your design. That "any" available pin for a given signal configuration is very dynamic, meaning that the tool solves the configuration for you, so when you add/remove peripherals these "any" can get re-arranged. My advice is you should manually lock desired signal on a particular pad when your design matures enough. 

    thanks,

    Alex

  • Hi all,
    PinMux let you see the different "IO Set" available for GPMC (just clicking "View IO Sets"), but it doesn't change when I try to select it. I can only change it when I change the "Use Case" option. Only when I have selected 16b NAND Boot use case, IO Set automatically changes to GPMC_IOSet_46 and no pin conflict emerged. But the fact is that my GPMC is not only connected to a NAND Flash that I use to boot, but it is also connected to a SRAM, and therefore I need gpmc_ad[0..15], but also A1, A2 (address must be at least 18 bits), and NBE[0..1]. The problem is again in the initial court: PINMUX should let me use pin T17 for GPMC signal "Wait0" whenever the IOSet selected by the program, just because I do not think time could be an issue in this case. After some days working on it I still haven't found out if I can route my PCB with 2 MII PRU, 16-bit multiplexed FLASH NAND and 4 Mbit SRAM. Could you please help me?
  • Hi ,

    The ioset view is just there for reference, unfortunately you cannot simply click to switch b/w iosets due to various reasons. So you must pick the ioset that fits your needs and configure the tool this way from the main view. Please go throught the iosets and choose the one that is good for you. For example (and I haven't done deep review) doesn't ioset11 fit your needs? How about configuring all your signals this way:

    Thanks,

    Alex

  • Hi again,
    Would you mind telling me how to do the following recommendation: "So you must pick the ioset that fits your needs and configure the tool this way from the main view", please? o at least, could you tell me of a link to follow the different step to get it? I do not see how.

    Thanks in advance
  • Hi ,

    Based on your design and schematics you need to match that into one of the possible iosets to chose from(or subset of an ioset). Then go in the main GUI and configure exactly the same signals on exactly the same balls as listed in the ioset. The tool will solve for errors if any.

    Hope it helps,
    Thanks,
    Alex
  • Hi again,
    The only IOSet that allow to use signal GPMC_A1 (as A16) at pin U5, and GPMC_A2 (as A17) at pin R5, is IOSet52. Any other IOset set these signals either in pins [R2,R3] or in pins [U14,V14]. Unfortunately, in both cases, those pins are required for the two PRU_MII.
    For any reason, IOSet52 doesn’t use the signal GPMC_wait0 although the pin is available (but inused).
    IOSet52 does use the signal GPMC_wait1, but again, the pin V12 is required by the MDIO_PRU interface.
    The first version of our board didn’t use PRU_MII but RGMII, so we had routed a 22-line address bus, four CS, as many register controlling bus access exist, the FLASH NAND need signal WAIT (we have tested without it without success) and our SRAM is enough big.
    We are replacing two RGMII by two PRU_MII to get HSR and as a consequence, we need multiplexing address and data bits in GPMC to attend 8-bit NAND Flash, 16-bit Ethernet MAC transceiver, 16-bit SRAM, a demux and some buffers.
    But it seems that either we reduce drastically the address map to 16 bits (and I think we cannot allow since we have many peripheral that we have to map in the address map) or we can’t use our FLASH with signal WAIT0 (despite this pin [T17] will remaining inused), which is also unacceptable.
    So the first question remains the same: Can we use WAIT0 for the NAND FLASH although it wasn’t available in IOSet52?


    Thank you so much for your help

    Kind regards
  • Hi ,

    I understand your dilemma, however using WAIT0 in ioset52 brakes the ioset rules, and those rules are there to guarantee the timing and switching characteristics from the Data Manual. So

    roberto.perez said:
    Can we use WAIT0 for the NAND FLASH although it wasn’t available in IOSet52

    I would say no. But let me ask around for additional comments from the HW teams.

    Thanks,

    Alex

  • Hi roberto.perez,

    The PinMux Tool only allows pin combinations (IOSETs) that have been tested to pass timing requirements. Only pins within a single IOSET are guaranteed to fit the timing measurements from the datasheet. I'm sorry to say the pin combinations chosen are not valid from a timing perspective. You could manually edit the pinmux output to enable this pin but this is discouraged and will not be support if issues arise.

    Regards,
    Ahmad