From 43105f24eb50c2fa3bbadd3225beeb5f1981f6bb Mon Sep 17 00:00:00 2001 From: Alberto Bursi Date: Fri, 27 Mar 2020 12:21:30 +0100 Subject: [PATCH 1/3] kirkwood: fix DTS partitions for Pogoplug E02 The Pogoplug E02 was not using the correct partitions in device tree, but used the ones from upstream and thus could not boot OpenWrt images. In contrast, uboot-kirkwood is using the correct partitions since d3fc4fbd74dc ("uboot-kirkwood: re-add Pogoplug E02 support"). This patch corrects the partitions in DTS for kernels 4.14, 4.19 and 5.4. Fixes: 2b0fa00da8fc ("kirkwood: add Pogoplug E02 Kernel support") Signed-off-by: Alberto Bursi Reviewed-by: Pawel Dembicki Reviewed-by: Sungbo Eo [commit title/message facelift, refresh 4.14 patch] Signed-off-by: Adrian Schmutzler --- .../kirkwood/patches-4.14/110-pogo_e02.patch | 36 ++++++++++++++++++ .../kirkwood/patches-4.19/110-pogo_e02.patch | 38 +++++++++++++++++++ .../kirkwood/patches-5.4/110-pogo_e02.patch | 36 ++++++++++++++++++ 3 files changed, 110 insertions(+) diff --git a/target/linux/kirkwood/patches-4.14/110-pogo_e02.patch b/target/linux/kirkwood/patches-4.14/110-pogo_e02.patch index b2a9c461d8..26dbf8a734 100644 --- a/target/linux/kirkwood/patches-4.14/110-pogo_e02.patch +++ b/target/linux/kirkwood/patches-4.14/110-pogo_e02.patch @@ -30,3 +30,39 @@ label = "pogo_e02:orange:fault"; gpios = <&gpio1 17 GPIO_ACTIVE_LOW>; }; +@@ -97,24 +104,24 @@ + status = "okay"; + + partition@0 { +- label = "u-boot"; +- reg = <0x0000000 0x100000>; ++ label = "uboot"; ++ reg = <0x0 0xe0000>; + read-only; + }; + +- partition@100000 { +- label = "uImage"; +- reg = <0x0100000 0x400000>; ++ partition@e0000 { ++ label = "uboot_env"; ++ reg = <0xe0000 0x20000>; + }; + +- partition@500000 { +- label = "pogoplug"; +- reg = <0x0500000 0x2000000>; ++ partition@100000 { ++ label = "second_stage_uboot"; ++ reg = <0x100000 0x100000>; + }; + +- partition@2500000 { +- label = "root"; +- reg = <0x02500000 0x5b00000>; ++ partition@200000 { ++ label = "ubi"; ++ reg = <0x200000 0x7e00000>; + }; + }; + diff --git a/target/linux/kirkwood/patches-4.19/110-pogo_e02.patch b/target/linux/kirkwood/patches-4.19/110-pogo_e02.patch index 59d2893466..4b64337c9c 100644 --- a/target/linux/kirkwood/patches-4.19/110-pogo_e02.patch +++ b/target/linux/kirkwood/patches-4.19/110-pogo_e02.patch @@ -30,3 +30,41 @@ label = "pogo_e02:orange:fault"; gpios = <&gpio1 17 GPIO_ACTIVE_LOW>; }; +@@ -95,25 +102,26 @@ + status = "okay"; + + partition@0 { +- label = "u-boot"; +- reg = <0x0000000 0x100000>; ++ label = "uboot"; ++ reg = <0x0 0xe0000>; + read-only; + }; + +- partition@100000 { +- label = "uImage"; +- reg = <0x0100000 0x400000>; ++ partition@e0000 { ++ label = "uboot_env"; ++ reg = <0xe0000 0x20000>; + }; + +- partition@500000 { +- label = "pogoplug"; +- reg = <0x0500000 0x2000000>; ++ partition@100000 { ++ label = "second_stage_uboot"; ++ reg = <0x100000 0x100000>; + }; + +- partition@2500000 { +- label = "root"; +- reg = <0x02500000 0x5b00000>; ++ partition@200000 { ++ label = "ubi"; ++ reg = <0x200000 0x7e00000>; + }; ++ + }; + + &mdio { diff --git a/target/linux/kirkwood/patches-5.4/110-pogo_e02.patch b/target/linux/kirkwood/patches-5.4/110-pogo_e02.patch index 59d2893466..fc384d3521 100644 --- a/target/linux/kirkwood/patches-5.4/110-pogo_e02.patch +++ b/target/linux/kirkwood/patches-5.4/110-pogo_e02.patch @@ -30,3 +30,39 @@ label = "pogo_e02:orange:fault"; gpios = <&gpio1 17 GPIO_ACTIVE_LOW>; }; +@@ -95,24 +102,24 @@ + status = "okay"; + + partition@0 { +- label = "u-boot"; +- reg = <0x0000000 0x100000>; ++ label = "uboot"; ++ reg = <0x0 0xe0000>; + read-only; + }; + +- partition@100000 { +- label = "uImage"; +- reg = <0x0100000 0x400000>; ++ partition@e0000 { ++ label = "uboot_env"; ++ reg = <0xe0000 0x20000>; + }; + +- partition@500000 { +- label = "pogoplug"; +- reg = <0x0500000 0x2000000>; ++ partition@100000 { ++ label = "second_stage_uboot"; ++ reg = <0x100000 0x100000>; + }; + +- partition@2500000 { +- label = "root"; +- reg = <0x02500000 0x5b00000>; ++ partition@200000 { ++ label = "ubi"; ++ reg = <0x200000 0x7e00000>; + }; + }; + From 9a122df07e82224f1fd0588559ded6ce4cf6a9e5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thibaut=20VAR=C3=88NE?= Date: Tue, 17 Mar 2020 17:53:43 +0100 Subject: [PATCH 2/3] ath79: fix Mikrotik wAP G-5HacT2HnD mtd partitions MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit In RouterBOARD parlance there never was an "art" partition. This partition has always been named 'hard_config' on ar71xx. This partition contains more than just ART (Atheros Radio Test) data. It includes the hardware description (product code, serial, board identifier, name, hardware options, MAC address), as well as other bits affecting the operation of RouterBoot. To avoid confusion with regular ART data, this partition is renamed in line with historical ar71xx and ramips nomenclature as 'hard_config'. This commit fixes the previous support files and implements the nested RouterBoot partition scheme as already used by ramips-based SPI-NOR RouterBOARD DTSes, as previously reviewed and implemented in bbe2cf657ca7 ("ramips: fix RBM11G partitioning"). Tested-by: Roger Pueyo Centelles Signed-off-by: Thibaut VARÈNE [minor commit title/message adjustments] Signed-off-by: Adrian Schmutzler --- ...6_mikrotik_routerboard-wap-g-5hact2hnd.dts | 53 +++++++++++-------- .../etc/hotplug.d/firmware/10-ath9k-eeprom | 4 +- .../etc/hotplug.d/firmware/11-ath10k-caldata | 2 +- 3 files changed, 34 insertions(+), 25 deletions(-) diff --git a/target/linux/ath79/dts/qca9556_mikrotik_routerboard-wap-g-5hact2hnd.dts b/target/linux/ath79/dts/qca9556_mikrotik_routerboard-wap-g-5hact2hnd.dts index 015bd2efe5..5fd4623726 100644 --- a/target/linux/ath79/dts/qca9556_mikrotik_routerboard-wap-g-5hact2hnd.dts +++ b/target/linux/ath79/dts/qca9556_mikrotik_routerboard-wap-g-5hact2hnd.dts @@ -53,7 +53,7 @@ ð1 { status = "okay"; - mtd-mac-address = <&art 0x10>; + mtd-mac-address = <&hard_config 0x10>; pll-data = <0x03000101 0x80000101 0x80001313>; phy-handle = <&phy0>; @@ -81,32 +81,41 @@ #size-cells = <1>; partition@0 { - label = "routerboot"; - reg = <0x000000 0x00e000>; + label = "RouterBoot"; + reg = <0x0 0x20000>; read-only; - }; + compatible = "fixed-partitions"; + #address-cells = <1>; + #size-cells = <1>; - art: partition@e000 { - label = "art"; - reg = <0x000e000 0x001000>; - read-only; - }; + partition@0 { + label = "bootloader1"; + reg = <0x0 0xe000>; + read-only; + }; - partition@f000 { - label = "bios"; - reg = <0x000f000 0x001000>; - read-only; - }; + hard_config: partition@e000 { + label = "hard_config"; + reg = <0xe000 0x1000>; + read-only; + }; - partition@10000 { - label = "routerboot2"; - reg = <0x010000 0x00f000>; - read-only; - }; + partition@f000 { + label = "bios"; + reg = <0xf000 0x1000>; + read-only; + }; - partition@1f000 { - label = "soft_config"; - reg = <0x001f000 0x001000>; + partition@10000 { + label = "bootloader2"; + reg = <0x10000 0xf000>; + read-only; + }; + + partition@1f000 { + label = "soft_config"; + reg = <0x1f000 0x1000>; + }; }; partition@20000 { diff --git a/target/linux/ath79/mikrotik/base-files/etc/hotplug.d/firmware/10-ath9k-eeprom b/target/linux/ath79/mikrotik/base-files/etc/hotplug.d/firmware/10-ath9k-eeprom index f5f88484b5..86995de890 100644 --- a/target/linux/ath79/mikrotik/base-files/etc/hotplug.d/firmware/10-ath9k-eeprom +++ b/target/linux/ath79/mikrotik/base-files/etc/hotplug.d/firmware/10-ath9k-eeprom @@ -11,8 +11,8 @@ case "$FIRMWARE" in "ath9k-eeprom-ahb-18100000.wmac.bin") case $board in mikrotik,routerboard-wap-g-5hact2hnd) - mikrotik_caldata_extract "art" 0x1000 0x440 - ath9k_patch_mac $(macaddr_add $(mtd_get_mac_binary art 0x10) +2) + mikrotik_caldata_extract "hard_config" 0x1000 0x440 + ath9k_patch_mac $(macaddr_add $(mtd_get_mac_binary hard_config 0x10) +2) ;; *) caldata_die "board $board is not supported yet" diff --git a/target/linux/ath79/mikrotik/base-files/etc/hotplug.d/firmware/11-ath10k-caldata b/target/linux/ath79/mikrotik/base-files/etc/hotplug.d/firmware/11-ath10k-caldata index 6eb9a93b75..7773eb1e3a 100644 --- a/target/linux/ath79/mikrotik/base-files/etc/hotplug.d/firmware/11-ath10k-caldata +++ b/target/linux/ath79/mikrotik/base-files/etc/hotplug.d/firmware/11-ath10k-caldata @@ -11,7 +11,7 @@ case "$FIRMWARE" in "ath10k/cal-pci-0000:00:00.0.bin") case $board in mikrotik,routerboard-wap-g-5hact2hnd) - mikrotik_caldata_extract "art" 0x5000 0x844 + mikrotik_caldata_extract "hard_config" 0x5000 0x844 ;; esac ;; From 92616c422700bd99073bded40b222bf34036111d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thibaut=20VAR=C3=88NE?= Date: Tue, 17 Mar 2020 17:53:44 +0100 Subject: [PATCH 3/3] ath79: rename Mikrotik RB 922UAGS-5HPacD mtd partition MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit In RouterBOARD parlance there never was an "art" partition. This partition has always been named 'hard_config' on ar71xx. This partition contains more than just ART (Atheros Radio Test) data. It includes the hardware description (product code, serial, board identifier, name, hardware options, MAC address), as well as other bits affecting the operation of RouterBoot. To avoid confusion with regular ART data, this partition is renamed in line with historical ar71xx and ramips nomenclature as 'hard_config'. Signed-off-by: Thibaut VARÈNE [minor commit title/message adjustments] Signed-off-by: Adrian Schmutzler --- .../dts/qca9558_mikrotik_routerboard-922uags-5hpacd.dts | 6 +++--- .../base-files/etc/hotplug.d/firmware/11-ath10k-caldata | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/target/linux/ath79/dts/qca9558_mikrotik_routerboard-922uags-5hpacd.dts b/target/linux/ath79/dts/qca9558_mikrotik_routerboard-922uags-5hpacd.dts index 26a18ad6a7..3f2a1a51a6 100644 --- a/target/linux/ath79/dts/qca9558_mikrotik_routerboard-922uags-5hpacd.dts +++ b/target/linux/ath79/dts/qca9558_mikrotik_routerboard-922uags-5hpacd.dts @@ -80,7 +80,7 @@ ð0 { status = "okay"; - mtd-mac-address = <&art 0x10>; + mtd-mac-address = <&hard_config 0x10>; phy-handle = <&phy4>; pll-data = <0x8f000000 0xa0000101 0xa0001313>; @@ -109,8 +109,8 @@ read-only; }; - art: partition@c000 { - label = "art"; + hard_config: partition@c000 { + label = "hard_config"; reg = <0x000c000 0x0001000>; read-only; }; diff --git a/target/linux/ath79/mikrotik/base-files/etc/hotplug.d/firmware/11-ath10k-caldata b/target/linux/ath79/mikrotik/base-files/etc/hotplug.d/firmware/11-ath10k-caldata index 7773eb1e3a..2521f0ad96 100644 --- a/target/linux/ath79/mikrotik/base-files/etc/hotplug.d/firmware/11-ath10k-caldata +++ b/target/linux/ath79/mikrotik/base-files/etc/hotplug.d/firmware/11-ath10k-caldata @@ -18,7 +18,7 @@ case "$FIRMWARE" in "ath10k/cal-pci-0000:01:00.0.bin") case $board in mikrotik,routerboard-922uags-5hpacd) - mikrotik_caldata_extract "art" 0x5000 0x844 + mikrotik_caldata_extract "hard_config" 0x5000 0x844 ;; esac ;;