cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
vneethv
Participant
Participant
5,635 Views
Registered: ‎05-31-2010

kernel Bootargs & flash partitions

Hi,

 

I have 3 flashs  of 64 MB in my RTL design and the dts file also contain the same. I have to create 15 partitions on these 3 flashs. they are in contigeous locations. My doubt is how can i create multiple partition in my bootargs ? when i tried to create multiple partition; only few (till offset = 0x6000000" os getting created and all other partitions are simple ignored by linux.

 

how can i specify multiple chips in bootargs ? i couldnt find the syntax for the same..i am attaching my bootargs string with this mail.

 

bootargs = "console=ttyUL0 root=/dev/ram rw mtdparts=70000000.flash0:5M(golden_uboot),5M(golden_kernel),5M(golden_rootfs),1M(golden_devtree),5M(user_uboot),5M(user_kernel),5M(user_rootfs),1M(user_devtree);mtdparts=74000000.flash1:8M(golden_bitfile),8M(flash2_reserved1),8M(user_bitfile),8M(flash2_reserved2);mtdparts=78000000.flash2:8M(golden_flbf_hw),8M(golden_flbf_sw),8M(user_flbf_hw),8M(user_flbf_sw),32M(beam_data)";

 

plz lemme know how to work on this.

 

thanks

Vineeth

0 Kudos
Reply
4 Replies
Anonymous
Not applicable
5,630 Views

Could it be that your bootargs string is too long? I'm not sure if there is a max length or not..  Can't you  do the same thing by specifying your partitions in the .dts?  I would give that a try and see if it works.

 

Terry

 

0 Kudos
Reply
vneethv
Participant
Participant
5,626 Views
Registered: ‎05-31-2010

hi Terry,

Thanks for the reply.

Actually 'd taken this bootargs from my dts file only. i am trying with simpleImage with initrd.

i am using MTD driver in kernel. Is there any settings i am missing here..?

 

Thanks

Vineeth

 

Plz find the attached dts file info.



'/dts-v1/;
/ {
    #address-cells = <1>;
    #size-cells = <1>;
    compatible = "xlnx,virtex440", "xlnx,virtex";
    dcr-parent = <&powerpc440>;
    model = "testing";
    aliases {
        ethernet0 = &ethernet_switch_temac;
        serial0 = &console_port;
    } ;
    chosen {
        /* bootargs = "console=ttyUL0 root=/dev/ram rw";*/
        bootargs = "console=ttyUL0 root=/dev/ram rw mtdparts=70000000.flash0:5M(golden_uboot),5M(golden_kernel),5M(golden_rootfs),1M(golden_devtree),5M(user_uboot),5M(user_kernel),5M(user_rootfs),1M(user_devtree);mtdparts=74000000.flash1:8M(golden_bitfile),8M(flash2_reserved1),8M(user_bitfile),8M(flash2_reserved2);mtdparts=78000000.flash2:8M(golden_flbf_hw),8M(golden_flbf_sw),8M(user_flbf_hw),8M(user_flbf_sw),32M(beam_data)";
    } ;

----- Modified ----deleted some lines ----

 

/*        flash_mem_ctlr_flbf_config: flash2@78000000 {
            bank-width = <2>;
            compatible = "xlnx,xps-mch-emc-3.01.a", "cfi-flash";
            reg = < 0x78000000 0x4000000 >;
            xlnx,family = "virtex5";
            xlnx,include-datawidth-matching-0 = <0x1>;
            xlnx,include-datawidth-matching-1 = <0x0>;
            xlnx,include-datawidth-matching-2 = <0x0>;
            xlnx,include-datawidth-matching-3 = <0x0>;
            xlnx,include-negedge-ioregs = <0x0>;
            xlnx,include-plb-ipif = <0x1>;
            xlnx,include-wrbuf = <0x1>;
            xlnx,max-mem-width = <0x10>;
            xlnx,mch-native-dwidth = <0x20>;
            xlnx,mch-splb-awidth = <0x20>;
            xlnx,mch-splb-clk-period-ps = <0x2710>;
            xlnx,mch0-accessbuf-depth = <0x10>;
            xlnx,mch0-protocol = <0x0>;
            xlnx,mch0-rddatabuf-depth = <0x10>;
            xlnx,mch1-accessbuf-depth = <0x10>;
            xlnx,mch1-protocol = <0x0>;
            xlnx,mch1-rddatabuf-depth = <0x10>;
            xlnx,mch2-accessbuf-depth = <0x10>;
            xlnx,mch2-protocol = <0x0>;
            xlnx,mch2-rddatabuf-depth = <0x10>;
            xlnx,mch3-accessbuf-depth = <0x10>;
            xlnx,mch3-protocol = <0x0>;
            xlnx,mch3-rddatabuf-depth = <0x10>;
            xlnx,mem0-width = <0x10>;
            xlnx,mem1-width = <0x20>;
            xlnx,mem2-width = <0x20>;
            xlnx,mem3-width = <0x20>;
            xlnx,num-banks-mem = <0x1>;
            xlnx,num-channels = <0x0>;
            xlnx,pagemode-flash-0 = <0x0>;
            xlnx,pagemode-flash-1 = <0x0>;
            xlnx,pagemode-flash-2 = <0x0>;
            xlnx,pagemode-flash-3 = <0x0>;
            xlnx,priority-mode = <0x0>;
            xlnx,synch-mem-0 = <0x0>;
            xlnx,synch-mem-1 = <0x0>;
            xlnx,synch-mem-2 = <0x0>;
            xlnx,synch-mem-3 = <0x0>;
            xlnx,synch-pipedelay-0 = <0x2>;
            xlnx,synch-pipedelay-1 = <0x2>;
            xlnx,synch-pipedelay-2 = <0x2>;
            xlnx,synch-pipedelay-3 = <0x2>;
            xlnx,tavdv-ps-mem-0 = <0x15f90>;
            xlnx,tavdv-ps-mem-1 = <0x3a98>;
            xlnx,tavdv-ps-mem-2 = <0x3a98>;
            xlnx,tavdv-ps-mem-3 = <0x3a98>;
            xlnx,tcedv-ps-mem-0 = <0x15f90>;
            xlnx,tcedv-ps-mem-1 = <0x3a98>;
            xlnx,tcedv-ps-mem-2 = <0x3a98>;
            xlnx,tcedv-ps-mem-3 = <0x3a98>;
            xlnx,thzce-ps-mem-0 = <0x4e20>;
            xlnx,thzce-ps-mem-1 = <0x1b58>;
            xlnx,thzce-ps-mem-2 = <0x1b58>;
            xlnx,thzce-ps-mem-3 = <0x1b58>;
            xlnx,thzoe-ps-mem-0 = <0x4e20>;
            xlnx,thzoe-ps-mem-1 = <0x1b58>;
            xlnx,thzoe-ps-mem-2 = <0x1b58>;
            xlnx,thzoe-ps-mem-3 = <0x1b58>;
            xlnx,tlzwe-ps-mem-0 = <0x0>;
            xlnx,tlzwe-ps-mem-1 = <0x0>;
            xlnx,tlzwe-ps-mem-2 = <0x0>;
            xlnx,tlzwe-ps-mem-3 = <0x0>;
            xlnx,tpacc-ps-flash-0 = <0x61a8>;
            xlnx,tpacc-ps-flash-1 = <0x61a8>;
            xlnx,tpacc-ps-flash-2 = <0x61a8>;
            xlnx,tpacc-ps-flash-3 = <0x61a8>;
            xlnx,twc-ps-mem-0 = <0x15f90>;
            xlnx,twc-ps-mem-1 = <0x3a98>;
            xlnx,twc-ps-mem-2 = <0x3a98>;
            xlnx,twc-ps-mem-3 = <0x3a98>;
            xlnx,twp-ps-mem-0 = <0x88b8>;
            xlnx,twp-ps-mem-1 = <0x2ee0>;
            xlnx,twp-ps-mem-2 = <0x2ee0>;
            xlnx,twp-ps-mem-3 = <0x2ee0>;
            xlnx,xcl0-linesize = <0x4>;
            xlnx,xcl0-writexfer = <0x1>;
            xlnx,xcl1-linesize = <0x4>;
            xlnx,xcl1-writexfer = <0x1>;
            xlnx,xcl2-linesize = <0x4>;
            xlnx,xcl2-writexfer = <0x1>;
            xlnx,xcl3-linesize = <0x4>;
            xlnx,xcl3-writexfer = <0x1>;
        } ;
        flash_mem_ctlr_ilbf_config: flash1@74000000 {
            bank-width = <2>;
            compatible = "xlnx,xps-mch-emc-3.01.a", "cfi-flash";
            reg = < 0x74000000 0x4000000 >;
            xlnx,family = "virtex5";
            xlnx,include-datawidth-matching-0 = <0x1>;
            xlnx,include-datawidth-matching-1 = <0x0>;
            xlnx,include-datawidth-matching-2 = <0x0>;
            xlnx,include-datawidth-matching-3 = <0x0>;
            xlnx,include-negedge-ioregs = <0x0>;
            xlnx,include-plb-ipif = <0x1>;
            xlnx,include-wrbuf = <0x1>;
            xlnx,max-mem-width = <0x10>;
            xlnx,mch-native-dwidth = <0x20>;
            xlnx,mch-splb-awidth = <0x20>;
            xlnx,mch-splb-clk-period-ps = <0x2710>;
            xlnx,mch0-accessbuf-depth = <0x10>;
            xlnx,mch0-protocol = <0x0>;
            xlnx,mch0-rddatabuf-depth = <0x10>;
            xlnx,mch1-accessbuf-depth = <0x10>;
            xlnx,mch1-protocol = <0x0>;
            xlnx,mch1-rddatabuf-depth = <0x10>;
            xlnx,mch2-accessbuf-depth = <0x10>;
            xlnx,mch2-protocol = <0x0>;
            xlnx,mch2-rddatabuf-depth = <0x10>;
            xlnx,mch3-accessbuf-depth = <0x10>;
            xlnx,mch3-protocol = <0x0>;
            xlnx,mch3-rddatabuf-depth = <0x10>;
            xlnx,mem0-width = <0x10>;
            xlnx,mem1-width = <0x20>;
            xlnx,mem2-width = <0x20>;
            xlnx,mem3-width = <0x20>;
            xlnx,num-banks-mem = <0x1>;
            xlnx,num-channels = <0x0>;
            xlnx,pagemode-flash-0 = <0x0>;
            xlnx,pagemode-flash-1 = <0x0>;
            xlnx,pagemode-flash-2 = <0x0>;
            xlnx,pagemode-flash-3 = <0x0>;
            xlnx,priority-mode = <0x0>;
            xlnx,synch-mem-0 = <0x0>;
            xlnx,synch-mem-1 = <0x0>;
            xlnx,synch-mem-2 = <0x0>;
            xlnx,synch-mem-3 = <0x0>;
            xlnx,synch-pipedelay-0 = <0x2>;
            xlnx,synch-pipedelay-1 = <0x2>;
            xlnx,synch-pipedelay-2 = <0x2>;
            xlnx,synch-pipedelay-3 = <0x2>;
            xlnx,tavdv-ps-mem-0 = <0x15f90>;
            xlnx,tavdv-ps-mem-1 = <0x3a98>;
            xlnx,tavdv-ps-mem-2 = <0x3a98>;
            xlnx,tavdv-ps-mem-3 = <0x3a98>;
            xlnx,tcedv-ps-mem-0 = <0x15f90>;
            xlnx,tcedv-ps-mem-1 = <0x3a98>;
            xlnx,tcedv-ps-mem-2 = <0x3a98>;
            xlnx,tcedv-ps-mem-3 = <0x3a98>;
            xlnx,thzce-ps-mem-0 = <0x4e20>;
            xlnx,thzce-ps-mem-1 = <0x1b58>;
            xlnx,thzce-ps-mem-2 = <0x1b58>;
            xlnx,thzce-ps-mem-3 = <0x1b58>;
            xlnx,thzoe-ps-mem-0 = <0x4e20>;
            xlnx,thzoe-ps-mem-1 = <0x1b58>;
            xlnx,thzoe-ps-mem-2 = <0x1b58>;
            xlnx,thzoe-ps-mem-3 = <0x1b58>;
            xlnx,tlzwe-ps-mem-0 = <0x0>;
            xlnx,tlzwe-ps-mem-1 = <0x0>;
            xlnx,tlzwe-ps-mem-2 = <0x0>;
            xlnx,tlzwe-ps-mem-3 = <0x0>;
            xlnx,tpacc-ps-flash-0 = <0x61a8>;
            xlnx,tpacc-ps-flash-1 = <0x61a8>;
            xlnx,tpacc-ps-flash-2 = <0x61a8>;
            xlnx,tpacc-ps-flash-3 = <0x61a8>;
            xlnx,twc-ps-mem-0 = <0x15f90>;
            xlnx,twc-ps-mem-1 = <0x3a98>;
            xlnx,twc-ps-mem-2 = <0x3a98>;
            xlnx,twc-ps-mem-3 = <0x3a98>;
            xlnx,twp-ps-mem-0 = <0x88b8>;
            xlnx,twp-ps-mem-1 = <0x2ee0>;
            xlnx,twp-ps-mem-2 = <0x2ee0>;
            xlnx,twp-ps-mem-3 = <0x2ee0>;
            xlnx,xcl0-linesize = <0x4>;
            xlnx,xcl0-writexfer = <0x1>;
            xlnx,xcl1-linesize = <0x4>;
            xlnx,xcl1-writexfer = <0x1>;
            xlnx,xcl2-linesize = <0x4>;
            xlnx,xcl2-writexfer = <0x1>;
            xlnx,xcl3-linesize = <0x4>;
            xlnx,xcl3-writexfer = <0x1>;
        } ;*/
        flash_mem_ctlr_sw_image: flash0@70000000 {
            bank-width = <2>;
            compatible = "xlnx,xps-mch-emc-3.01.a", "cfi-flash";
            reg = < 0x70000000 0x4000000 >;
            xlnx,family = "virtex5";
            xlnx,include-datawidth-matching-0 = <0x1>;
            xlnx,include-datawidth-matching-1 = <0x0>;
            xlnx,include-datawidth-matching-2 = <0x0>;
            xlnx,include-datawidth-matching-3 = <0x0>;
            xlnx,include-negedge-ioregs = <0x0>;
            xlnx,include-plb-ipif = <0x1>;
            xlnx,include-wrbuf = <0x1>;
            xlnx,max-mem-width = <0x10>;
            xlnx,mch-native-dwidth = <0x20>;
            xlnx,mch-splb-awidth = <0x20>;
            xlnx,mch-splb-clk-period-ps = <0x2710>;
            xlnx,mch0-accessbuf-depth = <0x10>;
            xlnx,mch0-protocol = <0x0>;
            xlnx,mch0-rddatabuf-depth = <0x10>;
            xlnx,mch1-accessbuf-depth = <0x10>;
            xlnx,mch1-protocol = <0x0>;
            xlnx,mch1-rddatabuf-depth = <0x10>;
            xlnx,mch2-accessbuf-depth = <0x10>;
            xlnx,mch2-protocol = <0x0>;
            xlnx,mch2-rddatabuf-depth = <0x10>;
            xlnx,mch3-accessbuf-depth = <0x10>;
            xlnx,mch3-protocol = <0x0>;
            xlnx,mch3-rddatabuf-depth = <0x10>;
            xlnx,mem0-width = <0x10>;
            xlnx,mem1-width = <0x20>;
            xlnx,mem2-width = <0x20>;
            xlnx,mem3-width = <0x20>;
            xlnx,num-banks-mem = <0x1>;
            xlnx,num-channels = <0x0>;
            xlnx,pagemode-flash-0 = <0x0>;
            xlnx,pagemode-flash-1 = <0x0>;
            xlnx,pagemode-flash-2 = <0x0>;
            xlnx,pagemode-flash-3 = <0x0>;
            xlnx,priority-mode = <0x0>;
            xlnx,synch-mem-0 = <0x0>;
            xlnx,synch-mem-1 = <0x0>;
            xlnx,synch-mem-2 = <0x0>;
            xlnx,synch-mem-3 = <0x0>;
            xlnx,synch-pipedelay-0 = <0x2>;
            xlnx,synch-pipedelay-1 = <0x2>;
            xlnx,synch-pipedelay-2 = <0x2>;
            xlnx,synch-pipedelay-3 = <0x2>;
            xlnx,tavdv-ps-mem-0 = <0x15f90>;
            xlnx,tavdv-ps-mem-1 = <0x3a98>;
            xlnx,tavdv-ps-mem-2 = <0x3a98>;
            xlnx,tavdv-ps-mem-3 = <0x3a98>;
            xlnx,tcedv-ps-mem-0 = <0x15f90>;
            xlnx,tcedv-ps-mem-1 = <0x3a98>;
            xlnx,tcedv-ps-mem-2 = <0x3a98>;
            xlnx,tcedv-ps-mem-3 = <0x3a98>;
            xlnx,thzce-ps-mem-0 = <0x4e20>;
            xlnx,thzce-ps-mem-1 = <0x1b58>;
            xlnx,thzce-ps-mem-2 = <0x1b58>;
            xlnx,thzce-ps-mem-3 = <0x1b58>;
            xlnx,thzoe-ps-mem-0 = <0x4e20>;
            xlnx,thzoe-ps-mem-1 = <0x1b58>;
            xlnx,thzoe-ps-mem-2 = <0x1b58>;
            xlnx,thzoe-ps-mem-3 = <0x1b58>;
            xlnx,tlzwe-ps-mem-0 = <0x0>;
            xlnx,tlzwe-ps-mem-1 = <0x0>;
            xlnx,tlzwe-ps-mem-2 = <0x0>;
            xlnx,tlzwe-ps-mem-3 = <0x0>;
            xlnx,tpacc-ps-flash-0 = <0x61a8>;
            xlnx,tpacc-ps-flash-1 = <0x61a8>;
            xlnx,tpacc-ps-flash-2 = <0x61a8>;
            xlnx,tpacc-ps-flash-3 = <0x61a8>;
            xlnx,twc-ps-mem-0 = <0x15f90>;
            xlnx,twc-ps-mem-1 = <0x3a98>;
            xlnx,twc-ps-mem-2 = <0x3a98>;
            xlnx,twc-ps-mem-3 = <0x3a98>;
            xlnx,twp-ps-mem-0 = <0x88b8>;
            xlnx,twp-ps-mem-1 = <0x2ee0>;
            xlnx,twp-ps-mem-2 = <0x2ee0>;
            xlnx,twp-ps-mem-3 = <0x2ee0>;
            xlnx,xcl0-linesize = <0x4>;
            xlnx,xcl0-writexfer = <0x1>;
            xlnx,xcl1-linesize = <0x4>;
            xlnx,xcl1-writexfer = <0x1>;
            xlnx,xcl2-linesize = <0x4>;
            xlnx,xcl2-writexfer = <0x1>;
            xlnx,xcl3-linesize = <0x4>;
            xlnx,xcl3-writexfer = <0x1>;
        };

0 Kudos
Reply
Anonymous
Not applicable
5,621 Views

See Documentation/powerpc/dts-bindings/mtd-physmap.txt

 

I think this is how I did it in the past. Not sure if you're trying to accomplish the same thing I was, but it sounds like you are.

 

Terry

 

0 Kudos
Reply
vneethv
Participant
Participant
5,557 Views
Registered: ‎05-31-2010

tried it..but kernel didnt identify it as saparate partitions.now i have 3 partitions for each 3 chips.

I am taking care of the partitions from application. (logically devided all the partitions to 2 MB boundaries).

it kinda works fine now..but..i think this aint the proper method..

Is there any better way..?

0 Kudos
Reply