linux.bootargs: export mtdparts from DTS

Yegor Yefremov yegorslists at googlemail.com
Fri Feb 23 00:10:50 PST 2018


On Fri, Feb 23, 2018 at 9:04 AM, Sascha Hauer <s.hauer at pengutronix.de> wrote:
> 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".

I see now. It is working with the legacy option.

Thanks.

Yegor



More information about the barebox mailing list