2 Replies Latest reply on May 15, 2018 4:26 AM by bwasim

    Unable to access the FX3 internal MMIO space via the P-Port PP_MMIO_* register

    bwasim

      I have FX3 connected to a main application processor via the asynchronous SRAM interface with 8 address and 16 data bits. I am trying to access the FX3 internal MMIO space from the application processor(AP).

       

      I am able to access the P-port registers from the AP by reading and validating the PP_IDENTIFY register value(0x81). Now the next step is to access the internal MMIO registers(specifically the S-port register to configure and use the SDIO peripheral).

       

      Seeing the registers, it seems easy. I can access the PP_MMIO_* register to program but I'm unable to do so. This is my sequence to access the SDCMD0 register.

       

      WRITE32(PP_MMIO_ADDR, register_address_of_sdcmd0); // Write the address of the MMIO register to be accessed to the PP_MMIO_ADDR register.

      WRITE16(PP_MMIO, PP_RD); // Write to the MMIO Control register to the enable the read from the address programmed in PP_MMIO_ADDR register.

      WAIT(); // Wait until the read operation has been completed.

       

      I can write to the PP_MMIO_ADDR register and have verified it by reading it back. However, I'm unable to program the PP_MMIO register. It reads back 0 every

      time.

       

      My register value for PIB_CONFIG is 0xC8000000.

      My register value for GPIF_CONFIG is 0xC0000A12.

       

      Both these values indicate that the Read operation should succeed, but it isn't and I'm not sure why. Can anyone help me here quickly ? Am I on the right path or do I need to do something else here ? Any help would be appreciated.