[PATCH v2 2/2] ramips: use partition parser on Netgear CHJ/BZV
Mrkiko Rs
mrkiko.rs at gmail.com
Thu Feb 25 22:02:16 EST 2021
Thank you for your work!!
What about R6220 ?
Thanks again!
> Il giorno 25 feb 2021, alle ore 21:24, Jan Hoffmann <jan at 3e8.eu> ha scritto:
>
> This patch makes use of the Sercomm partition table parser on some
> Netgear routers. This applies to the boards CHJ (R6260, R6350, R6850,
> WAC124) and BZV (R6800, R6700-v2, R7200, Nighthawk AC2400).
>
> On these models, each device has an individual partition table that
> takes into account bad blocks that existed during manufacturing. Thus
> the partition table needs to be parsed for the device to work correctly.
> A typical issue that occurs otherwise is degraded wireless performance,
> when the calibration data cannot be found at the expected offset.
>
> Signed-off-by: Jan Hoffmann <jan at 3e8.eu>
> ---
> .../dts/mt7621_netgear_sercomm_bzv.dtsi | 169 +++++++++++++++++-
> .../dts/mt7621_netgear_sercomm_chj.dtsi | 169 +++++++++++++++++-
> target/linux/ramips/mt7621/config-5.4 | 1 +
> 3 files changed, 331 insertions(+), 8 deletions(-)
>
> diff --git a/target/linux/ramips/dts/mt7621_netgear_sercomm_bzv.dtsi b/target/linux/ramips/dts/mt7621_netgear_sercomm_bzv.dtsi
> index 71c95e75bd..044f6e9696 100644
> --- a/target/linux/ramips/dts/mt7621_netgear_sercomm_bzv.dtsi
> +++ b/target/linux/ramips/dts/mt7621_netgear_sercomm_bzv.dtsi
> @@ -213,47 +213,208 @@
> status = "okay";
>
> partitions {
> - compatible = "fixed-partitions";
> + compatible = "sercomm,sc-partitions", "fixed-partitions";
> #address-cells = <1>;
> #size-cells = <1>;
>
> partition at 0 {
> label = "u-boot";
> reg = <0x0 0x100000>;
> + scpart-id = <0>;
> read-only;
> };
>
> partition at 100000 {
> label = "SC PART_MAP";
> reg = <0x100000 0x100000>;
> + scpart-id = <1>;
> read-only;
> };
>
> partition at 200000 {
> label = "kernel";
> reg = <0x200000 0x400000>;
> + scpart-id = <2>;
> };
>
> partition at 600000 {
> label = "ubi";
> reg = <0x600000 0x2800000>;
> + scpart-id = <3>;
> };
>
> partition at 2e00000 {
> - label = "reserved0";
> - reg = <0x2e00000 0x1800000>;
> + label = "English UI";
> + reg = <0x2e00000 0x200000>;
> + scpart-id = <4>;
> + read-only;
> + };
> +
> + partition at 3000000 {
> + label = "ML1";
> + reg = <0x3000000 0x200000>;
> + scpart-id = <5>;
> + read-only;
> + };
> +
> + partition at 3200000 {
> + label = "ML2";
> + reg = <0x3200000 0x200000>;
> + scpart-id = <6>;
> + read-only;
> + };
> +
> + partition at 3400000 {
> + label = "ML3";
> + reg = <0x3400000 0x200000>;
> + scpart-id = <7>;
> + read-only;
> + };
> +
> + partition at 3600000 {
> + label = "ML4";
> + reg = <0x3600000 0x200000>;
> + scpart-id = <8>;
> + read-only;
> + };
> +
> + partition at 3800000 {
> + label = "ML5";
> + reg = <0x3800000 0x200000>;
> + scpart-id = <9>;
> + read-only;
> + };
> +
> + partition at 3a00000 {
> + label = "ML6";
> + reg = <0x3a00000 0x200000>;
> + scpart-id = <10>;
> + read-only;
> + };
> +
> + partition at 3c00000 {
> + label = "ML7";
> + reg = <0x3c00000 0x200000>;
> + scpart-id = <11>;
> + read-only;
> + };
> +
> + partition at 3e00000 {
> + label = "ML8";
> + reg = <0x3e00000 0x200000>;
> + scpart-id = <12>;
> + read-only;
> + };
> +
> + partition at 4000000 {
> + label = "ML9";
> + reg = <0x4000000 0x200000>;
> + scpart-id = <13>;
> + read-only;
> + };
> +
> + partition at 4200000 {
> + label = "ML10";
> + reg = <0x4200000 0x200000>;
> + scpart-id = <14>;
> + read-only;
> + };
> +
> + partition at 4400000 {
> + label = "ML11";
> + reg = <0x4400000 0x200000>;
> + scpart-id = <15>;
> read-only;
> };
>
> factory: partition at 4600000 {
> label = "factory";
> reg = <0x4600000 0x200000>;
> + scpart-id = <16>;
> read-only;
> };
>
> partition at 4800000 {
> + label = "SC Private Data";
> + reg = <0x4800000 0x200000>;
> + scpart-id = <17>;
> + read-only;
> + };
> +
> + partition at 4a00000 {
> + label = "POT";
> + reg = <0x4a00000 0x200000>;
> + scpart-id = <18>;
> + read-only;
> + };
> +
> + partition at 4c00000 {
> + label = "Traffic Meter";
> + reg = <0x4c00000 0x200000>;
> + scpart-id = <19>;
> + read-only;
> + };
> +
> + partition at 4e00000 {
> + label = "SC PID";
> + reg = <0x4e00000 0x200000>;
> + scpart-id = <20>;
> + read-only;
> + };
> +
> + partition at 5000000 {
> + label = "SC Nvram";
> + reg = <0x5000000 0x200000>;
> + scpart-id = <21>;
> + read-only;
> + };
> +
> + partition at 5200000 {
> + label = "Ralink Nvram";
> + reg = <0x5200000 0x200000>;
> + scpart-id = <22>;
> + read-only;
> + };
> +
> + partition at 5400000 {
> + label = "reserved0";
> + reg = <0x5400000 0x200000>;
> + scpart-id = <23>;
> + read-only;
> + };
> +
> + partition at 5600000 {
> label = "reserved1";
> - reg = <0x4800000 0x3800000>;
> + reg = <0x5600000 0x200000>;
> + scpart-id = <24>;
> + read-only;
> + };
> +
> + partition at 5800000 {
> + label = "reserved2";
> + reg = <0x5800000 0x200000>;
> + scpart-id = <25>;
> + read-only;
> + };
> +
> + partition at 5a00000 {
> + label = "reserved3";
> + reg = <0x5a00000 0x200000>;
> + scpart-id = <26>;
> + read-only;
> + };
> +
> + partition at 5c00000 {
> + label = "reserved4";
> + reg = <0x5c00000 0x200000>;
> + scpart-id = <27>;
> + read-only;
> + };
> +
> + partition at 5e00000 {
> + label = "reserved5";
> + reg = <0x5e00000 0x2180000>;
> + scpart-id = <28>;
> read-only;
> };
> };
> diff --git a/target/linux/ramips/dts/mt7621_netgear_sercomm_chj.dtsi b/target/linux/ramips/dts/mt7621_netgear_sercomm_chj.dtsi
> index 7a15cd1f6c..90fed6ba87 100644
> --- a/target/linux/ramips/dts/mt7621_netgear_sercomm_chj.dtsi
> +++ b/target/linux/ramips/dts/mt7621_netgear_sercomm_chj.dtsi
> @@ -141,47 +141,208 @@
> status = "okay";
>
> partitions {
> - compatible = "fixed-partitions";
> + compatible = "sercomm,sc-partitions", "fixed-partitions";
> #address-cells = <1>;
> #size-cells = <1>;
>
> partition at 0 {
> label = "u-boot";
> reg = <0x0 0x100000>;
> + scpart-id = <0>;
> read-only;
> };
>
> partition at 100000 {
> label = "SC PART_MAP";
> reg = <0x100000 0x100000>;
> + scpart-id = <1>;
> read-only;
> };
>
> partition at 200000 {
> label = "kernel";
> reg = <0x200000 0x400000>;
> + scpart-id = <2>;
> };
>
> partition at 600000 {
> label = "ubi";
> reg = <0x600000 0x2800000>;
> + scpart-id = <3>;
> };
>
> partition at 2e00000 {
> - label = "reserved0";
> - reg = <0x2e00000 0x1800000>;
> + label = "English UI";
> + reg = <0x2e00000 0x200000>;
> + scpart-id = <4>;
> + read-only;
> + };
> +
> + partition at 3000000 {
> + label = "ML1";
> + reg = <0x3000000 0x200000>;
> + scpart-id = <5>;
> + read-only;
> + };
> +
> + partition at 3200000 {
> + label = "ML2";
> + reg = <0x3200000 0x200000>;
> + scpart-id = <6>;
> + read-only;
> + };
> +
> + partition at 3400000 {
> + label = "ML3";
> + reg = <0x3400000 0x200000>;
> + scpart-id = <7>;
> + read-only;
> + };
> +
> + partition at 3600000 {
> + label = "ML4";
> + reg = <0x3600000 0x200000>;
> + scpart-id = <8>;
> + read-only;
> + };
> +
> + partition at 3800000 {
> + label = "ML5";
> + reg = <0x3800000 0x200000>;
> + scpart-id = <9>;
> + read-only;
> + };
> +
> + partition at 3a00000 {
> + label = "ML6";
> + reg = <0x3a00000 0x200000>;
> + scpart-id = <10>;
> + read-only;
> + };
> +
> + partition at 3c00000 {
> + label = "ML7";
> + reg = <0x3c00000 0x200000>;
> + scpart-id = <11>;
> + read-only;
> + };
> +
> + partition at 3e00000 {
> + label = "ML8";
> + reg = <0x3e00000 0x200000>;
> + scpart-id = <12>;
> + read-only;
> + };
> +
> + partition at 4000000 {
> + label = "ML9";
> + reg = <0x4000000 0x200000>;
> + scpart-id = <13>;
> + read-only;
> + };
> +
> + partition at 4200000 {
> + label = "ML10";
> + reg = <0x4200000 0x200000>;
> + scpart-id = <14>;
> + read-only;
> + };
> +
> + partition at 4400000 {
> + label = "ML11";
> + reg = <0x4400000 0x200000>;
> + scpart-id = <15>;
> read-only;
> };
>
> factory: partition at 4600000 {
> label = "factory";
> reg = <0x4600000 0x200000>;
> + scpart-id = <16>;
> read-only;
> };
>
> partition at 4800000 {
> + label = "SC Private Data";
> + reg = <0x4800000 0x200000>;
> + scpart-id = <17>;
> + read-only;
> + };
> +
> + partition at 4a00000 {
> + label = "POT";
> + reg = <0x4a00000 0x200000>;
> + scpart-id = <18>;
> + read-only;
> + };
> +
> + partition at 4c00000 {
> + label = "Traffic Meter";
> + reg = <0x4c00000 0x200000>;
> + scpart-id = <19>;
> + read-only;
> + };
> +
> + partition at 4e00000 {
> + label = "SC PID";
> + reg = <0x4e00000 0x200000>;
> + scpart-id = <20>;
> + read-only;
> + };
> +
> + partition at 5000000 {
> + label = "SC Nvram";
> + reg = <0x5000000 0x200000>;
> + scpart-id = <21>;
> + read-only;
> + };
> +
> + partition at 5200000 {
> + label = "Ralink Nvram";
> + reg = <0x5200000 0x200000>;
> + scpart-id = <22>;
> + read-only;
> + };
> +
> + partition at 5400000 {
> + label = "reserved0";
> + reg = <0x5400000 0x200000>;
> + scpart-id = <23>;
> + read-only;
> + };
> +
> + partition at 5600000 {
> label = "reserved1";
> - reg = <0x4800000 0x3800000>;
> + reg = <0x5600000 0x200000>;
> + scpart-id = <24>;
> + read-only;
> + };
> +
> + partition at 5800000 {
> + label = "reserved2";
> + reg = <0x5800000 0x200000>;
> + scpart-id = <25>;
> + read-only;
> + };
> +
> + partition at 5a00000 {
> + label = "reserved3";
> + reg = <0x5a00000 0x200000>;
> + scpart-id = <26>;
> + read-only;
> + };
> +
> + partition at 5c00000 {
> + label = "reserved4";
> + reg = <0x5c00000 0x200000>;
> + scpart-id = <27>;
> + read-only;
> + };
> +
> + partition at 5e00000 {
> + label = "reserved5";
> + reg = <0x5e00000 0x2180000>;
> + scpart-id = <28>;
> read-only;
> };
> };
> diff --git a/target/linux/ramips/mt7621/config-5.4 b/target/linux/ramips/mt7621/config-5.4
> index fba22a39cf..19d8fd34a9 100644
> --- a/target/linux/ramips/mt7621/config-5.4
> +++ b/target/linux/ramips/mt7621/config-5.4
> @@ -155,6 +155,7 @@ CONFIG_MODULES_USE_ELF_REL=y
> CONFIG_MT7621_WDT=y
> # CONFIG_MTD_CFI_INTELEXT is not set
> CONFIG_MTD_CMDLINE_PARTS=y
> +CONFIG_MTD_SERCOMM_PARTS=y
> CONFIG_MTD_NAND_CORE=y
> CONFIG_MTD_NAND_ECC_SW_HAMMING=y
> CONFIG_MTD_NAND_MT7621=y
> --
> 2.29.2
>
>
> _______________________________________________
> openwrt-devel mailing list
> openwrt-devel at lists.openwrt.org
> https://lists.openwrt.org/mailman/listinfo/openwrt-devel
More information about the openwrt-devel
mailing list