* [Patch][edk2-platforms/devel-MinnowBoardMax-UDK2017] UART COM INT3511
@ 2018-06-22 3:32 zwei4
0 siblings, 0 replies; only message in thread
From: zwei4 @ 2018-06-22 3:32 UTC (permalink / raw)
To: edk2-devel
Add sub-device under HS-UART 1 controller to report HS-UART as COM port. The _HID of the sub-device is INT3511.
The design follows below Intel white paper:
https://www.intel.com/content/dam/www/public/us/en/documents/white-papers/enabling-multi-com-port-white-paper.pdf
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: zwei4 <david.wei@intel.com>
---
Vlv2DeviceRefCodePkg/AcpiTablesPCAT/GloblNvs.asl | 2 +-
Vlv2DeviceRefCodePkg/AcpiTablesPCAT/PchLpss.asl | 81 +++++++++------------
Vlv2TbltDevicePkg/AcpiPlatform/AcpiPlatform.c | 2 +-
Vlv2TbltDevicePkg/Include/Guid/SetupVariable.h | 2 +-
Vlv2TbltDevicePkg/Include/Protocol/GlobalNvsArea.h | 2 +-
.../PlatformSetupDxe/SouthClusterConfig.vfi | 6 +-
Vlv2TbltDevicePkg/PlatformSetupDxe/UqiList.uni | Bin 67184 -> 67184 bytes
Vlv2TbltDevicePkg/PlatformSetupDxe/VfrStrings.uni | Bin 216530 -> 216550 bytes
8 files changed, 43 insertions(+), 52 deletions(-)
diff --git a/Vlv2DeviceRefCodePkg/AcpiTablesPCAT/GloblNvs.asl b/Vlv2DeviceRefCodePkg/AcpiTablesPCAT/GloblNvs.asl
index 0373e935b7..827d01acb2 100644
--- a/Vlv2DeviceRefCodePkg/AcpiTablesPCAT/GloblNvs.asl
+++ b/Vlv2DeviceRefCodePkg/AcpiTablesPCAT/GloblNvs.asl
@@ -350,6 +350,6 @@ Field(GNVS,AnyAcc,Lock,Preserve)
IOT, 8, //(794) MinnowBoard Max JP1 is configured for MSFT IOT project.
BATT, 8, //(795) The Flag of RTC Battery Prensent.
LPAD, 8, //(796)
- U1CM, 8, //(797) Report UART1 as PNP0501 COM.
+ U1CM, 8, //(797) Report UART1 as COM.
}
diff --git a/Vlv2DeviceRefCodePkg/AcpiTablesPCAT/PchLpss.asl b/Vlv2DeviceRefCodePkg/AcpiTablesPCAT/PchLpss.asl
index 5018b05346..14ae6f8899 100644
--- a/Vlv2DeviceRefCodePkg/AcpiTablesPCAT/PchLpss.asl
+++ b/Vlv2DeviceRefCodePkg/AcpiTablesPCAT/PchLpss.asl
@@ -225,13 +225,6 @@ Device(URT1)
Return (0x0)
}
- //
- // Is UART 1 is reported as PNP0501 COM?
- //
- If(LEqual(U1CM, One)) {
- Return (0x0)
- }
-
Return (0xF)
}
@@ -253,48 +246,46 @@ Device(URT1)
Offset (0x84),
PSAT, 32
}
-}// Device (URT1)
-
-Device(U1CO) // UART 1 as COM
-{
- Name(_HID, EISAID("PNP0501"))
- Name(_UID,2) // _UID must not conflict wit _UID of LPC COM.
-
- Name (RBUF, ResourceTemplate ()
- {
- Memory32Fixed (ReadWrite, 0x00000000, 0x00001000, BAR0)
- Interrupt (ResourceConsumer, Level, ActiveLow, Exclusive, , , ) {39} // HS-UART #1 IRQ
-
- FixedDMA(0x2, 0x2, Width32Bit, )
- FixedDMA(0x3, 0x3, Width32Bit, )
- })
- Method (_CRS, 0x0, NotSerialized)
- {
- CreateDwordField(^RBUF, ^BAR0._BAS, B0BA)
- CreateDwordField(^RBUF, ^BAR0._LEN, B0LN)
- Store(U10A, B0BA)
- Store(U10L, B0LN)
- Return (RBUF)
- }
+ //
+ // Virtual COM port for HSUART1
+ //
+ Device (VUT0) {
- Method(_STA,0,Serialized)
- {
- If (LOr(LEqual(U10A, 0), LEqual(L13D, 1)))
- {
- Return (0x0000)
- }
+ Name (_HID, "INT3511")
- //
- // Is UART 1 reported as PNP0501 COM?
- //
- If(LEqual(U1CM, One)) {
- Return(0x000F)
- } Else {
- Return(0x0000)
+ Method (_STA, 0x0, NotSerialized)
+ {
+ If(LEqual(U1CM, 1)) {
+ Return(0xf)
+ } else {
+ Return(0x0)
+ }
}
- }
-}
+
+ Method (_CRS, 0, NotSerialized) {
+ Name (BBUF, ResourceTemplate () {
+ UartSerialBus (
+ 0x0001C200,
+ DataBitsEight,
+ StopBitsOne,
+ 0xFC,
+ LittleEndian,
+ ParityTypeNone,
+ FlowControlHardware,
+ 0x0020,
+ 0x0020,
+ "\\_SB.URT1",
+ 0x00,
+ ResourceConsumer,
+ ,
+ )
+ })
+ Return (BBUF)
+ }
+
+ } //Device (VUT0)
+}// Device (URT1)
//
// LPIO1 HS-UART #2
diff --git a/Vlv2TbltDevicePkg/AcpiPlatform/AcpiPlatform.c b/Vlv2TbltDevicePkg/AcpiPlatform/AcpiPlatform.c
index adb79e0fd2..58c1dc1402 100644
--- a/Vlv2TbltDevicePkg/AcpiPlatform/AcpiPlatform.c
+++ b/Vlv2TbltDevicePkg/AcpiPlatform/AcpiPlatform.c
@@ -1146,7 +1146,7 @@ AcpiPlatformEntryPoint (
//
// Report UART1 as PNP0501 COM.
//
- mGlobalNvsArea.Area->Uart1Pnp0501Com = mSystemConfiguration.Uart1Pnp0501Com;
+ mGlobalNvsArea.Area->Uart1Int3511Com = mSystemConfiguration.Uart1Int3511Com;
//
// SIO related option.
diff --git a/Vlv2TbltDevicePkg/Include/Guid/SetupVariable.h b/Vlv2TbltDevicePkg/Include/Guid/SetupVariable.h
index fc2fc86f77..f0319b6c58 100644
--- a/Vlv2TbltDevicePkg/Include/Guid/SetupVariable.h
+++ b/Vlv2TbltDevicePkg/Include/Guid/SetupVariable.h
@@ -1310,7 +1310,7 @@ typedef struct {
UINT8 GpioWakeCapability;
UINT8 RtcBattery;
UINT8 LpeAudioReportedByDSDT;
- UINT8 Uart1Pnp0501Com; // Report UART1 as PNP0501 COM
+ UINT8 Uart1Int3511Com; // Report UART1 as COM with _HID INT3511
} SYSTEM_CONFIGURATION;
#pragma pack()
diff --git a/Vlv2TbltDevicePkg/Include/Protocol/GlobalNvsArea.h b/Vlv2TbltDevicePkg/Include/Protocol/GlobalNvsArea.h
index 03468f9357..ca67d67d1b 100644
--- a/Vlv2TbltDevicePkg/Include/Protocol/GlobalNvsArea.h
+++ b/Vlv2TbltDevicePkg/Include/Protocol/GlobalNvsArea.h
@@ -473,7 +473,7 @@ typedef struct {
UINT8 MicrosoftIoT; // (794)JP1 pins are for Microsoft IoT project.
UINT8 RtcBattery; // (795) The Flag of RTC Battery Present.
UINT8 LpeAudioReportedByDSDT; // (796)
- UINT8 Uart1Pnp0501Com; // (797) Report UART 1 as PNP0501 COM.
+ UINT8 Uart1Int3511Com; // (797) Report UART 1 as INT3511 COM.
} EFI_GLOBAL_NVS_AREA;
#pragma pack ()
diff --git a/Vlv2TbltDevicePkg/PlatformSetupDxe/SouthClusterConfig.vfi b/Vlv2TbltDevicePkg/PlatformSetupDxe/SouthClusterConfig.vfi
index 10ff008da5..a0cb102b8f 100644
--- a/Vlv2TbltDevicePkg/PlatformSetupDxe/SouthClusterConfig.vfi
+++ b/Vlv2TbltDevicePkg/PlatformSetupDxe/SouthClusterConfig.vfi
@@ -587,9 +587,9 @@ endif; // grayoutif NOT ideqval Setup.LpssSdcardEnabled == 0x1;
endif;
grayoutif ideqval Setup.LpssHsuart0Enabled == 0x00;
- oneof varid = Setup.Uart1Pnp0501Com,
- prompt = STRING_TOKEN(STR_LPSS_HSUART1_PNP0501_PROMPT),
- help = STRING_TOKEN(STR_LPSS_HSUART1_PNP0501_HELP_ENBDT_DEV_LIST),
+ oneof varid = Setup.Uart1Int3511Com,
+ prompt = STRING_TOKEN(STR_LPSS_HSUART1_INT3511_PROMPT),
+ help = STRING_TOKEN(STR_LPSS_HSUART1_INT3511_HELP_ENBDT_DEV_LIST),
option text = STRING_TOKEN(STR_DISABLE), value=0, flags=0 |DEFAULT | RESET_REQUIRED;
option text = STRING_TOKEN(STR_ENABLE), value=1, flags= MANUFACTURING | RESET_REQUIRED;
endoneof;
diff --git a/Vlv2TbltDevicePkg/PlatformSetupDxe/UqiList.uni b/Vlv2TbltDevicePkg/PlatformSetupDxe/UqiList.uni
index d6e5ccd05a1ba303329e083d673342cddb4cef9c..f392fd250b13da70acd64dc64f46796a9417c1fe 100644
GIT binary patch
delta 49
vcmey+!}6hrrC|$W5-YbSgC9c(gE50CgW+VxAmix^SQ%501*h|~F(v{4R<;X+
delta 49
vcmey+!}6hrrC|$W5-WEAgC9cxg8_pngTZ9RAmix^SQ%501*h|~F(v{4R@n=I
diff --git a/Vlv2TbltDevicePkg/PlatformSetupDxe/VfrStrings.uni b/Vlv2TbltDevicePkg/PlatformSetupDxe/VfrStrings.uni
index af716784d740092f6b6f725ec43bff4ab2a84b1a..ad4cf64405e100f8f554d26badb01eb2d38a3128 100644
GIT binary patch
delta 157
zcmcaKoA=pl-i9rV5zn|i8T=SR7>pTA84Ra0&R{g0o^YE{Z+hQzMgeg{1_cHrX$BDA
znZbW@;!nlt7oIbUZC7~CxQU+^Magu-PmKE0`Mxtw(*!DI@C9lqXUJqIVaNco;u$=E
Y2D+ddJGn4Nwf)|A#_jjMGkpmK00+V<0ssI2
delta 137
zcmaDhoA=Ue-i9rV5zn{-82lIl7z`Lp84RW~&R{g0p75N}PTY_|0VoQWVF2-+8T=<F
z{#2ZP;W?w&c7^ARoA`NAluS4L#Hc@=?>pl(Q512ARtDe6g*mFz8-6l!wEz0fxc%36
HrZ=Gg?-(Zn
--
2.14.1.windows.1
^ permalink raw reply related [flat|nested] only message in thread
only message in thread, other threads:[~2018-06-22 3:32 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-06-22 3:32 [Patch][edk2-platforms/devel-MinnowBoardMax-UDK2017] UART COM INT3511 zwei4
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox