[PATCH linux dev-4.7 2/2] ARM: dts: aspeed: Reserve memory on all P9 machines
Joel Stanley
joel at jms.id.au
Tue Feb 21 16:12:59 AEDT 2017
This flash_memory region reserved memory region is used by the host<->bmc
mailbox daemon.
The vga_memory region is for the host processor's framebuffer when using
the Aspeed as a PCI graphics device. We reserve the maximum region to
protect against bad host drivers. In the future this should correspond
to the amount of memory we've told the host it can use.
These numbers were generated as follows for Zaius:
$ genmem.py --ram-base 0x80000000 --ram 1G --flash 64M
And for Romulus and Witherspoon:
$ genmem.py --ram-base 0x80000000 --ram 512M --flash 64M --vga 64M
With this script:
def convert_one(s):
suffixes = [
('K', 1024),
('M', (1024*1024)),
('G', (1024*1024*1024)),
('T', (1024*1024*1024*1024)),
('th', 1000),
('mi', (1000*1000)),
('bi', (1000*1000*1000)),
('tri', (1000*1000*1000*1000))
]
s = s.strip()
factor = 1
for suffix, mul in suffixes:
if s.endswith(suffix) or s.endswith(suffix.lower()):
factor = mul
s = s[:-len(suffix)]
break
val = None
if s.startswith('0b'):
val = convert_binary(s)
elif s.startswith('0x'):
val = int(s, 16)
else:
for c in 'abcdefABCDEF':
if c in s:
val = int(s, 16)
break
if val is None:
val = int(s)
val *= factor
return val
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('--ram-base')
parser.add_argument('--ram')
parser.add_argument('--flash')
parser.add_argument('--vga')
args = parser.parse_args()
base = convert_one(args.ram_base)
size = convert_one(args.ram)
flash_size = convert_one(args.flash)
vga_size = 0
if args.vga:
vga_size = convert_one(args.vga)
vga_base = base + size - vga_size
flash_base = base + size - vga_size - flash_size
if flash_base % flash_size != 0:
print("Error: flash base address not a multiple of window. Rounding down")
flash_base -= flash_base % flash_size
print("memory {\r\n\treg = <0x%08x 0x%08x>;\r\n}" % (base, size))
if vga_size > 0:
print("vga_memory {\r\n\tno-map;\r\n\treg = <0x%08x 0x%08x>;\r\n}" % (vga_base, vga_base))
print("flash_memory {\r\n\tno-map;\r\n\treg = <0x%08x 0x%08x>;\r\n}" % (flash_base, flash_size))
Signed-off-by: Joel Stanley <joel at jms.id.au>
---
arch/arm/boot/dts/aspeed-bmc-opp-romulus.dts | 16 ++++++++++++++++
arch/arm/boot/dts/aspeed-bmc-opp-witherspoon.dts | 9 +++++++--
arch/arm/boot/dts/aspeed-bmc-opp-zaius.dts | 4 ++--
3 files changed, 25 insertions(+), 4 deletions(-)
diff --git a/arch/arm/boot/dts/aspeed-bmc-opp-romulus.dts b/arch/arm/boot/dts/aspeed-bmc-opp-romulus.dts
index 58baf87454e2..7293b41239a3 100644
--- a/arch/arm/boot/dts/aspeed-bmc-opp-romulus.dts
+++ b/arch/arm/boot/dts/aspeed-bmc-opp-romulus.dts
@@ -20,6 +20,22 @@
reg = <0x80000000 0x20000000>;
};
+ reserved-memory {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ ranges;
+
+ vga_memory: region at 9c000000 {
+ no-map;
+ reg = <0x9c000000 0x04000000>; /* 64M */
+ };
+
+ flash_memory: region at 98000000 {
+ no-map;
+ reg = <0x98000000 0x04000000>; /* 64M */
+ };
+ };
+
fsi-master {
compatible = "ibm,fsi-master", "ibm,fsi-master-gpio";
diff --git a/arch/arm/boot/dts/aspeed-bmc-opp-witherspoon.dts b/arch/arm/boot/dts/aspeed-bmc-opp-witherspoon.dts
index 2cbdeba88908..1ea8f65c1dab 100644
--- a/arch/arm/boot/dts/aspeed-bmc-opp-witherspoon.dts
+++ b/arch/arm/boot/dts/aspeed-bmc-opp-witherspoon.dts
@@ -25,9 +25,14 @@
#size-cells = <1>;
ranges;
- flash_memory: region at 94000000 {
+ vga_memory: region at 9c000000 {
no-map;
- reg = <0x94000000 0x04000000>; /* 64M */
+ reg = <0x9c000000 0x04000000>; /* 64M */
+ };
+
+ flash_memory: region at 98000000 {
+ no-map;
+ reg = <0x98000000 0x04000000>; /* 64M */
};
};
diff --git a/arch/arm/boot/dts/aspeed-bmc-opp-zaius.dts b/arch/arm/boot/dts/aspeed-bmc-opp-zaius.dts
index e1c9b3f4fe44..c3a6a8656b3e 100644
--- a/arch/arm/boot/dts/aspeed-bmc-opp-zaius.dts
+++ b/arch/arm/boot/dts/aspeed-bmc-opp-zaius.dts
@@ -25,9 +25,9 @@
#size-cells = <1>;
ranges;
- flash_memory: region at 94000000 {
+ flash_memory: region at bc000000 {
no-map;
- reg = <0x94000000 0x04000000>; /* 64M */
+ reg = <0xbc000000 0x04000000>; /* 64M */
};
};
--
2.11.0
More information about the openbmc
mailing list