summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEvan Lojewski <github@meklort.com>2021-02-06 11:14:18 -0700
committerGitHub <noreply@github.com>2021-02-06 11:14:18 -0700
commit272239fc883f3ae1c2bc908b978a29096cc74cf9 (patch)
treec6207ad1c639d7157510b88576a685aad0205ae0
parentc76a40e7f684ab45fc19427936f402b4ea49f382 (diff)
downloadbcm5719-ortega-272239fc883f3ae1c2bc908b978a29096cc74cf9.tar.gz
bcm5719-ortega-272239fc883f3ae1c2bc908b978a29096cc74cf9.zip
mii: After an MII reset, update the advertise mode to include 1000Mb/s. (#202)
-rw-r--r--libs/MII/CMakeLists.txt6
-rw-r--r--libs/MII/mii.c9
2 files changed, 12 insertions, 3 deletions
diff --git a/libs/MII/CMakeLists.txt b/libs/MII/CMakeLists.txt
index 0ddeabc..cf1c6c1 100644
--- a/libs/MII/CMakeLists.txt
+++ b/libs/MII/CMakeLists.txt
@@ -2,7 +2,7 @@
###
### @file libs/MII/CMakeLists.txt
###
-### @project
+### @project
###
### @brief MII CMake file
###
@@ -46,17 +46,19 @@ project(MII)
# Host Simulation library
simulator_add_library(${PROJECT_NAME} STATIC mii.c)
-target_link_libraries(${PROJECT_NAME} PRIVATE simulator)
+target_link_libraries(${PROJECT_NAME} PRIVATE simulator Timer)
target_include_directories(${PROJECT_NAME} PUBLIC ../../include)
target_include_directories(${PROJECT_NAME} PUBLIC include)
# MIPS Library
mips_add_library(${PROJECT_NAME}-mips STATIC mii.c)
+target_link_libraries(${PROJECT_NAME}-mips PRIVATE Timer)
target_include_directories(${PROJECT_NAME}-mips PUBLIC ../../include)
target_include_directories(${PROJECT_NAME}-mips PUBLIC include)
# ARM Library
arm_add_library(${PROJECT_NAME}-arm STATIC mii.c)
+target_link_libraries(${PROJECT_NAME}-arm PRIVATE Timer)
target_include_directories(${PROJECT_NAME}-arm PUBLIC ../../include)
target_include_directories(${PROJECT_NAME}-arm PUBLIC include)
diff --git a/libs/MII/mii.c b/libs/MII/mii.c
index 9cd6c18..baf4f82 100644
--- a/libs/MII/mii.c
+++ b/libs/MII/mii.c
@@ -10,7 +10,7 @@
///
////////////////////////////////////////////////////////////////////////////////
///
-/// @copyright Copyright (c) 2018, Evan Lojewski
+/// @copyright Copyright (c) 2018-2021, Evan Lojewski
/// @cond
///
/// All rights reserved.
@@ -43,6 +43,7 @@
////////////////////////////////////////////////////////////////////////////////
#include <MII.h>
+#include <Timer.h>
#ifdef CXX_SIMULATOR
#define volatile
@@ -343,12 +344,18 @@ bool MII_reset(volatile DEVICE_t *device, uint8_t phy)
if (MII_writeRegister(device, phy, (mii_reg_t)REG_MII_CONTROL, MII_CONTROL_RESET_MASK))
{
uint16_t val;
+
do
{
// Spin
val = (uint16_t)MII_readRegister(device, phy, (mii_reg_t)REG_MII_CONTROL);
} while ((val & MII_CONTROL_RESET_MASK) == MII_CONTROL_RESET_MASK);
+ // All reset to settle for 5ms.
+ Timer_delayMs(5);
+
+ (void)MII_UpdateAdvertisement(device, phy);
+
return true;
}
return false;
OpenPOWER on IntegriCloud