summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: 0c242a1)
raw | patch | inline | side by side (parent: 0c242a1)
author | Suman Anna <s-anna@ti.com> | |
Thu, 18 Oct 2018 21:56:12 +0000 (16:56 -0500) | ||
committer | Sam Nelson <sam.nelson@ti.com> | |
Tue, 23 Oct 2018 01:16:56 +0000 (21:16 -0400) |
The R5F cores on AM65xx SoCs do not have an MMU, and so use
direct mapping of CPU memory to DDR memory. The Region Address
Translator (RAT) sub-module can provide linear address translations
but is not currently supported. The RSC_CARVEOUT entries are
currently being used to allocate memory on the Linux side for
various firmware image sections, but this was a temporary
workaround to leverage existing infrastructure on the Linux kernel
side.
Remove all the RSC_CARVEOUT entries and rely on the newly added
support on the Linux kernel side for fixed memory regions for
loading firmware images. The firmware image linker map sections
should fit the addresses defined through the reserved memory nodes
associated with the remoteproc device on the Linux kernel side.
NOTE:
The RSC_DEVMEM resource entry is retained for now until the
address translation logic in AM65xx VirtQueue code is fixed up,
since this resource type is not supported for remoteprocs without
any MMUs.
Signed-off-by: Suman Anna <s-anna@ti.com>
direct mapping of CPU memory to DDR memory. The Region Address
Translator (RAT) sub-module can provide linear address translations
but is not currently supported. The RSC_CARVEOUT entries are
currently being used to allocate memory on the Linux side for
various firmware image sections, but this was a temporary
workaround to leverage existing infrastructure on the Linux kernel
side.
Remove all the RSC_CARVEOUT entries and rely on the newly added
support on the Linux kernel side for fixed memory regions for
loading firmware images. The firmware image linker map sections
should fit the addresses defined through the reserved memory nodes
associated with the remoteproc device on the Linux kernel side.
NOTE:
The RSC_DEVMEM resource entry is retained for now until the
address translation logic in AM65xx VirtQueue code is fixed up,
since this resource type is not supported for remoteprocs without
any MMUs.
Signed-off-by: Suman Anna <s-anna@ti.com>
packages/ti/ipc/remoteproc/rsc_table_am65xx_r5f.h | patch | blob | history |
diff --git a/packages/ti/ipc/remoteproc/rsc_table_am65xx_r5f.h b/packages/ti/ipc/remoteproc/rsc_table_am65xx_r5f.h
index 4240ab5676384688bb0193271d77c6b87e3cd8f9..300e1994f89dfa8f22221aa1a6d01f752800b9a1 100644 (file)
#include "rsc_types.h"
-#define R5F_MEM_TEXT 0x9C200000
-#define R5F_MEM_DATA 0x9C300000
-
-#define R5F_MEM_IPC_DATA 0x9C100000
#define R5F_MEM_IPC_VRING 0x9C000000
#define R5F_MEM_RPMSG_VRING0 0x9C000000
#define R5F_MEM_RPMSG_VRING1 0x9C010000
#define R5F_MEM_VRING_BUFS1 0x9C080000
#define R5F_MEM_IPC_VRING_SIZE SZ_1M
-#define R5F_MEM_IPC_DATA_SIZE (SZ_1M)
-
-#define R5F_MEM_TEXT_SIZE (SZ_1M)
-#define R5F_MEM_DATA_SIZE (SZ_1M)
-
-#define R5F_NUM_ENTRIES 6
+#define R5F_NUM_ENTRIES 3
/*
- * Assign fixed RAM addresses to facilitate a fixed MMU table.
- * PHYS_MEM_IPC_VRING & PHYS_MEM_IPC_DATA MUST be together.
+ * Assign direct mapped RAM address to facilitate address translations in
+ * AM65xx VirtQueue code. The PHYS_MEM_IPC_VRING address should be same as
+ * R5F_MEM_IPC_VRING, and should match the starting base address of the
+ * first reserved memory node assigned to this remoteproc.
*/
-/* See CMA BASE addresses in Linux side: arch/arm/mach-omap2/remoteproc.c */
#define PHYS_MEM_IPC_VRING 0x9C000000
/*
struct fw_rsc_vdev_vring rpmsg_vring0;
struct fw_rsc_vdev_vring rpmsg_vring1;
- /* ipcdata carveout entry */
- struct fw_rsc_carveout ipcdata_cout;
-
- /* text carveout entry */
- struct fw_rsc_carveout text_cout;
-
- /* data carveout entry */
- struct fw_rsc_carveout data_cout;
-
/* trace entry */
struct fw_rsc_trace trace;
/* offsets to entries */
{
offsetof(struct my_resource_table, rpmsg_vdev),
- offsetof(struct my_resource_table, ipcdata_cout),
- offsetof(struct my_resource_table, text_cout),
- offsetof(struct my_resource_table, data_cout),
offsetof(struct my_resource_table, trace),
offsetof(struct my_resource_table, devmem0),
},
{ R5F_MEM_RPMSG_VRING0, 4096, R5F_RPMSG_VQ0_SIZE, 1, 0 },
{ R5F_MEM_RPMSG_VRING1, 4096, R5F_RPMSG_VQ1_SIZE, 2, 0 },
- {
- TYPE_CARVEOUT,
- R5F_MEM_IPC_DATA, 0,
- R5F_MEM_IPC_DATA_SIZE, 0, 0, "R5F_MEM_IPC_DATA",
- },
-
- {
- TYPE_CARVEOUT,
- R5F_MEM_TEXT, 0,
- R5F_MEM_TEXT_SIZE, 0, 0, "R5F_MEM_TEXT",
- },
-
- {
- TYPE_CARVEOUT,
- R5F_MEM_DATA, 0,
- R5F_MEM_DATA_SIZE, 0, 0, "R5F_MEM_DATA",
- },
-
{
TYPE_TRACE, TRACEBUFADDR, TRACEBUFSIZE, 0, "trace:r5f0",
},