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:
@@ -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]
|
||||
@@ -42,6 +42,7 @@
|
||||
gEfiMdeModulePkgTokenSpaceGuid.PcdSerialBaudRate ## CONSUMES
|
||||
gEfiMdeModulePkgTokenSpaceGuid.PcdSerialLineControl ## CONSUMES
|
||||
gEfiMdeModulePkgTokenSpaceGuid.PcdSerialFifoControl ## CONSUMES
|
||||
gEfiMdeModulePkgTokenSpaceGuid.PcdSerialClockRate ## CONSUMES
|
||||
gEfiMdeModulePkgTokenSpaceGuid.PcdSerialPciDeviceInfo ## CONSUMES
|
||||
gEfiMdeModulePkgTokenSpaceGuid.PcdSerialExtendedTxFifoSize ## CONSUMES
|
||||
gEfiMdeModulePkgTokenSpaceGuid.PcdSerialClockRate ## CONSUMES
|
||||
gEfiMdeModulePkgTokenSpaceGuid.PcdSerialPciDeviceInfo ## CONSUMES
|
||||
gEfiMdeModulePkgTokenSpaceGuid.PcdSerialExtendedTxFifoSize ## CONSUMES
|
||||
gEfiMdeModulePkgTokenSpaceGuid.PcdSerialRegisterStride ## CONSUMES
|
||||
|
Reference in New Issue
Block a user