openwrt/target/linux
Nikolay Martynov 62dbcb8305 ramips: Fix root volume for tplink-er605-v2
This device has two sets of volumes: main ones (`kernel`, `rootfs`, etc) and
'backup' (`kernel.b`, `rootfs.b`, etc). Bootloader tries to determine which set of
volumes to use by looking at contens of `extra-para` and `extra-para.b` volumes.
These volumes contain JSON that looks like this:

```
{
	"dbootFlag": "1",
	"integerFlag": "1",
	"fwFlag": "GOOD",
	"score":1
}
```

It looks like the bootloader looks for `"fwFlag": "GOOD"` (as opposed to `BAD`)
then it compares `score` field - whichever 'good' volume has bigger score wins.
This determines which set of volumes to use to boot.

So for example if `extra-para` is good and has bigger score then `kernel`,
`rootfs`, etc volumes are used. This means bootloader needs to explain to the
kernel which volume to use for the rootfs. After looking at bootloader code with
disassembler I think it contains a bug. Relevant part of code looks something
like this:

```
  if (image_id == 0) {
    rootfs_volume_id = 8;
    rootfs_volume_name = "rootfs";
  }
  else {
    rootfs_volume_id = 0xf;
    rootfs_volume_name = "rootfs.b";
  }
  sprintf(
    &buffer,
    0x800,
    "console=ttyS0,115200 noinitrd ubi.mtd=3,2048 ubi.block=0,%s
    root=/dev/ubiblock0_%d DKMGT_IMAGE_ID=%d DKMGT_IMAGE_TYPE=ubi",
    rootfs_volume_name,
    rootfs_volume_id,
    image_id
    );
```

Where `image_id == 0` if 'normal' (not '*.b' set of volumes is used).
However from device dumps we know that from the factory `rootfs.b` has id 8 and
`rootfs` has id 15.

So from above we can see that ids and names of rootfs volumes do not match. More
over - they are hardcoded in the bootloader.

Both things are problematic for OpwnWRT which completely removes volumes on
update meaning that volume ids may actually change.

So instead of relying on bootloader to provide the kernel with root device this
patch forces kernel to determine root automatically - and it defaults to
`rootfs` volume which is correct for our purposes.

Overall this makes image boot fine from flash after sysupgrade from inirams.
assuming `extra-para*` volumes make bootloader use non-'*.b' set of volumes.

Signed-off-by: Nikolay Martynov <mar.kolya@gmail.com>
2023-01-22 14:37:47 +01:00
..
airoha airoha: disable swconfig 2022-11-27 13:18:29 +01:00
apm821xx kernel: bump 5.10 to 5.10.161 2022-12-24 15:24:18 +01:00
archs38 archs38: switch to 5.15 by default 2023-01-16 20:48:01 +01:00
armvirt kernel: disable CONFIG_CPU_LITTLE_ENDIAN in generic config 2022-10-21 13:47:01 +02:00
at91 kernel: bump 5.10 to 5.10.163 2023-01-14 22:31:38 +01:00
ath25 ath25: add generic subtarget 2022-12-23 19:44:14 +01:00
ath79 kernel: bump 5.10 to 5.10.163 2023-01-14 22:31:38 +01:00
bcm27xx kernel: bump 5.15 to 5.15.87 2023-01-13 22:04:22 +01:00
bcm47xx bcm47xx: replace "Devices-database-update-patch" with upstream patches 2022-12-30 20:03:59 +01:00
bcm53xx kernel: update nvmem subsystem to the latest upstream 2023-01-06 22:08:03 +01:00
bcm63xx kernel: bump 5.10 to 5.10.163 2023-01-14 22:31:38 +01:00
bcm4908 treewide: uniform vendor name for ASUS 2022-11-16 23:30:11 +01:00
bmips kernel: disable CONFIG_CPU_LITTLE_ENDIAN in generic config 2022-10-21 13:47:01 +02:00
gemini gemini: add generic subtarget 2022-12-23 19:44:20 +01:00
generic kernel: bump 5.15 to 5.15.89 2023-01-22 01:41:10 +01:00
imx cypress-nvram: consolidate NVRAM packages 2022-11-16 20:14:13 +01:00
ipq40xx ipq40xx: convert Extreme AP3915i to DSA 2023-01-17 23:45:44 +01:00
ipq806x kernel: bump 5.15 to 5.15.89 2023-01-22 01:41:10 +01:00
ipq807x ipq807x: Add ZyXEL NBG7815 2023-01-19 13:26:15 +01:00
kirkwood kirkwood: add generic subtarget 2022-12-23 19:44:20 +01:00
lantiq kernel: bump 5.10 to 5.10.163 2023-01-14 22:31:38 +01:00
layerscape layerscape: Add CONFIG_NVMEM_LAYERSCAPE_SFP kernel configuration option 2023-01-08 18:51:27 +01:00
malta kernel: disable CONFIG_CPU_LITTLE_ENDIAN in generic config 2022-10-21 13:47:01 +02:00
mediatek mediatek: filogic: fix sysupgrade on MMC on the BPi-R3 2023-01-16 22:04:55 +00:00
mpc85xx kernel: backport of changes & helpers 2023-01-07 17:45:17 +01:00
mvebu mvebu: cortexa9: use renamed U-boot binaries 2023-01-20 21:10:37 +01:00
mxs mxs: add generic subtarget 2022-12-23 19:44:20 +01:00
octeon kernel: disable CONFIG_CPU_LITTLE_ENDIAN in generic config 2022-10-21 13:47:01 +02:00
octeontx octeontx: add sqaushfs and ramdisk to features 2023-01-06 19:44:35 +01:00
omap omap: refresh config 2023-01-22 02:08:28 +01:00
oxnas kernel: bump 5.15 to 5.15.86 2023-01-03 23:55:45 +01:00
pistachio kernel: bump 5.10 to 5.10.163 2023-01-14 22:31:38 +01:00
qoriq qoriq: drop unused kernel config 2023-01-09 21:39:45 +02:00
ramips ramips: Fix root volume for tplink-er605-v2 2023-01-22 14:37:47 +01:00
realtek realtek: use irq_force_affinity on otto timer instead 2023-01-21 19:58:24 +01:00
rockchip treewide: update NVMEM symbols 2023-01-07 01:30:31 +01:00
sunxi sunxi: switch to kernel 5.15 2023-01-09 21:39:46 +02:00
tegra tegra: add generic subtarget 2022-12-23 19:44:21 +01:00
uml uml: switch to Kernel 5.15 2022-12-12 09:06:17 +01:00
x86 kernel/x86: fix typo 2023-01-15 13:30:09 +01:00
zynq zynq: add 5.15 testing kernel 2023-01-03 20:56:01 +01:00
Makefile build: fix issues with targets installed via feeds 2022-09-27 13:41:12 +02:00