* [edk2-platforms][PATCH 0/2] Fixing FDT handling on Pi 3 @ 2020-04-30 19:18 Andrei Warkentin 2020-04-30 19:19 ` [edk2-platforms][PATCH 1/2] RPi3/RPi4: fix RPi 3 VPU-passed FDT handling by unifying with RPi4 implementation Andrei Warkentin ` (2 more replies) 0 siblings, 3 replies; 6+ messages in thread From: Andrei Warkentin @ 2020-04-30 19:18 UTC (permalink / raw) To: devel; +Cc: ard.biesheuvel, leif, pete, philmd Dear all, This patch set finishes what I started with the Pi 4 fix for the regression seen with newer VideoCore firmware, where a device tree passed via config.txt would not be detected by UEFI. This makes VPU-passed FDT work again on Pi 3 variants. This also cleans up the docs around correctly using FDT, hopefully solving some of the frustrations seem around using this correctly. Andrei Warkentin (2): RPi3/RPi4: fix RPi 3 VPU-passed FDT handling by unifying with RPi4 implementation RPi: update Pi3 and Pi4 readmes with correct info on FDT handling .../Library/PlatformLib/RaspberryPiMem.c | 45 +++++++++---------- Platform/RaspberryPi/RPi3/RPi3.dsc | 9 +++- Platform/RaspberryPi/RPi3/RPi3.fdf | 36 ++++++++------- Platform/RaspberryPi/RPi3/Readme.md | 38 ++++++++++------ Platform/RaspberryPi/RPi4/RPi4.dsc | 7 ++- Platform/RaspberryPi/RPi4/RPi4.fdf | 8 ++++ Platform/RaspberryPi/RPi4/Readme.md | 24 +++++----- Platform/RaspberryPi/RaspberryPi.dec | 6 ++- 8 files changed, 103 insertions(+), 70 deletions(-) -- 2.17.1 ^ permalink raw reply [flat|nested] 6+ messages in thread
* [edk2-platforms][PATCH 1/2] RPi3/RPi4: fix RPi 3 VPU-passed FDT handling by unifying with RPi4 implementation 2020-04-30 19:18 [edk2-platforms][PATCH 0/2] Fixing FDT handling on Pi 3 Andrei Warkentin @ 2020-04-30 19:19 ` Andrei Warkentin 2020-05-01 9:35 ` Pete Batard 2020-04-30 19:19 ` [edk2-platforms][PATCH 2/2] RPi: update Pi3 and Pi4 readmes with correct info on FDT handling Andrei Warkentin 2020-05-01 10:30 ` [edk2-platforms][PATCH 0/2] Fixing FDT handling on Pi 3 Ard Biesheuvel 2 siblings, 1 reply; 6+ messages in thread From: Andrei Warkentin @ 2020-04-30 19:19 UTC (permalink / raw) To: devel; +Cc: ard.biesheuvel, leif, pete, philmd A rev-up of start.elf VPU firmware meant that the previous scheme of loading the DTB over top of RPI_EFI.FD no longer works - the DT is now loaded way before the armstub, so any overlap means the DT is overridden. This change re-arranges a few items in the FD, allowing the DTB to loaded directly after the FD in physical memory. Unlike the Pi 4 implementation, we can't move the UEFI image down in memory, as that needs a TF-A changem so it just reduces the size by 0x10000. The same base address (0x1f0000) is used as on the Pi 4. The Pi 3 FDF can be further unified with Pi 4 after work on TF-A to move to a single BL32-based Pi 3 TF-A implementation. Tested: Pi 3A+, Pi 2B v1.2, Pi 4B (4GB). Signed-off-by: Andrei Warkentin <andrey.warkentin@gmail.com> --- Platform/RaspberryPi/Library/PlatformLib/RaspberryPiMem.c | 44 ++++++++++---------- Platform/RaspberryPi/RPi3/RPi3.dsc | 9 +++- Platform/RaspberryPi/RPi3/RPi3.fdf | 36 ++++++++-------- Platform/RaspberryPi/RPi4/RPi4.dsc | 7 ++-- Platform/RaspberryPi/RPi4/RPi4.fdf | 8 ++++ Platform/RaspberryPi/RaspberryPi.dec | 6 ++- 6 files changed, 63 insertions(+), 47 deletions(-) diff --git a/Platform/RaspberryPi/Library/PlatformLib/RaspberryPiMem.c b/Platform/RaspberryPi/Library/PlatformLib/RaspberryPiMem.c index dec8e09d..aae189ec 100644 --- a/Platform/RaspberryPi/Library/PlatformLib/RaspberryPiMem.c +++ b/Platform/RaspberryPi/Library/PlatformLib/RaspberryPiMem.c @@ -94,29 +94,27 @@ ArmPlatformGetVirtualMemoryMap ( VirtualMemoryInfo[Index].Type = RPI_MEM_RUNTIME_REGION; VirtualMemoryInfo[Index++].Name = L"FD Variables"; - if (BCM2711_SOC_REGISTERS != 0) { - // - // Only the Pi 4 firmware today expects the DTB to directly follow the - // FD instead of overlapping the FD. - // - VirtualMemoryTable[Index].PhysicalBase = FixedPcdGet32 (PcdFdtBaseAddress); - VirtualMemoryTable[Index].VirtualBase = VirtualMemoryTable[Index].PhysicalBase; - VirtualMemoryTable[Index].Length = FixedPcdGet32 (PcdFdtSize);; - VirtualMemoryTable[Index].Attributes = ARM_MEMORY_REGION_ATTRIBUTE_WRITE_BACK; - VirtualMemoryInfo[Index].Type = RPI_MEM_RESERVED_REGION; - VirtualMemoryInfo[Index++].Name = L"Flattened Device Tree"; - } else { - // - // TF-A reserved RAM only exists for the Pi 3 TF-A. - // - // This is 2MB that directly follows the FD. - // - VirtualMemoryTable[Index].PhysicalBase = (FixedPcdGet64(PcdFdBaseAddress) + FixedPcdGet32(PcdFdSize)); - VirtualMemoryTable[Index].VirtualBase = VirtualMemoryTable[Index].PhysicalBase; - VirtualMemoryTable[Index].Length = FixedPcdGet64 (PcdSystemMemoryBase) - VirtualMemoryTable[Index].PhysicalBase; - VirtualMemoryTable[Index].Attributes = ARM_MEMORY_REGION_ATTRIBUTE_WRITE_BACK; - VirtualMemoryInfo[Index].Type = RPI_MEM_RESERVED_REGION; - VirtualMemoryInfo[Index++].Name = L"TF-A RAM"; + // + // Both the the Pi 4 and Pi 3 implementations expect the DTB to directly follow the FD. + // + VirtualMemoryTable[Index].PhysicalBase = FixedPcdGet32 (PcdFdtBaseAddress); + VirtualMemoryTable[Index].VirtualBase = VirtualMemoryTable[Index].PhysicalBase; + VirtualMemoryTable[Index].Length = FixedPcdGet32 (PcdFdtSize);; + VirtualMemoryTable[Index].Attributes = ARM_MEMORY_REGION_ATTRIBUTE_WRITE_BACK; + VirtualMemoryInfo[Index].Type = RPI_MEM_RESERVED_REGION; + VirtualMemoryInfo[Index++].Name = L"Flattened Device Tree"; + if (BCM2711_SOC_REGISTERS == 0) { + // + // TF-A reserved RAM only exists for the Pi 3 TF-A. + // + // This is 2MB that directly follows the FD. + // + VirtualMemoryTable[Index].PhysicalBase = (FixedPcdGet64(PcdFdBaseAddress) + FixedPcdGet32(PcdFdSize)); + VirtualMemoryTable[Index].VirtualBase = VirtualMemoryTable[Index].PhysicalBase; + VirtualMemoryTable[Index].Length = FixedPcdGet64 (PcdSystemMemoryBase) - VirtualMemoryTable[Index].PhysicalBase; + VirtualMemoryTable[Index].Attributes = ARM_MEMORY_REGION_ATTRIBUTE_WRITE_BACK; + VirtualMemoryInfo[Index].Type = RPI_MEM_RESERVED_REGION; + VirtualMemoryInfo[Index++].Name = L"TF-A RAM"; } // Base System RAM diff --git a/Platform/RaspberryPi/RPi3/RPi3.dsc b/Platform/RaspberryPi/RPi3/RPi3.dsc index d4a3d49d..563fb891 100644 --- a/Platform/RaspberryPi/RPi3/RPi3.dsc +++ b/Platform/RaspberryPi/RPi3/RPi3.dsc @@ -387,8 +387,13 @@ # Size of the region used by UEFI in permanent memory (Reserved 64MB) gArmPlatformTokenSpaceGuid.PcdSystemMemoryUefiRegionSize|0x04000000 # - # This matches PcdFvBaseAddress, since everything less is ATF, and - # will be reserved away. + # 0x00000000 - 0x001F0000 FD (PcdFdBaseAddress, PcdFdSize) + # 0x001F0000 - 0x00200000 DTB (PcdFdtBaseAddress, PcdFdtSize) + # 0x00200000 - 0x00400000 TFA (BL2 / BL31 / BL32 "secure SRAM") + # 0x00400000 - ... RAM (PcdSystemMemoryBase, PcdSystemMemorySize) + # + # This matches PcdFvBaseAddress, since everything less is FD + TF-A RAM, + # thus will be reserved away. # gArmTokenSpaceGuid.PcdSystemMemoryBase|0x00400000 gArmTokenSpaceGuid.PcdSystemMemorySize|0x3FC00000 diff --git a/Platform/RaspberryPi/RPi3/RPi3.fdf b/Platform/RaspberryPi/RPi3/RPi3.fdf index d334d3be..daedc443 100644 --- a/Platform/RaspberryPi/RPi3/RPi3.fdf +++ b/Platform/RaspberryPi/RPi3/RPi3.fdf @@ -25,11 +25,11 @@ [FD.RPI_EFI] BaseAddress = 0x00000000|gArmTokenSpaceGuid.PcdFdBaseAddress -Size = 0x00200000|gArmTokenSpaceGuid.PcdFdSize +Size = 0x001f0000|gArmTokenSpaceGuid.PcdFdSize ErasePolarity = 1 BlockSize = 0x00001000|gRaspberryPiTokenSpaceGuid.PcdFirmwareBlockSize -NumBlocks = 0x200 +NumBlocks = 0x1f0 ################################################################################ # @@ -53,12 +53,6 @@ NumBlocks = 0x200 0x00000000|0x00010000 FILE = $(TFA_BUILD_BL1) -# -# DTB. -# -0x00010000|0x00010000 -DATA = { 0x00 } - # # ATF secondary boot image in FIP format (BL2 + BL31) # @@ -68,21 +62,21 @@ FILE = $(TFA_BUILD_FIP) # # UEFI image # -0x00030000|0x001b0000 +0x00030000|0x001a0000 gArmTokenSpaceGuid.PcdFvBaseAddress|gArmTokenSpaceGuid.PcdFvSize FV = FVMAIN_COMPACT # # Variables (0x20000 overall). # -# 0x001e0000 - 0x001edfff EFI_FIRMWARE_VOLUME_HEADER -# 0x001ee000 - 0x001eefff Event log -# 0x001ef000 - 0x001effff EFI_FAULT_TOLERANT_WORKING_BLOCK_HEADER- -# 0x001f0000 - 0x001fffff Data +# 0x001d0000 - 0x001ddfff EFI_FIRMWARE_VOLUME_HEADER +# 0x001de000 - 0x001defff Event log +# 0x001df000 - 0x001dffff EFI_FAULT_TOLERANT_WORKING_BLOCK_HEADER- +# 0x001e0000 - 0x001effff Data # # NV_VARIABLE_STORE -0x001e0000|0x0000e000 +0x001d0000|0x0000e000 gRaspberryPiTokenSpaceGuid.PcdNvStorageVariableBase|gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableSize DATA = { @@ -125,11 +119,11 @@ DATA = { } # NV_EVENT_LOG -0x001ee000|0x00001000 +0x001de000|0x00001000 gRaspberryPiTokenSpaceGuid.PcdNvStorageEventLogBase|gRaspberryPiTokenSpaceGuid.PcdNvStorageEventLogSize # NV_FTW_WORKING header -0x001ef000|0x00001000 +0x001df000|0x00001000 gRaspberryPiTokenSpaceGuid.PcdNvStorageFtwWorkingBase|gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingSize DATA = { @@ -144,9 +138,17 @@ DATA = { } # NV_FTW_WORKING data -0x001f0000|0x00010000 +0x001e0000|0x00010000 gRaspberryPiTokenSpaceGuid.PcdNvStorageFtwSpareBase|gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareSize +# +# This is just for documentation purposes! The DTB reserved space is not part of the FD, +# but this is exactly where it is expected to be. +# +# 0x001f0000|0x10000 +# gRaspberryPiTokenSpaceGuid.PcdFdtBaseAddress|gRaspberryPiTokenSpaceGuid.PcdFdtSize +# + ################################################################################ # # FV Section diff --git a/Platform/RaspberryPi/RPi4/RPi4.dsc b/Platform/RaspberryPi/RPi4/RPi4.dsc index c401533a..4deccd9d 100644 --- a/Platform/RaspberryPi/RPi4/RPi4.dsc +++ b/Platform/RaspberryPi/RPi4/RPi4.dsc @@ -275,10 +275,6 @@ gEfiMdePkgTokenSpaceGuid.PcdPerformanceLibraryPropertyMask|1 gEfiMdePkgTokenSpaceGuid.PcdPostCodePropertyMask|0 gEfiMdePkgTokenSpaceGuid.PcdUefiLibMaxPrintBufferSize|320 - # - # Follows right after the FD image. - # - gRaspberryPiTokenSpaceGuid.PcdFdtBaseAddress|0x001f0000 # DEBUG_ASSERT_ENABLED 0x01 # DEBUG_PRINT_ENABLED 0x02 @@ -398,6 +394,9 @@ # 0x001F0000 - 0x00200000 DTB (PcdFdtBaseAddress, PcdFdtSize) # 0x00200000 - ... RAM (PcdSystemMemoryBase, PcdSystemMemorySize) # + # This matches PcdFvBaseAddress, since everything less is the FD, and + # will be reserved away. + # gArmTokenSpaceGuid.PcdSystemMemoryBase|0x00200000 gArmTokenSpaceGuid.PcdSystemMemorySize|0x3fe00000 diff --git a/Platform/RaspberryPi/RPi4/RPi4.fdf b/Platform/RaspberryPi/RPi4/RPi4.fdf index b2164363..c3e9cfc4 100644 --- a/Platform/RaspberryPi/RPi4/RPi4.fdf +++ b/Platform/RaspberryPi/RPi4/RPi4.fdf @@ -135,6 +135,14 @@ DATA = { 0x001e0000|0x00010000 gRaspberryPiTokenSpaceGuid.PcdNvStorageFtwSpareBase|gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareSize +# +# This is just for documentation purposes! The DTB reserved space is not part of the FD, +# but this is exactly where it is expected to be. +# +# 0x001f0000|0x10000 +# gRaspberryPiTokenSpaceGuid.PcdFdtBaseAddress|gRaspberryPiTokenSpaceGuid.PcdFdtSize +# + ################################################################################ # # FV Section diff --git a/Platform/RaspberryPi/RaspberryPi.dec b/Platform/RaspberryPi/RaspberryPi.dec index d59b5481..b66322be 100644 --- a/Platform/RaspberryPi/RaspberryPi.dec +++ b/Platform/RaspberryPi/RaspberryPi.dec @@ -35,7 +35,11 @@ gRaspberryPiDefaultFdtGuid = {0xDF5DA223, 0x1D27, 0x47C3, { 0x8D, 0x1B, 0x9A, 0x41, 0xB5, 0x5A, 0x18, 0xBC}} [PcdsFixedAtBuild.common] - gRaspberryPiTokenSpaceGuid.PcdFdtBaseAddress|0x10000|UINT32|0x00000001 + # + # Space reserved for config.txt-specced DTB follows right after the FD image + # in both RPi3 and RP4 implementations. + # + gRaspberryPiTokenSpaceGuid.PcdFdtBaseAddress|0x001f0000|UINT32|0x00000001 gRaspberryPiTokenSpaceGuid.PcdFirmwareBlockSize|0x0|UINT32|0x00000002 gRaspberryPiTokenSpaceGuid.PcdNvStorageEventLogBase|0x0|UINT32|0x00000003 gRaspberryPiTokenSpaceGuid.PcdNvStorageEventLogSize|0x0|UINT32|0x00000004 -- 2.17.1 ^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [edk2-platforms][PATCH 1/2] RPi3/RPi4: fix RPi 3 VPU-passed FDT handling by unifying with RPi4 implementation 2020-04-30 19:19 ` [edk2-platforms][PATCH 1/2] RPi3/RPi4: fix RPi 3 VPU-passed FDT handling by unifying with RPi4 implementation Andrei Warkentin @ 2020-05-01 9:35 ` Pete Batard 0 siblings, 0 replies; 6+ messages in thread From: Pete Batard @ 2020-05-01 9:35 UTC (permalink / raw) To: Andrei Warkentin, devel; +Cc: ard.biesheuvel, leif, philmd On 2020.04.30 20:19, Andrei Warkentin wrote: > A rev-up of start.elf VPU firmware meant that the previous scheme of > loading the DTB over top of RPI_EFI.FD no longer works - the DT is now > loaded way before the armstub, so any overlap means the DT is overridden. > > This change re-arranges a few items in the FD, allowing the DTB to loaded > directly after the FD in physical memory. > > Unlike the Pi 4 implementation, we can't move the UEFI image down in memory, > as that needs a TF-A changem so it just reduces the size by 0x10000. The > same base address (0x1f0000) is used as on the Pi 4. > > The Pi 3 FDF can be further unified with Pi 4 after work on TF-A to move > to a single BL32-based Pi 3 TF-A implementation. > > Tested: Pi 3A+, Pi 2B v1.2, Pi 4B (4GB). > > Signed-off-by: Andrei Warkentin <andrey.warkentin@gmail.com> > --- > Platform/RaspberryPi/Library/PlatformLib/RaspberryPiMem.c | 44 ++++++++++---------- > Platform/RaspberryPi/RPi3/RPi3.dsc | 9 +++- > Platform/RaspberryPi/RPi3/RPi3.fdf | 36 ++++++++-------- > Platform/RaspberryPi/RPi4/RPi4.dsc | 7 ++-- > Platform/RaspberryPi/RPi4/RPi4.fdf | 8 ++++ > Platform/RaspberryPi/RaspberryPi.dec | 6 ++- > 6 files changed, 63 insertions(+), 47 deletions(-) > > diff --git a/Platform/RaspberryPi/Library/PlatformLib/RaspberryPiMem.c b/Platform/RaspberryPi/Library/PlatformLib/RaspberryPiMem.c > index dec8e09d..aae189ec 100644 > --- a/Platform/RaspberryPi/Library/PlatformLib/RaspberryPiMem.c > +++ b/Platform/RaspberryPi/Library/PlatformLib/RaspberryPiMem.c > @@ -94,29 +94,27 @@ ArmPlatformGetVirtualMemoryMap ( > VirtualMemoryInfo[Index].Type = RPI_MEM_RUNTIME_REGION; > VirtualMemoryInfo[Index++].Name = L"FD Variables"; > > - if (BCM2711_SOC_REGISTERS != 0) { > - // > - // Only the Pi 4 firmware today expects the DTB to directly follow the > - // FD instead of overlapping the FD. > - // > - VirtualMemoryTable[Index].PhysicalBase = FixedPcdGet32 (PcdFdtBaseAddress); > - VirtualMemoryTable[Index].VirtualBase = VirtualMemoryTable[Index].PhysicalBase; > - VirtualMemoryTable[Index].Length = FixedPcdGet32 (PcdFdtSize);; > - VirtualMemoryTable[Index].Attributes = ARM_MEMORY_REGION_ATTRIBUTE_WRITE_BACK; > - VirtualMemoryInfo[Index].Type = RPI_MEM_RESERVED_REGION; > - VirtualMemoryInfo[Index++].Name = L"Flattened Device Tree"; > - } else { > - // > - // TF-A reserved RAM only exists for the Pi 3 TF-A. > - // > - // This is 2MB that directly follows the FD. > - // > - VirtualMemoryTable[Index].PhysicalBase = (FixedPcdGet64(PcdFdBaseAddress) + FixedPcdGet32(PcdFdSize)); > - VirtualMemoryTable[Index].VirtualBase = VirtualMemoryTable[Index].PhysicalBase; > - VirtualMemoryTable[Index].Length = FixedPcdGet64 (PcdSystemMemoryBase) - VirtualMemoryTable[Index].PhysicalBase; > - VirtualMemoryTable[Index].Attributes = ARM_MEMORY_REGION_ATTRIBUTE_WRITE_BACK; > - VirtualMemoryInfo[Index].Type = RPI_MEM_RESERVED_REGION; > - VirtualMemoryInfo[Index++].Name = L"TF-A RAM"; > + // > + // Both the the Pi 4 and Pi 3 implementations expect the DTB to directly follow the FD. > + // > + VirtualMemoryTable[Index].PhysicalBase = FixedPcdGet32 (PcdFdtBaseAddress); > + VirtualMemoryTable[Index].VirtualBase = VirtualMemoryTable[Index].PhysicalBase; > + VirtualMemoryTable[Index].Length = FixedPcdGet32 (PcdFdtSize);; > + VirtualMemoryTable[Index].Attributes = ARM_MEMORY_REGION_ATTRIBUTE_WRITE_BACK; > + VirtualMemoryInfo[Index].Type = RPI_MEM_RESERVED_REGION; > + VirtualMemoryInfo[Index++].Name = L"Flattened Device Tree"; > + if (BCM2711_SOC_REGISTERS == 0) { > + // > + // TF-A reserved RAM only exists for the Pi 3 TF-A. > + // > + // This is 2MB that directly follows the FD. > + // > + VirtualMemoryTable[Index].PhysicalBase = (FixedPcdGet64(PcdFdBaseAddress) + FixedPcdGet32(PcdFdSize)); > + VirtualMemoryTable[Index].VirtualBase = VirtualMemoryTable[Index].PhysicalBase; > + VirtualMemoryTable[Index].Length = FixedPcdGet64 (PcdSystemMemoryBase) - VirtualMemoryTable[Index].PhysicalBase; > + VirtualMemoryTable[Index].Attributes = ARM_MEMORY_REGION_ATTRIBUTE_WRITE_BACK; > + VirtualMemoryInfo[Index].Type = RPI_MEM_RESERVED_REGION; > + VirtualMemoryInfo[Index++].Name = L"TF-A RAM"; > } > > // Base System RAM > diff --git a/Platform/RaspberryPi/RPi3/RPi3.dsc b/Platform/RaspberryPi/RPi3/RPi3.dsc > index d4a3d49d..563fb891 100644 > --- a/Platform/RaspberryPi/RPi3/RPi3.dsc > +++ b/Platform/RaspberryPi/RPi3/RPi3.dsc > @@ -387,8 +387,13 @@ > # Size of the region used by UEFI in permanent memory (Reserved 64MB) > gArmPlatformTokenSpaceGuid.PcdSystemMemoryUefiRegionSize|0x04000000 > # > - # This matches PcdFvBaseAddress, since everything less is ATF, and > - # will be reserved away. > + # 0x00000000 - 0x001F0000 FD (PcdFdBaseAddress, PcdFdSize) > + # 0x001F0000 - 0x00200000 DTB (PcdFdtBaseAddress, PcdFdtSize) > + # 0x00200000 - 0x00400000 TFA (BL2 / BL31 / BL32 "secure SRAM") > + # 0x00400000 - ... RAM (PcdSystemMemoryBase, PcdSystemMemorySize) > + # > + # This matches PcdFvBaseAddress, since everything less is FD + TF-A RAM, > + # thus will be reserved away. > # > gArmTokenSpaceGuid.PcdSystemMemoryBase|0x00400000 > gArmTokenSpaceGuid.PcdSystemMemorySize|0x3FC00000 > diff --git a/Platform/RaspberryPi/RPi3/RPi3.fdf b/Platform/RaspberryPi/RPi3/RPi3.fdf > index d334d3be..daedc443 100644 > --- a/Platform/RaspberryPi/RPi3/RPi3.fdf > +++ b/Platform/RaspberryPi/RPi3/RPi3.fdf > @@ -25,11 +25,11 @@ > > [FD.RPI_EFI] > BaseAddress = 0x00000000|gArmTokenSpaceGuid.PcdFdBaseAddress > -Size = 0x00200000|gArmTokenSpaceGuid.PcdFdSize > +Size = 0x001f0000|gArmTokenSpaceGuid.PcdFdSize > ErasePolarity = 1 > > BlockSize = 0x00001000|gRaspberryPiTokenSpaceGuid.PcdFirmwareBlockSize > -NumBlocks = 0x200 > +NumBlocks = 0x1f0 > > ################################################################################ > # > @@ -53,12 +53,6 @@ NumBlocks = 0x200 > 0x00000000|0x00010000 > FILE = $(TFA_BUILD_BL1) > > -# > -# DTB. > -# > -0x00010000|0x00010000 > -DATA = { 0x00 } > - > # > # ATF secondary boot image in FIP format (BL2 + BL31) > # > @@ -68,21 +62,21 @@ FILE = $(TFA_BUILD_FIP) > # > # UEFI image > # > -0x00030000|0x001b0000 > +0x00030000|0x001a0000 > gArmTokenSpaceGuid.PcdFvBaseAddress|gArmTokenSpaceGuid.PcdFvSize > FV = FVMAIN_COMPACT > > # > # Variables (0x20000 overall). > # > -# 0x001e0000 - 0x001edfff EFI_FIRMWARE_VOLUME_HEADER > -# 0x001ee000 - 0x001eefff Event log > -# 0x001ef000 - 0x001effff EFI_FAULT_TOLERANT_WORKING_BLOCK_HEADER- > -# 0x001f0000 - 0x001fffff Data > +# 0x001d0000 - 0x001ddfff EFI_FIRMWARE_VOLUME_HEADER > +# 0x001de000 - 0x001defff Event log > +# 0x001df000 - 0x001dffff EFI_FAULT_TOLERANT_WORKING_BLOCK_HEADER- > +# 0x001e0000 - 0x001effff Data > # > > # NV_VARIABLE_STORE > -0x001e0000|0x0000e000 > +0x001d0000|0x0000e000 > gRaspberryPiTokenSpaceGuid.PcdNvStorageVariableBase|gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableSize > > DATA = { > @@ -125,11 +119,11 @@ DATA = { > } > > # NV_EVENT_LOG > -0x001ee000|0x00001000 > +0x001de000|0x00001000 > gRaspberryPiTokenSpaceGuid.PcdNvStorageEventLogBase|gRaspberryPiTokenSpaceGuid.PcdNvStorageEventLogSize > > # NV_FTW_WORKING header > -0x001ef000|0x00001000 > +0x001df000|0x00001000 > gRaspberryPiTokenSpaceGuid.PcdNvStorageFtwWorkingBase|gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingSize > > DATA = { > @@ -144,9 +138,17 @@ DATA = { > } > > # NV_FTW_WORKING data > -0x001f0000|0x00010000 > +0x001e0000|0x00010000 > gRaspberryPiTokenSpaceGuid.PcdNvStorageFtwSpareBase|gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareSize > > +# > +# This is just for documentation purposes! The DTB reserved space is not part of the FD, > +# but this is exactly where it is expected to be. > +# > +# 0x001f0000|0x10000 > +# gRaspberryPiTokenSpaceGuid.PcdFdtBaseAddress|gRaspberryPiTokenSpaceGuid.PcdFdtSize > +# > + > ################################################################################ > # > # FV Section > diff --git a/Platform/RaspberryPi/RPi4/RPi4.dsc b/Platform/RaspberryPi/RPi4/RPi4.dsc > index c401533a..4deccd9d 100644 > --- a/Platform/RaspberryPi/RPi4/RPi4.dsc > +++ b/Platform/RaspberryPi/RPi4/RPi4.dsc > @@ -275,10 +275,6 @@ > gEfiMdePkgTokenSpaceGuid.PcdPerformanceLibraryPropertyMask|1 > gEfiMdePkgTokenSpaceGuid.PcdPostCodePropertyMask|0 > gEfiMdePkgTokenSpaceGuid.PcdUefiLibMaxPrintBufferSize|320 > - # > - # Follows right after the FD image. > - # > - gRaspberryPiTokenSpaceGuid.PcdFdtBaseAddress|0x001f0000 > > # DEBUG_ASSERT_ENABLED 0x01 > # DEBUG_PRINT_ENABLED 0x02 > @@ -398,6 +394,9 @@ > # 0x001F0000 - 0x00200000 DTB (PcdFdtBaseAddress, PcdFdtSize) > # 0x00200000 - ... RAM (PcdSystemMemoryBase, PcdSystemMemorySize) > # > + # This matches PcdFvBaseAddress, since everything less is the FD, and > + # will be reserved away. > + # > gArmTokenSpaceGuid.PcdSystemMemoryBase|0x00200000 > gArmTokenSpaceGuid.PcdSystemMemorySize|0x3fe00000 > > diff --git a/Platform/RaspberryPi/RPi4/RPi4.fdf b/Platform/RaspberryPi/RPi4/RPi4.fdf > index b2164363..c3e9cfc4 100644 > --- a/Platform/RaspberryPi/RPi4/RPi4.fdf > +++ b/Platform/RaspberryPi/RPi4/RPi4.fdf > @@ -135,6 +135,14 @@ DATA = { > 0x001e0000|0x00010000 > gRaspberryPiTokenSpaceGuid.PcdNvStorageFtwSpareBase|gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareSize > > +# > +# This is just for documentation purposes! The DTB reserved space is not part of the FD, > +# but this is exactly where it is expected to be. > +# > +# 0x001f0000|0x10000 > +# gRaspberryPiTokenSpaceGuid.PcdFdtBaseAddress|gRaspberryPiTokenSpaceGuid.PcdFdtSize > +# > + > ################################################################################ > # > # FV Section > diff --git a/Platform/RaspberryPi/RaspberryPi.dec b/Platform/RaspberryPi/RaspberryPi.dec > index d59b5481..b66322be 100644 > --- a/Platform/RaspberryPi/RaspberryPi.dec > +++ b/Platform/RaspberryPi/RaspberryPi.dec > @@ -35,7 +35,11 @@ > gRaspberryPiDefaultFdtGuid = {0xDF5DA223, 0x1D27, 0x47C3, { 0x8D, 0x1B, 0x9A, 0x41, 0xB5, 0x5A, 0x18, 0xBC}} > > [PcdsFixedAtBuild.common] > - gRaspberryPiTokenSpaceGuid.PcdFdtBaseAddress|0x10000|UINT32|0x00000001 > + # > + # Space reserved for config.txt-specced DTB follows right after the FD image > + # in both RPi3 and RP4 implementations. > + # > + gRaspberryPiTokenSpaceGuid.PcdFdtBaseAddress|0x001f0000|UINT32|0x00000001 > gRaspberryPiTokenSpaceGuid.PcdFirmwareBlockSize|0x0|UINT32|0x00000002 > gRaspberryPiTokenSpaceGuid.PcdNvStorageEventLogBase|0x0|UINT32|0x00000003 > gRaspberryPiTokenSpaceGuid.PcdNvStorageEventLogSize|0x0|UINT32|0x00000004 > Reviewed-by: Pete Batard <pete@akeo.ie> Tested-on: Pi 3B, Pi 3B+ ^ permalink raw reply [flat|nested] 6+ messages in thread
* [edk2-platforms][PATCH 2/2] RPi: update Pi3 and Pi4 readmes with correct info on FDT handling 2020-04-30 19:18 [edk2-platforms][PATCH 0/2] Fixing FDT handling on Pi 3 Andrei Warkentin 2020-04-30 19:19 ` [edk2-platforms][PATCH 1/2] RPi3/RPi4: fix RPi 3 VPU-passed FDT handling by unifying with RPi4 implementation Andrei Warkentin @ 2020-04-30 19:19 ` Andrei Warkentin 2020-05-01 9:43 ` Pete Batard 2020-05-01 10:30 ` [edk2-platforms][PATCH 0/2] Fixing FDT handling on Pi 3 Ard Biesheuvel 2 siblings, 1 reply; 6+ messages in thread From: Andrei Warkentin @ 2020-04-30 19:19 UTC (permalink / raw) To: devel; +Cc: ard.biesheuvel, leif, pete, philmd Now that Pi 3 FDT handling is fixed, let's update the docs. Furthermore, let's simplify - be proscriptive about the minimal supported config.txt configuration. Also, fix some factual mistakes: - device_tree= override is not mandatory when device_tree_address= is used. Not using it means start.elf can chose the right one for the variant. - device_tree= override is not mandatory for dtoverlay use. Signed-off-by: Andrei Warkentin <andrey.warkentin@gmail.com> --- Platform/RaspberryPi/RPi3/Readme.md | 38 +++++++++++++------- Platform/RaspberryPi/RPi4/Readme.md | 24 +++++++------ 2 files changed, 39 insertions(+), 23 deletions(-) diff --git a/Platform/RaspberryPi/RPi3/Readme.md b/Platform/RaspberryPi/RPi3/Readme.md index f5d25b50..f19d59d8 100644 --- a/Platform/RaspberryPi/RPi3/Readme.md +++ b/Platform/RaspberryPi/RPi3/Readme.md @@ -56,23 +56,30 @@ Build instructions from the top level edk2-platforms Readme.md apply. 1. Format a uSD card as FAT32 2. Copy the generated `RPI_EFI.fd` firmware onto the partition 3. Download and copy the following files from https://github.com/raspberrypi/firmware/tree/master/boot + - `bcm2710-rpi-3-b.dtb` (for Pi 3B) + - `bcm2710-rpi-3-b-plus.dtb (for Pi 3B+) + - `bcm2710-rpi-2-b.dtb` (for Pi 2B v1.2) + - `bcm2710-rpi-cm3.dtb` (for Pi CM3) - `bootcode.bin` - `fixup.dat` - `start.elf` + - `overlays/miniuart-bt.dtbo` or `overlays/disable-bt.dtbo` (Optional) 4. Create a `config.txt` with the following content: ``` arm_control=0x200 enable_uart=1 armstub=RPI_EFI.fd - disable_commandline_tags=1 + disable_commandline_tags=2 + device_tree_address=0x1f0000 + device_tree_end=0x200000 ``` - Additionally, if you want to use PL011 instead of the miniUART, you can add the lines: + If you want to use PL011 instead of the miniUART on your Pi 3B/3B+, you can add the lines: ``` - device_tree_address=0x10000 - device_tree_end=0x20000 - device_tree=bcm2710-rpi-3-b[-plus].dtb dtoverlay=miniuart-bt ``` + Note: doing so requires `miniuart-bt.dbto` to have been copied into an `overlays/` + directory on the uSD card. Alternatively, you may use `disable-bt` instead of + `miniuart-bt` if you don't require Bluetooth. 5. Insert the uSD card and power up the Pi. Note that if you have a model 3+ or a model 3 where you enabled USB boot through OTP @@ -92,21 +99,26 @@ in the `TrustedFirmware/` directory from `edk2-non-osi`. ## Custom Device Tree -The default Device Tree included in the firmware is the one for a Raspberry Pi 3 Model B (not B+). -If you want to use a different Device Tree, to boot a Pi 3 Model B+ for instance (for which a -DTB is also provided under `DeviceTree/`), you should copy the relevant `.dtb` into the root of +By default, UEFI will use the device tree loaded by the VideoCore firmware. This +depends on the model/variant, and relies on the presence on specific files on your boot media. +E.g.: + - `bcm2710-rpi-3-b.dtb` (for Pi 3B) + - `bcm2710-rpi-3-b-plus.dtb (for Pi 3B+) + - `bcm2710-rpi-2-b.dtb` (for Pi 2B v1.2) + - `bcm2710-rpi-cm3.dtb` (for Pi CM3) + +You can override the DTB and provide a custom one. Copy the relevant `.dtb` into the root of the SD or USB, and then edit your `config.txt` so that it looks like: ``` (...) disable_commandline_tags=2 -device_tree_address=0x10000 -device_tree_end=0x20000 -device_tree=bcm2710-rpi-3-b-plus.dtb +device_tree_address=0x1f0000 +device_tree_end=0x200000 +device_tree=your_fdt_file.dtb ``` -Note: the address range **must** be `[0x10000:0x20000]`. -`dtoverlay` and `dtparam` parameters are also supported **when** providing a Device Tree`. +Note: the address range **must** be `[0x1f0000:0x200000]`. `dtoverlay` and `dtparam` parameters are also supported. ## Custom `bootargs` diff --git a/Platform/RaspberryPi/RPi4/Readme.md b/Platform/RaspberryPi/RPi4/Readme.md index 17d02e9e..62a63c4c 100644 --- a/Platform/RaspberryPi/RPi4/Readme.md +++ b/Platform/RaspberryPi/RPi4/Readme.md @@ -54,18 +54,17 @@ Build instructions from the top level edk2-platforms Readme.md apply. enable_uart=1 enable_gic=1 armstub=RPI_EFI.fd - disable_commandline_tags=1 + disable_commandline_tags=2 + device_tree_address=0x1f0000 + device_tree_end=0x200000 ``` Additionally, if you want to use PL011 instead of the miniUART, you can add the lines: ``` - device_tree_address=0x1f0000 - device_tree_end=0x200000 - device_tree=bcm2711-rpi-4-b.dtb dtoverlay=miniuart-bt ``` - Note that doing so requires `miniuart-bt.dbto` to have been copied into an `overlays/` + Note: doing so requires `miniuart-bt.dbto` to have been copied into an `overlays/` directory on the uSD card. Alternatively, you may use `disable-bt` instead of - `miniuart-bt` if you don't require BlueTooth. + `miniuart-bt` if you don't require Bluetooth. 5. Insert the uSD card and power up the Pi. # Notes @@ -81,18 +80,23 @@ in the `TrustedFirmware/` directory from `edk2-non-osi`. ## Device Tree -You can pass a custom Device Tree and overlays using the following: +By default, UEFI will use the device tree loaded by the VideoCore firmware. This +depends on the model/variant, and relies on the presence on specific files on your boot media. +E.g.: + - `bcm2711-rpi-4-b.dtb` (for Pi 4B) + +You can override the DTB and provide a custom one. Copy the relevant `.dtb` into the root of +the SD or USB, and then edit your `config.txt` so that it looks like: ``` (...) disable_commandline_tags=2 device_tree_address=0x1f0000 device_tree_end=0x200000 -device_tree=bcm2711-rpi-4-b.dtb +device_tree=your_fdt_file.dtb ``` -Note: the address range **must** be `[0x1f0000:0x200000]`. -`dtoverlay` and `dtparam` parameters are also supported **when** providing a Device Tree`. +Note: the address range **must** be `[0x1f0000:0x200000]`. `dtoverlay` and `dtparam` parameters are also supported. ## Custom `bootargs` -- 2.17.1 ^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [edk2-platforms][PATCH 2/2] RPi: update Pi3 and Pi4 readmes with correct info on FDT handling 2020-04-30 19:19 ` [edk2-platforms][PATCH 2/2] RPi: update Pi3 and Pi4 readmes with correct info on FDT handling Andrei Warkentin @ 2020-05-01 9:43 ` Pete Batard 0 siblings, 0 replies; 6+ messages in thread From: Pete Batard @ 2020-05-01 9:43 UTC (permalink / raw) To: Andrei Warkentin, devel; +Cc: ard.biesheuvel, leif, philmd On 2020.04.30 20:19, Andrei Warkentin wrote: > Now that Pi 3 FDT handling is fixed, let's update the docs. Furthermore, > let's simplify - be proscriptive about the minimal supported > config.txt configuration. Also, fix some factual mistakes: > - device_tree= override is not mandatory when device_tree_address= is used. > Not using it means start.elf can chose the right one for the variant. > - device_tree= override is not mandatory for dtoverlay use. > > Signed-off-by: Andrei Warkentin <andrey.warkentin@gmail.com> > --- > Platform/RaspberryPi/RPi3/Readme.md | 38 +++++++++++++------- > Platform/RaspberryPi/RPi4/Readme.md | 24 +++++++------ > 2 files changed, 39 insertions(+), 23 deletions(-) > > diff --git a/Platform/RaspberryPi/RPi3/Readme.md b/Platform/RaspberryPi/RPi3/Readme.md > index f5d25b50..f19d59d8 100644 > --- a/Platform/RaspberryPi/RPi3/Readme.md > +++ b/Platform/RaspberryPi/RPi3/Readme.md > @@ -56,23 +56,30 @@ Build instructions from the top level edk2-platforms Readme.md apply. > 1. Format a uSD card as FAT32 > 2. Copy the generated `RPI_EFI.fd` firmware onto the partition > 3. Download and copy the following files from https://github.com/raspberrypi/firmware/tree/master/boot > + - `bcm2710-rpi-3-b.dtb` (for Pi 3B) > + - `bcm2710-rpi-3-b-plus.dtb (for Pi 3B+) Missing closing ` after .dtb. Rather than re-send a new patch, could the maintainer please add it when committing? > + - `bcm2710-rpi-2-b.dtb` (for Pi 2B v1.2) > + - `bcm2710-rpi-cm3.dtb` (for Pi CM3) > - `bootcode.bin` > - `fixup.dat` > - `start.elf` > + - `overlays/miniuart-bt.dtbo` or `overlays/disable-bt.dtbo` (Optional) > 4. Create a `config.txt` with the following content: > ``` > arm_control=0x200 > enable_uart=1 > armstub=RPI_EFI.fd > - disable_commandline_tags=1 > + disable_commandline_tags=2 > + device_tree_address=0x1f0000 > + device_tree_end=0x200000 > ``` > - Additionally, if you want to use PL011 instead of the miniUART, you can add the lines: > + If you want to use PL011 instead of the miniUART on your Pi 3B/3B+, you can add the lines: > ``` > - device_tree_address=0x10000 > - device_tree_end=0x20000 > - device_tree=bcm2710-rpi-3-b[-plus].dtb > dtoverlay=miniuart-bt > ``` > + Note: doing so requires `miniuart-bt.dbto` to have been copied into an `overlays/` > + directory on the uSD card. Alternatively, you may use `disable-bt` instead of > + `miniuart-bt` if you don't require Bluetooth. > 5. Insert the uSD card and power up the Pi. > > Note that if you have a model 3+ or a model 3 where you enabled USB boot through OTP > @@ -92,21 +99,26 @@ in the `TrustedFirmware/` directory from `edk2-non-osi`. > > ## Custom Device Tree > > -The default Device Tree included in the firmware is the one for a Raspberry Pi 3 Model B (not B+). > -If you want to use a different Device Tree, to boot a Pi 3 Model B+ for instance (for which a > -DTB is also provided under `DeviceTree/`), you should copy the relevant `.dtb` into the root of > +By default, UEFI will use the device tree loaded by the VideoCore firmware. This > +depends on the model/variant, and relies on the presence on specific files on your boot media. > +E.g.: > + - `bcm2710-rpi-3-b.dtb` (for Pi 3B) > + - `bcm2710-rpi-3-b-plus.dtb (for Pi 3B+) Same as above (Missing closing ` after .dtb). > + - `bcm2710-rpi-2-b.dtb` (for Pi 2B v1.2) > + - `bcm2710-rpi-cm3.dtb` (for Pi CM3) > + > +You can override the DTB and provide a custom one. Copy the relevant `.dtb` into the root of > the SD or USB, and then edit your `config.txt` so that it looks like: > > ``` > (...) > disable_commandline_tags=2 > -device_tree_address=0x10000 > -device_tree_end=0x20000 > -device_tree=bcm2710-rpi-3-b-plus.dtb > +device_tree_address=0x1f0000 > +device_tree_end=0x200000 > +device_tree=your_fdt_file.dtb > ``` > > -Note: the address range **must** be `[0x10000:0x20000]`. > -`dtoverlay` and `dtparam` parameters are also supported **when** providing a Device Tree`. > +Note: the address range **must** be `[0x1f0000:0x200000]`. `dtoverlay` and `dtparam` parameters are also supported. > > ## Custom `bootargs` > > diff --git a/Platform/RaspberryPi/RPi4/Readme.md b/Platform/RaspberryPi/RPi4/Readme.md > index 17d02e9e..62a63c4c 100644 > --- a/Platform/RaspberryPi/RPi4/Readme.md > +++ b/Platform/RaspberryPi/RPi4/Readme.md > @@ -54,18 +54,17 @@ Build instructions from the top level edk2-platforms Readme.md apply. > enable_uart=1 > enable_gic=1 > armstub=RPI_EFI.fd > - disable_commandline_tags=1 > + disable_commandline_tags=2 > + device_tree_address=0x1f0000 > + device_tree_end=0x200000 > ``` > Additionally, if you want to use PL011 instead of the miniUART, you can add the lines: > ``` > - device_tree_address=0x1f0000 > - device_tree_end=0x200000 > - device_tree=bcm2711-rpi-4-b.dtb > dtoverlay=miniuart-bt > ``` > - Note that doing so requires `miniuart-bt.dbto` to have been copied into an `overlays/` > + Note: doing so requires `miniuart-bt.dbto` to have been copied into an `overlays/` > directory on the uSD card. Alternatively, you may use `disable-bt` instead of > - `miniuart-bt` if you don't require BlueTooth. > + `miniuart-bt` if you don't require Bluetooth. > 5. Insert the uSD card and power up the Pi. > > # Notes > @@ -81,18 +80,23 @@ in the `TrustedFirmware/` directory from `edk2-non-osi`. > > ## Device Tree > > -You can pass a custom Device Tree and overlays using the following: > +By default, UEFI will use the device tree loaded by the VideoCore firmware. This > +depends on the model/variant, and relies on the presence on specific files on your boot media. > +E.g.: > + - `bcm2711-rpi-4-b.dtb` (for Pi 4B) > + > +You can override the DTB and provide a custom one. Copy the relevant `.dtb` into the root of > +the SD or USB, and then edit your `config.txt` so that it looks like: > > ``` > (...) > disable_commandline_tags=2 > device_tree_address=0x1f0000 > device_tree_end=0x200000 > -device_tree=bcm2711-rpi-4-b.dtb > +device_tree=your_fdt_file.dtb > ``` > > -Note: the address range **must** be `[0x1f0000:0x200000]`. > -`dtoverlay` and `dtparam` parameters are also supported **when** providing a Device Tree`. > +Note: the address range **must** be `[0x1f0000:0x200000]`. `dtoverlay` and `dtparam` parameters are also supported. > > ## Custom `bootargs` > > With the above 2 typos fixed, Reviewed-by: Pete Batard <pete@akeo.ie> ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [edk2-platforms][PATCH 0/2] Fixing FDT handling on Pi 3 2020-04-30 19:18 [edk2-platforms][PATCH 0/2] Fixing FDT handling on Pi 3 Andrei Warkentin 2020-04-30 19:19 ` [edk2-platforms][PATCH 1/2] RPi3/RPi4: fix RPi 3 VPU-passed FDT handling by unifying with RPi4 implementation Andrei Warkentin 2020-04-30 19:19 ` [edk2-platforms][PATCH 2/2] RPi: update Pi3 and Pi4 readmes with correct info on FDT handling Andrei Warkentin @ 2020-05-01 10:30 ` Ard Biesheuvel 2 siblings, 0 replies; 6+ messages in thread From: Ard Biesheuvel @ 2020-05-01 10:30 UTC (permalink / raw) To: Andrei Warkentin, devel; +Cc: leif, pete, philmd On 4/30/20 9:18 PM, Andrei Warkentin wrote: > Dear all, > > This patch set finishes what I started with the Pi 4 fix for > the regression seen with newer VideoCore firmware, where a > device tree passed via config.txt would not be detected by UEFI. > > This makes VPU-passed FDT work again on Pi 3 variants. This also > cleans up the docs around correctly using FDT, hopefully solving > some of the frustrations seem around using this correctly. > > Andrei Warkentin (2): > RPi3/RPi4: fix RPi 3 VPU-passed FDT handling by unifying with RPi4 > implementation > RPi: update Pi3 and Pi4 readmes with correct info on FDT handling > Pushed as 40f2f135eb7c..defef0562115 (with the typos fixed) Thanks! ^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2020-05-01 10:30 UTC | newest] Thread overview: 6+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2020-04-30 19:18 [edk2-platforms][PATCH 0/2] Fixing FDT handling on Pi 3 Andrei Warkentin 2020-04-30 19:19 ` [edk2-platforms][PATCH 1/2] RPi3/RPi4: fix RPi 3 VPU-passed FDT handling by unifying with RPi4 implementation Andrei Warkentin 2020-05-01 9:35 ` Pete Batard 2020-04-30 19:19 ` [edk2-platforms][PATCH 2/2] RPi: update Pi3 and Pi4 readmes with correct info on FDT handling Andrei Warkentin 2020-05-01 9:43 ` Pete Batard 2020-05-01 10:30 ` [edk2-platforms][PATCH 0/2] Fixing FDT handling on Pi 3 Ard Biesheuvel
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox