[PATCH v2 1/3] arm64: dts: add initial dts for Samsung GH7 SoC and SSDK-GH7 board
Kukjin Kim
kgene.kim at samsung.com
Thu Mar 13 21:26:31 EDT 2014
Mark Rutland wrote:
>
[...]
> > > > +/memreserve/ 0x80000000 0x0C400000;
> > >
> > > Please have a comment as to what this memreserve is intended to protect.
> > > This is very large, and we don't want pointless memreserves.
> > >
> > Well, you mean I need to comment about each reserved memory area?
>
> Please have a comment about what each /memreserve/ is intended to
> protect.
>
OK and I will try to reduce the size of reserved memory.
> > We need the reserved memory for EL3 monitor, UEFI services, secure
> > interpreter, hypervisor and Scan-chain for debug...BTW isn't it depending on
> > each hardware platform and usage model?
>
> If it depends on each particular model then it doesn't belong in the
> shared dtsi, and each dts should have the /memreserve/ for that
> platform.
>
I mean it depends on each SoC not board :-)
> Why would the hypervisor or secure OS memory ever be accessible to the
> kernel such that it would require a memreserve? That sounds
> fundamentally broken.
>
> I was under the impression that if using UEFI we can identify and
> reserve the UEFI services by walking to UEFI memory map. If we don't use
> them, they don't need to be protected. As such, I don't see why they
> need a memreserve for them.
>
I need to talk to regarding engineer internally. Then I will update it.
> > Just note, I will change the reserve memory area and size. From at
> > 0xf8000000 and size is 128MB(0x8000000).
>
> Ok.
>
> > > What address does the kernel end up getting loaded at on this board?
> > >
> > We load the kernel image from at 0x80080000 after changing the reserve
> > memory area.
>
> Ok.
[...]
> > > > + cpu at 000 {
> > > > + device_type = "cpu";
> > > > + compatible = "arm,armv8";
> > >
> > > The "arm,armv8" should be a fallback rather than the only entry. The
> > > precise core should be first (see arch/arm64/boot/dts/apm-storm.dtsi for
> > > an example).
> > >
> > Well, do I really need another name if GH7 has just 'ARMv8 core' exactly?
>
> Yes please. You presumably don't have "just 'ARMv8 core'", but rather a
> specific ARMv8 implementation.
>
OK, so in my understanding if it is really _just_ 'ARMv8 core' from S/W point
of view, "arm,armv8" should be fine. I will make sure.
> > > > + reg = <0x0 0x000>;
> > >
> > > Any reason for padding these to three hexadecimal digits (in both the
> > > reg and unit-address)?
> > >
> > Yes, I already commented on Olof's question before, other cores will be
> > added and it should be separated from this.
>
> Ok.
[...]
> > > > + gic: interrupt-controller at 1C000000 {
> > > > + compatible = "arm,cortex-a15-gic";
> > >
> > > We should have a more specific compatible string early in the list here
> > > too.
> > >
> > Well, I think more specific compatible string is not required for gic, there
> > were discussion about using another compatible string for gic-v2. And
> > cortex-a15-gic should be fine at this moment and if another name is required
> > as per previous discussion, we will then.
>
> While it's probably ok to have "arm,cortex-a15-gic" in the compatible
> list, it would be good to also have a more specific string, so we can
> identify the GIC implementation precisely in future (in case we need to
> perform any workarounds, or there's some kind of optimisation we could
> perform for some implementations).
>
Hmm... let's use just it for now then add another specific string later ;-)
[...]
> > > > + pmu {
> > > > + compatible = "arm,armv8-pmuv3";
> > >
> > > This is missing a specific compatible string.
> > >
> > I don't know why I need another specific compatible string here because I
> > thought the 'armv8-pmuv3' is enough.
>
> Each CPU microarchitecture has different PMU events and quirks. While
> the CPU PMU might be compatible with ARMv8's PMUv3, it will also have
> implementation-specific events, and may have quirks we need to work
> around in future.
>
> As with 32-bit, we'd expect these to be of the form
> "${implementor},${cpu}-pmu".
>
OK.
+ compatible = "samsung,gh7-pmu", "armv8-pmuv3";
> > > > + interrupts = <0 294 0>,
> > > > + <0 295 0>,
> > > > + <0 296 0>,
> > > > + <0 297 0>,
> > > > + <0 298 0>,
> > > > + <0 299 0>,
> > > > + <0 300 0>,
> > > > + <0 301 0>;
> > > > + };
> > >
> > > There are four CPUs described, yet eight interrupts here. There should
> > > be one per CPU.
> > >
> > Yes right. I added them here by mistake, the other four interrupts will be
> > used for other 4 cores will be added later though.
>
> Ok.
[...]
> > > > + serial at 12c20000 {
> > > > + compatible = "arm,pl011", "arm,primecell";
> > > > + reg = <0 0x12c20000 0 0x10000>;
> > > > + interrupts = <0 420 0>;
> > > > + };
> > >
> > > These are both missing required clocks.
> > >
> > Yes right.
>
> So you'll add these?
>
To be honest, still I'm not sure how it should be handled because regarding
clocks do not need to handle in the kernel for GH7. And for it, I needed to
use some HACKs to change clock handling in the kernel. I will provide proper
solution soon.
[...]
> > > > + model = "SAMSUNG SSDK-GH7 board based on GH7 SoC";
> > >
> > > Is the "based on GH7 SoC" part necessary? Does the "SSDK-GH7" not give
> > > that away?
> > >
> > In this case, yes, SSDK-GH7 is enough but I though, in case of different
> > board adding what SoC is used on the board in that is useful. Anyway, OK.
>
> Looking at ePAPR, the recommended format is "manufacturer,model", and
> the string is intended to identify a particular implementation. It is
> not intended to give details about the implementation that can be
> derived from the name.
>
> We seem to have ignored the format (and to some degree purpose) of the
> model property so far, but I don't see any reason to fill it with
> unnecessary information.
>
OK, agreed. So it should be:
+ model = "samsung,SSDK-GH7";
Thank,
Kukjin
More information about the linux-arm-kernel
mailing list