Message ID | 20201101200804.2460-1-npcomplete13@gmail.com (mailing list archive) |
---|---|
State | Accepted, archived |
Headers | show |
Series | [v2] ARM: dts: BCM5301X: Linksys EA9500 add fixed partitions | expand |
On Sun, 1 Nov 2020 15:08:03 -0500, Vivek Unune <npcomplete13@gmail.com> wrote: > This router has dual paritions to store trx firmware image and > dual partitions for nvram. The second one in each of these cases acts > as a backup store. > > When tested with OpenWrt, the default partition parser causes two issues: > > 1. It labels both nvram partitions as nvram. In factory, second one is > labeled devinfo. > 2. It parses second trx image and tries to create second 'linux' partition > and fails with - cannot create duplicate 'linux' partition > > The following patch works around both of these issues. > > Signed-off-by: Vivek Unune <npcomplete13@gmail.com> > --- Applied to devicetree/next, thanks! -- Florian
On Tue, Nov 03, 2020 at 07:41:59PM -0800, Florian Fainelli wrote: > On Sun, 1 Nov 2020 15:08:03 -0500, Vivek Unune <npcomplete13@gmail.com> wrote: > > This router has dual paritions to store trx firmware image and > > dual partitions for nvram. The second one in each of these cases acts > > as a backup store. > > > > When tested with OpenWrt, the default partition parser causes two issues: > > > > 1. It labels both nvram partitions as nvram. In factory, second one is > > labeled devinfo. > > 2. It parses second trx image and tries to create second 'linux' partition > > and fails with - cannot create duplicate 'linux' partition > > > > The following patch works around both of these issues. > > > > Signed-off-by: Vivek Unune <npcomplete13@gmail.com> > > --- > > Applied to devicetree/next, thanks! > -- > Florian Thanks Florian
On 01.11.2020 21:08, Vivek Unune wrote: > This router has dual paritions to store trx firmware image and > dual partitions for nvram. The second one in each of these cases acts > as a backup store. I'm quite sure CFE is supposed to flash new firmware to the backup partition and then mark it as main one. The old firmware partition becomes a new backup then. That means you need to check which partition bootloader used to handle partitioning properly. > + partition@200000 { > + label = "firmware"; > + reg = <0x0200000 0x01D00000>; > + compatible = "brcm,trx"; > + }; > + > + partition@1F00000 { > + label = "failsafe"; > + reg = <0x01F00000 0x01D00000>; > + read-only; > + }; Here you assume CFE always boots from the first firmware partition. Unless EA9500 CFE does sth stupid it seems like a 50% - 50% guess.
On Mon, Nov 09, 2020 at 06:28:38PM +0100, Rafał Miłecki wrote: > On 01.11.2020 21:08, Vivek Unune wrote: > > This router has dual paritions to store trx firmware image and > > dual partitions for nvram. The second one in each of these cases acts > > as a backup store. > > I'm quite sure CFE is supposed to flash new firmware to the backup > partition and then mark it as main one. The old firmware partition becomes a > new backup then. > > That means you need to check which partition bootloader used to handle > partitioning properly. > > > > + partition@200000 { > > + label = "firmware"; > > + reg = <0x0200000 0x01D00000>; > > + compatible = "brcm,trx"; > > + }; > > + > > + partition@1F00000 { > > + label = "failsafe"; > > + reg = <0x01F00000 0x01D00000>; > > + read-only; > > + }; > > Here you assume CFE always boots from the first firmware partition. > > Unless EA9500 CFE does sth stupid it seems like a 50% - 50% guess. Hi Rafał, Indeed, my assumption is to only boot using first partition. If we ever want to support true dual partitions in future, we need to: 1. Read the boot flag 'bootpartition' and skip the backup partition parsing 2. Updagrading firmware will write to backup partition and flip the bootpartition Thanks, Vivek
diff --git a/arch/arm/boot/dts/bcm47094-linksys-panamera.dts b/arch/arm/boot/dts/bcm47094-linksys-panamera.dts index 5d5930edfb9d..13da16c5de68 100644 --- a/arch/arm/boot/dts/bcm47094-linksys-panamera.dts +++ b/arch/arm/boot/dts/bcm47094-linksys-panamera.dts @@ -292,3 +292,44 @@ fixed-link { &usb3_phy { status = "okay"; }; + +&nandcs { + partitions { + compatible = "fixed-partitions"; + #address-cells = <1>; + #size-cells = <1>; + + partition@0 { + label = "boot"; + reg = <0x0000000 0x0080000>; + read-only; + }; + + partition@80000 { + label = "nvram"; + reg = <0x080000 0x0100000>; + }; + + partition@180000{ + label = "devinfo"; + reg = <0x0180000 0x080000>; + }; + + partition@200000 { + label = "firmware"; + reg = <0x0200000 0x01D00000>; + compatible = "brcm,trx"; + }; + + partition@1F00000 { + label = "failsafe"; + reg = <0x01F00000 0x01D00000>; + read-only; + }; + + partition@5200000 { + label = "system"; + reg = <0x05200000 0x02E00000>; + }; + }; +};
This router has dual paritions to store trx firmware image and dual partitions for nvram. The second one in each of these cases acts as a backup store. When tested with OpenWrt, the default partition parser causes two issues: 1. It labels both nvram partitions as nvram. In factory, second one is labeled devinfo. 2. It parses second trx image and tries to create second 'linux' partition and fails with - cannot create duplicate 'linux' partition The following patch works around both of these issues. Signed-off-by: Vivek Unune <npcomplete13@gmail.com> --- V2: - Removed 0x before partition offset - Renamed brcmnand to system --- .../boot/dts/bcm47094-linksys-panamera.dts | 41 +++++++++++++++++++ 1 file changed, 41 insertions(+)