ARM64: juno: disable NOR flash node by default
authorLinus Walleij <linus.walleij@linaro.org>
Wed, 28 Oct 2015 09:39:55 +0000 (10:39 +0100)
committerOlof Johansson <olof@lixom.net>
Sat, 31 Oct 2015 01:31:01 +0000 (01:31 +0000)
After discussing on the mailing list it turns out that
accessing the flash memory from the kernel can disrupt CPU
sleep states and CPU hotplugging, so let's disable this
DT node by default. Setups that want to access the flash
can modify this entry to enable the flash again.

Quoting Sudeep Holla: "the firmware assumes the flash is
always in read mode while Linux leaves NOR flash in
"read id" mode after initialization."

Reported-by: Sudeep Holla <sudeep.holla@arm.com>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Sudeep Holla <sudeep.holla@arm.com>
Cc: Liviu Dudau <Liviu.Dudau@arm.com>
Cc: Lorenzo Pieralisi <Lorenzo.Pieralisi@arm.com>
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Leif Lindholm <leif.lindholm@arm.com>
Cc: Ryan Harkin <ryan.harkin@linaro.org>
Fixes: 5078f77e1443 "ARM64: juno: add NOR flash to device tree"
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Olof Johansson <olof@lixom.net>
arch/arm64/boot/dts/arm/juno-motherboard.dtsi

index c7c99a42e2e997684449482535965a0570598044..8c029ee2a5b5b5360e66d99d4948627fb26e7417 100644 (file)
                                linux,part-probe = "afs";
                                reg = <0 0x00000000 0x04000000>;
                                bank-width = <4>;
                                linux,part-probe = "afs";
                                reg = <0 0x00000000 0x04000000>;
                                bank-width = <4>;
+                               /*
+                                * Unfortunately, accessing the flash disturbs
+                                * the CPU idle states (suspend) and CPU
+                                * hotplug of the platform. For this reason,
+                                * flash hardware access is disabled by default.
+                                */
+                               status = "disabled";
                        };
 
                        ethernet@2,00000000 {
                        };
 
                        ethernet@2,00000000 {