[edk2,1/2] EmbeddedPkg/Lan9118Dxe: PcdLan9118NegotiationFeatureMask

Message ID 1462955040-10447-2-git-send-email-ryan.harkin@linaro.org
State New
Headers show

Commit Message

Ryan Harkin May 11, 2016, 8:23 a.m.
Add a PCD to allow the platform to mask in/out specific features of
the LAN9118 device advertised during auto-negotiation.

For example, the Juno ARM Development Platform doesn't support full
duplex mode.  This PCD will allow the platform developer to prevent the
full duplex modes from being advertised.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Ryan Harkin <ryan.harkin@linaro.org>

---
 EmbeddedPkg/EmbeddedPkg.dec                     | 1 +
 EmbeddedPkg/Drivers/Lan9118Dxe/Lan9118Dxe.inf   | 1 +
 EmbeddedPkg/Drivers/Lan9118Dxe/Lan9118DxeUtil.c | 1 +
 3 files changed, 3 insertions(+)

-- 
2.1.4

_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel

Patch hide | download patch | download mbox

diff --git a/EmbeddedPkg/EmbeddedPkg.dec b/EmbeddedPkg/EmbeddedPkg.dec
index 7bcb133..73f7ee6 100644
--- a/EmbeddedPkg/EmbeddedPkg.dec
+++ b/EmbeddedPkg/EmbeddedPkg.dec
@@ -147,6 +147,7 @@  [PcdsFixedAtBuild.common]
   gEmbeddedTokenSpaceGuid.PcdLan9118DxeBaseAddress|0x0|UINT32|0x00000025
   gEmbeddedTokenSpaceGuid.PcdLan9118DefaultMacAddress|0x0|UINT64|0x00000026
   gEmbeddedTokenSpaceGuid.PcdLan9118DefaultNegotiationTimeout|4000|UINT32|0x00000027
+  gEmbeddedTokenSpaceGuid.PcdLan9118NegotiationFeatureMask|0xFFFFFFFF|UINT32|0x00000028
 
   #
   # Android FastBoot
diff --git a/EmbeddedPkg/Drivers/Lan9118Dxe/Lan9118Dxe.inf b/EmbeddedPkg/Drivers/Lan9118Dxe/Lan9118Dxe.inf
index 3c2246f..055a055 100644
--- a/EmbeddedPkg/Drivers/Lan9118Dxe/Lan9118Dxe.inf
+++ b/EmbeddedPkg/Drivers/Lan9118Dxe/Lan9118Dxe.inf
@@ -52,6 +52,7 @@  [FixedPcd]
   gEmbeddedTokenSpaceGuid.PcdLan9118DxeBaseAddress
   gEmbeddedTokenSpaceGuid.PcdLan9118DefaultMacAddress
   gEmbeddedTokenSpaceGuid.PcdLan9118DefaultNegotiationTimeout
+  gEmbeddedTokenSpaceGuid.PcdLan9118NegotiationFeatureMask
 
 [Depex]
   TRUE
diff --git a/EmbeddedPkg/Drivers/Lan9118Dxe/Lan9118DxeUtil.c b/EmbeddedPkg/Drivers/Lan9118Dxe/Lan9118DxeUtil.c
index 8491396..5ce658c 100644
--- a/EmbeddedPkg/Drivers/Lan9118Dxe/Lan9118DxeUtil.c
+++ b/EmbeddedPkg/Drivers/Lan9118Dxe/Lan9118DxeUtil.c
@@ -648,6 +648,7 @@  AutoNegotiate (
     Features &= ~(PHYANA_PAUSE_OP_MASK);
     Features |= 3 << 10;
   }
+  Features &= FixedPcdGet32 (PcdLan9118NegotiationFeatureMask);
 
   // Write the features
   IndirectPHYWrite32 (PHY_INDEX_AUTO_NEG_ADVERT, Features);