Quantcast
Channel: Forums - Recent Threads
Viewing all articles
Browse latest Browse all 262198

AM5728: Question about MMU mapping

$
0
0

Part Number: AM5728

Hallo,

I have two bare metal applications on AM5728, one for DSP1 and one for IPU1_0.
They are started with remoteproc under linux.

Both are using peripherals like UART, SPI etc.
They access the peripherals either over library
  UARTModuleReset( SOC_UART9_BASE );
or directly
  HWREG( SOC_UART9_BASE + UART_THR ) = character_to_send;

Where the module address is defined at the pdk (cslr_soc_aliases.h)
#define SOC_UART9_BASE                                                          (CSL_IPU_UART9_REGS)
#define CSL_IPU_UART9_REGS                                                      (0x48424000U)
#define SOC_UART9_BASE                                                          (CSL_DSP_UART9_REGS)
#define CSL_DSP_UART9_REGS                                                      (0x48424000U)

This works while the resource table for the DSP1 tells the MMU to map the peripheral spaces from pa to va straight forward:

#define L4_PERIPHERAL_L4PER1    0x48000000
#define DSP_PERIPHERAL_L4PER1   0x48000000

#define L4_PERIPHERAL_L4PER2    0x48400000
#define DSP_PERIPHERAL_L4PER2   0x48400000

#define L4_PERIPHERAL_L4PER3    0x48800000
#define DSP_PERIPHERAL_L4PER3   0x48800000

Not so for the IPU.
The resource table maps the peripheral space from pa 0x40000000 to va 0x60000000.

#define L4_PERIPHERAL_L4PER1    0x48000000
#define IPU_PERIPHERAL_L4PER1   0x68000000

#define L4_PERIPHERAL_L4PER2    0x48400000
#define IPU_PERIPHERAL_L4PER2   0x68400000

#define L4_PERIPHERAL_L4PER3    0x48800000
#define IPU_PERIPHERAL_L4PER3   0x68800000

How can the IPU access the peripherals on for example CSL_IPU_UART9_REGS = (0x48424000U) when they shall be accessed at e.g. 0x68424000 ?

Thanks for explanation.


Viewing all articles
Browse latest Browse all 262198

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>