Thank you for the response! I had a quick look over this patch, I need to find a way to adapt it for RPi 3, as vmmc-supply , reg_3v3, vqmmc-supply, reg_1v8 are not configured for rpi 3 (they exist only for CM1 and CM3 as I have seen in the device tree sources). I don't know if there are any implications if I use those nodes similar to CM3 (don't know the differences between 3 and CM3). Best regards, Vali. > Date: Tue, 04 Jun 2019 10:59:23 +0200 > From: Moritz Augsburger <ml+barebox@xxxxxxxxxxxxxxxxxxxxxx> > To: barebox@xxxxxxxxxxxxxxxxxxx > Subject: Re: Raspberry Pi Barebox State Integration - SD card > Message-ID: <e7c88d1ca9dd8acc056490158be54e39@xxxxxxxxxxxxxxxxxxxxxx> > Content-Type: text/plain; charset=US-ASCII; format=flowed > > Hi, > > Am 2019-06-04 08:32, schrieb Valentina Rusu: > > The issue to integrate Barebox state are the following: > > * we need to specify a backend for the "state" node; > > * the backend should point to an of partition on a non-volatile memory; > > * other boards have EEPROM, NAND besides SD card and they are > > described in the device tree; RPi has no such thing; > > * somehow I need to write the state on the SD card in a location where > > does not interfere with the partitions created (boot, rootfs, user > > partitions, etc); > > * the SD card device (mci0) is automatically detected at startup, and > > not described in the device tree; > > Below is a part of my patches, using the emmc on a Compute Module as > state backend. > It uses the region between MBR and first partition (starting @4MB) to > save the state. > > The patch may contain changes already done to the latest version, so > apply carefully. > > diff --git a/arch/arm/dts/bcm2837-rpi-3.dts > b/arch/arm/dts/bcm2837-rpi-3.dts > index 51883613c..420525b9e 100644 > --- a/arch/arm/dts/bcm2837-rpi-3.dts > +++ b/arch/arm/dts/bcm2837-rpi-3.dts > @@ -11,10 +11,5 @@ > }; > > &sdhci { > - pinctrl-0 = <&emmc_gpio48>; > - /delete-node/ wifi@1; > -}; > - > -&sdhost { > status = "disabled"; > }; > diff --git a/arch/arm/dts/bcm2837-rpi-cm3.dts > b/arch/arm/dts/bcm2837-rpi-cm3.dts > index cfbffe175..d0144dcbc 100644 > --- a/arch/arm/dts/bcm2837-rpi-cm3.dts > +++ b/arch/arm/dts/bcm2837-rpi-cm3.dts > @@ -8,11 +8,76 @@ > memory { > reg = <0x0 0x0>; > }; > + > + state: state { > + magic = <0x4d433230>; > + compatible = "barebox,state"; > + backend-type = "raw"; > + backend = <&backend_state_sdhost>; > + backend-storage-type = "circular"; > + backend-stridesize = <0x800>; > + #address-cells = <1>; > + #size-cells = <1>; > + > + bootstate { > + #address-cells = <1>; > + #size-cells = <1>; > + system0 { > + #address-cells = <1>; > + #size-cells = <1>; > + remaining_attempts { > + reg = <0x0 0x4>; > + type = "uint32"; > + default = <3>; > + }; > + priority { > + reg = <0x4 0x4>; > + type = "uint32"; > + default = <21>; > + }; > + }; > + > + system1 { > + #address-cells = <1>; > + #size-cells = <1>; > + remaining_attempts { > + reg = <0x10 0x4>; > + type = "uint32"; > + default = <3>; > + }; > + priority { > + reg = <0x14 0x4>; > + type = "uint32"; > + default = <20>; > + }; > + }; > + last_chosen { > + reg = <0x2C 0x4>; > + type = "uint32"; > + }; > + }; > + }; > + > + aliases { > + state = &state; > + }; > + > }; > > -&sdhci { > - pinctrl-0 = <&emmc_gpio48>; > - no-sd; > - non-removable; > +&sdhost { > + pinctrl-names = "default"; > + pinctrl-0 = <&sdhost_gpio48>; > + bus-width = <4>; > + vmmc-supply = <®_3v3>; > + vqmmc-supply = <®_1v8>; > status = "okay"; > + partitions { > + compatible = "fixed-partitions"; > + #size-cells = <1>; > + #address-cells = <1>; > + backend_state_sdhost: part@200000 { > + label = "state_sdhost"; > + reg = <0x200000 0x200000>; > + }; > + }; > }; > > > _______________________________________________ barebox mailing list barebox@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/barebox