summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTinku Mannan2019-08-20 13:23:59 -0500
committerTinku Mannan2019-08-20 13:54:42 -0500
commitf1b2df78d6d0958bc3bf1876753fae41ad26c919 (patch)
treee7156b077b2e5663112a6fceb94edfdc88020e79
parent01d6672075fecd5686a159bc3c83fc7c87259e6d (diff)
downloademac-lld-f1b2df78d6d0958bc3bf1876753fae41ad26c919.tar.gz
emac-lld-f1b2df78d6d0958bc3bf1876753fae41ad26c919.tar.xz
emac-lld-f1b2df78d6d0958bc3bf1876753fae41ad26c919.zip
j721e: icssg use case updates
Build existing icssg dual mac firmware for j721e to resolve build failure for test application. driver and unit test updates. makefile udpates to include i2c library Signed-off-by: Tinku Mannan <tmannan@ti.com>
-rw-r--r--build/makefile.mk2
-rw-r--r--src/v5/emac_drv_v5.c6
-rw-r--r--test/EmacLoopbackTest/j721e/cpsw/makefile2
-rw-r--r--test/EmacLoopbackTest/j721e/icssg/makefile2
-rw-r--r--test/EmacLoopbackTest/j721e/icssg/makefile_dualmac2
-rw-r--r--test/EmacLoopbackTest/test_utils_k3.c35
6 files changed, 33 insertions, 16 deletions
diff --git a/build/makefile.mk b/build/makefile.mk
index 15b17e0..19ebb14 100644
--- a/build/makefile.mk
+++ b/build/makefile.mk
@@ -60,7 +60,7 @@ ifeq ($(MAKERULEDIR), )
60endif 60endif
61include $(MAKERULEDIR)/common.mk 61include $(MAKERULEDIR)/common.mk
62 62
63ifeq ($(SOC), $(filter $(SOC), am65xx)) 63ifeq ($(SOC), $(filter $(SOC), am65xx j721e))
64ifeq ($(CORE), $(filter $(CORE), mpu1_0)) 64ifeq ($(CORE), $(filter $(CORE), mpu1_0))
65.PHONY: dualmac_fw 65.PHONY: dualmac_fw
66 66
diff --git a/src/v5/emac_drv_v5.c b/src/v5/emac_drv_v5.c
index 0c66976..4ad745b 100644
--- a/src/v5/emac_drv_v5.c
+++ b/src/v5/emac_drv_v5.c
@@ -770,11 +770,7 @@ emac_setup_udma_channel_rx(uint32_t portNum,EMAC_PER_CHANNEL_CFG_RX* pChCfg, uin
770 /* subChan[0] is default flow */ 770 /* subChan[0] is default flow */
771 chPrms.fqRingPrms.ringMem = pChCfg->subChan[0].freeRingMem[0]; 771 chPrms.fqRingPrms.ringMem = pChCfg->subChan[0].freeRingMem[0];
772 chPrms.fqRingPrms.elemCnt = pChCfg->subChan[0].elementCountFree[0]; 772 chPrms.fqRingPrms.elemCnt = pChCfg->subChan[0].elementCountFree[0];
773 #if defined(SOC_J721E)
774 chPrms.fqRingPrms.mode = CSL_RINGACC_RING_MODE_RING; /// TO DO: need to change for bringup
775 #else
776 chPrms.fqRingPrms.mode = CSL_RINGACC_RING_MODE_MESSAGE; 773 chPrms.fqRingPrms.mode = CSL_RINGACC_RING_MODE_MESSAGE;
777 #endif
778 chPrms.cqRingPrms.ringMem = pChCfg->subChan[0].compRingMem; 774 chPrms.cqRingPrms.ringMem = pChCfg->subChan[0].compRingMem;
779 chPrms.cqRingPrms.elemCnt = pChCfg->subChan[0].elementCountCompletion; 775 chPrms.cqRingPrms.elemCnt = pChCfg->subChan[0].elementCountCompletion;
780 776
@@ -1280,7 +1276,7 @@ static void emac_config_icssg_dual_mac_fw(uint32_t port_num, EMAC_HwAttrs_V5 *hw
1280 EMAC_ICSSG_DUALMAC_FW_CFG *pDmFwCfg; 1276 EMAC_ICSSG_DUALMAC_FW_CFG *pDmFwCfg;
1281 1277
1282 /* work-around to use PG1.0 firmware on J7 for bringup */ 1278 /* work-around to use PG1.0 firmware on J7 for bringup */
1283#ifdef DSOC_J721E 1279#ifdef SOC_J721E
1284 uintptr_t addr; 1280 uintptr_t addr;
1285 uint32_t tempVal = 0; 1281 uint32_t tempVal = 0;
1286 1282
diff --git a/test/EmacLoopbackTest/j721e/cpsw/makefile b/test/EmacLoopbackTest/j721e/cpsw/makefile
index 47b8ce3..d871325 100644
--- a/test/EmacLoopbackTest/j721e/cpsw/makefile
+++ b/test/EmacLoopbackTest/j721e/cpsw/makefile
@@ -15,7 +15,7 @@ endif
15INCLUDE_EXTERNAL_INTERFACES = bios xdc pdk 15INCLUDE_EXTERNAL_INTERFACES = bios xdc pdk
16 16
17# List all the components required by the application 17# List all the components required by the application
18COMP_LIST_COMMON = emac uart uart_console osal_tirtos csl board udma sciclient 18COMP_LIST_COMMON = emac uart uart_console osal_tirtos csl board udma sciclient i2c
19 19
20 20
21ifeq ($(CORE),$(filter $(CORE), mpu1_0)) 21ifeq ($(CORE),$(filter $(CORE), mpu1_0))
diff --git a/test/EmacLoopbackTest/j721e/icssg/makefile b/test/EmacLoopbackTest/j721e/icssg/makefile
index 0f6fb49..093f340 100644
--- a/test/EmacLoopbackTest/j721e/icssg/makefile
+++ b/test/EmacLoopbackTest/j721e/icssg/makefile
@@ -17,7 +17,7 @@ endif
17INCLUDE_EXTERNAL_INTERFACES = bios xdc pdk 17INCLUDE_EXTERNAL_INTERFACES = bios xdc pdk
18 18
19# List all the components required by the application 19# List all the components required by the application
20COMP_LIST_COMMON = emac uart uart_console osal_tirtos csl pruss board udma sciclient 20COMP_LIST_COMMON = emac uart uart_console osal_tirtos csl pruss board udma sciclient i2c
21 21
22ifeq ($(CORE),$(filter $(CORE), mpu1_0)) 22ifeq ($(CORE),$(filter $(CORE), mpu1_0))
23# Enable XDC build for application by providing XDC CFG File per core 23# Enable XDC build for application by providing XDC CFG File per core
diff --git a/test/EmacLoopbackTest/j721e/icssg/makefile_dualmac b/test/EmacLoopbackTest/j721e/icssg/makefile_dualmac
index 80b751d..fc45be5 100644
--- a/test/EmacLoopbackTest/j721e/icssg/makefile_dualmac
+++ b/test/EmacLoopbackTest/j721e/icssg/makefile_dualmac
@@ -18,7 +18,7 @@ endif
18INCLUDE_EXTERNAL_INTERFACES = bios xdc pdk 18INCLUDE_EXTERNAL_INTERFACES = bios xdc pdk
19 19
20# List all the components required by the application 20# List all the components required by the application
21COMP_LIST_COMMON = emac uart uart_console osal_tirtos csl pruss board udma sciclient 21COMP_LIST_COMMON = emac uart uart_console osal_tirtos csl pruss board udma sciclient i2c
22 22
23ifeq ($(CORE),$(filter $(CORE), mpu1_0)) 23ifeq ($(CORE),$(filter $(CORE), mpu1_0))
24# Enable XDC build for application by providing XDC CFG File per core 24# Enable XDC build for application by providing XDC CFG File per core
diff --git a/test/EmacLoopbackTest/test_utils_k3.c b/test/EmacLoopbackTest/test_utils_k3.c
index f365fec..b8ccd6a 100644
--- a/test/EmacLoopbackTest/test_utils_k3.c
+++ b/test/EmacLoopbackTest/test_utils_k3.c
@@ -71,6 +71,11 @@
71#include <ti/drv/uart/UART_stdio.h> 71#include <ti/drv/uart/UART_stdio.h>
72#include <ti/board/board.h> 72#include <ti/board/board.h>
73 73
74#ifdef SOC_J721E
75#include <ti/board/src/j721e_evm/include/board_pinmux.h>
76#include <ti/board/src/j721e_evm/include/board_control.h>
77#endif
78
74#ifdef EMAC_TEST_APP_ICSSG 79#ifdef EMAC_TEST_APP_ICSSG
75/* PRUSS Driver Header File. */ 80/* PRUSS Driver Header File. */
76#include <ti/drv/pruss/pruicss.h> 81#include <ti/drv/pruss/pruicss.h>
@@ -90,6 +95,9 @@ extern int port_en[];
90 ************************** Global Variables ************************** 95 ************************** Global Variables **************************
91 **********************************************************************/ 96 **********************************************************************/
92 97
98#ifdef SOC_J721E
99uint8_t icss_tx_port_queue[2][100352] __attribute__ ((aligned (UDMA_CACHELINE_ALIGNMENT))) __attribute__ ((section (".bss:emac_ocmc_mem")));
100#else
93#ifdef EMAC_TEST_APP_WITHOUT_DDR 101#ifdef EMAC_TEST_APP_WITHOUT_DDR
94/* DDR less test, can only test with 2 ports due to msmc memory constraints */ 102/* DDR less test, can only test with 2 ports due to msmc memory constraints */
95uint8_t icss_tx_port_queue[1][100352] __attribute__ ((aligned (UDMA_CACHELINE_ALIGNMENT))) __attribute__ ((section (".bss:emac_msmc_mem"))); 103uint8_t icss_tx_port_queue[1][100352] __attribute__ ((aligned (UDMA_CACHELINE_ALIGNMENT))) __attribute__ ((section (".bss:emac_msmc_mem")));
@@ -100,6 +108,7 @@ uint8_t icss_tx_port_queue[1][100352] __attribute__ ((aligned (UDMA_CACHELINE_AL
100uint8_t icss_tx_port_queue[3][100352] __attribute__ ((aligned (UDMA_CACHELINE_ALIGNMENT))) __attribute__ ((section (".bss:emac_msmc_mem"))); 108uint8_t icss_tx_port_queue[3][100352] __attribute__ ((aligned (UDMA_CACHELINE_ALIGNMENT))) __attribute__ ((section (".bss:emac_msmc_mem")));
101#endif 109#endif
102#endif 110#endif
111#endif
103 112
104uint8_t sequenceNumber = 0; 113uint8_t sequenceNumber = 0;
105 114
@@ -1307,11 +1316,7 @@ int32_t app_test_emac_open(uint32_t mode)
1307#endif 1316#endif
1308 open_cfg.master_core_flag = 1; 1317 open_cfg.master_core_flag = 1;
1309 open_cfg.max_pkt_size = APP_EMAC_MAX_PKT_SIZE; 1318 open_cfg.max_pkt_size = APP_EMAC_MAX_PKT_SIZE;
1310#if defined(SOC_J721E) && defined(SIMULATOR)
1311 open_cfg.mdio_flag = 0;
1312#else
1313 open_cfg.mdio_flag = 1; 1319 open_cfg.mdio_flag = 1;
1314#endif
1315 open_cfg.num_of_chans = 1; 1320 open_cfg.num_of_chans = 1;
1316 open_cfg.udmaHandle = (void*)gDrvHandle; 1321 open_cfg.udmaHandle = (void*)gDrvHandle;
1317 1322
@@ -1534,7 +1539,7 @@ void app_test_task_benchmark(UArg arg0, UArg arg1)
1534 while(1); 1539 while(1);
1535 } 1540 }
1536 UART_printf("Board_init success benchmark\n"); 1541 UART_printf("Board_init success benchmark\n");
1537#if defined(SOC_J721E) && defined(SIMULATOR) 1542#if defined(SOC_J721E)
1538#else 1543#else
1539 if (app_detect_interposer_card() == TRUE) 1544 if (app_detect_interposer_card() == TRUE)
1540 { 1545 {
@@ -1552,8 +1557,10 @@ void app_test_task_benchmark(UArg arg0, UArg arg1)
1552 PRUICSS_socGetInitCfg(&prussCfg); 1557 PRUICSS_socGetInitCfg(&prussCfg);
1553 prussHandle[0] = PRUICSS_create((PRUICSS_Config*)prussCfg,PRUICCSS_INSTANCE_ONE); 1558 prussHandle[0] = PRUICSS_create((PRUICSS_Config*)prussCfg,PRUICCSS_INSTANCE_ONE);
1554 prussHandle[1] = PRUICSS_create((PRUICSS_Config*)prussCfg,PRUICCSS_INSTANCE_TWO); 1559 prussHandle[1] = PRUICSS_create((PRUICSS_Config*)prussCfg,PRUICCSS_INSTANCE_TWO);
1560#if defined(SOC_AM65XX)
1555 prussHandle[2] = PRUICSS_create((PRUICSS_Config*)prussCfg,PRUICCSS_INSTANCE_THREE); 1561 prussHandle[2] = PRUICSS_create((PRUICSS_Config*)prussCfg,PRUICCSS_INSTANCE_THREE);
1556#endif 1562#endif
1563#endif
1557 1564
1558 app_test_udma_init(); 1565 app_test_udma_init();
1559 1566
@@ -1584,7 +1591,19 @@ void app_test_task_verify_ut_dual_mac_cpsw(UArg arg0, UArg arg1)
1584#ifdef EMAC_TEST_APP_WITHOUT_DDR 1591#ifdef EMAC_TEST_APP_WITHOUT_DDR
1585 Task_sleep(2000); 1592 Task_sleep(2000);
1586#endif 1593#endif
1587 Board_initCfg cfg = BOARD_INIT_UART_STDIO | BOARD_INIT_PINMUX_CONFIG | BOARD_INIT_MODULE_CLOCK | BOARD_INIT_ICSS_ETH_PHY | BOARD_INIT_ETH_PHY; 1594#ifdef EMAC_TEST_APP_ICSSG
1595 Board_initCfg cfg = BOARD_INIT_UART_STDIO | BOARD_INIT_PINMUX_CONFIG | BOARD_INIT_MODULE_CLOCK | BOARD_INIT_ICSS_ETH_PHY | BOARD_INIT_ETH_PHY;
1596#else
1597 Board_initCfg cfg = BOARD_INIT_UART_STDIO | BOARD_INIT_PINMUX_CONFIG | BOARD_INIT_MODULE_CLOCK | BOARD_INIT_ETH_PHY;
1598#endif
1599#if defined(SOC_J721E)
1600 /* PINMUX config of GESI for ICSSG */
1601 Board_PinmuxConfig_t gesiIcssgPinmux;
1602 Board_pinmuxGetCfg(&gesiIcssgPinmux);
1603 gesiIcssgPinmux.autoCfg = BOARD_PINMUX_CUSTOM;
1604 gesiIcssgPinmux.gesiExp = BOARD_PINMUX_GESI_ICSSG;
1605 Board_pinmuxSetCfg(&gesiIcssgPinmux);
1606#endif
1588 boardInitStatus = Board_init(cfg); 1607 boardInitStatus = Board_init(cfg);
1589 if (boardInitStatus !=BOARD_SOK) 1608 if (boardInitStatus !=BOARD_SOK)
1590 { 1609 {
@@ -1593,7 +1612,7 @@ void app_test_task_verify_ut_dual_mac_cpsw(UArg arg0, UArg arg1)
1593 } 1612 }
1594 UART_printf("Board_init success for UT\n"); 1613 UART_printf("Board_init success for UT\n");
1595 1614
1596#if defined(SOC_J721E) && defined(SIMULATOR) 1615#if defined(SOC_J721E)
1597#else 1616#else
1598 if (app_detect_interposer_card() == TRUE) 1617 if (app_detect_interposer_card() == TRUE)
1599 { 1618 {
@@ -1611,8 +1630,10 @@ void app_test_task_verify_ut_dual_mac_cpsw(UArg arg0, UArg arg1)
1611 PRUICSS_socGetInitCfg(&prussCfg); 1630 PRUICSS_socGetInitCfg(&prussCfg);
1612 prussHandle[0] = PRUICSS_create((PRUICSS_Config*)prussCfg,PRUICCSS_INSTANCE_ONE); 1631 prussHandle[0] = PRUICSS_create((PRUICSS_Config*)prussCfg,PRUICCSS_INSTANCE_ONE);
1613 prussHandle[1] = PRUICSS_create((PRUICSS_Config*)prussCfg,PRUICCSS_INSTANCE_TWO); 1632 prussHandle[1] = PRUICSS_create((PRUICSS_Config*)prussCfg,PRUICCSS_INSTANCE_TWO);
1633#if defined(SOC_AM65XX)
1614 prussHandle[2] = PRUICSS_create((PRUICSS_Config*)prussCfg,PRUICCSS_INSTANCE_THREE); 1634 prussHandle[2] = PRUICSS_create((PRUICSS_Config*)prussCfg,PRUICCSS_INSTANCE_THREE);
1615#endif 1635#endif
1636#endif
1616 1637
1617 app_test_udma_init(); 1638 app_test_udma_init();
1618 1639