summaryrefslogtreecommitdiffstats
path: root/libs
diff options
context:
space:
mode:
authorEvan Lojewski <github@meklort.com>2020-04-04 17:41:45 -0600
committerGitHub <noreply@github.com>2020-04-04 17:41:45 -0600
commit5f7bfbfc916b94d4176382646ab939f21c7ecfec (patch)
treeac3edf66f8f9ad203fd0b78a84e254716f52f1e0 /libs
parent39f2848259483ec4a5e54e418ea77032b2d7ffd0 (diff)
downloadbcm5719-ortega-5f7bfbfc916b94d4176382646ab939f21c7ecfec.tar.gz
bcm5719-ortega-5f7bfbfc916b94d4176382646ab939f21c7ecfec.zip
build: Build two firmware images with NC-SI locked to port 0 or port 2. (#73)
Diffstat (limited to 'libs')
-rw-r--r--libs/NCSI/include/NCSI.h2
-rw-r--r--libs/NCSI/ncsi.c7
-rw-r--r--libs/Network/include/Network.h4
-rw-r--r--libs/Network/ports.c33
4 files changed, 29 insertions, 17 deletions
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 <printf.h>
#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
{
OpenPOWER on IntegriCloud