I am already using 'ubi.mtd=rootfs root=/dev/ubiblock0_1', which has worked before
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 _______________________________________________ openwrt-devel mailing list openwrt-devel@lists.openwrt.org https://lists.openwrt.org/mailman/listinfo/openwrt-devel