diff mbox series

[U-Boot,v2,2/6] sunxi: add Kconfig option for the maximum accessible DRAM

Message ID 20180323081857.57138-3-icenowy@aosc.io
State Changes Requested
Delegated to: Jagannadha Sutradharudu Teki
Headers show
Series Add 3GiB DRAM support to 64-bit Allwinner SoCs | expand

Commit Message

Icenowy Zheng March 23, 2018, 8:18 a.m. UTC
Allwinner 64-bit SoCs can use 4GiB DRAM chip, however their memory map
has only allocated 3GiB for DRAM, so only 3GiB of the DRAM is
accessible.

Add a Kconfig option for the maximum accessible DRAM.

For A80 it should be a much higher value (8GiB), but as I have no A80
device to test and originally U-Boot only supports 2GiB DRAM on A80, it
currently still falls under the 2GiB situation.

Signed-off-by: Icenowy Zheng <icenowy@aosc.io>
---
No changes in v2.

 arch/arm/mach-sunxi/Kconfig | 7 +++++++
 1 file changed, 7 insertions(+)

Comments

Maxime Ripard March 23, 2018, 9:39 a.m. UTC | #1
On Fri, Mar 23, 2018 at 04:18:53PM +0800, Icenowy Zheng wrote:
> Allwinner 64-bit SoCs can use 4GiB DRAM chip, however their memory map
> has only allocated 3GiB for DRAM, so only 3GiB of the DRAM is
> accessible.

How would that work in Linux?

> Add a Kconfig option for the maximum accessible DRAM.
> 
> For A80 it should be a much higher value (8GiB), but as I have no A80
> device to test and originally U-Boot only supports 2GiB DRAM on A80, it
> currently still falls under the 2GiB situation.

I guess we have LPAE on armv7 to deal with this nicely.

Maxime
Chen-Yu Tsai March 23, 2018, 9:42 a.m. UTC | #2
On Fri, Mar 23, 2018 at 5:39 PM, Maxime Ripard
<maxime.ripard@bootlin.com> wrote:
> On Fri, Mar 23, 2018 at 04:18:53PM +0800, Icenowy Zheng wrote:
>> Allwinner 64-bit SoCs can use 4GiB DRAM chip, however their memory map
>> has only allocated 3GiB for DRAM, so only 3GiB of the DRAM is
>> accessible.
>
> How would that work in Linux?
>
>> Add a Kconfig option for the maximum accessible DRAM.
>>
>> For A80 it should be a much higher value (8GiB), but as I have no A80
>> device to test and originally U-Boot only supports 2GiB DRAM on A80, it
>> currently still falls under the 2GiB situation.
>
> I guess we have LPAE on armv7 to deal with this nicely.

AFAIK even though we do have LPAE, the hardware bus is not wired up
to take advantage of it. :(

ChenYu
Icenowy Zheng March 23, 2018, 9:45 a.m. UTC | #3
于 2018年3月23日 GMT+08:00 下午5:39:25, Maxime Ripard <maxime.ripard@bootlin.com> 写到:
>On Fri, Mar 23, 2018 at 04:18:53PM +0800, Icenowy Zheng wrote:
>> Allwinner 64-bit SoCs can use 4GiB DRAM chip, however their memory
>map
>> has only allocated 3GiB for DRAM, so only 3GiB of the DRAM is
>> accessible.
>
>How would that work in Linux?

From CPU's view only 3GiB DRAM is attached, so Linux can
use the 3GiB space only.

Only the DRAM controller knows that 4GiB DRAM is connected :-)

>
>> Add a Kconfig option for the maximum accessible DRAM.
>> 
>> For A80 it should be a much higher value (8GiB), but as I have no A80
>> device to test and originally U-Boot only supports 2GiB DRAM on A80,
>it
>> currently still falls under the 2GiB situation.
>
>I guess we have LPAE on armv7 to deal with this nicely.
>
>Maxime
diff mbox series

Patch

diff --git a/arch/arm/mach-sunxi/Kconfig b/arch/arm/mach-sunxi/Kconfig
index b868f0e350..029821c82d 100644
--- a/arch/arm/mach-sunxi/Kconfig
+++ b/arch/arm/mach-sunxi/Kconfig
@@ -130,6 +130,13 @@  config MACH_SUNXI_H3_H5
 	select SUNXI_GEN_SUN6I
 	select SUPPORT_SPL
 
+# TODO: try out A80's 8GiB DRAM space
+config SUNXI_DRAM_MAX_SIZE
+	hex
+	default 0xC0000000 if MACH_SUN50I
+	default 0xC0000000 if MACH_SUN50I_H5
+	default 0x80000000
+
 choice
 	prompt "Sunxi SoC Variant"
 	optional