The efi spec seems to indicate that the efi uncacheable attribute
should be mapped to device memory rather than normal-nc. This means
that the uefi mem attribute for the >3G ram doesn't match the remainder
of the RAM in the machine.
So, lets remove the uncacheable attribute to make it more consistent.
Signed-off-by: Jeremy Linton <jeremy.linton@arm.com>
---
Platform/RaspberryPi/Drivers/ConfigDxe/ConfigDxe.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/Platform/RaspberryPi/Drivers/ConfigDxe/ConfigDxe.c b/Platform/RaspberryPi/Drivers/ConfigDxe/ConfigDxe.c
index 2ef7da67bd..415d99fadb 100644
--- a/Platform/RaspberryPi/Drivers/ConfigDxe/ConfigDxe.c
+++ b/Platform/RaspberryPi/Drivers/ConfigDxe/ConfigDxe.c
@@ -499,7 +499,7 @@ ApplyVariables (
Status = gDS->AddMemorySpace (EfiGcdMemoryTypeSystemMemory, 3UL * BASE_1GB,
SystemMemorySizeBelow4GB - (3UL * SIZE_1GB),
- EFI_MEMORY_UC | EFI_MEMORY_WC | EFI_MEMORY_WT | EFI_MEMORY_WB);
+ EFI_MEMORY_WC | EFI_MEMORY_WT | EFI_MEMORY_WB);
ASSERT_EFI_ERROR (Status);
Status = gDS->SetMemorySpaceAttributes (3UL * BASE_1GB,
SystemMemorySizeBelow4GB - (3UL * SIZE_1GB), EFI_MEMORY_WB);
@@ -511,7 +511,7 @@ ApplyVariables (
//
Status = gDS->AddMemorySpace (EfiGcdMemoryTypeSystemMemory, 4UL * BASE_1GB,
SystemMemorySize - (4UL * SIZE_1GB),
- EFI_MEMORY_UC | EFI_MEMORY_WC | EFI_MEMORY_WT | EFI_MEMORY_WB);
+ EFI_MEMORY_WC | EFI_MEMORY_WT | EFI_MEMORY_WB);
ASSERT_EFI_ERROR (Status);
Status = gDS->SetMemorySpaceAttributes (4UL * BASE_1GB,
SystemMemorySize - (4UL * SIZE_1GB), EFI_MEMORY_WB);
--
2.13.7
-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#81380): https://edk2.groups.io/g/devel/message/81380
Mute This Topic: https://groups.io/mt/86014864/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-
I may have misunderstood the flags as being valid ways of mapping the added range. Should we also then take out WC and WT?
________________________________
From: Jeremy Linton <jeremy.linton@arm.com>
Sent: Friday, October 1, 2021 7:52 PM
To: devel@edk2.groups.io <devel@edk2.groups.io>
Cc: pete@akeo.ie <pete@akeo.ie>; ardb+tianocore@kernel.org <ardb+tianocore@kernel.org>; leif@nuviainc.com <leif@nuviainc.com>; Andrei Warkentin <awarkentin@vmware.com>; Sunny.Wang@arm.com <Sunny.Wang@arm.com>; samer.el-haj-mahmoud@arm.com <samer.el-haj-mahmoud@arm.com>; Jeremy Linton <jeremy.linton@arm.com>
Subject: [PATCH 4/5] Platform/RaspberryPi: Normal memory should not be marked as uncached
The efi spec seems to indicate that the efi uncacheable attribute
should be mapped to device memory rather than normal-nc. This means
that the uefi mem attribute for the >3G ram doesn't match the remainder
of the RAM in the machine.
So, lets remove the uncacheable attribute to make it more consistent.
Signed-off-by: Jeremy Linton <jeremy.linton@arm.com>
---
Platform/RaspberryPi/Drivers/ConfigDxe/ConfigDxe.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/Platform/RaspberryPi/Drivers/ConfigDxe/ConfigDxe.c b/Platform/RaspberryPi/Drivers/ConfigDxe/ConfigDxe.c
index 2ef7da67bd..415d99fadb 100644
--- a/Platform/RaspberryPi/Drivers/ConfigDxe/ConfigDxe.c
+++ b/Platform/RaspberryPi/Drivers/ConfigDxe/ConfigDxe.c
@@ -499,7 +499,7 @@ ApplyVariables (
Status = gDS->AddMemorySpace (EfiGcdMemoryTypeSystemMemory, 3UL * BASE_1GB,
SystemMemorySizeBelow4GB - (3UL * SIZE_1GB),
- EFI_MEMORY_UC | EFI_MEMORY_WC | EFI_MEMORY_WT | EFI_MEMORY_WB);
+ EFI_MEMORY_WC | EFI_MEMORY_WT | EFI_MEMORY_WB);
ASSERT_EFI_ERROR (Status);
Status = gDS->SetMemorySpaceAttributes (3UL * BASE_1GB,
SystemMemorySizeBelow4GB - (3UL * SIZE_1GB), EFI_MEMORY_WB);
@@ -511,7 +511,7 @@ ApplyVariables (
//
Status = gDS->AddMemorySpace (EfiGcdMemoryTypeSystemMemory, 4UL * BASE_1GB,
SystemMemorySize - (4UL * SIZE_1GB),
- EFI_MEMORY_UC | EFI_MEMORY_WC | EFI_MEMORY_WT | EFI_MEMORY_WB);
+ EFI_MEMORY_WC | EFI_MEMORY_WT | EFI_MEMORY_WB);
ASSERT_EFI_ERROR (Status);
Status = gDS->SetMemorySpaceAttributes (4UL * BASE_1GB,
SystemMemorySize - (4UL * SIZE_1GB), EFI_MEMORY_WB);
--
2.13.7
-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#81386): https://edk2.groups.io/g/devel/message/81386
Mute This Topic: https://groups.io/mt/86014864/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-
On Sat, 2 Oct 2021 at 03:14, Andrei Warkentin <awarkentin@vmware.com> wrote: > > I may have misunderstood the flags as being valid ways of mapping the added range. Should we also then take out WC and WT? No, you understood correctly. The problem is that normal memory ceases to behave like normal memory when you map it UC (ie., unaligned accesses and DC ZVA instructions are no longer allowed) so it should be omitted. We use it in the memory map for things like the runtime MMIO mappings for NOR flash and RTC. WC and WT are reasonable for bare metal, but note that we omit those as well for ArmVirtPkg, as using those breaks coherency, which means the hypervisor/virtualization host's view of the guest's memory goes out of sync. > ________________________________ > From: Jeremy Linton <jeremy.linton@arm.com> > Sent: Friday, October 1, 2021 7:52 PM > To: devel@edk2.groups.io <devel@edk2.groups.io> > Cc: pete@akeo.ie <pete@akeo.ie>; ardb+tianocore@kernel.org <ardb+tianocore@kernel.org>; leif@nuviainc.com <leif@nuviainc.com>; Andrei Warkentin <awarkentin@vmware.com>; Sunny.Wang@arm.com <Sunny.Wang@arm.com>; samer.el-haj-mahmoud@arm.com <samer.el-haj-mahmoud@arm.com>; Jeremy Linton <jeremy.linton@arm.com> > Subject: [PATCH 4/5] Platform/RaspberryPi: Normal memory should not be marked as uncached > > The efi spec seems to indicate that the efi uncacheable attribute > should be mapped to device memory rather than normal-nc. This means > that the uefi mem attribute for the >3G ram doesn't match the remainder > of the RAM in the machine. > > So, lets remove the uncacheable attribute to make it more consistent. > > Signed-off-by: Jeremy Linton <jeremy.linton@arm.com> > --- > Platform/RaspberryPi/Drivers/ConfigDxe/ConfigDxe.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/Platform/RaspberryPi/Drivers/ConfigDxe/ConfigDxe.c b/Platform/RaspberryPi/Drivers/ConfigDxe/ConfigDxe.c > index 2ef7da67bd..415d99fadb 100644 > --- a/Platform/RaspberryPi/Drivers/ConfigDxe/ConfigDxe.c > +++ b/Platform/RaspberryPi/Drivers/ConfigDxe/ConfigDxe.c > @@ -499,7 +499,7 @@ ApplyVariables ( > > Status = gDS->AddMemorySpace (EfiGcdMemoryTypeSystemMemory, 3UL * BASE_1GB, > SystemMemorySizeBelow4GB - (3UL * SIZE_1GB), > - EFI_MEMORY_UC | EFI_MEMORY_WC | EFI_MEMORY_WT | EFI_MEMORY_WB); > + EFI_MEMORY_WC | EFI_MEMORY_WT | EFI_MEMORY_WB); > ASSERT_EFI_ERROR (Status); > Status = gDS->SetMemorySpaceAttributes (3UL * BASE_1GB, > SystemMemorySizeBelow4GB - (3UL * SIZE_1GB), EFI_MEMORY_WB); > @@ -511,7 +511,7 @@ ApplyVariables ( > // > Status = gDS->AddMemorySpace (EfiGcdMemoryTypeSystemMemory, 4UL * BASE_1GB, > SystemMemorySize - (4UL * SIZE_1GB), > - EFI_MEMORY_UC | EFI_MEMORY_WC | EFI_MEMORY_WT | EFI_MEMORY_WB); > + EFI_MEMORY_WC | EFI_MEMORY_WT | EFI_MEMORY_WB); > ASSERT_EFI_ERROR (Status); > Status = gDS->SetMemorySpaceAttributes (4UL * BASE_1GB, > SystemMemorySize - (4UL * SIZE_1GB), EFI_MEMORY_WB); > -- > 2.13.7 > -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#81506): https://edk2.groups.io/g/devel/message/81506 Mute This Topic: https://groups.io/mt/86014864/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=-=-=-=-=-=-=-=-=-=-=-
© 2016 - 2026 Red Hat, Inc.