diff options
Diffstat (limited to 'platform/linux-keystone2')
-rw-r--r-- | platform/linux-keystone2/Makefile.am | 1 | ||||
-rw-r--r-- | platform/linux-keystone2/include/odp/plat/ti_mcsdk.h | 1 | ||||
-rw-r--r-- | platform/linux-keystone2/mcsdk/mcsdk_cpsw.c | 27 | ||||
-rw-r--r-- | platform/linux-keystone2/mcsdk/mcsdk_init.c | 7 |
4 files changed, 36 insertions, 0 deletions
diff --git a/platform/linux-keystone2/Makefile.am b/platform/linux-keystone2/Makefile.am index bd52f2d7..5ba62f37 100644 --- a/platform/linux-keystone2/Makefile.am +++ b/platform/linux-keystone2/Makefile.am @@ -161,6 +161,7 @@ __LIB__libodp_la_SOURCES = \ mcsdk/cppi_flow.c \ mcsdk/mcsdk_init.c \ mcsdk/mcsdk_navig.c \ + mcsdk/mcsdk_cpsw.c \ mcsdk/mcsdk_rmclient.c \ mcsdk/pa_lut_entry.c \ mcsdk/sockutils.c \ diff --git a/platform/linux-keystone2/include/odp/plat/ti_mcsdk.h b/platform/linux-keystone2/include/odp/plat/ti_mcsdk.h index d0bc5afd..e3cada8e 100644 --- a/platform/linux-keystone2/include/odp/plat/ti_mcsdk.h +++ b/platform/linux-keystone2/include/odp/plat/ti_mcsdk.h @@ -42,6 +42,7 @@ int mcsdk_global_init(void); int mcsdk_global_term(void); int mcsdk_local_init(int thread_id); int mcsdk_cppi_init(void); +int mcsdk_cpsw_init(void); int mcsdk_qmss_init(int max_descriptors); int mcsdk_qmss_start(void); int mcsdk_qmss_exit(void); diff --git a/platform/linux-keystone2/mcsdk/mcsdk_cpsw.c b/platform/linux-keystone2/mcsdk/mcsdk_cpsw.c new file mode 100644 index 00000000..bf1d5463 --- /dev/null +++ b/platform/linux-keystone2/mcsdk/mcsdk_cpsw.c @@ -0,0 +1,27 @@ +#include <ti/csl/soc.h> +#include <ti/csl/csl.h> +#include <ti/csl/cslr_cpsw.h> +#include <odp/plat/ti_mcsdk.h> + +#define hCpsw5gfRegs_phys (CSL_NETCP_CFG_REGS + 0x00090800) + +/* + * Holds the base address of ports. + */ +void *cpswPortBaseAddr[4]; + +int mcsdk_cpsw_init(void) +{ + CSL_Cpsw_5gfRegs *hCpsw5gfRegs; + + hCpsw5gfRegs = + (CSL_Cpsw_5gfRegs *)(void *)((uint8_t *)odp_vm_info.passCfgVaddr + + (hCpsw5gfRegs_phys - CSL_NETCP_CFG_REGS)); + + cpswPortBaseAddr[0] = &hCpsw5gfRegs->PORT1_INFO; + cpswPortBaseAddr[1] = &hCpsw5gfRegs->PORT2_INFO; + cpswPortBaseAddr[2] = &hCpsw5gfRegs->PORT3_INFO; + cpswPortBaseAddr[3] = &hCpsw5gfRegs->PORT4_INFO; + + return 1; +} diff --git a/platform/linux-keystone2/mcsdk/mcsdk_init.c b/platform/linux-keystone2/mcsdk/mcsdk_init.c index f356643a..2cc328e1 100644 --- a/platform/linux-keystone2/mcsdk/mcsdk_init.c +++ b/platform/linux-keystone2/mcsdk/mcsdk_init.c @@ -669,6 +669,13 @@ int mcsdk_global_init(void) odp_pr_err("PA LUT init failed\n"); return -1; } + + result = mcsdk_cpsw_init(); + if (result != 1) { + odp_pr_err("CPSW init failed\n"); + return -1; + } + odp_pr_dbg("returned from netapip_startNwal\n"); return 0; } |