From 5f7bfbfc916b94d4176382646ab939f21c7ecfec Mon Sep 17 00:00:00 2001 From: Evan Lojewski Date: Sat, 4 Apr 2020 17:41:45 -0600 Subject: build: Build two firmware images with NC-SI locked to port 0 or port 2. (#73) --- libs/NCSI/include/NCSI.h | 2 ++ libs/NCSI/ncsi.c | 7 ++++++- libs/Network/include/Network.h | 4 ++-- libs/Network/ports.c | 33 +++++++++++++++++++-------------- 4 files changed, 29 insertions(+), 17 deletions(-) (limited to 'libs') diff --git a/libs/NCSI/include/NCSI.h b/libs/NCSI/include/NCSI.h index 9bb3bcd..d59f343 100644 --- a/libs/NCSI/include/NCSI.h +++ b/libs/NCSI/include/NCSI.h @@ -73,4 +73,6 @@ void NCSI_init(void); void NCSI_reload(reload_type_t reset_phy); +void NCSI_usePort(NetworkPort_t *port); + #endif /* NCSI_H */ \ No newline at end of file diff --git a/libs/NCSI/ncsi.c b/libs/NCSI/ncsi.c index cbd9063..2805853 100644 --- a/libs/NCSI/ncsi.c +++ b/libs/NCSI/ncsi.c @@ -242,10 +242,15 @@ package_state_t gPackageState = { .selected = false, .numChannels = NUM_CHANNELS, .port = { - [0] = &gPort, + [0] = NULL, }, }; +void NCSI_usePort(NetworkPort_t *port) +{ + gPackageState.port[0] = port; +} + void sendNCSIResponse(uint8_t InstanceID, uint8_t channelID, uint16_t controlID, uint16_t response_code, uint16_t reasons_code); void sendNCSILinkStatusResponse(uint8_t InstanceID, uint8_t channelID, uint32_t LinkStatus, uint32_t OEMLinkStatus, uint32_t OtherIndications); diff --git a/libs/Network/include/Network.h b/libs/Network/include/Network.h index 86b62a9..c6aa260 100644 --- a/libs/Network/include/Network.h +++ b/libs/Network/include/Network.h @@ -10,7 +10,7 @@ /// //////////////////////////////////////////////////////////////////////////////// /// -/// @copyright Copyright (c) 2019, Evan Lojewski +/// @copyright Copyright (c) 2019-2020, Evan Lojewski /// @cond /// /// All rights reserved. @@ -107,7 +107,7 @@ typedef enum { ALWAYS_RESET /* Host was just turned off, reset phy */ } reload_type_t; -extern NetworkPort_t gPort; +NetworkPort_t *Network_getPort(int i); void Network_InitPort(NetworkPort_t *port, reload_type_t force_reset); diff --git a/libs/Network/ports.c b/libs/Network/ports.c index db6fcab..be1957a 100644 --- a/libs/Network/ports.c +++ b/libs/Network/ports.c @@ -10,7 +10,7 @@ /// //////////////////////////////////////////////////////////////////////////////// /// -/// @copyright Copyright (c) 2018, Evan Lojewski +/// @copyright Copyright (c) 2018-2020 Evan Lojewski /// @cond /// /// All rights reserved. @@ -68,12 +68,7 @@ #include #endif -#ifndef NETWORK_PORT -#define NETWORK_PORT 0 -#endif - -#if NETWORK_PORT == 0 -NetworkPort_t gPort = { +NetworkPort_t gPort0 = { .device = &DEVICE, .filters = &FILTERS0, .shm_channel = &SHM_CHANNEL0, @@ -99,8 +94,8 @@ NetworkPort_t gPort = { }, #endif }; -#elif NETWORK_PORT == 1 -NetworkPort_t gPort = { + +NetworkPort_t gPort1 = { .device = &DEVICE1, .filters = &FILTERS1, .shm_channel = &SHM_CHANNEL1, @@ -126,8 +121,8 @@ NetworkPort_t gPort = { }, #endif }; -#elif NETWORK_PORT == 2 -NetworkPort_t gPort = { + +NetworkPort_t gPort2 = { .device = &DEVICE2, .filters = &FILTERS2, .shm_channel = &SHM_CHANNEL2, @@ -153,8 +148,8 @@ NetworkPort_t gPort = { }, #endif }; -#elif NETWORK_PORT == 3 -NetworkPort_t gPort = { + +NetworkPort_t gPort3 = { .device = &DEVICE3, .filters = &FILTERS3, .shm_channel = &SHM_CHANNEL3, @@ -180,8 +175,18 @@ NetworkPort_t gPort = { }, #endif }; -#endif +NetworkPort_t *Network_getPort(int i) +{ + switch(i) + { + default: return &gPort0; + case 0: return &gPort0; + case 1: return &gPort1; + case 2: return &gPort2; + case 3: return &gPort3; + } +} #ifndef CXX_SIMULATOR typedef struct { -- cgit v1.2.1