lib: Add support for J784S4 SoCs master
authorHari Nagalla <hnagalla@ti.com>
Fri, 17 Jun 2022 14:43:13 +0000 (09:43 -0500)
committerHari Nagalla <hnagalla@ti.com>
Fri, 17 Jun 2022 14:43:18 +0000 (09:43 -0500)
J784S4 SoC has three dual core R5F sub systems in main domain and
four C71 DSPs in main compute cluster. The library is updated
accordingly to support J784S4 SoCs.

The library version is bumped to 0.5.0 to account for the addition of
the J784S4 SoCs to the library.

Signed-off-by: Hari Nagalla <hnagalla@ti.com>
include/rproc_id.h
src/Makefile.am
src/soc.c

index 4beee88da62be5af656db1388a1c5f2840cd8d1b..e74d4ae773c0a3ba21a478fa75fc45bf7751f542 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2020 Texas Instruments Incorporated - https://www.ti.com
+ * Copyright (c) 2020-2022 Texas Instruments Incorporated - https://www.ti.com
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions
@@ -65,6 +65,11 @@ enum rproc_id {
        DSP_C66_1,
        DSP_C71_0,
        M4F_MCU0_0,
+       DSP_C71_1,
+       R5F_MAIN2_0,
+       R5F_MAIN2_1,
+       DSP_C71_2,
+       DSP_C71_3,
        RPROC_ID_MAX,
 };
 
index 496aa6b40fad55760a43e0a4bfab08882ad1e1b0..693b037585b24f43011de41cee27c5e9d283950e 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:3:2 -no-undefined
+libti_rpmsg_char_la_LDFLAGS = -version-number 0:5:0 -no-undefined
index 6f2deba970f03e43bdacd48f67342e6c6f86206d..dc21f9bc381fea28cbb3e44550ecdb57f55fe37f 100644 (file)
--- a/src/soc.c
+++ b/src/soc.c
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2020 Texas Instruments Incorporated - https://www.ti.com
+ * Copyright (c) 2020-2022 Texas Instruments Incorporated - https://www.ti.com
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions
@@ -42,7 +42,7 @@
 #include "rpmsg_char_internal.h"
 
 /* Increment this whenever new SoC data is added */
-#define NUM_SOC_FAMILY 5
+#define NUM_SOC_FAMILY 7
 
 struct soc_data {
        const char *family_name;
@@ -86,11 +86,40 @@ const struct rproc_map am64x_map[] = {
        { .id = M4F_MCU0_0,  .rproc_name = "5000000.m4fss",  },
 };
 
+/* TI K3 J721S2 SoCs */
+const struct rproc_map j721s2_map[] = {
+       { .id = R5F_MCU0_0,  .rproc_name = "41000000.r5f",   },
+       { .id = R5F_MCU0_1,  .rproc_name = "41400000.r5f",   },
+       { .id = R5F_MAIN0_0, .rproc_name = "5c00000.r5f",    },
+       { .id = R5F_MAIN0_1, .rproc_name = "5d00000.r5f",    },
+       { .id = R5F_MAIN1_0, .rproc_name = "5e00000.r5f",    },
+       { .id = R5F_MAIN1_1, .rproc_name = "5f00000.r5f",    },
+       { .id = DSP_C71_0,   .rproc_name = "64800000.dsp",   },
+       { .id = DSP_C71_1,   .rproc_name = "65800000.dsp",   },
+};
+
+
 /* TI K3 AM62x SoCs */
 const struct rproc_map am62x_map[] = {
        { .id = M4F_MCU0_0,  .rproc_name = "5000000.m4fss",  },
 };
 
+/* TI K3 J784S4 SoCs */
+const struct rproc_map j784s4_map[] = {
+       { .id = R5F_MCU0_0,  .rproc_name = "41000000.r5f",   },
+       { .id = R5F_MCU0_1,  .rproc_name = "41400000.r5f",   },
+       { .id = R5F_MAIN0_0, .rproc_name = "5c00000.r5f",    },
+       { .id = R5F_MAIN0_1, .rproc_name = "5d00000.r5f",    },
+       { .id = R5F_MAIN1_0, .rproc_name = "5e00000.r5f",    },
+       { .id = R5F_MAIN1_1, .rproc_name = "5f00000.r5f",    },
+       { .id = R5F_MAIN2_0, .rproc_name = "5900000.r5f",    },
+       { .id = R5F_MAIN2_1, .rproc_name = "5a00000.r5f",    },
+       { .id = DSP_C71_0,   .rproc_name = "64800000.dsp",   },
+       { .id = DSP_C71_1,   .rproc_name = "65800000.dsp",   },
+       { .id = DSP_C71_2,   .rproc_name = "66800000.dsp",   },
+       { .id = DSP_C71_3,   .rproc_name = "67800000.dsp",   },
+};
+
 const struct soc_data socs[NUM_SOC_FAMILY] = {
        {
                .family_name = "AM65X",
@@ -112,11 +141,21 @@ const struct soc_data socs[NUM_SOC_FAMILY] = {
                .map = am64x_map,
                .num_rprocs = (sizeof(am64x_map) / sizeof(struct rproc_map)),
        },
+       {
+               .family_name = "J721S2",
+               .map = j721s2_map,
+               .num_rprocs = (sizeof(j721s2_map) / sizeof(struct rproc_map)),
+       },
        {
                .family_name = "AM62X",
                .map = am62x_map,
                .num_rprocs = (sizeof(am62x_map) / sizeof(struct rproc_map)),
        },
+       {
+               .family_name = "J784S4",
+               .map = j784s4_map,
+               .num_rprocs = (sizeof(j784s4_map) / sizeof(struct rproc_map)),
+       },
 };
 
 int _rpmsg_char_find_soc_family(const char *name, struct soc_rprocs *soc)