linux.bootargs: export mtdparts from DTS
Sascha Hauer
s.hauer at pengutronix.de
Fri Feb 23 00:04:02 PST 2018
On Fri, Feb 23, 2018 at 08:52:35AM +0100, Yegor Yefremov wrote:
> On Fri, Feb 23, 2018 at 8:39 AM, Yegor Yefremov
> <yegorslists at googlemail.com> wrote:
> > On Fri, Feb 23, 2018 at 8:33 AM, Sascha Hauer <s.hauer at pengutronix.de> wrote:
> >> Hi Yegor,
> >>
> >> On Fri, Feb 23, 2018 at 08:26:56AM +0100, Yegor Yefremov wrote:
> >>> My board will be configured via DTS file, that contains an MTD
> >>> partition table [1]. How can it be automatically exported to
> >>> global.inux.bootargs.mtdparts?
> >>>
> >>> [1] https://git.pengutronix.de/cgit/barebox/tree/arch/arm/dts/am335x-baltos-minimal.dts#n217
> >>
> >> Why would you want to do that? You are not going to start an ancient
> >> kernel with ATAG support, are you?
> >
> > So far I'm using ancient LTS 3.18.x kernel with this DTS [1] and
> > packaging it via FIT.
> >
> > [1] https://github.com/visionsystemsgmbh/onrisc_br_bsp/blob/master/board/vscom/dts/3.15/onrisc-baltos-ir-5221.dts
>
> I've installed dtc and dumped my loaded DTB in Linux:
>
> nand at 0,0 {
> reg = <0x0 0x0 0x4>;
> gpmc,we-off-ns = <0x28>;
> gpmc,oe-on-ns = <0x0>;
> gpmc,device-nand = "true";
> gpmc,cycle2cycle-delay-ns = <0x0>;
> gpmc,wr-access-ns = <0x28>;
> gpmc,wr-data-mux-bus-ns = <0x0>;
> gpmc,adv-rd-off-ns = <0x22>;
> gpmc,oe-off-ns = <0x36>;
> gpmc,clk-activation-ns = <0x0>;
> gpmc,wait-on-write = "true";
> elm_id = <0x42>;
> ti,nand-ecc-opt = "bch8";
> gpmc,adv-on-ns = <0x6>;
> gpmc,adv-wr-off-ns = <0x2c>;
> ti,nand-xfer-type = "prefetch-polled";
> gpmc,wait-monitoring-ns = <0x0>;
> nand-bus-width = <0x8>;
> gpmc,device-width = <0x1>;
> gpmc,cs-rd-off-ns = <0x2c>;
> gpmc,rd-cycle-ns = <0x52>;
> #address-cells = <0x1>;
> gpmc,bus-turnaround-ns = <0x0>;
> gpmc,cs-on-ns = <0x0>;
> gpmc,we-on-ns = <0x0>;
> #size-cells = <0x1>;
> gpmc,wait-on-read = "true";
> gpmc,wr-cycle-ns = <0x52>;
> gpmc,access-ns = <0x40>;
> gpmc,sync-clk-ps = <0x0>;
> gpmc,cs-wr-off-ns = <0x2c>;
>
> partitions {
> compatible = "fixed-partitions";
> #addres-cells = <0x1>;
> #size-cells = <0x1>;
>
> partition at 260000 {
> reg = <0x260000 0xfda0000>;
> label = "UBI";
> };
>
> partition at 0 {
> reg = <0x0 0x20000>;
> label = "SPL";
> };
>
> partition at 20000 {
> reg = <0x20000 0x20000>;
> label = "SPL.backup1";
> };
>
> partition at 40000 {
> reg = <0x40000 0x20000>;
> label = "SPL.backup2";
> };
>
> partition at 60000 {
> reg = <0x60000 0x20000>;
> label = "SPL.backup3";
> };
>
> partition at 80000 {
> reg = <0x80000 0x1e0000>;
> label = "u-boot";
> };
> };
> };
>
> Somehow UBI partition is now the first partition and thus other
> partitions were not parsed. Cat /proc/mtd says nothing and I have only
> /dev/mtd0.
The partition ordering is strange, but not your problem. You only have
mtd0 because the old Kernel doesn't recognize any partition table at
all, note the additional partitions{} subnode which is only recognized
by newer kernels. You have to set global.of_partition_binding="legacy".
Sascha
--
Pengutronix e.K. | |
Industrial Linux Solutions | http://www.pengutronix.de/ |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
More information about the barebox
mailing list