[PATCH v1] Revert "ARM: dts: imx7: Fix NAND controller size-cells"

Marek Vasut marex at denx.de
Mon Dec 5 10:52:08 PST 2022


On 12/5/22 19:18, Miquel Raynal wrote:
> Hi Marek,
> 
> marex at denx.de wrote on Mon, 5 Dec 2022 19:07:14 +0100:
> 
>> On 12/5/22 18:58, Miquel Raynal wrote:
>>> Hi Marek,
>>
>> Hi,
>>
>>> marex at denx.de wrote on Mon, 5 Dec 2022 17:26:53 +0100:
>>>    
>>>> On 12/5/22 16:23, Francesco Dolcini wrote:
>>>>> From: Francesco Dolcini <francesco.dolcini at toradex.com>
>>>>>
>>>>> This reverts commit 753395ea1e45c724150070b5785900b6a44bd5fb.
>>>>>
>>>>> It introduced a boot regression on colibri-imx7, and potentially any
>>>>> other i.MX7 boards with MTD partition list generated into the fdt by
>>>>> U-Boot.
>>>>>
>>>>> While the commit we are reverting here is not obviously wrong, it fixes
>>>>> only a dt binding checker warning that is non-functional, while it
>>>>> introduces a boot regression and there is no obvious fix ready.
>>>>>
>>>>> Cc: stable at vger.kernel.org
>>>>> Fixes: 753395ea1e45 ("ARM: dts: imx7: Fix NAND controller size-cells")
>>>>> Link: https://lore.kernel.org/all/Y4dgBTGNWpM6SQXI@francesco-nb.int.toradex.com/
>>>>> Link: https://lore.kernel.org/all/20221205144917.6514168a@xps-13/
>>>>> Signed-off-by: Francesco Dolcini <francesco.dolcini at toradex.com>
>>>>> ---
>>>>>     arch/arm/boot/dts/imx7s.dtsi | 4 ++--
>>>>>     1 file changed, 2 insertions(+), 2 deletions(-)
>>>>>
>>>>> diff --git a/arch/arm/boot/dts/imx7s.dtsi b/arch/arm/boot/dts/imx7s.dtsi
>>>>> index 03d2e8544a4e..0fc9e6b8b05d 100644
>>>>> --- a/arch/arm/boot/dts/imx7s.dtsi
>>>>> +++ b/arch/arm/boot/dts/imx7s.dtsi
>>>>> @@ -1270,10 +1270,10 @@ dma_apbh: dma-apbh at 33000000 {
>>>>>     			clocks = <&clks IMX7D_NAND_USDHC_BUS_RAWNAND_CLK>;
>>>>>     		};
>>>>>     > -		gpmi: nand-controller at 33002000 {
>>>>> +		gpmi: nand-controller at 33002000{
>>>>>     			compatible = "fsl,imx7d-gpmi-nand";
>>>>>     			#address-cells = <1>;
>>>>> -			#size-cells = <0>;
>>>>> +			#size-cells = <1>;
>>>>>     			reg = <0x33002000 0x2000>, <0x33004000 0x4000>;
>>>>>     			reg-names = "gpmi-nand", "bch";
>>>>>     			interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
>>>>
>>>> I suspect this fix should eventually be reverted again, once a proper fix is agreed upon in the MTD OF parser, right ?
>>>
>>> I guess it's time to migrate to a more modern definition
>>
>> Is that the nand-chip at N { status="disabled"; } part ?
> 
> I would prefer the controller to be disabled if useless, but otherwise
> yes.

ACK, but see below.

>>> , it's not
>>> complex to do, there are plenty of examples. This would be IMHO a
>>> better step ahead rather than just a cell change. Anyway, I don't mind
>>> reverting this once we've sorted this mess out and fixed U-Boot.
>>
>> Won't we still have issues with older bootloader versions which paste partitions directly into this &gpmi {} node, and which needs to be fixed up in the parser in the end ?
> 
> I believe fdt_fixup_mtdparts() should be killed, so we should no longer
> have this problem.

The fdt_fixup_mtdparts is U-Boot code. If contemporary Linux kernel is 
booted with ancient U-Boot, then you would still get defective DT passed 
to Linux, and that should be fixed up by Linux. Removing 
fdt_fixup_mtdparts() from current mainline U-Boot won't solve this problem.

I think this is also what Francesco is trying to convey (please correct 
me if I'm wrong).



More information about the linux-mtd mailing list