[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