From bceca7ee0530d963b2a5e7d91b180f657d311a58 Mon Sep 17 00:00:00 2001 From: microcris <31326314+microcris@users.noreply.github.com> Date: Thu, 10 Aug 2023 09:21:02 +0100 Subject: [PATCH 1/7] Update NetworkInterface.c The changes that I'm proposing are to make the driver to work in case of cable disconnection. In prvEMACHandlerTask, when xSendEventStructToIPTask, we have to pass network interface or it will fail the assertion in xSendEventStructToIPTask "configASSERT( pxInterface != NULL )". In pxNXP1064_NetworkInterfaceInitialise, if xWaitPHY fails (for instance, the cable is not connected), the switch case will break without doing nothing and the prvEMACHandlerTask will be blocked waiting for the notification. We have to unblock it to try again in case of failure in xEMAC_WaitPHY. --- .../NetworkInterface/NXP1060/NetworkInterface.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/source/portable/NetworkInterface/NXP1060/NetworkInterface.c b/source/portable/NetworkInterface/NXP1060/NetworkInterface.c index 01784885a6..bfe637191e 100644 --- a/source/portable/NetworkInterface/NXP1060/NetworkInterface.c +++ b/source/portable/NetworkInterface/NXP1060/NetworkInterface.c @@ -347,6 +347,10 @@ static BaseType_t prvNXP1060_NetworkInterfaceInitialise( NetworkInterface_t * px if( xStatus != kStatus_Success ) { + if(!xFirstCall) + { + xTaskNotify(receiveTaskHandle, DRIVER_READY, eSetValueWithOverwrite); + } break; } else @@ -370,7 +374,7 @@ static BaseType_t prvNXP1060_NetworkInterfaceInitialise( NetworkInterface_t * px xTaskCreated = xTaskCreate( prvEMACHandlerTask, "EMAC-Handler", configMINIMAL_STACK_SIZE * 3, - NULL, + pxInterface, configMAX_PRIORITIES - 1, &receiveTaskHandle ); @@ -505,7 +509,7 @@ static void prvEMACHandlerTask( void * parameter ) if( ulTaskNotifyTake( pdTRUE, pdMS_TO_TICKS( 500 ) ) == pdFALSE ) { /* No RX packets for a bit so check for a link. */ - const IPStackEvent_t xNetworkEventDown = { .eEventType = eNetworkDownEvent, .pvData = NULL }; + const IPStackEvent_t xNetworkEventDown = { .eEventType = eNetworkDownEvent, .pvData = parameter }; do { @@ -568,13 +572,13 @@ static void prvEMACHandlerTask( void * parameter ) break; case kStatus_ENET_RxFrameError: /* Received an error frame. Read & drop it */ - PRINTF( "RX Receive Error\n" ); + FreeRTOS_printf( "RX Receive Error\n" ); ENET_ReadFrame( ethernetifLocal->base, &( ethernetifLocal->handle ), NULL, 0, 0, NULL ); /* Not sure if a trace is required. The MAC had an error and needed to dump bytes */ break; default: - PRINTF( "RX Receive default" ); + FreeRTOS_printf( "RX Receive default" ); break; } } From 6d2ab53cb44cd9ae155884807bee7e9a69590375 Mon Sep 17 00:00:00 2001 From: microcris <31326314+microcris@users.noreply.github.com> Date: Thu, 10 Aug 2023 11:43:30 +0100 Subject: [PATCH 2/7] Update NetworkInterface.c uncrustify code --- .../portable/NetworkInterface/NXP1060/NetworkInterface.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/source/portable/NetworkInterface/NXP1060/NetworkInterface.c b/source/portable/NetworkInterface/NXP1060/NetworkInterface.c index bfe637191e..a5fe588c60 100644 --- a/source/portable/NetworkInterface/NXP1060/NetworkInterface.c +++ b/source/portable/NetworkInterface/NXP1060/NetworkInterface.c @@ -347,10 +347,10 @@ static BaseType_t prvNXP1060_NetworkInterfaceInitialise( NetworkInterface_t * px if( xStatus != kStatus_Success ) { - if(!xFirstCall) - { - xTaskNotify(receiveTaskHandle, DRIVER_READY, eSetValueWithOverwrite); - } + if( !xFirstCall ) + { + xTaskNotify( receiveTaskHandle, DRIVER_READY, eSetValueWithOverwrite ); + } break; } else From 2eadf5c09fa341c1723eb21e0325b607e7af78f4 Mon Sep 17 00:00:00 2001 From: microcris <31326314+microcris@users.noreply.github.com> Date: Thu, 10 Aug 2023 13:14:00 +0100 Subject: [PATCH 3/7] Update NetworkInterface.c Correct indentation --- .../portable/NetworkInterface/NXP1060/NetworkInterface.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/source/portable/NetworkInterface/NXP1060/NetworkInterface.c b/source/portable/NetworkInterface/NXP1060/NetworkInterface.c index a5fe588c60..390eea4bad 100644 --- a/source/portable/NetworkInterface/NXP1060/NetworkInterface.c +++ b/source/portable/NetworkInterface/NXP1060/NetworkInterface.c @@ -347,10 +347,10 @@ static BaseType_t prvNXP1060_NetworkInterfaceInitialise( NetworkInterface_t * px if( xStatus != kStatus_Success ) { - if( !xFirstCall ) - { - xTaskNotify( receiveTaskHandle, DRIVER_READY, eSetValueWithOverwrite ); - } + if( !xFirstCall ) + { + xTaskNotify( receiveTaskHandle, DRIVER_READY, eSetValueWithOverwrite ); + } break; } else From 43bdb48bfd22465d51f69b4087b1746de30e703c Mon Sep 17 00:00:00 2001 From: microcris <31326314+microcris@users.noreply.github.com> Date: Thu, 10 Aug 2023 13:17:31 +0100 Subject: [PATCH 4/7] Update NetworkInterface.c Correct indentation --- .../NetworkInterface/NXP1060/NetworkInterface.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/source/portable/NetworkInterface/NXP1060/NetworkInterface.c b/source/portable/NetworkInterface/NXP1060/NetworkInterface.c index 390eea4bad..ebddc66b1f 100644 --- a/source/portable/NetworkInterface/NXP1060/NetworkInterface.c +++ b/source/portable/NetworkInterface/NXP1060/NetworkInterface.c @@ -346,12 +346,12 @@ static BaseType_t prvNXP1060_NetworkInterfaceInitialise( NetworkInterface_t * px } if( xStatus != kStatus_Success ) - { - if( !xFirstCall ) - { - xTaskNotify( receiveTaskHandle, DRIVER_READY, eSetValueWithOverwrite ); - } - break; + { + if( !xFirstCall ) + { + xTaskNotify( receiveTaskHandle, DRIVER_READY, eSetValueWithOverwrite ); + } + break; } else { From 7621b80043d9416560eaaeccee6a4a2c9d7c7da5 Mon Sep 17 00:00:00 2001 From: microcris <31326314+microcris@users.noreply.github.com> Date: Thu, 10 Aug 2023 15:20:02 +0100 Subject: [PATCH 5/7] Update NetworkInterface.c fix indentation... again --- .../NetworkInterface/NXP1060/NetworkInterface.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/source/portable/NetworkInterface/NXP1060/NetworkInterface.c b/source/portable/NetworkInterface/NXP1060/NetworkInterface.c index ebddc66b1f..37f24f1c5a 100644 --- a/source/portable/NetworkInterface/NXP1060/NetworkInterface.c +++ b/source/portable/NetworkInterface/NXP1060/NetworkInterface.c @@ -346,12 +346,13 @@ static BaseType_t prvNXP1060_NetworkInterfaceInitialise( NetworkInterface_t * px } if( xStatus != kStatus_Success ) - { - if( !xFirstCall ) - { - xTaskNotify( receiveTaskHandle, DRIVER_READY, eSetValueWithOverwrite ); - } - break; + { + if( !xFirstCall ) + { + xTaskNotify( receiveTaskHandle, DRIVER_READY, eSetValueWithOverwrite ); + } + + break; } else { From a23c1ad48cd49a7b9bc240220f000e4f244cd766 Mon Sep 17 00:00:00 2001 From: microcris <31326314+microcris@users.noreply.github.com> Date: Wed, 16 Aug 2023 20:18:27 +0100 Subject: [PATCH 6/7] Update source/portable/NetworkInterface/NXP1060/NetworkInterface.c Co-authored-by: ActoryOu --- source/portable/NetworkInterface/NXP1060/NetworkInterface.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/portable/NetworkInterface/NXP1060/NetworkInterface.c b/source/portable/NetworkInterface/NXP1060/NetworkInterface.c index 37f24f1c5a..2f2bf91ef3 100644 --- a/source/portable/NetworkInterface/NXP1060/NetworkInterface.c +++ b/source/portable/NetworkInterface/NXP1060/NetworkInterface.c @@ -579,7 +579,7 @@ static void prvEMACHandlerTask( void * parameter ) break; default: - FreeRTOS_printf( "RX Receive default" ); + FreeRTOS_printf( ( "RX Receive default" ) ); break; } } From 8e76a737f7821019b089b68f0d9b1e76079ad61a Mon Sep 17 00:00:00 2001 From: microcris <31326314+microcris@users.noreply.github.com> Date: Thu, 17 Aug 2023 04:25:04 +0100 Subject: [PATCH 7/7] Update source/portable/NetworkInterface/NXP1060/NetworkInterface.c Co-authored-by: ActoryOu --- source/portable/NetworkInterface/NXP1060/NetworkInterface.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/portable/NetworkInterface/NXP1060/NetworkInterface.c b/source/portable/NetworkInterface/NXP1060/NetworkInterface.c index 2f2bf91ef3..e2b8ea0a8a 100644 --- a/source/portable/NetworkInterface/NXP1060/NetworkInterface.c +++ b/source/portable/NetworkInterface/NXP1060/NetworkInterface.c @@ -573,7 +573,7 @@ static void prvEMACHandlerTask( void * parameter ) break; case kStatus_ENET_RxFrameError: /* Received an error frame. Read & drop it */ - FreeRTOS_printf( "RX Receive Error\n" ); + FreeRTOS_printf( ( "RX Receive Error\n" ) ); ENET_ReadFrame( ethernetifLocal->base, &( ethernetifLocal->handle ), NULL, 0, 0, NULL ); /* Not sure if a trace is required. The MAC had an error and needed to dump bytes */ break;