Hi,
I have PCI 3.0 controller driver written, which is platform specific and is integrated with MdeModule/Bus/Pci/PciBusDxe code.
On top of it is the E1000 Intel NIC card driver integrated with "MdeModulePkg/Universal/Network/".
The whole network stack is working fine functionally.
But tftp is extremely slow.
It is taking around 9-10mins to transfer a file (of size 32 MB approx.) over PCI NIC card.
Does it take this much time usually in EDK2 ?
How to optimize it to get good network performance?
Any pointers what all can be a bottlenecks in this stack.
Thanks and Regards,
Shaveta
From: Sami Mujawar <sami.mujawar(a)arm.com>
The wrong type name is used in the definition of the GTDT, causing the
header to have an incorrect size value.
EFI_ACPI_5_1_GENERIC_TIMER_DESCRIPTION_TABLE is changed to
EFI_ACPI_5_1_GENERIC_TIMER_DESCRIPTION_TABLES to rectify this.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Sami Mujawar <sami.mujawar(a)arm.com>
Signed-off-by: Evan Lloyd <evan.lloyd(a)arm.com>
---
Notes:
v2
- no code change
- Updated S-o-b
- Confirmed as correct by G Gregory <graeme.gregory(a)linaro.org>
Platforms/ARM/Juno/AcpiTables/Gtdt.aslc | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
Previous patch chain was https://lists.linaro.org/pipermail/linaro-uefi/2016-March/001565.html
diff --git a/Platforms/ARM/Juno/AcpiTables/Gtdt.aslc b/Platforms/ARM/Juno/AcpiTables/Gtdt.aslc
index c0e3f5fc11203ed4cc41dddf4aecb6dc600f38d0..1c258fcfe2489601a3fa55bbdddc5bff686b0c4a 100644
--- a/Platforms/ARM/Juno/AcpiTables/Gtdt.aslc
+++ b/Platforms/ARM/Juno/AcpiTables/Gtdt.aslc
@@ -1,7 +1,7 @@
/** @file
* Generic Timer Description Table (GTDT)
*
-* Copyright (c) 2012 - 2014, ARM Limited. All rights reserved.
+* Copyright (c) 2012 - 2016, ARM Limited. All rights reserved.
*
* This program and the accompanying materials
* are licensed and made available under the terms and conditions of the BSD License
@@ -70,7 +70,7 @@
{
ARM_ACPI_HEADER(
EFI_ACPI_5_1_GENERIC_TIMER_DESCRIPTION_TABLE_SIGNATURE,
- EFI_ACPI_5_1_GENERIC_TIMER_DESCRIPTION_TABLE,
+ EFI_ACPI_5_1_GENERIC_TIMER_DESCRIPTION_TABLES,
EFI_ACPI_5_1_GENERIC_TIMER_DESCRIPTION_TABLE_REVISION
),
SYSTEM_TIMER_BASE_ADDRESS, // UINT64 PhysicalAddress
--
Guid("CE165669-3EF3-493F-B85D-6190EE5B9759")
From: Sami Mujawar <sami.mujawar(a)arm.com>
Amend the Serial Port Console Redirection Table to enable (i.a.)
Microsoft Windows Emergency Management Services (EMS) over the
serial port.
This patch replaces the Spcr.asl file which described the SPCR table
in TDL format with Spcr.aslc which allows more flexibility by way of
permitting the use of PCDs. This means the serial port usage can be
modified at build, so a UART other than the UEFI Trace port can be
specified.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Sami Mujawar <sami.mujawar(a)arm.com>
Signed-off-by: Evan Lloyd <evan.lloyd(a)arm.com>
---
Notes:
v2
- Resubmitting following discussion on TDL vs ASLC
Platforms/ARM/Juno/ArmJuno.dsc | 1 +
Platforms/ARM/Juno/AcpiTables/AcpiTables.inf | 12 ++-
Platforms/ARM/Juno/AcpiTables/Spcr.asl | 73 ------------------
Platforms/ARM/Juno/AcpiTables/Spcr.aslc | 79 ++++++++++++++++++++
4 files changed, 90 insertions(+), 75 deletions(-)
diff --git a/Platforms/ARM/Juno/ArmJuno.dsc b/Platforms/ARM/Juno/ArmJuno.dsc
index 2caa7413dec3f9f8969b5de28d0a49402fe71e86..3626dfb6e5834f36d136214550ecfde7ed41e4e5 100644
--- a/Platforms/ARM/Juno/ArmJuno.dsc
+++ b/Platforms/ARM/Juno/ArmJuno.dsc
@@ -124,6 +124,7 @@
gEfiMdePkgTokenSpaceGuid.PcdUartDefaultReceiveFifoDepth|0
gArmPlatformTokenSpaceGuid.PL011UartInteger|4
gArmPlatformTokenSpaceGuid.PL011UartFractional|0
+ gArmPlatformTokenSpaceGuid.PL011UartInterrupt|115
## PL031 RealTimeClock
gArmPlatformTokenSpaceGuid.PcdPL031RtcBase|0x1C170000
diff --git a/Platforms/ARM/Juno/AcpiTables/AcpiTables.inf b/Platforms/ARM/Juno/AcpiTables/AcpiTables.inf
index 039cff0a743a8e986cfce110a30fcdc83012c22f..d62068d65846d9032bc0771cfa7c80e7fd559ee3 100644
--- a/Platforms/ARM/Juno/AcpiTables/AcpiTables.inf
+++ b/Platforms/ARM/Juno/AcpiTables/AcpiTables.inf
@@ -2,7 +2,7 @@
#
# ACPI table data and ASL sources required to boot the platform.
#
-# Copyright (c) 2014-2015, ARM Ltd. All rights reserved.
+# Copyright (c) 2014-2016, ARM Ltd. All rights reserved.
#
# This program and the accompanying materials
# are licensed and made available under the terms and conditions of the BSD License
@@ -24,7 +24,7 @@
[Sources]
Dsdt.asl
Dbg2.asl
- Spcr.asl
+ Spcr.aslc
Fadt.aslc
Gtdt.aslc
Madt.aslc
@@ -51,3 +51,11 @@
gArmTokenSpaceGuid.PcdGenericWatchdogControlBase
gArmTokenSpaceGuid.PcdGenericWatchdogRefreshBase
+
+ #
+ # PL011 UART Settings for Serial Port Console Redirection
+ #
+ gEfiMdeModulePkgTokenSpaceGuid.PcdSerialRegisterBase
+ gEfiMdePkgTokenSpaceGuid.PcdUartDefaultBaudRate
+ gArmPlatformTokenSpaceGuid.PL011UartClkInHz
+ gArmPlatformTokenSpaceGuid.PL011UartInterrupt
diff --git a/Platforms/ARM/Juno/AcpiTables/Spcr.asl b/Platforms/ARM/Juno/AcpiTables/Spcr.asl
deleted file mode 100644
index 2b65326cf8be28c2db8db37ee5fb3bf51cbe5a48..0000000000000000000000000000000000000000
--- a/Platforms/ARM/Juno/AcpiTables/Spcr.asl
+++ /dev/null
@@ -1,73 +0,0 @@
-/*
- * Copyright (c) 2015, Graeme Gregory <graeme.gregory(a)linaro.org>
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
- * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- *
- * NB: This License is also known as the "BSD 2-Clause License".
- *
- *
- * [SPCR] ACPI Table
- *
- */
-
-[0004] Signature : "SPCR" [Serial Port Console Redirection table]
-[0004] Table Length : 00000050
-[0001] Revision : 02
-[0001] Checksum : 29
-[0006] Oem ID : "LINARO"
-[0008] Oem Table ID : "ARM-JUNO"
-[0004] Oem Revision : 00000000
-[0004] Asl Compiler ID : "INTL"
-[0004] Asl Compiler Revision : 20140926
-
-[0001] Interface Type : 03
-[0003] Reserved : 000000
-
-[000C] Serial Port Register : [Generic Address Structure]
-[0001] Space ID : 00 [SystemMemory]
-[0001] Bit Width : 20
-[0001] Bit Offset : 00
-[0001] Encoded Access Width : 03 [DWord Access:32]
-[0008] Address : 000000007FF80000
-
-[0001] Interrupt Type : 08
-[0001] PCAT-compatible IRQ : 00
-[0004] Interrupt : 00000073
-[0001] Baud Rate : 07
-[0001] Parity : 00
-[0001] Stop Bits : 01
-[0001] Flow Control : 00
-[0001] Terminal Type : 03
-[0001] Reserved : 00
-[0002] PCI Device ID : FFFF
-[0002] PCI Vendor ID : FFFF
-[0001] PCI Bus : 00
-[0001] PCI Device : 00
-[0001] PCI Function : 00
-[0004] PCI Flags : 00000000
-[04Bh] PCI Segment : 00
-[04Ch] Reserved : 00000000
-
diff --git a/Platforms/ARM/Juno/AcpiTables/Spcr.aslc b/Platforms/ARM/Juno/AcpiTables/Spcr.aslc
new file mode 100644
index 0000000000000000000000000000000000000000..3d8aa20bb4610d7001d21f07a74ac2aefdfe6a83
--- /dev/null
+++ b/Platforms/ARM/Juno/AcpiTables/Spcr.aslc
@@ -0,0 +1,79 @@
+/** @file
+* SPCR Table
+*
+* Copyright (c) 2014 - 2016, ARM Limited. All rights reserved.
+*
+* 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
+* http://opensource.org/licenses/bsd-license.php
+*
+* THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+* WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+*
+**/
+
+#include "ArmPlatform.h"
+#include <Library/AcpiLib.h>
+#include <Library/ArmLib.h>
+#include <Library/PcdLib.h>
+#include <IndustryStandard/Acpi.h>
+#include <IndustryStandard/SerialPortConsoleRedirectionTable.h>
+
+/**
+ * References:
+ * Serial Port Console Redirection Table Specification Version 1.03 - August 10, 2015
+ **/
+
+
+///
+/// SPCR Flow Control
+///
+#define SPCR_FLOW_CONTROL_NONE 0
+
+
+STATIC EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE Spcr = {
+ ARM_ACPI_HEADER (EFI_ACPI_5_1_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_SIGNATURE,
+ EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE,
+ EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_REVISION),
+ EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_INTERFACE_TYPE_ARM_PL011_UART,
+ {
+ EFI_ACPI_RESERVED_BYTE,
+ EFI_ACPI_RESERVED_BYTE,
+ EFI_ACPI_RESERVED_BYTE
+ },
+ ARM_GAS32 (FixedPcdGet64 (PcdSerialRegisterBase)),
+ EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_INTERRUPT_TYPE_GIC,
+ 0, // Not used on ARM
+ FixedPcdGet32 (PL011UartInterrupt),
+#if (FixedPcdGet64 (PcdUartDefaultBaudRate) == 9600)
+ EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_BAUD_RATE_9600,
+#elif (FixedPcdGet64 (PcdUartDefaultBaudRate) == 19200)
+ EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_BAUD_RATE_19200,
+#elif (FixedPcdGet64 (PcdUartDefaultBaudRate) == 57600)
+ EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_BAUD_RATE_57600,
+#elif (FixedPcdGet64 (PcdUartDefaultBaudRate) == 115200)
+ EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_BAUD_RATE_115200,
+#else
+#error Unsupported SPCR Baud Rate
+#endif
+ EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_PARITY_NO_PARITY,
+ EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_STOP_BITS_1,
+ SPCR_FLOW_CONTROL_NONE,
+ EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_TERMINAL_TYPE_ANSI,
+ EFI_ACPI_RESERVED_BYTE,
+ 0xFFFF,
+ 0xFFFF,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00000000,
+ 0x00,
+ EFI_ACPI_RESERVED_DWORD
+};
+
+//
+// Reference the table being generated to prevent the optimizer from removing the
+// data structure from the executable
+//
+VOID* CONST ReferenceAcpiTable = &Spcr;
--
Guid("CE165669-3EF3-493F-B85D-6190EE5B9759")
From: Sami Mujawar <sami.mujawar(a)arm.com>
Amend the Serial Port Console Redirection Table to enable (i.a.)
Microsoft Windows Emergency Management Services (EMS) over the
serial port.
This patch replaces the Spcr.asl file which described the SPCR table
in TDL format with Spcr.aslc which allows more flexibility by way of
permitting the use of PCDs. This means the serial port usage can be
modified at build.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Alexei Fedorov <alexei.fedorov(a)arm.com>
Signed-off-by: Girish Pathak <girish.pathak(a)arm.com>
Signed-off-by: Sami Mujawar <sami.mujawar(a)arm.com>
Signed-off-by: Evan Lloyd <evan.lloyd(a)arm.com>
---
Platforms/ARM/Juno/AcpiTables/AcpiTables.inf | 12 ++-
Platforms/ARM/Juno/AcpiTables/Spcr.asl | 73 ------------------
Platforms/ARM/Juno/AcpiTables/Spcr.aslc | 79 ++++++++++++++++++++
Platforms/ARM/Juno/ArmJuno.dsc | 1 +
4 files changed, 90 insertions(+), 75 deletions(-)
diff --git a/Platforms/ARM/Juno/AcpiTables/AcpiTables.inf b/Platforms/ARM/Juno/AcpiTables/AcpiTables.inf
index 3159d7d..412f43d 100644
--- a/Platforms/ARM/Juno/AcpiTables/AcpiTables.inf
+++ b/Platforms/ARM/Juno/AcpiTables/AcpiTables.inf
@@ -2,7 +2,7 @@
#
# ACPI table data and ASL sources required to boot the platform.
#
-# Copyright (c) 2014-2015, ARM Ltd. All rights reserved.
+# Copyright (c) 2014-2016, ARM Ltd. All rights reserved.
#
# This program and the accompanying materials
# are licensed and made available under the terms and conditions of the BSD License
@@ -24,7 +24,7 @@
[Sources]
Dsdt.asl
Dbg2.asl
- Spcr.asl
+ Spcr.aslc
Facs.aslc
Fadt.aslc
Gtdt.aslc
@@ -52,3 +52,11 @@
gArmTokenSpaceGuid.PcdGenericWatchdogControlBase
gArmTokenSpaceGuid.PcdGenericWatchdogRefreshBase
+
+ #
+ # PL011 UART Settings for Serial Port Console Redirection
+ #
+ gEfiMdeModulePkgTokenSpaceGuid.PcdSerialRegisterBase
+ gEfiMdePkgTokenSpaceGuid.PcdUartDefaultBaudRate
+ gArmPlatformTokenSpaceGuid.PL011UartClkInHz
+ gArmPlatformTokenSpaceGuid.PL011UartInterrupt
diff --git a/Platforms/ARM/Juno/AcpiTables/Spcr.asl b/Platforms/ARM/Juno/AcpiTables/Spcr.asl
deleted file mode 100644
index 2b65326..0000000
--- a/Platforms/ARM/Juno/AcpiTables/Spcr.asl
+++ /dev/null
@@ -1,73 +0,0 @@
-/*
- * Copyright (c) 2015, Graeme Gregory <graeme.gregory(a)linaro.org>
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
- * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- *
- * NB: This License is also known as the "BSD 2-Clause License".
- *
- *
- * [SPCR] ACPI Table
- *
- */
-
-[0004] Signature : "SPCR" [Serial Port Console Redirection table]
-[0004] Table Length : 00000050
-[0001] Revision : 02
-[0001] Checksum : 29
-[0006] Oem ID : "LINARO"
-[0008] Oem Table ID : "ARM-JUNO"
-[0004] Oem Revision : 00000000
-[0004] Asl Compiler ID : "INTL"
-[0004] Asl Compiler Revision : 20140926
-
-[0001] Interface Type : 03
-[0003] Reserved : 000000
-
-[000C] Serial Port Register : [Generic Address Structure]
-[0001] Space ID : 00 [SystemMemory]
-[0001] Bit Width : 20
-[0001] Bit Offset : 00
-[0001] Encoded Access Width : 03 [DWord Access:32]
-[0008] Address : 000000007FF80000
-
-[0001] Interrupt Type : 08
-[0001] PCAT-compatible IRQ : 00
-[0004] Interrupt : 00000073
-[0001] Baud Rate : 07
-[0001] Parity : 00
-[0001] Stop Bits : 01
-[0001] Flow Control : 00
-[0001] Terminal Type : 03
-[0001] Reserved : 00
-[0002] PCI Device ID : FFFF
-[0002] PCI Vendor ID : FFFF
-[0001] PCI Bus : 00
-[0001] PCI Device : 00
-[0001] PCI Function : 00
-[0004] PCI Flags : 00000000
-[04Bh] PCI Segment : 00
-[04Ch] Reserved : 00000000
-
diff --git a/Platforms/ARM/Juno/AcpiTables/Spcr.aslc b/Platforms/ARM/Juno/AcpiTables/Spcr.aslc
new file mode 100644
index 0000000..d76f48a
--- /dev/null
+++ b/Platforms/ARM/Juno/AcpiTables/Spcr.aslc
@@ -0,0 +1,79 @@
+/** @file
+* SPCR Table
+*
+* Copyright (c) 2014 - 2016, ARM Limited. All rights reserved.
+*
+* 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
+* http://opensource.org/licenses/bsd-license.php
+*
+* THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+* WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+*
+**/
+
+#include "ArmPlatform.h"
+#include <Library/AcpiLib.h>
+#include <Library/ArmLib.h>
+#include <Library/PcdLib.h>
+#include <IndustryStandard/Acpi.h>
+#include <IndustryStandard/SerialPortConsoleRedirectionTable.h>
+
+/**
+ * References:
+ * Serial Port Console Redirection Table Specification Version 1.03 - August 10, 2015
+ **/
+
+
+///
+/// SPCR Flow Control
+///
+#define SPCR_FLOW_CONTROL_NONE 0
+
+
+STATIC EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE Spcr = {
+ ARM_ACPI_HEADER (EFI_ACPI_5_1_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_SIGNATURE,
+ EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE,
+ EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_REVISION),
+ EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_INTERFACE_TYPE_ARM_PL011_UART,
+ {
+ EFI_ACPI_RESERVED_BYTE,
+ EFI_ACPI_RESERVED_BYTE,
+ EFI_ACPI_RESERVED_BYTE
+ },
+ ARM_GAS32 (FixedPcdGet64 (PcdSerialRegisterBase)),
+ EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_INTERRUPT_TYPE_GIC,
+ 0, // Not used on ARM
+ FixedPcdGet32 (PL011UartInterrupt),
+#if (FixedPcdGet64 (PcdUartDefaultBaudRate) == 9600)
+ EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_BAUD_RATE_9600,
+#elif (FixedPcdGet64 (PcdUartDefaultBaudRate) == 19200)
+ EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_BAUD_RATE_19200,
+#elif (FixedPcdGet64 (PcdUartDefaultBaudRate) == 57600)
+ EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_BAUD_RATE_57600,
+#elif (FixedPcdGet64 (PcdUartDefaultBaudRate) == 115200)
+ EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_BAUD_RATE_115200,
+#else
+#error Unsupported SPCR Baud Rate
+#endif
+ EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_PARITY_NO_PARITY,
+ EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_STOP_BITS_1,
+ SPCR_FLOW_CONTROL_NONE,
+ EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_TERMINAL_TYPE_ANSI,
+ EFI_ACPI_RESERVED_BYTE,
+ 0xFFFF,
+ 0xFFFF,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x00000000,
+ 0x00,
+ EFI_ACPI_RESERVED_DWORD
+};
+
+//
+// Reference the table being generated to prevent the optimizer from removing the
+// data structure from the executable
+//
+VOID* CONST ReferenceAcpiTable = &Spcr;
diff --git a/Platforms/ARM/Juno/ArmJuno.dsc b/Platforms/ARM/Juno/ArmJuno.dsc
index d099d86..b718794 100644
--- a/Platforms/ARM/Juno/ArmJuno.dsc
+++ b/Platforms/ARM/Juno/ArmJuno.dsc
@@ -128,6 +128,7 @@
gEfiMdePkgTokenSpaceGuid.PcdUartDefaultBaudRate|115200
gArmPlatformTokenSpaceGuid.PL011UartInteger|4
gArmPlatformTokenSpaceGuid.PL011UartFractional|0
+ gArmPlatformTokenSpaceGuid.PL011UartInterrupt|115
## PL031 RealTimeClock
gArmPlatformTokenSpaceGuid.PcdPL031RtcBase|0x1C170000
--
2.7.0
The patches add a new device configuration protocol and use it to configure
a Marvell Yukon controller on the Juno platform with a valid MAC address.
The device configuration protocol will enable a driver to reconfigure device
specific settings before driver is started. As an example, the Juno Marvell
Yukon NIC MAC address which has to be configured before the driver bound to
the controller. The device configuration protocol defined as generic and
supports multiple controllers per driver and multiple types of configuration
per controller. Depending on the driver's protocol implementation, the
configuration can be defined as "read/write" or "read only" and set to or
get from a driver based on specified controller and its supported
configuration type.
Daniil Egranov (2):
ArmPlatformPkg/ArmJunoDxe: Configure Marvell Yukon MAC address on Juno
EmbeddedPkg: Added device configure protocol
.../ArmJunoPkg/Drivers/ArmJunoDxe/ArmJunoDxe.c | 100 +++++++++++++++-
.../ArmJunoPkg/Drivers/ArmJunoDxe/ArmJunoDxe.inf | 1 +
.../Drivers/ArmJunoDxe/ArmJunoDxeInternal.h | 3 +
EmbeddedPkg/EmbeddedPkg.dec | 1 +
.../Include/Protocol/EmbeddedDeviceConfig.h | 127 +++++++++++++++++++++
5 files changed, 229 insertions(+), 3 deletions(-)
create mode 100644 EmbeddedPkg/Include/Protocol/EmbeddedDeviceConfig.h
--
2.7.4
Hello,
The following compilation condition in OpenPlatformPkg\Platforms\ARM\Juno\AcpiTables\Fadt.aslc
#if ARM_JUNO_ACPI_5_0
causes the GCC error listed below
k:\edk2\OpenPlatformPkg\Platforms\ARM\Juno\AcpiTables\Fadt.aslc:76:22: error: #if with no expression
#if ARM_JUNO_ACPI_5_0
^
when ARM_JUNO_ACPI_5_0 macro is defined in edk2\ArmPlatformPkg\ArmJunoPkg\Include\ArmPltaform.h:
#define ARM_JUNO_ACPI_5_0
To fix the bug
#if ARM_JUNO_ACPI_5_0
should be replaced with
#ifdef ARM_JUNO_ACPI_5_0
(also see the previous usage on line #20 in the same file)
Alexei.
IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you.