lib: Add support for J784S4 SoCs
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 1e35014292046ea81831f17c9c8a0ee889fa4823..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
@@ -66,6 +66,10 @@ enum rproc_id {
        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 49e3755f53a810504d60a904a778e8cc2d9f0fb5..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:4:1 -no-undefined
+libti_rpmsg_char_la_LDFLAGS = -version-number 0:5:0 -no-undefined
index f8332eec5f57cbc2679522e95dd26b07143848e5..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 6
+#define NUM_SOC_FAMILY 7
 
 struct soc_data {
        const char *family_name;
@@ -98,11 +98,28 @@ const struct rproc_map j721s2_map[] = {
        { .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",
@@ -134,6 +151,11 @@ const struct soc_data socs[NUM_SOC_FAMILY] = {
                .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)