lib: Add support for AM64x SoCs master
authorSuman Anna <s-anna@ti.com>
Wed, 9 Dec 2020 23:31:44 +0000 (17:31 -0600)
committerSuman Anna <s-anna@ti.com>
Wed, 9 Dec 2020 23:36:35 +0000 (17:36 -0600)
The TI K3 AM64x SoCs have two MAIN R5FSS clusters with dual R5F
cores. The R5FSS clusters on AM64x SoCs can support two modes that
affects the number of usable R5F cores. The conventional 'Split-mode'
allows both the R5F cores to run different applications/firmwares.
A new 'Single-CPU' allows only Core0 to run an application, but
combines the Tightly-Coupled Memory (TCM) from Core1 with Core0
effectively doubling the available TCM memory.

Add the support for these SoCs in the ti_rpmsg_char library. The
library version is also bumped up to 0.3.0 to account for the added
new SoC support.

Signed-off-by: Suman Anna <s-anna@ti.com>
configure.ac
src/Makefile.am
src/soc.c

index ec87efd460e40e21d72dc304e82b4f20902be9a3..d5c239e91c0cf08f6b961b8987ad45c61015bbb4 100644 (file)
@@ -4,7 +4,7 @@
 AC_PREREQ([2.69])
 
 # Initilize autoconf
-AC_INIT([ti-rpmsg-char], [0.2.0], [s-anna@ti.com])
+AC_INIT([ti-rpmsg-char], [0.3.0], [s-anna@ti.com])
 
 # Check common src files to ensure integrity of the package
 AC_CONFIG_SRCDIR([src/rpmsg_char.c])
index 0ad2f1638c30e3d0d7f87650bc5b339215a1d05c..9faa1e29d91b91ca6e60717a97ad579130e40005 100644 (file)
@@ -8,4 +8,4 @@ libti_rpmsg_char_la_SOURCES = rpmsg_char.c soc.c utils.c
 
 libti_rpmsg_char_la_CFLAGS = -I$(top_srcdir)/include
 
-libti_rpmsg_char_la_LDFLAGS = -version-number 0:2:0 -no-undefined
+libti_rpmsg_char_la_LDFLAGS = -version-number 0:3:0 -no-undefined
index 298e253b341f2508ad8112ccd0c7700374882fb0..df674f45a2759adea7c88609493c064e13ca9a1c 100644 (file)
--- a/src/soc.c
+++ b/src/soc.c
@@ -42,7 +42,7 @@
 #include "rpmsg_char_internal.h"
 
 /* Increment this whenever new SoC data is added */
-#define NUM_SOC_FAMILY 3
+#define NUM_SOC_FAMILY 4
 
 struct soc_data {
        const char *family_name;
@@ -77,6 +77,14 @@ const struct rproc_map j7200_map[] = {
        { .id = R5F_MAIN0_1, .rproc_name = "5d00000.r5f",  },
 };
 
+/* TI K3 AM64x SoCs */
+const struct rproc_map am64x_map[] = {
+       { .id = R5F_MAIN0_0, .rproc_name = "78000000.r5f",  },
+       { .id = R5F_MAIN0_1, .rproc_name = "78200000.r5f",  },
+       { .id = R5F_MAIN1_0, .rproc_name = "78400000.r5f",  },
+       { .id = R5F_MAIN1_1, .rproc_name = "78600000.r5f",  },
+};
+
 const struct soc_data socs[NUM_SOC_FAMILY] = {
        {
                .family_name = "AM65X",
@@ -93,6 +101,11 @@ const struct soc_data socs[NUM_SOC_FAMILY] = {
                .map = j7200_map,
                .num_rprocs = (sizeof(j7200_map) / sizeof(struct rproc_map)),
        },
+       {
+               .family_name = "AM64X",
+               .map = am64x_map,
+               .num_rprocs = (sizeof(am64x_map) / sizeof(struct rproc_map)),
+       },
 };
 
 int _rpmsg_char_find_soc_family(const char *name, struct soc_rprocs *soc)