summaryrefslogtreecommitdiffstats
path: root/libs
diff options
context:
space:
mode:
Diffstat (limited to 'libs')
-rw-r--r--libs/Network/include/Network.h1
-rw-r--r--libs/Network/ports.c17
2 files changed, 18 insertions, 0 deletions
diff --git a/libs/Network/include/Network.h b/libs/Network/include/Network.h
index 0d13a90..ec57a17 100644
--- a/libs/Network/include/Network.h
+++ b/libs/Network/include/Network.h
@@ -111,6 +111,7 @@ void Network_resetRX(NetworkPort_t *port, reload_type_t reset_phy);
void Network_checkPortState(NetworkPort_t *port);
bool Network_updatePortState(NetworkPort_t *port);
+bool Network_checkEnableState(NetworkPort_t *port);
bool Network_isLinkUp(NetworkPort_t *port);
void Network_resetLink(NetworkPort_t *port);
diff --git a/libs/Network/ports.c b/libs/Network/ports.c
index 0e93bf9..460d2d4 100644
--- a/libs/Network/ports.c
+++ b/libs/Network/ports.c
@@ -846,6 +846,23 @@ void Network_resetRX(NetworkPort_t *port, reload_type_t reset_phy)
}
}
+bool Network_checkEnableState(NetworkPort_t *port)
+{
+ // Ensure APE mode is set properly
+ if ((APE.Mode.r32 & port->APEModeEnable.r32) != port->APEModeEnable.r32)
+ {
+ return false;
+ }
+
+ // Ensure APE mode2 is set properly
+ if ((APE.Mode2.r32 & port->APEMode2Enable.r32) != port->APEMode2Enable.r32)
+ {
+ return false;
+ }
+
+ return true;
+}
+
void Network_InitPort(NetworkPort_t *port, reload_type_t reset_phy)
{
RegMIIStatus_t stat;
OpenPOWER on IntegriCloud