Hi Simon,

On Sat, Jul 21, 2012 at 11:40:15AM +0200, Simon Baatz wrote:
> On Sat, Jul 21, 2012 at 10:30:48AM +0200, DrEagle wrote:
> > Hi Simon and Luka,
> > 
> > Le 21/07/2012 10:03, Luka Perkov a écrit :
> > > On Fri, Jul 20, 2012 at 09:59:15PM +0200, Simon Baatz wrote:
> > >> -#define CONFIG_MACH_TYPE        MACH_TYPE_NAS6210
> > >> +#define CONFIG_OF_LIBFDT
> > > 
> > > Do we need to change environment variables too? This is how I'm booting 
> > > OpenWrt
> > > with linux 3.3 now:
> > 
> > Is it not better to have the same mtdparts as in the original stock
> > firmware and in the next linux kernel ?

I dont want to use firmware layout that the manufacturer decided to put
in stock firmware. If manufacturer invested more time making good code
they would make sure to upstream their u-boot and linux code. That is
why I dont see any reason to respect original firmware layout.

> You both raise good points here. The mtd partitions can be and also
> currently are defined in the default FDT.  That's probably where the
> kernel should get the partitions from.  However, this means that we
> have the problem that the partitions may be defined differently in
> U-Boot and the kernel, which is a source of errors.
> 
> In my opinion, U-Boot should be able to get the mtd partitions from
> the FDT.  I just had a short look, but could not find such a
> functionality in U-Boot nor any discussions about it.
> 
> > Then we will just need small specifics distribution patch to customize
> > the upstream uboot for the specifics boot params:
> > In Debian, we need the initrd for raid support system bootup.
> 
> Any of these settings here can be overriden by the U-Boot
> configuration. Thus, there is no need to modify U-Boot itself.

I agree.

> > It is better to have the same partition scheme in next linux kernel and
> > in uboot, whatever it will be.
> > And better to be more closer from the original one, to make end-user
> > upgrade process simpler.
> 
> As said, it would be even better to ensure this by letting U-Boot
> learn the partitions from the FDT.
> 
> > An alternative will be to have parameters, if possible, to put uboot
> > distribution wide compatible.
> > May be a bootstrap call (bootscript call from uboot) or another tweak ?
> > 
> > > diff --git a/include/configs/ib62x0.h b/include/configs/ib62x0.h
> > > index 85856f2..b1c11fd 100644
> > > --- a/include/configs/ib62x0.h
> > > +++ b/include/configs/ib62x0.h
> > > @@ -87,25 +87,23 @@
> > >   */
> > >  #define CONFIG_BOOTCOMMAND \
> > >         "setenv bootargs ${console} ${mtdparts} ${bootargs_root}; "     \
> > > -       "ubi part root; "                                               \
> > > -       "ubifsmount root; "                                             \
> > > +       "ubi part rootfs; "                                             \
> > > +       "ubifsmount rootfs; "                                           \
> > >         "ubifsload 0x800000 ${kernel}; "                                \
> > > -       "ubifsload 0x1100000 ${initrd}; "                               \
> > > -       "bootm 0x800000 0x1100000"
> > > +       "bootm 0x800000"
> > >  
> > >  #define CONFIG_MTDPARTS                                \
> > >         "mtdparts=orion_nand:"                  \
> > >         "0x80000@0x0(uboot),"                   \
> > >         "0x20000@0x80000(uboot_env),"           \
> > > -       "-@0xa0000(root)\0"
> > > +       "-@0xa0000(rootfs)\0"
> > >  
> > >  #define CONFIG_EXTRA_ENV_SETTINGS                                      \
> > >         "console=console=ttyS0,115200\0"                                \
> > >         "mtdids=nand0=orion_nand\0"                                     \
> > >         "mtdparts="CONFIG_MTDPARTS                                      \
> > >         "kernel=/boot/uImage\0"                                         \
> > > -       "initrd=/boot/uInitrd\0"                                        \
> > > -       "bootargs_root=ubi.mtd=2 root=ubi0:root rootfstype=ubifs\0"
> > > +       "bootargs_root=noinitrd ubi.mtd=2 root=ubi0:rootfs 
> > > rootfstype=ubifs\0"
> > >  
> > >  /*
> > >   * Ethernet driver configuration
> > > 
> 
> Currently I use the following to boot usind a dtb from the first hard
> drive:
> 
> bootcmd=setenv bootargs $(bootargs_console) $(bootargs_root); \
>       run bootcmd_ide; \
>       run fdt_ide; \
>       bootm 0x00800000 0x01100000 0x01000000;                             
> bootcmd_ide=ide reset; \
>       ext2load ide 0:1 0x00800000 /boot/uImage; \
>       ext2load ide 0:1 0x01100000 /boot/uInitrd \                             
>                          
> fdt_ide=ext2load ide 0:1 0x01000000 /boot/kirkwood-ib62x0.dtb; \
>       fdt addr 0x1000000; fdt resize; fdt chosen                              
>                          
> 
> This leaves 8MB for the kernel which is enough for me. But this is in
> "works for me" state, I haven't really invested time to find out how
> other boards do that.  I also like to set the kernel bootargs from
> U-Boot and not from the dtb (using fdt chosen).  The mtd partitions
> are not passed via cmdline, but the values from the dtb are taken.

Thank you for this. As promised I'll try to boot 3.5 next week...

Regards,
Luka
_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to