[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>;
> + };
> };
> };
> };
>
> ðernet {
> - 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