* [PATCH] ARM: rpi: dts: fix MMIO resources clash breaking boot
@ 2020-06-17 14:50 Ahmad Fatoum
2020-06-18 14:42 ` Sascha Hauer
0 siblings, 1 reply; 2+ messages in thread
From: Ahmad Fatoum @ 2020-06-17 14:50 UTC (permalink / raw)
To: barebox; +Cc: Ahmad Fatoum
The rpi3b device tree specifies 1G of RAM in the memory node, but maps
the highest 16M of RAM's physical address range for peripheral use.
When support for device tree probing was first added for the rpi3b
in e8fab18835a1 ("ARM: rpi: switch to DT probe and multi-image build"),
it had a memory { } node overriding the kernel node size with 0, so the
size is computed later correctly.
1dc748b3b202 ("dts: update to v5.1-rc1") came and renamed the upstream
memory { } node to memory@0. So instead of overriding the old, we
now created a second dummy along with the broken node.
barebox did only parse the dummy, so it continued to limp along.
8226f7f90973 ("of: base: parse all available memory nodes") started
considering both nodes and rendered barebox v2020.05.0 unable to start
up on the rpi3b because of the conflict between RAM range and peripherals
like the bcm2835_mbox caused by parsing the broken memory node.
At least one board also was broken for the same reason[1], so a more
robust approach is in order. For nodes that lack a phandle, the
&{/path} syntax can be used instead. This has the benefit that should
the path disappear in future, a compile failure would result.
[1] 0d26ce1c11a1 ("ARM: Phytec phyFLEX i.MX6: delete wrong memory node")
Fixes: 1dc748b3b202 ("dts: update to v5.1-rc1")
Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de>
---
Hello Sascha,
please apply to master. v2020.05.0 and v2020.06.0 are both unbootable on
at least the rpi3b
Cheers,
Ahmad
---
arch/arm/dts/bcm2835-rpi.dts | 6 +++---
arch/arm/dts/bcm2836-rpi-2.dts | 6 +++---
arch/arm/dts/bcm2837-rpi-3.dts | 6 +++---
arch/arm/dts/bcm2837-rpi-cm3.dts | 6 +++---
4 files changed, 12 insertions(+), 12 deletions(-)
diff --git a/arch/arm/dts/bcm2835-rpi.dts b/arch/arm/dts/bcm2835-rpi.dts
index c23e7c7c142b..4f227508010b 100644
--- a/arch/arm/dts/bcm2835-rpi.dts
+++ b/arch/arm/dts/bcm2835-rpi.dts
@@ -4,10 +4,10 @@
chosen {
stdout-path = &uart0;
};
+};
- memory {
- reg = <0x0 0x0>;
- };
+&{/memory@0} {
+ reg = <0x0 0x0>;
};
&sdhci {
diff --git a/arch/arm/dts/bcm2836-rpi-2.dts b/arch/arm/dts/bcm2836-rpi-2.dts
index 42b6abb180de..c9c3892d6a21 100644
--- a/arch/arm/dts/bcm2836-rpi-2.dts
+++ b/arch/arm/dts/bcm2836-rpi-2.dts
@@ -4,8 +4,8 @@
chosen {
stdout-path = &uart0;
};
+};
- memory {
- reg = <0x0 0x0>;
- };
+&{/memory@0} {
+ reg = <0x0 0x0>;
};
diff --git a/arch/arm/dts/bcm2837-rpi-3.dts b/arch/arm/dts/bcm2837-rpi-3.dts
index 420525b9e857..d66beddb2281 100644
--- a/arch/arm/dts/bcm2837-rpi-3.dts
+++ b/arch/arm/dts/bcm2837-rpi-3.dts
@@ -4,10 +4,10 @@
chosen {
stdout-path = &uart1;
};
+};
- memory {
- reg = <0x0 0x0>;
- };
+&{/memory@0} {
+ reg = <0x0 0x0>;
};
&sdhci {
diff --git a/arch/arm/dts/bcm2837-rpi-cm3.dts b/arch/arm/dts/bcm2837-rpi-cm3.dts
index 01c1f9a67714..85a6ac46619a 100644
--- a/arch/arm/dts/bcm2837-rpi-cm3.dts
+++ b/arch/arm/dts/bcm2837-rpi-cm3.dts
@@ -4,8 +4,8 @@
chosen {
stdout-path = &uart0;
};
+};
- memory {
- reg = <0x0 0x0>;
- };
+&{/memory@0} {
+ reg = <0x0 0x0>;
};
--
2.27.0
_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: [PATCH] ARM: rpi: dts: fix MMIO resources clash breaking boot
2020-06-17 14:50 [PATCH] ARM: rpi: dts: fix MMIO resources clash breaking boot Ahmad Fatoum
@ 2020-06-18 14:42 ` Sascha Hauer
0 siblings, 0 replies; 2+ messages in thread
From: Sascha Hauer @ 2020-06-18 14:42 UTC (permalink / raw)
To: Ahmad Fatoum; +Cc: barebox
On Wed, Jun 17, 2020 at 04:50:16PM +0200, Ahmad Fatoum wrote:
> The rpi3b device tree specifies 1G of RAM in the memory node, but maps
> the highest 16M of RAM's physical address range for peripheral use.
>
> When support for device tree probing was first added for the rpi3b
> in e8fab18835a1 ("ARM: rpi: switch to DT probe and multi-image build"),
> it had a memory { } node overriding the kernel node size with 0, so the
> size is computed later correctly.
>
> 1dc748b3b202 ("dts: update to v5.1-rc1") came and renamed the upstream
> memory { } node to memory@0. So instead of overriding the old, we
> now created a second dummy along with the broken node.
> barebox did only parse the dummy, so it continued to limp along.
>
> 8226f7f90973 ("of: base: parse all available memory nodes") started
> considering both nodes and rendered barebox v2020.05.0 unable to start
> up on the rpi3b because of the conflict between RAM range and peripherals
> like the bcm2835_mbox caused by parsing the broken memory node.
>
> At least one board also was broken for the same reason[1], so a more
> robust approach is in order. For nodes that lack a phandle, the
> &{/path} syntax can be used instead. This has the benefit that should
> the path disappear in future, a compile failure would result.
>
> [1] 0d26ce1c11a1 ("ARM: Phytec phyFLEX i.MX6: delete wrong memory node")
>
> Fixes: 1dc748b3b202 ("dts: update to v5.1-rc1")
> Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de>
Applied, thanks
Sascha
--
Pengutronix e.K. | |
Steuerwalder Str. 21 | http://www.pengutronix.de/ |
31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2020-06-18 14:42 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-06-17 14:50 [PATCH] ARM: rpi: dts: fix MMIO resources clash breaking boot Ahmad Fatoum
2020-06-18 14:42 ` Sascha Hauer
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox