[PATCH linux dev-4.7 v2] ARM: dts: aspeed: Reserve RAM on P9 machines
Xo Wang
xow at google.com
Sat Feb 25 08:04:06 AEDT 2017
On Thu, Feb 23, 2017 at 9:49 PM, Suraj Jitindar Singh
<sjitindarsingh at gmail.com> wrote:
>
> On Fri, 2017-02-24 at 16:03 +1030, Joel Stanley wrote:
> > This flash_memory region reserved memory region is used by the host<-
> > >bmc
> > mailbox daemon.
> >
> > This patch initially had a vga_memory region for the host processor's
> > framebuffer when using the Aspeed as a PCI graphics device. However
> > this
> > is not required as u-boot modifies the /memory node of the device
> > tree
> > to report the total RAM size minus the strapped VGA framebuffer. This
> > is
> > 16MB of the current system.
> >
> > These numbers were generated as follows:
> >
> > $ genmem.py --ram-base 0x80000000 --ram 1G --flash 64M
> >
> > And for Romulus and Witherspoon:
> >
> > $ genmem.py --ram-base 0x80000000 --ram 512M --flash 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>
> Acked-by: Suraj Jitindar Singh <sjitindarsingh at gmail.com>
> > ---
> > v2 drops the the reserved region for VGA as we don't need it
> >
> > arch/arm/boot/dts/aspeed-bmc-opp-romulus.dts | 11 +++++++++++
> > arch/arm/boot/dts/aspeed-bmc-opp-witherspoon.dts | 4 ++--
> > arch/arm/boot/dts/aspeed-bmc-opp-zaius.dts | 4 ++--
> > 3 files changed, 15 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 5ba7b62aee83..93fbd7b8c490 100644
> > --- a/arch/arm/boot/dts/aspeed-bmc-opp-romulus.dts
> > +++ b/arch/arm/boot/dts/aspeed-bmc-opp-romulus.dts
> > @@ -20,6 +20,17 @@
> > reg = <0x80000000 0x20000000>;
> > };
> >
> > + reserved-memory {
> > + #address-cells = <1>;
> > + #size-cells = <1>;
> > + ranges;
> > +
> > + 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 e15bd256c0fd..0769507f1126 100644
> > --- a/arch/arm/boot/dts/aspeed-bmc-opp-witherspoon.dts
> > +++ b/arch/arm/boot/dts/aspeed-bmc-opp-witherspoon.dts
> > @@ -25,9 +25,9 @@
> > #size-cells = <1>;
> > ranges;
> >
> > - flash_memory: region at 94000000 {
> > + flash_memory: region at 98000000 {
> > no-map;
> > - reg = <0x94000000 0x04000000>; /* 64M */
> > + 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 d9f63d7752dd..c2af9ffa89bf 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 */
> > };
> > };
> >
Reviewed-by: Xo Wang <xow at google.com>
More information about the openbmc
mailing list