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
|
16550 UART Serial Port library functions
|
||||||
|
|
||||||
(C) Copyright 2014 Hewlett-Packard Development Company, L.P.<BR>
|
(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
|
This program and the accompanying materials
|
||||||
are licensed and made available under the terms and conditions of the BSD License
|
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
|
which accompanies this distribution. The full text of the license may be found at
|
||||||
|
@ -77,9 +77,9 @@ SerialPortReadRegister (
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
if (PcdGetBool (PcdSerialUseMmio)) {
|
if (PcdGetBool (PcdSerialUseMmio)) {
|
||||||
return MmioRead8 (Base + Offset);
|
return MmioRead8 (Base + Offset * PcdGet32 (PcdSerialRegisterStride));
|
||||||
} else {
|
} else {
|
||||||
return IoRead8 (Base + Offset);
|
return IoRead8 (Base + Offset * PcdGet32 (PcdSerialRegisterStride));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -104,9 +104,9 @@ SerialPortWriteRegister (
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
if (PcdGetBool (PcdSerialUseMmio)) {
|
if (PcdGetBool (PcdSerialUseMmio)) {
|
||||||
return MmioWrite8 (Base + Offset, Value);
|
return MmioWrite8 (Base + Offset * PcdGet32 (PcdSerialRegisterStride), Value);
|
||||||
} else {
|
} else {
|
||||||
return IoWrite8 (Base + Offset, Value);
|
return IoWrite8 (Base + Offset * PcdGet32 (PcdSerialRegisterStride), Value);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
## @file
|
## @file
|
||||||
# SerialPortLib instance for 16550 UART.
|
# 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
|
# This program and the accompanying materials
|
||||||
# are licensed and made available under the terms and conditions of the BSD License
|
# 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
|
# which accompanies this distribution. The full text of the license may be found at
|
||||||
|
@ -18,7 +18,7 @@
|
||||||
MODULE_UNI_FILE = BaseSerialPortLib16550.uni
|
MODULE_UNI_FILE = BaseSerialPortLib16550.uni
|
||||||
FILE_GUID = 9E7C00CF-355A-4d4e-BF60-0428CFF95540
|
FILE_GUID = 9E7C00CF-355A-4d4e-BF60-0428CFF95540
|
||||||
MODULE_TYPE = BASE
|
MODULE_TYPE = BASE
|
||||||
VERSION_STRING = 1.0
|
VERSION_STRING = 1.1
|
||||||
LIBRARY_CLASS = SerialPortLib
|
LIBRARY_CLASS = SerialPortLib
|
||||||
|
|
||||||
[Packages]
|
[Packages]
|
||||||
|
@ -42,6 +42,7 @@
|
||||||
gEfiMdeModulePkgTokenSpaceGuid.PcdSerialBaudRate ## CONSUMES
|
gEfiMdeModulePkgTokenSpaceGuid.PcdSerialBaudRate ## CONSUMES
|
||||||
gEfiMdeModulePkgTokenSpaceGuid.PcdSerialLineControl ## CONSUMES
|
gEfiMdeModulePkgTokenSpaceGuid.PcdSerialLineControl ## CONSUMES
|
||||||
gEfiMdeModulePkgTokenSpaceGuid.PcdSerialFifoControl ## CONSUMES
|
gEfiMdeModulePkgTokenSpaceGuid.PcdSerialFifoControl ## CONSUMES
|
||||||
gEfiMdeModulePkgTokenSpaceGuid.PcdSerialClockRate ## CONSUMES
|
gEfiMdeModulePkgTokenSpaceGuid.PcdSerialClockRate ## CONSUMES
|
||||||
gEfiMdeModulePkgTokenSpaceGuid.PcdSerialPciDeviceInfo ## CONSUMES
|
gEfiMdeModulePkgTokenSpaceGuid.PcdSerialPciDeviceInfo ## CONSUMES
|
||||||
gEfiMdeModulePkgTokenSpaceGuid.PcdSerialExtendedTxFifoSize ## CONSUMES
|
gEfiMdeModulePkgTokenSpaceGuid.PcdSerialExtendedTxFifoSize ## CONSUMES
|
||||||
|
gEfiMdeModulePkgTokenSpaceGuid.PcdSerialRegisterStride ## CONSUMES
|
||||||
|
|
|
@ -20,7 +20,7 @@
|
||||||
PACKAGE_NAME = MdeModulePkg
|
PACKAGE_NAME = MdeModulePkg
|
||||||
PACKAGE_UNI_FILE = MdeModulePkg.uni
|
PACKAGE_UNI_FILE = MdeModulePkg.uni
|
||||||
PACKAGE_GUID = BA0D78D6-2CAF-414b-BD4D-B6762A894288
|
PACKAGE_GUID = BA0D78D6-2CAF-414b-BD4D-B6762A894288
|
||||||
PACKAGE_VERSION = 0.94
|
PACKAGE_VERSION = 0.96
|
||||||
|
|
||||||
[Includes]
|
[Includes]
|
||||||
Include
|
Include
|
||||||
|
@ -916,6 +916,10 @@
|
||||||
# @Prompt Serial Port Extended Transmit FIFO Size in Bytes
|
# @Prompt Serial Port Extended Transmit FIFO Size in Bytes
|
||||||
gEfiMdeModulePkgTokenSpaceGuid.PcdSerialExtendedTxFifoSize|64|UINT32|0x00010068
|
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]
|
[PcdsPatchableInModule, PcdsDynamic, PcdsDynamicEx]
|
||||||
## This PCD defines the Console output row. The default value is 25 according to UEFI spec.
|
## 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.
|
# 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