linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
From: leo.yan@linaro.org (Leo Yan)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 1/4] arm64: dts: Reserve memory regions for hi6220
Date: Thu, 5 Nov 2015 21:54:50 +0800	[thread overview]
Message-ID: <20151105135449.GD27192@leoy-linaro> (raw)
In-Reply-To: <20151029083301.GB16063@leoy-linaro>

On Thu, Oct 29, 2015 at 04:33:01PM +0800, Leo Yan wrote:
> On Wed, Oct 28, 2015 at 11:32:29PM -0500, Rob Herring wrote:
> > On Fri, Oct 9, 2015 at 9:20 AM, Leo Yan <leo.yan@linaro.org> wrote:
> > > On Fri, Oct 09, 2015 at 08:50:13AM -0500, Rob Herring wrote:
> > >> On Fri, Oct 9, 2015 at 8:30 AM, Mark Rutland <mark.rutland@arm.com> wrote:
> > >> > On Fri, Oct 09, 2015 at 08:17:16AM -0500, Rob Herring wrote:
> > >> >> On Thu, Oct 8, 2015 at 11:36 PM, Leo Yan <leo.yan@linaro.org> wrote:
> > >> >> > On Hi6220, below memory regions in DDR have specific purpose:
> > >> >> >
> > >> >> >   0x05e0,0000 - 0x05ef,ffff: For MCU firmware using at runtime;
> > >> >> >   0x06df,f000 - 0x06df,ffff: For mailbox message data;
> > >> >> >   0x0740,f000 - 0x0740,ffff: For MCU firmware's section;
> > >> >> >   0x3e00,0000 - 0x3fff,ffff: For OP-TEE.
> > >> >> >
> > >> >> > This patch reserves these memory regions in DT.
> > >> >> >
> > >> >> > Signed-off-by: Leo Yan <leo.yan@linaro.org>
> > >> >> > ---
> > >> >> >  arch/arm64/boot/dts/hisilicon/hi6220-hikey.dts | 16 ++++++++++++----
> > >> >> >  1 file changed, 12 insertions(+), 4 deletions(-)
> > >> >> >
> > >> >> > diff --git a/arch/arm64/boot/dts/hisilicon/hi6220-hikey.dts b/arch/arm64/boot/dts/hisilicon/hi6220-hikey.dts
> > >> >> > index e36a539..e3f4cb3 100644
> > >> >> > --- a/arch/arm64/boot/dts/hisilicon/hi6220-hikey.dts
> > >> >> > +++ b/arch/arm64/boot/dts/hisilicon/hi6220-hikey.dts
> > >> >> > @@ -7,9 +7,6 @@
> > >> >> >
> > >> >> >  /dts-v1/;
> > >> >> >
> > >> >> > -/*Reserved 1MB memory for MCU*/
> > >> >> > -/memreserve/ 0x05e00000 0x00100000;
> > >> >> > -
> > >> >>
> > >> >> Why does memreserve not work for you? You can have multiple entries.
> > >> >>
> > >> >> >  #include "hi6220.dtsi"
> > >> >> >
> > >> >> >  / {
> > >> >> > @@ -24,8 +21,19 @@
> > >> >> >                 stdout-path = "serial0:115200n8";
> > >> >> >         };
> > >> >> >
> > >> >> > +       /*
> > >> >> > +        * Reserve below regions from memory node:
> > >> >> > +        *
> > >> >> > +        *  - 0x05e0,0000 - 0x05ef,ffff: MCU firmware runtime using
> > >> >> > +        *  - 0x06df,f000 - 0x06df,ffff: Mailbox message data
> > >> >> > +        *  - 0x0740,f000 - 0x0740,ffff: MCU firmware section
> > >> >> > +        *  - 0x3e00,0000 - 0x3fff,ffff: OP-TEE
> > >> >> > +        */
> > >> >> >         memory at 0 {
> > >> >> >                 device_type = "memory";
> > >> >> > -               reg = <0x0 0x0 0x0 0x40000000>;
> > >> >> > +               reg = <0x00000000 0x00000000 0x00000000 0x05e00000>,
> > >> >> > +                     <0x00000000 0x05f00000 0x00000000 0x00eff000>,
> > >> >> > +                     <0x00000000 0x06e00000 0x00000000 0x0060f000>,
> > >> >> > +                     <0x00000000 0x07410000 0x00000000 0x36bf0000>;
> > >> >>
> > >> >> No, don't do this. Please use memreserve or reserved-memory binding[1]
> > >> >> or combination of both. Probably reserved-memory if you need the
> > >> >> kernel to access some of these regions.
> > >> >
> > >> > I disagree at least for those portions owned by the secure world. The
> > >> > kernel shouldn't map those at all, so memreserve isn't appropriate. That
> > >> > covers OP-TEE and the MCU firmware regions, and I'd expec the EFI memory
> > >> > map to not list those as available to the kernel.
> > >>
> > >> I'm fine carving out the beginning or end, but otherwise think memory
> > >> should correspond to the physical memory. We have a way to describe
> > >> holes to keep out, so we should use them. If secure world uses the DT,
> > >> then it would either want to know its region in memory or add the DT
> > >> data to say what it is using. We need that to be easy to find or easy
> > >> to set, respectively. The size secure world needs could vary as well.
> > >>
> > >> The fact that the kernel maps the memory is the kernel's problem, not
> > >> a DT problem.
> > >>
> > >
> > > Just give more input here. In previous time, we have long discussion [1];
> > > So actually your suggestion is exactly same what my old patch.
> > >
> > > From previous discussion, i think here have an assumtion: Use UEFI as
> > > bootloader, the kernel will ignore (or remove) memreserve and reserved-memory
> > > nodes, so just like Mark said "the EFI memory map to not list those
> > > as available to the kernel". My new patch is just to follow this and
> > > also make sure they have same behavior for different bootloader
> > > (between UEFI and uboot).
> > 
> > I've read thru the thread and see 2 main conclusions. Using
> > reserved-memory is problematic since things like grub don't support
> > that. That is fine and we should stick with /mem-reserve/ for now.
> 
> Thanks for reviewing, Rob.
> 
> One thing should note: after booting with UEFI, /memreserve/ nodes
> will be deleted by UEFI stub; and _ONLY_ can use /reserved-memory/
> node to reserve memory regions.
> 
> Ard have another patch [1], after applied this patch, then all
> /memreserve/ nodes and /reserved-memory/ nodes nodes will be ignored
> to scan after booting with UEFI stub.
> 
> This is make sense, that means UEFI need provide exactly correct memory
> map info by self and totally not depend on DT structures.
> 
> Another minor difference between /memreserve/ node and /reserved-memory/
> node is: we can add property "no-map" for /reserved-memory/; so that
> means it will totally remove region from memory block. it's more safe
> for the memory region will NOT be mapped twice with different mapping
> attribution.
> 
> [1] http://archive.arm.linux.org.uk/lurker/message/20150922.002128.46757034.en.html
> 
> > The other thing is the desire to have the memory presented to the kernel
> > be the same whether it comes from UEFI or DT structures. I can see why
> > there is some desire to have that alignment, but that doesn't really
> > buy us anything. We can't eliminate some code path in the kernel doing
> > so. So I still think that the memory node should reflect all of memory
> > as defined by the h/w and mem-reserve should be used for any software
> > defined reserved regions.
> 
> i think before we engaged much thinking for UEFI, that's meaningful for
> we found what's correct implementation for UEFI. We need make sure UEFI
> will do correct thing for itself.
> 
> If only consider purly from DT's usage, i have no strong opinion to
> stick to use memory node to carve memory regions out. It's okay for me to
> go back to use /reserved-memory/ to reserved regions.
> 
> Mark, do you agree with this?

Ping ...

Hi Mark,

Could u help confirm for this? i'm planning to resend new version
patch series in tommorrow, but it's better can get your feedback
firstly.

Thanks,
Leo Yan

  reply	other threads:[~2015-11-05 13:54 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-10-09  4:36 [PATCH 0/4] arm64: Hi6220: enable CPU idle states Leo Yan
2015-10-09  4:36 ` [PATCH 1/4] arm64: dts: Reserve memory regions for hi6220 Leo Yan
2015-10-09 13:17   ` Rob Herring
2015-10-09 13:30     ` Mark Rutland
2015-10-09 13:50       ` Rob Herring
2015-10-09 14:20         ` Leo Yan
2015-10-29  4:32           ` Rob Herring
2015-10-29  8:33             ` Leo Yan
2015-11-05 13:54               ` Leo Yan [this message]
2015-11-05 16:13                 ` Mark Rutland
2015-11-06  1:19                   ` Leo Yan
2016-01-11 15:40                     ` Leo Yan
2016-01-18 15:07                       ` Rob Herring
2016-01-18 15:42                         ` Mark Rutland
2016-01-19 15:13                           ` Leo Yan
2015-10-09  4:36 ` [PATCH 2/4] arm64: Kconfig: select sp804 timer for ARCH_HISI Leo Yan
2015-10-09  4:36 ` [PATCH 3/4] arm64: dts: add sp804 timer node for Hi6220 Leo Yan
2015-10-09 13:10   ` Rob Herring
2015-10-09  4:36 ` [PATCH 4/4] arm64: dts: enable idle states " Leo Yan
2015-10-09  8:48   ` Sudeep Holla
2015-10-09  8:57     ` Leo Yan

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20151105135449.GD27192@leoy-linaro \
    --to=leo.yan@linaro.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).