Because of old MT29F driver, it was basically a hack just to get SPI-NANDs working.
On Thu, 31 Oct 2019 at 11:34, Daniel Danzberger <dan...@dd-wrt.com> wrote: > > Well, that makes sense and now it works :) > I am just wondering why it has been working before with the other driver. > > On 10/31/19 11:30 AM, Robert Marko wrote: > > On Thu, 31 Oct 2019 at 11:30, Daniel Danzberger <dan...@dd-wrt.com> wrote: > >> > >> I am already using 'ubi.mtd=rootfs root=/dev/ubiblock0_1', which has > >> worked before > > Well this is the issue, your ubi.mtd needs to be ubi.mtd=ubi > >> > >> On 10/31/19 11:26 AM, Robert Marko wrote: > >>> On Thu, 31 Oct 2019 at 11:25, Daniel Danzberger <dan...@dd-wrt.com> wrote: > >>>> > >>>> On the deprecated staging driver, it somehow directly came up as > >>>> "rootfs" and > >>>> not "ubi". Even though it has been named "ubi" in the dts. > >>>> Now the image won't boot because no rootfs is detected: > >>>> > >>>> ---- > >>>> [ 1.919001] Creating 1 MTD partitions on "spi0.1": > >>>> [ 1.925399] 0x000000000000-0x000008000000 : "ubi" > >>>> [ 1.940324] random: fast init done > >>>> ... > >>>> [ 3.170978] UBI error: cannot open mtd rootfs, error -2 > >>>> [ 3.171027] hctosys: unable to open rtc device ([ 3.180802] > >>>> Waiting for > >>>> root device /dev/ubiblock0_1... > >>> This is due to your bootargs, you can either use bootargs-append to > >>> set rootfs to ubi or change them in bootloader. > >>> This is classic on boards derived from QCA reference designs > >>>> ---- > >>>> > >>>> > >>>> On 10/31/19 11:19 AM, Robert Marko wrote: > >>>>> On Thu, 31 Oct 2019 at 11:17, Daniel Danzberger <dan...@dd-wrt.com> > >>>>> wrote: > >>>>>> > >>>>>> Using 'compatible = "spi-nand"' worked and the device got detected by > >>>>>> the > >>>>>> driver. However it won't create and "rootfs" partition like it did > >>>>>> before. > >>>>>> > >>>>>> --- > >>>>>> [ 1.901930] spi-nand spi0.1: GigaDevice SPI NAND was found. > >>>>>> [ 1.905266] spi-nand spi0.1: 128 MiB, block size: 128 KiB, page > >>>>>> size: 2048, > >>>>>> OOB size: 128 > >>>>>> [ 1.911015] 1 fixed-partitions partitions found on MTD device spi0.1 > >>>>>> [ 1.919010] Creating 1 MTD partitions on "spi0.1": > >>>>>> [ 1.925410] 0x000000000000-0x000008000000 : "ubi" > >>>>> It creates the partitions like set in DTS, ubi partition contains both > >>>>> kernel and rootfs. > >>>>>> --- > >>>>>> > >>>>>> > >>>>>> On 10/30/19 4:51 PM, Jeff Kletsky wrote: > >>>>>>> On 10/30/19 4:27 AM, Daniel Danzberger wrote: > >>>>>>> > >>>>>>>> This device contains 2 flash devices. One NOR (32M) and one NAND > >>>>>>>> (128M). > >>>>>>>> U-boot and caldata are on the NOR, the firmware on the NAND. > >>>>>>>> > >>>>>>>> SoC: IPQ4019 > >>>>>>>> CPU: 4x 710MHz ARMv7 > >>>>>>>> RAM: 256MB > >>>>>>>> FLASH: NOR:32MB NAND:128MB > >>>>>>>> > >>>>>>>> [...] > >>>>>>>> > >>>>>>>> > >>>>>>> > >>>>>>> .../arch/arm/boot/dts/qcom-ipq4019-bus.dtsi | 1142 > >>>>>>> +++++++++++++++++ > >>>>>>> .../include/dt-bindings/msm/msm-bus-ids.h | 869 +++++++++++++ > >>>>>>> > >>>>>>> The sudden appearance of a need the MSM bus and its IDs worries me. > >>>>>>> > >>>>>>> With 25 devices already on the ipq40xx platform without them, it feels > >>>>>>> like something is missing if they are needed by this one. > >>>>>>> > >>>>>>> > >>>>>>>> diff --git a/target/linux/ipq40xx/config-4.19 > >>>>>>>> b/target/linux/ipq40xx/config-4.19 > >>>>>>>> index 8948b73ff7..3ee921abed 100644 > >>>>>>>> --- a/target/linux/ipq40xx/config-4.19 > >>>>>>>> +++ b/target/linux/ipq40xx/config-4.19 > >>>>>>>> @@ -303,6 +303,9 @@ CONFIG_MTD_NAND_ECC=y > >>>>>>>> CONFIG_MTD_NAND_QCOM=y > >>>>>>>> CONFIG_MTD_SPI_NAND=y > >>>>>>>> CONFIG_MTD_SPI_NOR=y > >>>>>>>> +CONFIG_MTD_SPINAND_MT29F=y > >>>>>>>> +CONFIG_MTD_SPINAND_GIGADEVICE=y > >>>>>>>> +CONFIG_MTD_SPINAND_ONDIEECC=y > >>>>>>> > >>>>>>> > >>>>>>> The CONFIG_SPINAND_* additions are not required for upstream SPI-NAND > >>>>>>> > >>>>>>> > >>>>>>>> CONFIG_MTD_SPLIT_FIRMWARE=y > >>>>>>>> CONFIG_MTD_SPLIT_FIT_FW=y > >>>>>>>> CONFIG_MTD_UBI=y > >>>>>>>> > >>>>>>>> [...] > >>>>>>>> > >>>>>>>> diff --git > >>>>>>>> a/target/linux/ipq40xx/files-4.19/arch/arm/boot/dts/qcom-ipq4019-wpj419.dts > >>>>>>>> b/target/linux/ipq40xx/files-4.19/arch/arm/boot/dts/qcom-ipq4019-wpj419.dts > >>>>>>>> new file mode 100644 > >>>>>>>> index 0000000000..5553bbd166 > >>>>>>>> --- /dev/null > >>>>>>>> +++ > >>>>>>>> b/target/linux/ipq40xx/files-4.19/arch/arm/boot/dts/qcom-ipq4019-wpj419.dts > >>>>>>>> @@ -0,0 +1,371 @@ > >>>>>>>> +/* Copyright (c) 2015, The Linux Foundation. All rights reserved. > >>>>>>>> + * Copyright (c) 2019, Nguyen Dinh Phi <phi_ngu...@compex.com.sg> > >>>>>>>> + * > >>>>>>>> + * Permission to use, copy, modify, and/or distribute this software > >>>>>>>> for any > >>>>>>>> + * purpose with or without fee is hereby granted, provided that the > >>>>>>>> above > >>>>>>>> + * copyright notice and this permission notice appear in all copies. > >>>>>>>> + * > >>>>>>>> + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL > >>>>>>>> WARRANTIES > >>>>>>>> + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF > >>>>>>>> + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE > >>>>>>>> LIABLE FOR > >>>>>>>> + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY > >>>>>>>> DAMAGES > >>>>>>>> + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER > >>>>>>>> IN AN > >>>>>>>> + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING > >>>>>>>> OUT OF > >>>>>>>> + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. > >>>>>>>> + * > >>>>>>>> + */ > >>>>>>>> + > >>>>>>>> > >>>>>>>> [...] > >>>>>>>> > >>>>>>>> + > >>>>>>>> + spi_0: spi@78b5000 { > >>>>>>>> + pinctrl-0 = <&spi_0_pins>; > >>>>>>>> + pinctrl-names = "default"; > >>>>>>>> + status = "okay"; > >>>>>>>> + cs-gpios = <&tlmm 12 GPIO_ACTIVE_HIGH>, <&tlmm 41 > >>>>>>>> GPIO_ACTIVE_HIGH>; > >>>>>>>> + num-cs = <2>; > >>>>>>>> + > >>>>>>>> + m25p80@0 { > >>>>>>>> + #address-cells = <1>; > >>>>>>>> + #size-cells = <1>; > >>>>>>>> + reg = <0>; > >>>>>>>> + linux,modalias = "m25p80", "n25q128a11"; > >>>>>>>> + compatible = "jedec,spi-nor", "n25q128a11"; > >>>>>>>> + spi-max-frequency = <24000000>; > >>>>>>> > >>>>>>> > >>>>>>> I don't think you need linux,modalias here, nor the chip type in the > >>>>>>> compatible > >>>>>>> line. > >>>>>>> I believe that the following compatible line is sufficient > >>>>>>> > >>>>>>> compatible = "jedec,spi-nor"; > >>>>>>> > >>>>>>> > >>>>>>> You might also want to consider "flash@0" or "nor@0" or "nor_flash@0", > >>>>>>> or the like, rather than a chip-specific name. (I'm not a committer.) > >>>>>>> > >>>>>>> > >>>>>>>> + > >>>>>>>> + partitions { > >>>>>>>> + compatible = "fixed-partitions"; > >>>>>>>> + > >>>>>>>> + partition@0 { > >>>>>>>> + label = "0:SBL1"; > >>>>>>>> + reg = <0x000000 0x040000>; > >>>>>>>> + read-only; > >>>>>>>> + }; > >>>>>>>> + > >>>>>>>> + partition@40000 { > >>>>>>>> + label = "0:MIBIB"; > >>>>>>>> + reg = <0x040000 0x020000>; > >>>>>>>> + read-only; > >>>>>>>> + }; > >>>>>>>> + > >>>>>>>> + partition@60000 { > >>>>>>>> + label = "0:QSEE"; > >>>>>>>> + reg = <0x060000 0x060000>; > >>>>>>>> + read-only; > >>>>>>>> + }; > >>>>>>>> + > >>>>>>>> + partition@c0000 { > >>>>>>>> + label = "0:CDT"; > >>>>>>>> + reg = <0x0c0000 0x010000>; > >>>>>>>> + read-only; > >>>>>>>> + }; > >>>>>>> > >>>>>>> > >>>>>>> Someone may rip on you for capitalization of labels. (I'm not a > >>>>>>> committer.) > >>>>>>> > >>>>>>> > >>>>>>>> + > >>>>>>>> + partition@d0000 { > >>>>>>>> + label = "0:DDRPARAMS"; > >>>>>>>> + reg = <0x0d0000 0x010000>; > >>>>>>>> + read-only; > >>>>>>>> + }; > >>>>>>>> + > >>>>>>>> + partition@e0000 { > >>>>>>>> + label = "u-boot-env"; > >>>>>>>> + reg = <0x0e0000 0x010000>; > >>>>>>>> + read-only; > >>>>>>>> + }; > >>>>>>> > >>>>>>> > >>>>>>> U-Boot environment may want/need to be writable > >>>>>>> > >>>>>>> > >>>>>>>> + > >>>>>>>> + partition@f0000 { > >>>>>>>> + label = "u-boot"; > >>>>>>>> + reg = <0x0f0000 0x080000>; > >>>>>>>> + read-only; > >>>>>>>> + }; > >>>>>>>> + > >>>>>>>> + partition@170000 { > >>>>>>>> + label = "art"; > >>>>>>>> + reg = <0x170000 0x010000>; > >>>>>>>> + read-only; > >>>>>>>> + }; > >>>>>>>> + }; > >>>>>>>> + }; > >>>>>>>> + > >>>>>>>> + mt29f@1 { > >>>>>>>> + #address-cells = <1>; > >>>>>>>> + #size-cells = <1>; > >>>>>>>> + reg = <1>; > >>>>>>>> + status = "okay"; > >>>>>>>> + compatible = "spinand,mt29f"; > >>>>>>>> + spi-max-frequency = <24000000>; > >>>>>>> > >>>>>>> > >>>>>>> Same comment on "mt29f" vs. something generic and descriptive. > >>>>>>> > >>>>>>> > >>>>>>> Converting to the upstream SPI-NAND driver here should be as simple as > >>>>>>> > >>>>>>> compatible = "spi-nand"; > >>>>>>> > >>>>>>> > >>>>>>> > >>>>>>>> + > >>>>>>>> + partitions { > >>>>>>>> + compatible = "fixed-partitions"; > >>>>>>>> + > >>>>>>>> + partition@0 { > >>>>>>>> + label = "ubi"; > >>>>>>>> + reg = <0x0000000 0x8000000>; > >>>>>>>> + }; > >>>>>>>> + }; > >>>>>>>> + }; > >>>>>>>> + }; > >>>>>>>> + > >>>>>>>> [...] > >>>>>>> > >>>>>>> > >>>>>> > >>>>>> -- > >>>>>> Regards > >>>>>> > >>>>>> Daniel Danzberger > >>>>>> embeDD GmbH, Alter Postplatz 2, CH-6370 Stans > >>>>>> > >>>>>> _______________________________________________ > >>>>>> openwrt-devel mailing list > >>>>>> openwrt-devel@lists.openwrt.org > >>>>>> https://lists.openwrt.org/mailman/listinfo/openwrt-devel > >>>>> > >>>> > >>>> -- > >>>> Regards > >>>> > >>>> Daniel Danzberger > >>>> embeDD GmbH, Alter Postplatz 2, CH-6370 Stans > >>> > >> > >> -- > >> Regards > >> > >> Daniel Danzberger > >> embeDD GmbH, Alter Postplatz 2, CH-6370 Stans > > > > -- > Regards > > Daniel Danzberger > embeDD GmbH, Alter Postplatz 2, CH-6370 Stans _______________________________________________ openwrt-devel mailing list openwrt-devel@lists.openwrt.org https://lists.openwrt.org/mailman/listinfo/openwrt-devel