[OpenWrt-Devel] [PATCH v2 2/4] ramips: fix RBM33G partitioning

John Crispin john at phrozen.org
Mon Jul 30 02:40:27 EDT 2018


On 29/07/18 11:07, Thibaut VARÈNE wrote:
> This patch improves 5684d087418d176cfdef4e045e1950ca7ba3b09f by correcting
> the partition scheme for the "RouterBoot" section of the flash.
>
> This section is subdivided in several segments, as they are on ar71xx
> RB devices, albeit with different offsets and sizes. The naming convention
> from ar71xx has been preserved. The preferred 'fixed-partitions' DTS
> node syntax is used, with nesting support as introduced in 2a598bbaa3.
>
> The OEM source code also define a "RouterBootFake" partition at the
> beginning of the secondary flash chip: to avoid trouble if OEM ever makes
> use of that space, it is also defined here.

as discussed on IRC we concluded, that this should be done with a mtd 
splitter.
     John

>
> The resulting partition scheme looks like this:
> [   10.114241] m25p80 spi0.0: w25x40 (512 Kbytes)
> [   10.118708] 1 fixed-partitions partitions found on MTD device spi0.0
> [   10.125049] Creating 1 MTD partitions on "spi0.0":
> [   10.129824] 0x000000000000-0x000000040000 : "RouterBoot"
> [   10.136215] 5 fixed-partitions partitions found on MTD device RouterBoot
> [   10.142894] Creating 5 MTD partitions on "RouterBoot":
> [   10.148032] 0x000000000000-0x00000000f000 : "routerboot"
> [   10.154336] 0x00000000f000-0x000000010000 : "hard_config"
> [   10.160665] 0x000000010000-0x00000001f000 : "routerboot2"
> [   10.167046] 0x000000020000-0x000000021000 : "soft_config"
> [   10.173461] 0x000000030000-0x000000031000 : "bios"
> [   10.190191] m25p80 spi0.1: w25q128 (16384 Kbytes)
> [   10.194950] 2 fixed-partitions partitions found on MTD device spi0.1
> [   10.201271] Creating 2 MTD partitions on "spi0.1":
> [   10.206071] 0x000000000000-0x000000040000 : "RouterBootFake"
> [   10.212746] 0x000000040000-0x000001000000 : "firmware"
> [   10.307216] 2 minor-fw partitions found on MTD device firmware
> [   10.313044] 0x000000040000-0x000000220000 : "kernel"
> [   10.319002] 0x000000220000-0x000001000000 : "rootfs"
> [   10.324906] mtd: device 9 (rootfs) set to be root filesystem
> [   10.330678] 1 squashfs-split partitions found on MTD device rootfs
> [   10.336886] 0x000000b40000-0x000001000000 : "rootfs_data"
>
> Leave a note in DTS to explain how the original author selected the SPI speed.
>
> Tested-by: Tobias Schramm <tobleminer at gmail.com>
> Signed-off-by: Thibaut VARÈNE <hacks at slashdirt.org>
> ---
>   target/linux/ramips/dts/RBM33G.dts | 69 +++++++++++++++++++++++++++++---------
>   1 file changed, 54 insertions(+), 15 deletions(-)
>
> diff --git a/target/linux/ramips/dts/RBM33G.dts b/target/linux/ramips/dts/RBM33G.dts
> index 612dc106ed..a02d03818f 100644
> --- a/target/linux/ramips/dts/RBM33G.dts
> +++ b/target/linux/ramips/dts/RBM33G.dts
> @@ -104,18 +104,44 @@
>   		reg = <0>;
>   		spi-max-frequency = <3125000>;
>   
> -		partition at 0 {
> -			label = "routerboot";
> -			reg = <0x0 0xf000>;
> -			read-only;
> +		partitions {
> +			compatible = "fixed-partitions";
> +			#address-cells = <1>;
> +			#size-cells = <1>;
> +
> +			partition at 0 {
> +				label = "RouterBoot";
> +				reg = <0x0 0x40000>;
> +				read-only;
> +				compatible = "fixed-partitions";
> +				#address-cells = <1>;
> +				#size-cells = <1>;
> +
> +				routerboot at 0 {
> +					reg = <0x0 0xf000>;
> +					read-only;
> +				};
> +
> +				hard_config: hard_config at f000 {
> +					reg = <0xf000 0x1000>;
> +					read-only;
> +				};
> +
> +				routerboot2 at 10000 {
> +					reg = <0x10000 0xf000>;
> +					read-only;
> +				};
> +
> +				soft_config at 20000 {
> +					reg = <0x20000 0x1000>;
> +				};
> +
> +				bios at 30000 {
> +					reg = <0x30000 0x1000>;
> +					read-only;
> +				};
> +			};
>   		};
> -
> -		factory: partition at f000 {
> -			label = "factory";
> -			reg = <0xf000 0x71000>;
> -			read-only;
> -		};
> -
>   	};
>   
>   	w25q128 at 0 {
> @@ -123,17 +149,30 @@
>   		#size-cells = <1>;
>   		compatible = "jedec,spi-nor";
>   		reg = <1>;
> +		// XXX empiric value to obtain actual 10MHz SCK at the chip
>   		spi-max-frequency = <3125000>;
>   
> -		partition at 40000 {
> -			label = "firmware";
> -			reg = <0x040000 0xFC0000>;
> +		partitions {
> +			compatible = "fixed-partitions";
> +			#address-cells = <1>;
> +			#size-cells = <1>;
> +
> +			// this contains no data but is named so in OEM source
> +			partition at 0 {
> +				label = "RouterBootFake";
> +				reg = <0x0 0x40000>;
> +				read-only;
> +			};
> +
> +			firmware at 40000 {
> +				reg = <0x040000 0xFC0000>;
> +			};
>   		};
>   	};
>   };
>   
>   &ethernet {
> -	mtd-mac-address = <&factory 0x0010>;
> +	mtd-mac-address = <&hard_config 0x0010>;
>   	mtd-mac-address-increment = <1>;
>   };
>   


_______________________________________________
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