mirror of https://github.com/acidanthera/audk.git
MdePkg/BaseSerialPortLib16550: Support UARTs with a register stride greater than 1 byte.
Add stride PCD to MdeModulePkg to support 16550 UARTs with a register stride that is not 1 byte. The default value is 1 byte. Quark SoC uses a stride of 4 bytes. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Michael Kinney <michael.d.kinney@intel.com> Reviewed-by: Jordan Justen <jordan.l.justen@intel.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17215 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
parent
cfe41b57ab
commit
cd68e4a8de
|
@ -2,7 +2,7 @@
|
|||
16550 UART Serial Port library functions
|
||||
|
||||
(C) Copyright 2014 Hewlett-Packard Development Company, L.P.<BR>
|
||||
Copyright (c) 2006 - 2014, Intel Corporation. All rights reserved.<BR>
|
||||
Copyright (c) 2006 - 2015, Intel Corporation. All rights reserved.<BR>
|
||||
This program and the accompanying materials
|
||||
are licensed and made available under the terms and conditions of the BSD License
|
||||
which accompanies this distribution. The full text of the license may be found at
|
||||
|
@ -77,9 +77,9 @@ SerialPortReadRegister (
|
|||
)
|
||||
{
|
||||
if (PcdGetBool (PcdSerialUseMmio)) {
|
||||
return MmioRead8 (Base + Offset);
|
||||
return MmioRead8 (Base + Offset * PcdGet32 (PcdSerialRegisterStride));
|
||||
} else {
|
||||
return IoRead8 (Base + Offset);
|
||||
return IoRead8 (Base + Offset * PcdGet32 (PcdSerialRegisterStride));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -104,9 +104,9 @@ SerialPortWriteRegister (
|
|||
)
|
||||
{
|
||||
if (PcdGetBool (PcdSerialUseMmio)) {
|
||||
return MmioWrite8 (Base + Offset, Value);
|
||||
return MmioWrite8 (Base + Offset * PcdGet32 (PcdSerialRegisterStride), Value);
|
||||
} else {
|
||||
return IoWrite8 (Base + Offset, Value);
|
||||
return IoWrite8 (Base + Offset * PcdGet32 (PcdSerialRegisterStride), Value);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
## @file
|
||||
# SerialPortLib instance for 16550 UART.
|
||||
#
|
||||
# Copyright (c) 2006 - 2014, Intel Corporation. All rights reserved.<BR>
|
||||
# Copyright (c) 2006 - 2015, Intel Corporation. All rights reserved.<BR>
|
||||
# This program and the accompanying materials
|
||||
# are licensed and made available under the terms and conditions of the BSD License
|
||||
# which accompanies this distribution. The full text of the license may be found at
|
||||
|
@ -18,7 +18,7 @@
|
|||
MODULE_UNI_FILE = BaseSerialPortLib16550.uni
|
||||
FILE_GUID = 9E7C00CF-355A-4d4e-BF60-0428CFF95540
|
||||
MODULE_TYPE = BASE
|
||||
VERSION_STRING = 1.0
|
||||
VERSION_STRING = 1.1
|
||||
LIBRARY_CLASS = SerialPortLib
|
||||
|
||||
[Packages]
|
||||
|
@ -45,3 +45,4 @@
|
|||
gEfiMdeModulePkgTokenSpaceGuid.PcdSerialClockRate ## CONSUMES
|
||||
gEfiMdeModulePkgTokenSpaceGuid.PcdSerialPciDeviceInfo ## CONSUMES
|
||||
gEfiMdeModulePkgTokenSpaceGuid.PcdSerialExtendedTxFifoSize ## CONSUMES
|
||||
gEfiMdeModulePkgTokenSpaceGuid.PcdSerialRegisterStride ## CONSUMES
|
||||
|
|
|
@ -20,7 +20,7 @@
|
|||
PACKAGE_NAME = MdeModulePkg
|
||||
PACKAGE_UNI_FILE = MdeModulePkg.uni
|
||||
PACKAGE_GUID = BA0D78D6-2CAF-414b-BD4D-B6762A894288
|
||||
PACKAGE_VERSION = 0.94
|
||||
PACKAGE_VERSION = 0.96
|
||||
|
||||
[Includes]
|
||||
Include
|
||||
|
@ -916,6 +916,10 @@
|
|||
# @Prompt Serial Port Extended Transmit FIFO Size in Bytes
|
||||
gEfiMdeModulePkgTokenSpaceGuid.PcdSerialExtendedTxFifoSize|64|UINT32|0x00010068
|
||||
|
||||
## The number of bytes between registers in serial device. The default is 1 byte.
|
||||
# @Prompt Serial Port Register Stride in Bytes
|
||||
gEfiMdeModulePkgTokenSpaceGuid.PcdSerialRegisterStride|1|UINT32|0x0001006B
|
||||
|
||||
[PcdsPatchableInModule, PcdsDynamic, PcdsDynamicEx]
|
||||
## This PCD defines the Console output row. The default value is 25 according to UEFI spec.
|
||||
# This PCD could be set to 0 then console output would be at max column and max row.
|
||||
|
|
Binary file not shown.
Loading…
Reference in New Issue