diff mbox

ARM: shmobile: Include all 2 GiB of memory on APE6EVM

Message ID 20131031031549.15985.23547.sendpatchset@w520 (mailing list archive)
State New, archived
Headers show

Commit Message

Magnus Damm Oct. 31, 2013, 3:15 a.m. UTC
From: Takashi Yoshii <takasi-y@ops.dti.ne.jp>

Add 1GiB of DRAM at 0x2_0000_0000 to support the full 2GiB
of APE6EVM system memory.

Signed-off-by: Takashi Yoshii <takasi-y@ops.dti.ne.jp>
Signed-off-by: Magnus Damm <damm@opensource.se>
---

 For correct run time operation regardless of kernel configuration
 ARM patches 7863/1 and 7864/1 are needed.

 arch/arm/boot/dts/r8a73a4-ape6evm.dts |    5 +++++
 1 file changed, 5 insertions(+)

Comments

Simon Horman Oct. 31, 2013, 4:20 a.m. UTC | #1
On Thu, Oct 31, 2013 at 12:15:49PM +0900, Magnus Damm wrote:
> From: Takashi Yoshii <takasi-y@ops.dti.ne.jp>
> 
> Add 1GiB of DRAM at 0x2_0000_0000 to support the full 2GiB
> of APE6EVM system memory.
> 
> Signed-off-by: Takashi Yoshii <takasi-y@ops.dti.ne.jp>
> Signed-off-by: Magnus Damm <damm@opensource.se>
> ---
> 
>  For correct run time operation regardless of kernel configuration
>  ARM patches 7863/1 and 7864/1 are needed.

I take it that I should wait for those patches before applying this one.

With those two patches and this one applied on top of
renesas-devel-v3.12-rc7-20131030 I was able to successfully
boot an ape6evm board. But /proc/meminfo still indicates only 1Gb of
memory. What am I missing.

> 
>  arch/arm/boot/dts/r8a73a4-ape6evm.dts |    5 +++++
>  1 file changed, 5 insertions(+)
> 
> --- 0001/arch/arm/boot/dts/r8a73a4-ape6evm.dts
> +++ work/arch/arm/boot/dts/r8a73a4-ape6evm.dts	2013-10-31 11:44:53.000000000 +0900
> @@ -24,6 +24,11 @@
>  		reg = <0 0x40000000 0 0x40000000>;
>  	};
>  
> +	memory@200000000 {
> +		device_type = "memory";
> +		reg = <2 0x00000000 0 0x40000000>;
> +	};
> +
>  	ape6evm_fixed_3v3: fixedregulator@0 {
>  		compatible = "regulator-fixed";
>  		regulator-name = "3V3";
>
Magnus Damm Oct. 31, 2013, 8:02 a.m. UTC | #2
Hi Simon,

On Thu, Oct 31, 2013 at 1:20 PM, Simon Horman <horms@verge.net.au> wrote:
> On Thu, Oct 31, 2013 at 12:15:49PM +0900, Magnus Damm wrote:
>> From: Takashi Yoshii <takasi-y@ops.dti.ne.jp>
>>
>> Add 1GiB of DRAM at 0x2_0000_0000 to support the full 2GiB
>> of APE6EVM system memory.
>>
>> Signed-off-by: Takashi Yoshii <takasi-y@ops.dti.ne.jp>
>> Signed-off-by: Magnus Damm <damm@opensource.se>
>> ---
>>
>>  For correct run time operation regardless of kernel configuration
>>  ARM patches 7863/1 and 7864/1 are needed.
>
> I take it that I should wait for those patches before applying this one.

That's probably a good idea. RMK has applied them to "git-curr", so I
suppose they are queued up for something at least:

http://www.arm.linux.org.uk/developer/patches/viewpatch.php?id=7863/1

> With those two patches and this one applied on top of
> renesas-devel-v3.12-rc7-20131030 I was able to successfully
> boot an ape6evm board. But /proc/meminfo still indicates only 1Gb of
> memory. What am I missing.

You probably need to enable HIGHMEM and LPAE to be able to access to
all memory. Same thing on Lager, to get the full 4GiB you need to
select those in your kernel configuration too.

Please note that having memory located on 64-bit addresses may break
some drivers doing bus mastering or using the DMAC. These drivers need
to be fixed both with short term DMA zone workarounds and proper
64-bit address support whenever possible.

So if I could suggest a policy then having LPAE=n in defconfig for the
C board code for default stable operation. This together with LPAE=y
in the case of DT reference and/or Multiplatform where we can be a bit
more experimental. I don't care enough to send defconfig patches, but
if some issue comes up then perhaps adjusting the defconfig to disable
LPAE may work well as a workaround.

Cheers,

/ magnus
Simon Horman Nov. 6, 2013, 1:48 a.m. UTC | #3
On Thu, Oct 31, 2013 at 05:02:13PM +0900, Magnus Damm wrote:
> Hi Simon,
> 
> On Thu, Oct 31, 2013 at 1:20 PM, Simon Horman <horms@verge.net.au> wrote:
> > On Thu, Oct 31, 2013 at 12:15:49PM +0900, Magnus Damm wrote:
> >> From: Takashi Yoshii <takasi-y@ops.dti.ne.jp>
> >>
> >> Add 1GiB of DRAM at 0x2_0000_0000 to support the full 2GiB
> >> of APE6EVM system memory.
> >>
> >> Signed-off-by: Takashi Yoshii <takasi-y@ops.dti.ne.jp>
> >> Signed-off-by: Magnus Damm <damm@opensource.se>
> >> ---
> >>
> >>  For correct run time operation regardless of kernel configuration
> >>  ARM patches 7863/1 and 7864/1 are needed.
> >
> > I take it that I should wait for those patches before applying this one.
> 
> That's probably a good idea. RMK has applied them to "git-curr", so I
> suppose they are queued up for something at least:
> 
> http://www.arm.linux.org.uk/developer/patches/viewpatch.php?id=7863/1

I have also sighted them in linux-next.
So I expect they will show up in v3.13-rc1 or thereabouts.

> > With those two patches and this one applied on top of
> > renesas-devel-v3.12-rc7-20131030 I was able to successfully
> > boot an ape6evm board. But /proc/meminfo still indicates only 1Gb of
> > memory. What am I missing.
> 
> You probably need to enable HIGHMEM and LPAE to be able to access to
> all memory. Same thing on Lager, to get the full 4GiB you need to
> select those in your kernel configuration too.

Thanks, I have been able to successfully test all 4 patches in this
series with those settings enabled.

Tested-by: Simon Horman <horms+renesas@verge.net.au>

> Please note that having memory located on 64-bit addresses may break
> some drivers doing bus mastering or using the DMAC. These drivers need
> to be fixed both with short term DMA zone workarounds and proper
> 64-bit address support whenever possible.
> 
> So if I could suggest a policy then having LPAE=n in defconfig for the
> C board code for default stable operation. This together with LPAE=y
> in the case of DT reference and/or Multiplatform where we can be a bit
> more experimental. I don't care enough to send defconfig patches, but
> if some issue comes up then perhaps adjusting the defconfig to disable
> LPAE may work well as a workaround.

Thanks.

As it stands the defconfig for both APE6EVM and Lager lead to a
configuration with LPAE disabled, although neither explicitly disable LPAE.
I think it is best to leave things as-is in this regards and explicitly
disable LPAE in the defconfigs if the need arises.

While looking over this I noticed that the APE6EVM defconfig selects
HIGHMEM while the Lager defconfig does not and it is not selected in the
resulting config. Would it be worth updating the Lager defconfig to enable
HIGHMEM? If so, I'll make a patch.
Magnus Damm Nov. 6, 2013, 9:48 a.m. UTC | #4
Hi Simon,

On Wed, Nov 6, 2013 at 10:48 AM, Simon Horman <horms@verge.net.au> wrote:
> On Thu, Oct 31, 2013 at 05:02:13PM +0900, Magnus Damm wrote:
>> Hi Simon,
>>
>> On Thu, Oct 31, 2013 at 1:20 PM, Simon Horman <horms@verge.net.au> wrote:
>> > On Thu, Oct 31, 2013 at 12:15:49PM +0900, Magnus Damm wrote:
>> >> From: Takashi Yoshii <takasi-y@ops.dti.ne.jp>
>> >>
>> >> Add 1GiB of DRAM at 0x2_0000_0000 to support the full 2GiB
>> >> of APE6EVM system memory.
>> >>
>> >> Signed-off-by: Takashi Yoshii <takasi-y@ops.dti.ne.jp>
>> >> Signed-off-by: Magnus Damm <damm@opensource.se>
>> >> ---
>> >>
>> >>  For correct run time operation regardless of kernel configuration
>> >>  ARM patches 7863/1 and 7864/1 are needed.
>> >
>> > I take it that I should wait for those patches before applying this one.
>>
>> That's probably a good idea. RMK has applied them to "git-curr", so I
>> suppose they are queued up for something at least:
>>
>> http://www.arm.linux.org.uk/developer/patches/viewpatch.php?id=7863/1
>
> I have also sighted them in linux-next.
> So I expect they will show up in v3.13-rc1 or thereabouts.
>
>> > With those two patches and this one applied on top of
>> > renesas-devel-v3.12-rc7-20131030 I was able to successfully
>> > boot an ape6evm board. But /proc/meminfo still indicates only 1Gb of
>> > memory. What am I missing.
>>
>> You probably need to enable HIGHMEM and LPAE to be able to access to
>> all memory. Same thing on Lager, to get the full 4GiB you need to
>> select those in your kernel configuration too.
>
> Thanks, I have been able to successfully test all 4 patches in this
> series with those settings enabled.
>
> Tested-by: Simon Horman <horms+renesas@verge.net.au>
>
>> Please note that having memory located on 64-bit addresses may break
>> some drivers doing bus mastering or using the DMAC. These drivers need
>> to be fixed both with short term DMA zone workarounds and proper
>> 64-bit address support whenever possible.
>>
>> So if I could suggest a policy then having LPAE=n in defconfig for the
>> C board code for default stable operation. This together with LPAE=y
>> in the case of DT reference and/or Multiplatform where we can be a bit
>> more experimental. I don't care enough to send defconfig patches, but
>> if some issue comes up then perhaps adjusting the defconfig to disable
>> LPAE may work well as a workaround.
>
> Thanks.
>
> As it stands the defconfig for both APE6EVM and Lager lead to a
> configuration with LPAE disabled, although neither explicitly disable LPAE.
> I think it is best to leave things as-is in this regards and explicitly
> disable LPAE in the defconfigs if the need arises.
>
> While looking over this I noticed that the APE6EVM defconfig selects
> HIGHMEM while the Lager defconfig does not and it is not selected in the
> resulting config. Would it be worth updating the Lager defconfig to enable
> HIGHMEM? If so, I'll make a patch.

Thanks. I think it mainly makes sense to enable LPAE and HIGHMEM
together, so easiest is probably just to wait with both Lager and
APE6EVM.

Cheers,

/ magnus
Simon Horman Nov. 8, 2013, 6:26 a.m. UTC | #5
On Wed, Nov 06, 2013 at 06:48:45PM +0900, Magnus Damm wrote:
> Hi Simon,
> 
> On Wed, Nov 6, 2013 at 10:48 AM, Simon Horman <horms@verge.net.au> wrote:
> > On Thu, Oct 31, 2013 at 05:02:13PM +0900, Magnus Damm wrote:
> >> Hi Simon,
> >>
> >> On Thu, Oct 31, 2013 at 1:20 PM, Simon Horman <horms@verge.net.au> wrote:
> >> > On Thu, Oct 31, 2013 at 12:15:49PM +0900, Magnus Damm wrote:
> >> >> From: Takashi Yoshii <takasi-y@ops.dti.ne.jp>
> >> >>
> >> >> Add 1GiB of DRAM at 0x2_0000_0000 to support the full 2GiB
> >> >> of APE6EVM system memory.
> >> >>
> >> >> Signed-off-by: Takashi Yoshii <takasi-y@ops.dti.ne.jp>
> >> >> Signed-off-by: Magnus Damm <damm@opensource.se>
> >> >> ---
> >> >>
> >> >>  For correct run time operation regardless of kernel configuration
> >> >>  ARM patches 7863/1 and 7864/1 are needed.
> >> >
> >> > I take it that I should wait for those patches before applying this one.
> >>
> >> That's probably a good idea. RMK has applied them to "git-curr", so I
> >> suppose they are queued up for something at least:
> >>
> >> http://www.arm.linux.org.uk/developer/patches/viewpatch.php?id=7863/1
> >
> > I have also sighted them in linux-next.
> > So I expect they will show up in v3.13-rc1 or thereabouts.
> >
> >> > With those two patches and this one applied on top of
> >> > renesas-devel-v3.12-rc7-20131030 I was able to successfully
> >> > boot an ape6evm board. But /proc/meminfo still indicates only 1Gb of
> >> > memory. What am I missing.
> >>
> >> You probably need to enable HIGHMEM and LPAE to be able to access to
> >> all memory. Same thing on Lager, to get the full 4GiB you need to
> >> select those in your kernel configuration too.
> >
> > Thanks, I have been able to successfully test all 4 patches in this
> > series with those settings enabled.
> >
> > Tested-by: Simon Horman <horms+renesas@verge.net.au>
> >
> >> Please note that having memory located on 64-bit addresses may break
> >> some drivers doing bus mastering or using the DMAC. These drivers need
> >> to be fixed both with short term DMA zone workarounds and proper
> >> 64-bit address support whenever possible.
> >>
> >> So if I could suggest a policy then having LPAE=n in defconfig for the
> >> C board code for default stable operation. This together with LPAE=y
> >> in the case of DT reference and/or Multiplatform where we can be a bit
> >> more experimental. I don't care enough to send defconfig patches, but
> >> if some issue comes up then perhaps adjusting the defconfig to disable
> >> LPAE may work well as a workaround.
> >
> > Thanks.
> >
> > As it stands the defconfig for both APE6EVM and Lager lead to a
> > configuration with LPAE disabled, although neither explicitly disable LPAE.
> > I think it is best to leave things as-is in this regards and explicitly
> > disable LPAE in the defconfigs if the need arises.
> >
> > While looking over this I noticed that the APE6EVM defconfig selects
> > HIGHMEM while the Lager defconfig does not and it is not selected in the
> > resulting config. Would it be worth updating the Lager defconfig to enable
> > HIGHMEM? If so, I'll make a patch.
> 
> Thanks. I think it mainly makes sense to enable LPAE and HIGHMEM
> together, so easiest is probably just to wait with both Lager and
> APE6EVM.

Sure. I will immediately do nothing :)
Simon Horman Nov. 25, 2013, 2:47 a.m. UTC | #6
On Fri, Nov 08, 2013 at 03:26:23PM +0900, Simon Horman wrote:
> On Wed, Nov 06, 2013 at 06:48:45PM +0900, Magnus Damm wrote:
> > Hi Simon,
> > 
> > On Wed, Nov 6, 2013 at 10:48 AM, Simon Horman <horms@verge.net.au> wrote:
> > > On Thu, Oct 31, 2013 at 05:02:13PM +0900, Magnus Damm wrote:
> > >> Hi Simon,
> > >>
> > >> On Thu, Oct 31, 2013 at 1:20 PM, Simon Horman <horms@verge.net.au> wrote:
> > >> > On Thu, Oct 31, 2013 at 12:15:49PM +0900, Magnus Damm wrote:
> > >> >> From: Takashi Yoshii <takasi-y@ops.dti.ne.jp>
> > >> >>
> > >> >> Add 1GiB of DRAM at 0x2_0000_0000 to support the full 2GiB
> > >> >> of APE6EVM system memory.
> > >> >>
> > >> >> Signed-off-by: Takashi Yoshii <takasi-y@ops.dti.ne.jp>
> > >> >> Signed-off-by: Magnus Damm <damm@opensource.se>
> > >> >> ---
> > >> >>
> > >> >>  For correct run time operation regardless of kernel configuration
> > >> >>  ARM patches 7863/1 and 7864/1 are needed.
> > >> >
> > >> > I take it that I should wait for those patches before applying this one.
> > >>
> > >> That's probably a good idea. RMK has applied them to "git-curr", so I
> > >> suppose they are queued up for something at least:
> > >>
> > >> http://www.arm.linux.org.uk/developer/patches/viewpatch.php?id=7863/1
> > >
> > > I have also sighted them in linux-next.
> > > So I expect they will show up in v3.13-rc1 or thereabouts.

v3.13-rc1 is released and I have rebased the branches in the renesas tree
on top of it. Should I go ahead and queue up this patch and its 3 friends:

	ARM: shmobile: Include all 2 GiB of memory on APE6EVM DT Ref
	ARM: shmobile: Include all 4 GiB of memory on Lager
	ARM: shmobile: Include all 4 GiB of memory on Lager DT Ref

> > >
> > >> > With those two patches and this one applied on top of
> > >> > renesas-devel-v3.12-rc7-20131030 I was able to successfully
> > >> > boot an ape6evm board. But /proc/meminfo still indicates only 1Gb of
> > >> > memory. What am I missing.
> > >>
> > >> You probably need to enable HIGHMEM and LPAE to be able to access to
> > >> all memory. Same thing on Lager, to get the full 4GiB you need to
> > >> select those in your kernel configuration too.
> > >
> > > Thanks, I have been able to successfully test all 4 patches in this
> > > series with those settings enabled.
> > >
> > > Tested-by: Simon Horman <horms+renesas@verge.net.au>
> > >
> > >> Please note that having memory located on 64-bit addresses may break
> > >> some drivers doing bus mastering or using the DMAC. These drivers need
> > >> to be fixed both with short term DMA zone workarounds and proper
> > >> 64-bit address support whenever possible.
> > >>
> > >> So if I could suggest a policy then having LPAE=n in defconfig for the
> > >> C board code for default stable operation. This together with LPAE=y
> > >> in the case of DT reference and/or Multiplatform where we can be a bit
> > >> more experimental. I don't care enough to send defconfig patches, but
> > >> if some issue comes up then perhaps adjusting the defconfig to disable
> > >> LPAE may work well as a workaround.
> > >
> > > Thanks.
> > >
> > > As it stands the defconfig for both APE6EVM and Lager lead to a
> > > configuration with LPAE disabled, although neither explicitly disable LPAE.
> > > I think it is best to leave things as-is in this regards and explicitly
> > > disable LPAE in the defconfigs if the need arises.
> > >
> > > While looking over this I noticed that the APE6EVM defconfig selects
> > > HIGHMEM while the Lager defconfig does not and it is not selected in the
> > > resulting config. Would it be worth updating the Lager defconfig to enable
> > > HIGHMEM? If so, I'll make a patch.
> > 
> > Thanks. I think it mainly makes sense to enable LPAE and HIGHMEM
> > together, so easiest is probably just to wait with both Lager and
> > APE6EVM.
> 
> Sure. I will immediately do nothing :)
> --
> To unsubscribe from this list: send the line "unsubscribe linux-sh" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>
Simon Horman Nov. 28, 2013, 7:56 a.m. UTC | #7
On Thu, Oct 31, 2013 at 12:15:49PM +0900, Magnus Damm wrote:
> From: Takashi Yoshii <takasi-y@ops.dti.ne.jp>
> 
> Add 1GiB of DRAM at 0x2_0000_0000 to support the full 2GiB
> of APE6EVM system memory.
> 
> Signed-off-by: Takashi Yoshii <takasi-y@ops.dti.ne.jp>
> Signed-off-by: Magnus Damm <damm@opensource.se>
> ---

Thanks, I have queued this up.

> 
>  For correct run time operation regardless of kernel configuration
>  ARM patches 7863/1 and 7864/1 are needed.
> 
>  arch/arm/boot/dts/r8a73a4-ape6evm.dts |    5 +++++
>  1 file changed, 5 insertions(+)
> 
> --- 0001/arch/arm/boot/dts/r8a73a4-ape6evm.dts
> +++ work/arch/arm/boot/dts/r8a73a4-ape6evm.dts	2013-10-31 11:44:53.000000000 +0900
> @@ -24,6 +24,11 @@
>  		reg = <0 0x40000000 0 0x40000000>;
>  	};
>  
> +	memory@200000000 {
> +		device_type = "memory";
> +		reg = <2 0x00000000 0 0x40000000>;
> +	};
> +
>  	ape6evm_fixed_3v3: fixedregulator@0 {
>  		compatible = "regulator-fixed";
>  		regulator-name = "3V3";
>
diff mbox

Patch

--- 0001/arch/arm/boot/dts/r8a73a4-ape6evm.dts
+++ work/arch/arm/boot/dts/r8a73a4-ape6evm.dts	2013-10-31 11:44:53.000000000 +0900
@@ -24,6 +24,11 @@ 
 		reg = <0 0x40000000 0 0x40000000>;
 	};
 
+	memory@200000000 {
+		device_type = "memory";
+		reg = <2 0x00000000 0 0x40000000>;
+	};
+
 	ape6evm_fixed_3v3: fixedregulator@0 {
 		compatible = "regulator-fixed";
 		regulator-name = "3V3";