b90cad2c2e
This patch improves5684d08741
by correcting the partition scheme for the "RouterBoot" section of the flash. The partition scheme initially submitted is incorrect and does not reflect the actual flash structure. The "RouterBoot" section (name matching OEM) is subdivided in several static segments, as they are on ar71xx RB devices albeit with different offsets and sizes. The naming convention from ar71xx has been preserved, except for the bootloaders which are named "bootloader1" and "bootloader2" to avoid confusion with the master "RouterBoot" partition. The preferred 'fixed-partitions' DTS node syntax is used, with nesting support as introduced in2a598bbaa3
. "partition" is used for node names, with associated "label" to match policy set by6dd94c2781
. 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. 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 : "bootloader1" [ 10.154336] 0x00000000f000-0x000000010000 : "hard_config" [ 10.160665] 0x000000010000-0x00000001f000 : "bootloader2" [ 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@gmail.com> Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org> Reviewed-by: Rafał Miłecki <rafal@milecki.pl> [rmilecki: dropped "RouterBootFake" partition] Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
194 lines
3.3 KiB
Text
194 lines
3.3 KiB
Text
/dts-v1/;
|
|
|
|
#include "mt7621.dtsi"
|
|
|
|
#include <dt-bindings/input/input.h>
|
|
#include <dt-bindings/gpio/gpio.h>
|
|
|
|
/ {
|
|
compatible = "mikrotik,rbm33g", "mediatek,mt7621-soc";
|
|
model = "MikroTik RouterBOARD M33G";
|
|
|
|
aliases {
|
|
led-status = &led_usr;
|
|
};
|
|
|
|
memory@0 {
|
|
device_type = "memory";
|
|
reg = <0x0 0x10000000>;
|
|
};
|
|
|
|
chosen {
|
|
bootargs = "console=ttyS0,115200";
|
|
};
|
|
|
|
gpio-leds {
|
|
compatible = "gpio-leds";
|
|
|
|
led_usr: usr {
|
|
label = "rbm33g:green:usr";
|
|
gpios = <&gpio0 0 GPIO_ACTIVE_HIGH>;
|
|
};
|
|
|
|
};
|
|
|
|
gpio-keys-polled {
|
|
compatible = "gpio-keys-polled";
|
|
poll-interval = <20>;
|
|
|
|
res {
|
|
label = "res";
|
|
gpios = <&gpio0 18 GPIO_ACTIVE_LOW>;
|
|
linux,code = <KEY_RESTART>;
|
|
};
|
|
};
|
|
|
|
pcie0_vcc_reg {
|
|
compatible = "regulator-fixed";
|
|
regulator-name = "pcie0_vcc";
|
|
|
|
regulator-min-microvolt = <3300000>;
|
|
regulator-max-microvolt = <3300000>;
|
|
gpio = <&gpio0 9 GPIO_ACTIVE_HIGH>;
|
|
enable-active-high;
|
|
regulator-boot-on;
|
|
regulator-always-on;
|
|
};
|
|
|
|
pcie1_vcc_reg {
|
|
compatible = "regulator-fixed";
|
|
regulator-name = "pcie1_vcc";
|
|
|
|
regulator-min-microvolt = <3300000>;
|
|
regulator-max-microvolt = <3300000>;
|
|
gpio = <&gpio0 10 GPIO_ACTIVE_HIGH>;
|
|
enable-active-high;
|
|
regulator-boot-on;
|
|
regulator-always-on;
|
|
};
|
|
|
|
pcie2_vcc_reg {
|
|
compatible = "regulator-fixed";
|
|
regulator-name = "pcie2_vcc";
|
|
|
|
regulator-min-microvolt = <3300000>;
|
|
regulator-max-microvolt = <3300000>;
|
|
gpio = <&gpio0 11 GPIO_ACTIVE_HIGH>;
|
|
enable-active-high;
|
|
regulator-boot-on;
|
|
regulator-always-on;
|
|
};
|
|
|
|
usb_vcc_reg {
|
|
compatible = "regulator-fixed";
|
|
regulator-name = "usb_vcc";
|
|
|
|
regulator-min-microvolt = <5000000>;
|
|
regulator-max-microvolt = <5000000>;
|
|
gpio = <&gpio0 12 GPIO_ACTIVE_HIGH>;
|
|
enable-active-high;
|
|
regulator-always-on;
|
|
};
|
|
};
|
|
|
|
|
|
&spi0 {
|
|
status = "okay";
|
|
|
|
w25q40@0 {
|
|
compatible = "jedec,spi-nor";
|
|
reg = <0>;
|
|
spi-max-frequency = <3125000>;
|
|
|
|
partitions {
|
|
compatible = "fixed-partitions";
|
|
#address-cells = <1>;
|
|
#size-cells = <1>;
|
|
|
|
partition@0 {
|
|
label = "RouterBoot";
|
|
reg = <0x0 0x40000>;
|
|
read-only;
|
|
compatible = "fixed-partitions";
|
|
#address-cells = <1>;
|
|
#size-cells = <1>;
|
|
|
|
partition@0 {
|
|
label = "bootloader1";
|
|
reg = <0x0 0xf000>;
|
|
read-only;
|
|
};
|
|
|
|
hard_config: partition@f000 {
|
|
label = "hard_config";
|
|
reg = <0xf000 0x1000>;
|
|
read-only;
|
|
};
|
|
|
|
partition@10000 {
|
|
label = "bootloader2";
|
|
reg = <0x10000 0xf000>;
|
|
read-only;
|
|
};
|
|
|
|
partition@20000 {
|
|
label = "soft_config";
|
|
reg = <0x20000 0x1000>;
|
|
};
|
|
|
|
partition@30000 {
|
|
label = "bios";
|
|
reg = <0x30000 0x1000>;
|
|
read-only;
|
|
};
|
|
};
|
|
};
|
|
};
|
|
|
|
w25q128@1 {
|
|
compatible = "jedec,spi-nor";
|
|
reg = <1>;
|
|
// XXX empiric value to obtain actual 10MHz SCK at the chip
|
|
spi-max-frequency = <3125000>;
|
|
|
|
partitions {
|
|
compatible = "fixed-partitions";
|
|
#address-cells = <1>;
|
|
#size-cells = <1>;
|
|
|
|
// Region <0x0 0x40000> seems reserved by OEM
|
|
|
|
partition@40000 {
|
|
label = "firmware";
|
|
reg = <0x040000 0xFC0000>;
|
|
};
|
|
};
|
|
};
|
|
};
|
|
|
|
ðernet {
|
|
mtd-mac-address = <&hard_config 0x0010>;
|
|
mtd-mac-address-increment = <1>;
|
|
};
|
|
|
|
|
|
&pinctrl {
|
|
state_default: pinctrl0 {
|
|
gpio {
|
|
ralink,group = "uart2", "wdt";
|
|
ralink,function = "gpio";
|
|
};
|
|
};
|
|
};
|
|
|
|
&sdhci {
|
|
status = "okay";
|
|
};
|
|
|
|
&i2c {
|
|
status = "okay";
|
|
};
|
|
|
|
&pcie {
|
|
status = "okay";
|
|
};
|