linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 1/2] ARM: dts: rockchip: reserve unusable memory region on rk3288
@ 2015-08-06 17:33 Heiko Stübner
  2015-08-06 17:37 ` [PATCH v2 2/2] ARM: dts: rockchip: add veyron-minnie board Heiko Stübner
  2015-08-07 21:31 ` [PATCH v2 1/2] ARM: dts: rockchip: reserve unusable memory region on rk3288 Doug Anderson
  0 siblings, 2 replies; 7+ messages in thread
From: Heiko Stübner @ 2015-08-06 17:33 UTC (permalink / raw)
  To: linux-arm-kernel

The all current Rockchip SoCs supporting 4GB of ram have problems accessing
the memory region 0xfe000000~0xff000000. This also seems to includes the
rk3368 arm64 soc.

All current code handling dma memory oddities I could find, seem to involve
soc-specific code (zone-dma or so) while this issue is shared between arm32
and arm64 socs from Rockchip, which would need to have this described in
the soc devicetree on both socs.

Limiting the dma-zone alone also does not solve the issue and as the
dma-masks need to be a power-of-two in the kernel, the next lower dma-mask
brings memory usable for dma down to 2GB.

So as a stop-gap block off the affected region to prevent its use by
devices with 4GB of memory, like some recent Chromebooks.

Signed-off-by: Heiko Stuebner <heiko@sntech.de>
---
changes since v1:
- expand reasons for the reserved memory

 arch/arm/boot/dts/rk3288.dtsi | 20 ++++++++++++++++++++
 1 file changed, 20 insertions(+)

diff --git a/arch/arm/boot/dts/rk3288.dtsi b/arch/arm/boot/dts/rk3288.dtsi
index 47a15aa..118fe74 100644
--- a/arch/arm/boot/dts/rk3288.dtsi
+++ b/arch/arm/boot/dts/rk3288.dtsi
@@ -169,6 +169,26 @@
 		};
 	};
 
+	reserved-memory {
+		#address-cells = <1>;
+		#size-cells = <1>;
+		ranges;
+
+		/*
+		 * The rk3288 cannot use the memory area above 0xfe000000
+		 * for dma operations for some reason. While there is
+		 * probably a better solution available somewhere, we
+		 * haven't found it yet and while devices with 2GB of ram
+		 * are not affected, this issue prevents 4GB from booting.
+		 * So to make these devices at least bootable, block
+		 * this area for the time being until the real solution
+		 * is found.
+		 */
+		dma-unusable at fe000000 {
+			reg = <0xfe000000 0x1000000>;
+		};
+	};
+
 	xin24m: oscillator {
 		compatible = "fixed-clock";
 		clock-frequency = <24000000>;
-- 
2.1.4

^ permalink raw reply related	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2015-08-08 10:32 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-08-06 17:33 [PATCH v2 1/2] ARM: dts: rockchip: reserve unusable memory region on rk3288 Heiko Stübner
2015-08-06 17:37 ` [PATCH v2 2/2] ARM: dts: rockchip: add veyron-minnie board Heiko Stübner
2015-08-07 22:06   ` Doug Anderson
2015-08-07 22:13     ` Dmitry Torokhov
2015-08-07 22:50       ` Heiko Stübner
2015-08-08 10:32   ` Heiko Stübner
2015-08-07 21:31 ` [PATCH v2 1/2] ARM: dts: rockchip: reserve unusable memory region on rk3288 Doug Anderson

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).