How to access 40bit wide registers using AST

I am trying to access the area allocated by malloc on the CCPLEX side from the SPE side.

I tried to notify the physical address to the SPE side via the data_channel of ivc-aon-echo and to read the content of the address by the SPE, but the address is allocated in the area that cannot be read by the SPE with 32bit address width. (For example, 0x2371ac260)

To access this address from SPE, I think I can use AST, but I don’t know how to do that.
When I tried to access the 0x80000260 register by configuring the following register settings with reference to TRM 3.2.2.9, I got an Exception: Data abort from the SPE log and the system crashed.
AST_REGION_SLAVE_BALSE : 0x0080000001
AST_REGION_MASTER_BASE: 0x02371ac000
AST_REGION_MASK : 0x0000f000

What kind of AST settings can be used to access addresses that do not fit in the 32bit width?

Thanks for reporting this issue, we will do the investigation and update the result soon.

Hello, akabnoj:
I’m not sure about your code.
The sequence is:

  1. CCPLEX (Linux) allocated the DMA buffer.
  2. Send the physical address to SPE.
  3. SPE will map the address to SPE space.
    You can take a look at “rt-aux-cpu-demo/drivers/ivc-channels.c” with function: ivc_carveout_ast_setup.
    That’s an example to map the IVC buffer which can be shared between CCPLEX (Linux) and SPE firmware (FreeRTOS)

br
ChenJian