summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEvan Lojewski <github@meklort.com>2019-05-04 19:24:34 -0600
committerEvan Lojewski <github@meklort.com>2019-05-04 19:24:34 -0600
commitb1adb232ee50fa1e936508f22adc6cafd6115339 (patch)
tree7b9e2993d22ea89457acc5f669691e449e631972
parent59f8d0ac2cf869d4af63666b381a582a4c2d65ad (diff)
downloadbcm5719-ortega-b1adb232ee50fa1e936508f22adc6cafd6115339.tar.gz
bcm5719-ortega-b1adb232ee50fa1e936508f22adc6cafd6115339.zip
Reset NCSI state on reloading firmware.
-rw-r--r--libs/NCSI/include/NCSI.h2
-rw-r--r--libs/NCSI/ncsi.c8
-rw-r--r--libs/Network/rx.c5
3 files changed, 12 insertions, 3 deletions
diff --git a/libs/NCSI/include/NCSI.h b/libs/NCSI/include/NCSI.h
index edd36a8..a26ac51 100644
--- a/libs/NCSI/include/NCSI.h
+++ b/libs/NCSI/include/NCSI.h
@@ -66,4 +66,6 @@ void handleNCSIFrame(NetworkFrame_t* frame);
void NCSI_TxPacket(uint32_t* packet, uint32_t packet_len);
+void NCSI_init(void);
+
#endif /* NCSI_H */ \ No newline at end of file
diff --git a/libs/NCSI/ncsi.c b/libs/NCSI/ncsi.c
index d490c94..e2c3b68 100644
--- a/libs/NCSI/ncsi.c
+++ b/libs/NCSI/ncsi.c
@@ -667,5 +667,13 @@ void sendNCSIResponse(uint8_t InstanceID, uint8_t channelID, uint16_t controlID,
NCSI_TxPacket(gResponseFrame.words, packetSize);
}
+void NCSI_init(void)
+{
+ for(int i = 0; i < ARRAY_ELEMENTS(gPackageState.channel); i++)
+ {
+ gPackageState.channel[i].shm->NcsiChannelInfo.bits.Ready = false;
+ }
+}
+
diff --git a/libs/Network/rx.c b/libs/Network/rx.c
index 88f8bea..c8383df 100644
--- a/libs/Network/rx.c
+++ b/libs/Network/rx.c
@@ -154,9 +154,8 @@ bool Network_PassthroughRxPatcket(void)
// int tailid = rxbuf.bits.Tail;
int blockid = rxbuf.bits.Head;
- do
+ while(count--)
{
- count--;
// printf("Block at %x\n", blockid);
RegRX_PORTIn_t* block = (RegRX_PORTIn_t*)&RX_PORT.In[RX_PORT_IN_ALL_BLOCK_WORDS * blockid];
// printf("Control %x\n", (uint32_t)block[0].r32);
@@ -210,7 +209,7 @@ bool Network_PassthroughRxPatcket(void)
blockid = control.bits.next_block;
- } while(count);
+ }
// Mark the register as read.
rxbuf.r32 |= (1 << 31);
OpenPOWER on IntegriCloud