diff options
author | Evan Lojewski <github@meklort.com> | 2019-05-04 19:24:34 -0600 |
---|---|---|
committer | Evan Lojewski <github@meklort.com> | 2019-05-04 19:24:34 -0600 |
commit | b1adb232ee50fa1e936508f22adc6cafd6115339 (patch) | |
tree | 7b9e2993d22ea89457acc5f669691e449e631972 | |
parent | 59f8d0ac2cf869d4af63666b381a582a4c2d65ad (diff) | |
download | bcm5719-ortega-b1adb232ee50fa1e936508f22adc6cafd6115339.tar.gz bcm5719-ortega-b1adb232ee50fa1e936508f22adc6cafd6115339.zip |
Reset NCSI state on reloading firmware.
-rw-r--r-- | libs/NCSI/include/NCSI.h | 2 | ||||
-rw-r--r-- | libs/NCSI/ncsi.c | 8 | ||||
-rw-r--r-- | libs/Network/rx.c | 5 |
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); |