On Sun, Mar 21, 2010 at 06:13:44PM -0400, Sagar Heroorkar wrote: > Hi David, > > I was exploring the ways to add partition into the blob dynamically. > > I followd the following steps. > > 1) say we have 5 partitions. Flash size is 128mb > > norfl...@0,0{ > 1---------- > 2------------------ > 3 > ---- > 5 > partit...@f80000 { > label = "u_booot"; > reg = <0xf80000 0x60000>; > }; > > 2) i am trying to add 6th partition dynamically in uboot. > > I used the the nodeoffset of norfl...@0,0 which is parent offset wher i > want to create 6th partiton. I passed this parent offset to > ret = fdt_add_subnode(blob,nodeoffset, > "partit...@6800000");
You should check ret for errors (< 0) before continuing. > nodeoffset = ret; > ptr[0] = 0x6800000; > ptr[1] = 0x800000; How is ptr declared? > offset = 0x6800000; > regs[0] += size_delta; How is regs[0] initialized? > memcpy(regs, ptr, plen); Where did plen come from? > ret = fdt_setprop(blob, nodeoffset, "reg", regs, plen); You should check for errors here too. > I am printing the the blob later. i see that node is created but the last > partition ie u-boot @ f80000 is going away. > > the blob size is 8000 byes which we built using the > > dtc -S 8000 -R 7 -I dts -O dtb -o file.dtb file.dts > > > Let me know if we need to increase size of the blob or something which i m > missing. > This is going to help a lot if you can reply. For this case where there's a flash partition that's sometimes there and sometimes not, it might be simpler to put all the partitions, including the not-always-present ones in the dts. Then you can use fdt_nop_subnode() to remove the extra one on systems where it's not present. -- David Gibson | I'll have my music baroque, and my code david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_ | _way_ _around_! http://www.ozlabs.org/~dgibson _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot