uefi: update to r36.4.0

* Obsolete patch for RTC drivers dropped
* XusbController patch added to remove inappropriate C runtime references
* Other patches refreshed

Signed-off-by: Matt Madison <matt@madison.systems>
This commit is contained in:
Matt Madison
2024-10-12 08:02:02 -07:00
committed by Matt Madison
parent 9cd2886754
commit c15e4977d6
6 changed files with 288 additions and 61 deletions

View File

@@ -2,9 +2,9 @@ LICENSE .= " & Proprietary"
LIC_FILES_CHKSUM = "file://License.txt;md5=2b415520383f7964e96700ae12b4570a"
SRC_URI_EDK2 = "gitsm://github.com/NVIDIA/edk2.git;protocol=https;branch=r36.3.0-updates"
SRC_URI_EDK2 = "gitsm://github.com/NVIDIA/edk2.git;protocol=https;branch=r36.4.0-updates"
SRCREV_edk2 = "36cdf6e1e3a3b5a74f90cb7a5ae2eaf348617a95"
SRCREV_edk2 = "338f5d9e7c525ab2ec0882bb6fc699f62d107b31"
SRC_URI = "${SRC_URI_EDK2};name=edk2;destsuffix=edk2-tegra/edk2"

View File

@@ -6,20 +6,20 @@ LICENSE .= " & Proprietary"
LIC_FILES_CHKSUM += "file://../edk2-platforms/License.txt;md5=2b415520383f7964e96700ae12b4570a"
LIC_FILES_CHKSUM += "file://../edk2-nvidia/LICENSE;md5=52d8683e3d65a77ef84cc863e3f24f25"
LIC_FILES_CHKSUM += "file://../edk2-nvidia-non-osi/Silicon/NVIDIA/Drivers/NvGopDriver/NOTICE.nvgop-chips-platform.efi;md5=549bbaa72578510a18ba3c324465027c"
LIC_FILES_CHKSUM += "file://../edk2-nvidia-non-osi/Silicon/NVIDIA/Drivers/NvGopDriver/NOTICE.nvgop-chips-platform.efi;md5=782048cadee3851a0da2b4a3fdae0d93"
inherit python3native
DEPENDS += "dtc-native python3-kconfiglib-native"
SRC_URI_EDK2_PLATFORMS = "git://github.com/NVIDIA/edk2-platforms.git;protocol=https;branch=r36.3.0-updates"
SRC_URI_EDK2_NVIDIA = "git://github.com/NVIDIA/edk2-nvidia.git;protocol=https;branch=r36.3.0-updates"
SRC_URI_EDK2_NONOSI = "git://github.com/NVIDIA/edk2-non-osi.git;protocol=https;branch=r36.3.0-updates"
SRC_URI_EDK2_NVIDIA_NONOSI = "git://github.com/NVIDIA/edk2-nvidia-non-osi.git;protocol=https;branch=r36.3.0-updates"
SRC_URI_EDK2_PLATFORMS = "git://github.com/NVIDIA/edk2-platforms.git;protocol=https;branch=r36.4.0-updates"
SRC_URI_EDK2_NVIDIA = "git://github.com/NVIDIA/edk2-nvidia.git;protocol=https;branch=r36.4.0-updates"
SRC_URI_EDK2_NONOSI = "git://github.com/NVIDIA/edk2-non-osi.git;protocol=https;branch=r36.4.0-updates"
SRC_URI_EDK2_NVIDIA_NONOSI = "git://github.com/NVIDIA/edk2-nvidia-non-osi.git;protocol=https;branch=r36.4.0-updates"
SRCREV_edk2-non-osi = "8c09bd0955338db38813e0d8ae1faa634f545f73"
SRCREV_edk2-nvidia = "81336553c0720aa3f431f24f10f3b4fb95464af1"
SRCREV_edk2-nvidia-non-osi = "e0852f9942a5591ba5960501a53ad684c172354c"
SRCREV_edk2-nvidia = "5de7ef09811a06475248bf07661f7ae53e1c106d"
SRCREV_edk2-nvidia-non-osi = "7d8b0a5f9e3e9d6cc58ee7f3f4036cfc8f21970c"
SRCREV_edk2-platforms = "0b05eaed3d0c624a2084034fcc2bd0721809d041"
SRC_URI += "\
@@ -34,7 +34,7 @@ SRCREV_FORMAT = "edk2_edk2-platforms_edk2-non-osi_edk2-nvidia_edk2-nvidia-non-os
SRC_URI += "\
file://0001-Update-tools_def.template-for-toolchain-differences.patch \
file://0002-L4TLauncher-allow-for-empty-missing-APPEND-line-in-e.patch;patchdir=../edk2-nvidia \
file://0003-Remove-BUILD_EPOCH-definitions-from-RTC-inf-files.patch;patchdir=../edk2-nvidia \
file://0003-XusbControllerDxe-use-BaseMemoryLib-functions.patch;patchdir=../edk2-nvidia \
"
S = "${WORKDIR}/edk2-tegra/edk2"

View File

@@ -1,6 +1,6 @@
From 3c436fd0ec658b315edac10a170093f32b73754b Mon Sep 17 00:00:00 2001
From d96ca1c5f34f352d367e07c92f8e73c091a385f3 Mon Sep 17 00:00:00 2001
From: Matt Madison <matt@madison.systems>
Date: Mon, 20 May 2024 10:59:27 -0700
Date: Sat, 12 Oct 2024 06:43:03 -0700
Subject: [PATCH] Update tools_def.template for toolchain differences
* Add support for passing SOURCE_DATE_EPOCH and DEBUG_PREFIX_MAP from environment
@@ -45,5 +45,5 @@ index 1395ce9ad0..a41189ba1b 100755
DEFINE GCC48_ARM_CC_XIPFLAGS = DEF(GCC_ARM_CC_XIPFLAGS)
DEFINE GCC48_AARCH64_CC_FLAGS = $(PLATFORM_FLAGS) -mcmodel=large DEF(GCC_AARCH64_CC_FLAGS)
--
2.34.1
2.43.0

View File

@@ -1,11 +1,11 @@
From 12f67e4724a2e44659a08a64e01b9eafcd992241 Mon Sep 17 00:00:00 2001
From 4dcda9f95a724623ce2813d73486324243dc2266 Mon Sep 17 00:00:00 2001
From: Matt Madison <matt@madison.systems>
Date: Sat, 4 Feb 2023 06:31:24 -0800
Subject: [PATCH 2/3] L4TLauncher: allow for empty/missing APPEND line in extlinux.conf
Date: Sat, 12 Oct 2024 06:43:52 -0700
Subject: [PATCH] L4TLauncher: allow for empty/missing APPEND line in
extlinux.conf
Upstream-Status: Pending
Signed-off-by: Matt Madison <matt@madison.systems>
Signed-off-by: Jose Quaresma <jose.quaresma@foundries.io>
---
.../Application/L4TLauncher/L4TLauncher.c | 30 ++++++++++---------
1 file changed, 16 insertions(+), 14 deletions(-)
@@ -53,5 +53,5 @@ index ab86f3e0..3be26f82 100644
}
}
--
2.34.1
2.43.0

View File

@@ -1,43 +0,0 @@
From fe0b1d149762eab19bdd3a8018afdf190364ddf3 Mon Sep 17 00:00:00 2001
From: Matt Madison <matt@madison.systems>
Date: Mon, 20 May 2024 11:09:38 -0700
Subject: [PATCH 3/3] Remove BUILD_EPOCH definitions from RTC inf files
as we will pass that flag to all compilations via an environment variable.
Upstream-Status: Inappropriate [OE specific]
Signed-off-by: Matt Madison <matt@madison.systems>
---
.../Library/MaximRealTimeClockLib/MaximRealTimeClockLib.inf | 4 ----
.../NuvotonRealTimeClockLib/NuvotonRealTimeClockLib.inf | 5 -----
2 files changed, 9 deletions(-)
diff --git a/Silicon/NVIDIA/Library/MaximRealTimeClockLib/MaximRealTimeClockLib.inf b/Silicon/NVIDIA/Library/MaximRealTimeClockLib/MaximRealTimeClockLib.inf
index 4a69ad62..64e76bee 100644
--- a/Silicon/NVIDIA/Library/MaximRealTimeClockLib/MaximRealTimeClockLib.inf
+++ b/Silicon/NVIDIA/Library/MaximRealTimeClockLib/MaximRealTimeClockLib.inf
@@ -52,7 +52,3 @@
gEfiVariableArchProtocolGuid
AND
gEfiVariableWriteArchProtocolGuid
-
-# Current usage of this library expects GCC in a UNIX-like shell environment with the date command
-[BuildOptions]
- GCC:*_*_*_CC_FLAGS = -DBUILD_EPOCH=`date +%s`
diff --git a/Silicon/NVIDIA/Library/NuvotonRealTimeClockLib/NuvotonRealTimeClockLib.inf b/Silicon/NVIDIA/Library/NuvotonRealTimeClockLib/NuvotonRealTimeClockLib.inf
index db01f928..f444c2b8 100644
--- a/Silicon/NVIDIA/Library/NuvotonRealTimeClockLib/NuvotonRealTimeClockLib.inf
+++ b/Silicon/NVIDIA/Library/NuvotonRealTimeClockLib/NuvotonRealTimeClockLib.inf
@@ -52,8 +52,3 @@
gEfiVariableArchProtocolGuid
AND
gEfiVariableWriteArchProtocolGuid
-
-# Current usage of this library expects GCC in a UNIX-like shell environment with the date command
-# BUILD_EPOCH will be used as the reference date/time needed for Virtual RTC feature.
-[BuildOptions]
- GCC:*_*_*_CC_FLAGS = -DBUILD_EPOCH=`date +%s`
--
2.34.1

View File

@@ -0,0 +1,270 @@
From 44c16c2589a1ebd2ae53c7370c9a7c4f51d6b8c0 Mon Sep 17 00:00:00 2001
From: Matt Madison <matt@madison.systems>
Date: Sat, 12 Oct 2024 07:09:37 -0700
Subject: [PATCH] XusbControllerDxe: use BaseMemoryLib functions
instead of memcpy/memset from the C runtime library.
Upstream-Status: Pending
Signed-off-by: Matt Madison <matt@madison.systems>
---
.../XusbControllerDxe/XusbControllerDxe.c | 60 +++++++++----------
1 file changed, 28 insertions(+), 32 deletions(-)
diff --git a/Silicon/NVIDIA/Drivers/XusbControllerDxe/XusbControllerDxe.c b/Silicon/NVIDIA/Drivers/XusbControllerDxe/XusbControllerDxe.c
index 6392401c..c6116f2f 100644
--- a/Silicon/NVIDIA/Drivers/XusbControllerDxe/XusbControllerDxe.c
+++ b/Silicon/NVIDIA/Drivers/XusbControllerDxe/XusbControllerDxe.c
@@ -26,7 +26,6 @@
#include "XusbDevControllerPriv.h"
#include <Library/DmaLib.h>
#include "XusbDevControllerDesc.h"
-#include <string.h>
#define XUSB_INTERRUPT_POLL_PERIOD 10000
#define NUM_TRB_EVENT_RING 32U
@@ -252,7 +251,7 @@ XudcQueueTrb (
/* If Control EP */
if (ep_index == EP0_IN) {
- memcpy (
+ CopyMem (
(VOID *)p_xusb_dev_context->cntrl_epenqueue_ptr,
(VOID *)p_trb,
sizeof (NORMAL_TRB_STRUCT)
@@ -278,7 +277,7 @@ XudcQueueTrb (
}
/* Bulk Endpoint */
else if (ep_index == EP1_OUT) {
- memcpy (
+ CopyMem (
(VOID *)p_xusb_dev_context->bulkout_epenqueue_ptr,
(VOID *)p_trb,
sizeof (NORMAL_TRB_STRUCT)
@@ -299,7 +298,7 @@ XudcQueueTrb (
}
/* Bulk Endpoint */
else if (ep_index == EP1_IN) {
- memcpy (
+ CopyMem (
(VOID *)p_xusb_dev_context->bulkin_epenqueue_ptr,
(VOID *)p_trb,
sizeof (NORMAL_TRB_STRUCT)
@@ -372,7 +371,7 @@ XudcIssueStatusTrb (
return e;
}
- memset ((VOID *)&strb, 0, sizeof (STATUS_TRB_STRUCT));
+ ZeroMem ((VOID *)&strb, sizeof (STATUS_TRB_STRUCT));
XudcCreateStatusTrb (&strb, direction);
/* Note EP0_IN is bi-directional. */
@@ -608,7 +607,7 @@ XudcGetDesc (
}
*tx_length = MIN (wlength, desc_length);
- memcpy ((VOID *)mPrivate->pSetupBuffer, (VOID *)desc, *tx_length);
+ CopyMem ((VOID *)mPrivate->pSetupBuffer, (VOID *)desc, *tx_length);
break;
case USB_DT_CONFIG:
@@ -631,7 +630,7 @@ XudcGetDesc (
desc[30] = 0;
}
- memcpy ((VOID *)mPrivate->pSetupBuffer, (VOID *)desc, *tx_length);
+ CopyMem ((VOID *)mPrivate->pSetupBuffer, (VOID *)desc, *tx_length);
break;
case USB_DT_STRING:
@@ -641,27 +640,27 @@ XudcGetDesc (
case USB_MANF_ID:
DEBUG ((EFI_D_ERROR, "%a: Get desc. Manf ID\r\n", __FUNCTION__));
*tx_length = MIN (wlength, (UINT16)sizeof (s_usb_manufacturer_id));
- memcpy ((VOID *)mPrivate->pSetupBuffer, (VOID *)&s_usb_manufacturer_id[0], *tx_length);
+ CopyMem ((VOID *)mPrivate->pSetupBuffer, (VOID *)&s_usb_manufacturer_id[0], *tx_length);
break;
case USB_PROD_ID:
DEBUG ((EFI_D_ERROR, "%a: Get desc. Prod ID\r\n", __FUNCTION__));
desc = (UINT8 *)g_usbconfig->product.desc;
*tx_length = MIN (wlength, g_usbconfig->product.len);
- memcpy ((VOID *)mPrivate->pSetupBuffer, (VOID *)desc, *tx_length);
+ CopyMem ((VOID *)mPrivate->pSetupBuffer, (VOID *)desc, *tx_length);
break;
case USB_SERIAL_ID:
DEBUG ((EFI_D_ERROR, "%a: Get desc. Serial ID\r\n", __FUNCTION__));
desc = (UINT8 *)g_usbconfig->serialno.desc;
*tx_length = MIN (wlength, g_usbconfig->serialno.len);
- memcpy ((VOID *)mPrivate->pSetupBuffer, (VOID *)desc, *tx_length);
+ CopyMem ((VOID *)mPrivate->pSetupBuffer, (VOID *)desc, *tx_length);
break;
case USB_LANGUAGE_ID:
DEBUG ((EFI_D_ERROR, "%a: Get desc. Lang ID\r\n", __FUNCTION__));
*tx_length = MIN (wlength, (UINT16)sizeof (s_usb_language_id));
- memcpy ((VOID *)mPrivate->pSetupBuffer, (VOID *)&s_usb_language_id[0], *tx_length);
+ CopyMem ((VOID *)mPrivate->pSetupBuffer, (VOID *)&s_usb_language_id[0], *tx_length);
break;
default:
@@ -674,7 +673,7 @@ XudcGetDesc (
case USB_DT_DEVICE_QUALIFIER:
DEBUG ((EFI_D_ERROR, "%a: Get desc. Dev qualifier\r\n", __FUNCTION__));
*tx_length = MIN (wlength, (UINT16)sizeof (s_usb_device_qualifier));
- memcpy ((VOID *)mPrivate->pSetupBuffer, (VOID *)&s_usb_device_qualifier[0], *tx_length);
+ CopyMem ((VOID *)mPrivate->pSetupBuffer, (VOID *)&s_usb_device_qualifier[0], *tx_length);
break;
case USB_DT_OTHER_SPEED_CONFIG:
@@ -697,13 +696,13 @@ XudcGetDesc (
}
*tx_length = MIN (wlength, (UINT16)sizeof (s_other_speed_config_desc));
- memcpy ((VOID *)mPrivate->pSetupBuffer, (VOID *)&s_other_speed_config_desc[0], *tx_length);
+ CopyMem ((VOID *)mPrivate->pSetupBuffer, (VOID *)&s_other_speed_config_desc[0], *tx_length);
break;
case USB_DT_BOS:
DEBUG ((EFI_D_ERROR, "%a: Get BOS\r\n", __FUNCTION__));
*tx_length = MIN (wlength, (UINT16)sizeof (s_bos_descriptor));
- memcpy ((VOID *)mPrivate->pSetupBuffer, (VOID *)&s_bos_descriptor[0], *tx_length);
+ CopyMem ((VOID *)mPrivate->pSetupBuffer, (VOID *)&s_bos_descriptor[0], *tx_length);
break;
default:
@@ -742,7 +741,7 @@ XudcEpGetStatus (
}
*tx_length = (UINT16)sizeof (endpoint_status);
- memcpy ((VOID *)ptr_setup_buffer, (VOID *)&endpoint_status[0], sizeof (endpoint_status));
+ CopyMem ((VOID *)ptr_setup_buffer, (VOID *)&endpoint_status[0], sizeof (endpoint_status));
}
static VOID
@@ -794,7 +793,7 @@ XudcIssueDataTrb (
return EFI_SUCCESS;
}
- memset ((VOID *)&dtrb, 0, sizeof (DATA_TRB_STRUCT));
+ ZeroMem ((VOID *)&dtrb, sizeof (DATA_TRB_STRUCT));
XudcCreateDataTrb (&dtrb, buffer, bytes, direction);
/* Note EP0_IN is bi-directional. */
@@ -1009,13 +1008,13 @@ XudcHandleSetupPkt (
case GET_STATUS:
DEBUG ((EFI_D_ERROR, "%a: Get status\r\n", __FUNCTION__));
tx_length = MIN (wlength, (UINT16)sizeof (s_usb_dev_status));
- memcpy ((VOID *)mPrivate->pSetupBuffer, (VOID *)&s_usb_dev_status[0], tx_length);
+ CopyMem ((VOID *)mPrivate->pSetupBuffer, (VOID *)&s_usb_dev_status[0], tx_length);
break;
case GET_CONFIGURATION:
DEBUG ((EFI_D_ERROR, "%a: Get Config\r\n", __FUNCTION__));
tx_length = MIN (wlength, (UINT16)sizeof (p_xusb_dev_context->config_num));
- memcpy ((VOID *)mPrivate->pSetupBuffer, &p_xusb_dev_context->config_num, tx_length);
+ CopyMem ((VOID *)mPrivate->pSetupBuffer, &p_xusb_dev_context->config_num, tx_length);
break;
case GET_DESCRIPTOR:
@@ -1054,7 +1053,7 @@ XudcHandleSetupPkt (
UINT8 interface_status[2] = { 0, 0 };
tx_length = MIN (wlength, (UINT16)sizeof (interface_status));
- memcpy ((VOID *)mPrivate->pSetupBuffer, &interface_status[0], tx_length);
+ CopyMem ((VOID *)mPrivate->pSetupBuffer, &interface_status[0], tx_length);
break;
case GET_INTERFACE:
@@ -1062,7 +1061,7 @@ XudcHandleSetupPkt (
DEBUG ((EFI_D_ERROR, "%a: Get Interface D2H_I/F\r\n", __FUNCTION__));
tx_length = MIN (wlength, (UINT16)sizeof (p_xusb_dev_context->interface_num));
- memcpy (
+ CopyMem (
(VOID *)mPrivate->pSetupBuffer,
&p_xusb_dev_context->interface_num,
tx_length
@@ -1571,7 +1570,7 @@ XudcHandleTxferEvent (
mPrivate->DataReceivedCallback (ReportReceived, mPrivate->DataPacket);
/* Prepare next Rx packet */
- memset (mPrivate->DataPacket, 0, MAX_TFR_LENGTH);
+ ZeroMem (mPrivate->DataPacket, MAX_TFR_LENGTH);
/* check the data size to put the next TRB */
if (mPrivate->CurrentRxLength == mPrivate->TotalRxLength) {
@@ -1687,7 +1686,7 @@ XudcPollForEvent (
#endif
/* Check if we are waiting for setup packet */
p_setup_event_trb = (SETUP_EVENT_TRB_STRUCT *)p_event_trb;
- memcpy (
+ CopyMem (
(VOID *)&mPrivate->usb_setup_data[0],
(VOID *)&p_setup_event_trb->data[0],
8
@@ -1900,21 +1899,18 @@ XudcInitTransferRing (
/* zero out tx ring */
if ((ep_index == EP0_IN) || (ep_index == EP0_OUT)) {
- memset (
+ ZeroMem (
(VOID *)mPrivate->pTxRingEP0,
- 0,
NUM_TRB_TRANSFER_RING * sizeof (DATA_TRB_STRUCT)
);
} else if (ep_index == EP1_IN) {
- memset (
+ ZeroMem (
(VOID *)mPrivate->pTxRingEP1In,
- 0,
NUM_TRB_TRANSFER_RING * sizeof (DATA_TRB_STRUCT)
);
} else if (ep_index == EP1_OUT) {
- memset (
+ ZeroMem (
(VOID *)mPrivate->pTxRingEP1Out,
- 0,
NUM_TRB_TRANSFER_RING * sizeof (DATA_TRB_STRUCT)
);
} else {
@@ -2034,7 +2030,7 @@ XudcInitEpContext (
/* Control Endpoint 0. */
if (ep_index == EP0_IN) {
- memset ((VOID *)ep_info, 0, sizeof (EP_CONTEXT));
+ ZeroMem ((VOID *)ep_info, sizeof (EP_CONTEXT));
/* Set Endpoint State to running. */
ep_info->ep_state = EP_RUNNING;
/* Set error count to 3 */
@@ -2080,7 +2076,7 @@ XudcInitEpContext (
p_link_trb->trb_type = LINK_TRB;
} else {
if (ep_index == EP1_OUT) {
- memset ((VOID *)ep_info, 0, sizeof (EP_CONTEXT));
+ ZeroMem ((VOID *)ep_info, sizeof (EP_CONTEXT));
ep_info->ep_state = EP_RUNNING;
/* Set error count to 3 */
ep_info->cerr = 3;
@@ -2134,7 +2130,7 @@ XudcInitEpContext (
p_link_trb->trb_type = LINK_TRB;
} else {
/* EP IN */
- memset ((VOID *)ep_info, 0, sizeof (EP_CONTEXT));
+ ZeroMem ((VOID *)ep_info, sizeof (EP_CONTEXT));
ep_info->ep_state = EP_RUNNING;
/* Set error count to 3 */
ep_info->cerr = 3;
@@ -2615,7 +2611,7 @@ XudcIssueNormalTrb (
UINTN BufferSize = bytes;
VOID *Mapping;
- memset ((void *)&normal_trb, 0, sizeof (NORMAL_TRB_STRUCT));
+ ZeroMem ((void *)&normal_trb, sizeof (NORMAL_TRB_STRUCT));
e = DmaMap (
MapOperationBusMasterCommonBuffer,
(VOID *)buffer,
--
2.43.0