Part Number: AM5728
Hi,
I'm working with a custom board based off the AM572x EVM with Linux running on the A15 and TI-RTOS running on DSP1. I'm trying to read from GPMC memory from DSP1 at base address 0x1000_0000, which I've translated to 0x2400_0000 based off of start address of the L3_MAIN map of 0x1400_0000 according to the DSP. To that effect, I've added the following code to my resource table:
/* GPMC */
#define DSP_GPMC 0x24000000
#define L3_GPMC 0x24000000
#define DSP_GPMC_SIZE (SZ_16M)
...
struct my_resource_table {
struct resource_table base;
// !!! Went from 17 to 18 during addition of GPMC
UInt32 offset[18]; /* Should match 'num' in actual definition */
...
/* devmem entry (GPMC) */
struct fw_rsc_devmem devmem11;
};
...
struct my_resource_table ti_ipc_remoteproc_ResourceTable = {
1, /* we're the first version that implements this */
18, /* number of entries in the table */ // !!! Went from 17 to 18 with GPMC addition
0, 0, /* reserved, must be zero */
/* offsets to entries */
{
offsetof(struct my_resource_table, rpmsg_vdev),
offsetof(struct my_resource_table, text_cout),
offsetof(struct my_resource_table, data_cout),
offsetof(struct my_resource_table, heap_cout),
offsetof(struct my_resource_table, ipcdata_cout),
offsetof(struct my_resource_table, trace),
offsetof(struct my_resource_table, devmem0),
offsetof(struct my_resource_table, devmem1),
offsetof(struct my_resource_table, devmem2),
offsetof(struct my_resource_table, devmem3),
offsetof(struct my_resource_table, devmem4),
offsetof(struct my_resource_table, devmem5),
offsetof(struct my_resource_table, devmem6),
offsetof(struct my_resource_table, devmem7),
offsetof(struct my_resource_table, devmem8),
offsetof(struct my_resource_table, devmem9),
offsetof(struct my_resource_table, devmem10),
offsetof(struct my_resource_table, devmem11), // GPMC
},
...
{
TYPE_DEVMEM,
DSP_GPMC, L3_GPMC,
DSP_GPMC_SIZE, 0, 0, "DSP_GPMC", // Assuming you want to map 1M starting at 0x50000000 to 0x50000000 in physical memory
}
};
However, when I try to access the memory, I'm getting the following errors:
[ 110.271105] omap_l3_noc 44000000.ocp: L3 application error: target 5 mod:1 (unclearable)
[ 110.279260] omap_l3_noc 44000000.ocp: L3 debug error: target 5 mod:1 (unclearable)
Is there some configuration I'm missing, or have I done something incorrectly? Linux is setting up the GPMC from the .dtb file at boot, and we have a Linux application that's able to read from 0x1000_0000, but we want to port it to the DSP1/TI-RTOS.
Thanks,
Jon