diff mbox

[U-Boot,v1] arm: socfpga: Enable load zImage and Linux DTB from USB

Message ID 1448507879-3501-1-git-send-email-clsee@altera.com
State Superseded
Delegated to: Marek Vasut
Headers show

Commit Message

Chin Liang See Nov. 26, 2015, 3:17 a.m. UTC
Adding new environment usbload which will load zImage and
Linux DTB from USB mass storage through FAT file system.

Signed-off-by: Chin Liang See <clsee@altera.com>
Cc: Dinh Nguyen <dinguyen@opensource.altera.com>
Cc: Dinh Nguyen <dinh.linux@gmail.com>
Cc: Pavel Machek <pavel@denx.de>
Cc: Marek Vasut <marex@denx.de>
Cc: Stefan Roese <sr@denx.de>
---
 include/configs/socfpga_arria5_socdk.h   | 5 ++++-
 include/configs/socfpga_cyclone5_socdk.h | 5 ++++-
 2 files changed, 8 insertions(+), 2 deletions(-)

Comments

Stefan Roese Nov. 26, 2015, 6:14 a.m. UTC | #1
On 26.11.2015 04:17, Chin Liang See wrote:
> Adding new environment usbload which will load zImage and
> Linux DTB from USB mass storage through FAT file system.
>
> Signed-off-by: Chin Liang See <clsee@altera.com>
> Cc: Dinh Nguyen <dinguyen@opensource.altera.com>
> Cc: Dinh Nguyen <dinh.linux@gmail.com>
> Cc: Pavel Machek <pavel@denx.de>
> Cc: Marek Vasut <marex@denx.de>
> Cc: Stefan Roese <sr@denx.de>
> ---
>   include/configs/socfpga_arria5_socdk.h   | 5 ++++-
>   include/configs/socfpga_cyclone5_socdk.h | 5 ++++-
>   2 files changed, 8 insertions(+), 2 deletions(-)
>
> diff --git a/include/configs/socfpga_arria5_socdk.h b/include/configs/socfpga_arria5_socdk.h
> index 0506336..f488b00 100644
> --- a/include/configs/socfpga_arria5_socdk.h
> +++ b/include/configs/socfpga_arria5_socdk.h
> @@ -100,7 +100,10 @@
>   		"sf read ${fdt_addr} ${qspifdtaddr} ${fdtimagesize};\0" \
>   	"qspiboot=setenv bootargs " CONFIG_BOOTARGS \
>   		" root=${qspiroot} rw rootfstype=${qspirootfstype};"\
> -		"bootm ${loadaddr} - ${fdt_addr}\0"
> +		"bootm ${loadaddr} - ${fdt_addr}\0" \
> +	"usbload=usb reset;" \
> +		"fatload usb 0 ${loadaddr} ${bootimage};" \
> +		"fatload usb 0 ${fdt_addr} ${fdtimage}\0"
>
>   /* The rest of the configuration is shared */
>   #include <configs/socfpga_common.h>
> diff --git a/include/configs/socfpga_cyclone5_socdk.h b/include/configs/socfpga_cyclone5_socdk.h
> index d7369ee..40a4f08 100644
> --- a/include/configs/socfpga_cyclone5_socdk.h
> +++ b/include/configs/socfpga_cyclone5_socdk.h
> @@ -100,7 +100,10 @@
>   		"sf read ${fdt_addr} ${qspifdtaddr} ${fdtimagesize};\0" \
>   	"qspiboot=setenv bootargs " CONFIG_BOOTARGS \
>   		" root=${qspiroot} rw rootfstype=${qspirootfstype};"\
> -		"bootm ${loadaddr} - ${fdt_addr}\0"
> +		"bootm ${loadaddr} - ${fdt_addr}\0" \
> +	"usbload=usb reset;" \
> +		"fatload usb 0 ${loadaddr} ${bootimage};" \
> +		"fatload usb 0 ${fdt_addr} ${fdtimage}\0"

Again, please use the generic FS commands here, e.g. "load" instead
of "fatload".

And doesn't it make sense to consolidate these common, identical
commands into a common file (socfpga_common.h)?

Thanks,
Stefan
Marek Vasut Nov. 26, 2015, 11:04 a.m. UTC | #2
On Thursday, November 26, 2015 at 07:14:56 AM, Stefan Roese wrote:
> On 26.11.2015 04:17, Chin Liang See wrote:
> > Adding new environment usbload which will load zImage and
> > Linux DTB from USB mass storage through FAT file system.
> > 
> > Signed-off-by: Chin Liang See <clsee@altera.com>
> > Cc: Dinh Nguyen <dinguyen@opensource.altera.com>
> > Cc: Dinh Nguyen <dinh.linux@gmail.com>
> > Cc: Pavel Machek <pavel@denx.de>
> > Cc: Marek Vasut <marex@denx.de>
> > Cc: Stefan Roese <sr@denx.de>
> > ---
> > 
> >   include/configs/socfpga_arria5_socdk.h   | 5 ++++-
> >   include/configs/socfpga_cyclone5_socdk.h | 5 ++++-
> >   2 files changed, 8 insertions(+), 2 deletions(-)
> > 
> > diff --git a/include/configs/socfpga_arria5_socdk.h
> > b/include/configs/socfpga_arria5_socdk.h index 0506336..f488b00 100644
> > --- a/include/configs/socfpga_arria5_socdk.h
> > +++ b/include/configs/socfpga_arria5_socdk.h
> > @@ -100,7 +100,10 @@
> > 
> >   		"sf read ${fdt_addr} ${qspifdtaddr} ${fdtimagesize};\0" \
> >   	
> >   	"qspiboot=setenv bootargs " CONFIG_BOOTARGS \
> >   	
> >   		" root=${qspiroot} rw rootfstype=${qspirootfstype};"\
> > 
> > -		"bootm ${loadaddr} - ${fdt_addr}\0"
> > +		"bootm ${loadaddr} - ${fdt_addr}\0" \
> > +	"usbload=usb reset;" \
> > +		"fatload usb 0 ${loadaddr} ${bootimage};" \
> > +		"fatload usb 0 ${fdt_addr} ${fdtimage}\0"
> > 
> >   /* The rest of the configuration is shared */
> >   #include <configs/socfpga_common.h>
> > 
> > diff --git a/include/configs/socfpga_cyclone5_socdk.h
> > b/include/configs/socfpga_cyclone5_socdk.h index d7369ee..40a4f08 100644
> > --- a/include/configs/socfpga_cyclone5_socdk.h
> > +++ b/include/configs/socfpga_cyclone5_socdk.h
> > @@ -100,7 +100,10 @@
> > 
> >   		"sf read ${fdt_addr} ${qspifdtaddr} ${fdtimagesize};\0" \
> >   	
> >   	"qspiboot=setenv bootargs " CONFIG_BOOTARGS \
> >   	
> >   		" root=${qspiroot} rw rootfstype=${qspirootfstype};"\
> > 
> > -		"bootm ${loadaddr} - ${fdt_addr}\0"
> > +		"bootm ${loadaddr} - ${fdt_addr}\0" \
> > +	"usbload=usb reset;" \
> > +		"fatload usb 0 ${loadaddr} ${bootimage};" \
> > +		"fatload usb 0 ${fdt_addr} ${fdtimage}\0"
> 
> Again, please use the generic FS commands here, e.g. "load" instead
> of "fatload".
> 
> And doesn't it make sense to consolidate these common, identical
> commands into a common file (socfpga_common.h)?

Even better -- why not switch to distro_bootcmd and/or update it to support
booting from USB (it probably already does).

Best regards,
Marek Vasut
Chin Liang See Nov. 27, 2015, 1:38 a.m. UTC | #3
Hi Marek,

On Thu, 2015-11-26 at 12:04 +0100, Marek Vasut wrote:
> On Thursday, November 26, 2015 at 07:14:56 AM, Stefan Roese wrote:
> > On 26.11.2015 04:17, Chin Liang See wrote:
> > > Adding new environment usbload which will load zImage and
> > > Linux DTB from USB mass storage through FAT file system.
> > > 
> > > Signed-off-by: Chin Liang See <clsee@altera.com>
> > > Cc: Dinh Nguyen <dinguyen@opensource.altera.com>
> > > Cc: Dinh Nguyen <dinh.linux@gmail.com>
> > > Cc: Pavel Machek <pavel@denx.de>
> > > Cc: Marek Vasut <marex@denx.de>
> > > Cc: Stefan Roese <sr@denx.de>
> > > ---
> > > 
> > >   include/configs/socfpga_arria5_socdk.h   | 5 ++++-
> > >   include/configs/socfpga_cyclone5_socdk.h | 5 ++++-
> > >   2 files changed, 8 insertions(+), 2 deletions(-)
> > > 
> > > diff --git a/include/configs/socfpga_arria5_socdk.h
> > > b/include/configs/socfpga_arria5_socdk.h index 0506336..f488b00
> > > 100644
> > > --- a/include/configs/socfpga_arria5_socdk.h
> > > +++ b/include/configs/socfpga_arria5_socdk.h
> > > @@ -100,7 +100,10 @@
> > > 
> > >   		"sf read ${fdt_addr} ${qspifdtaddr}
> > > ${fdtimagesize};\0" \
> > >   	
> > >   	"qspiboot=setenv bootargs " CONFIG_BOOTARGS \
> > >   	
> > >   		" root=${qspiroot} rw
> > > rootfstype=${qspirootfstype};"\
> > > 
> > > -		"bootm ${loadaddr} - ${fdt_addr}\0"
> > > +		"bootm ${loadaddr} - ${fdt_addr}\0" \
> > > +	"usbload=usb reset;" \
> > > +		"fatload usb 0 ${loadaddr} ${bootimage};" \
> > > +		"fatload usb 0 ${fdt_addr} ${fdtimage}\0"
> > > 
> > >   /* The rest of the configuration is shared */
> > >   #include <configs/socfpga_common.h>
> > > 
> > > diff --git a/include/configs/socfpga_cyclone5_socdk.h
> > > b/include/configs/socfpga_cyclone5_socdk.h index d7369ee..40a4f08
> > > 100644
> > > --- a/include/configs/socfpga_cyclone5_socdk.h
> > > +++ b/include/configs/socfpga_cyclone5_socdk.h
> > > @@ -100,7 +100,10 @@
> > > 
> > >   		"sf read ${fdt_addr} ${qspifdtaddr}
> > > ${fdtimagesize};\0" \
> > >   	
> > >   	"qspiboot=setenv bootargs " CONFIG_BOOTARGS \
> > >   	
> > >   		" root=${qspiroot} rw
> > > rootfstype=${qspirootfstype};"\
> > > 
> > > -		"bootm ${loadaddr} - ${fdt_addr}\0"
> > > +		"bootm ${loadaddr} - ${fdt_addr}\0" \
> > > +	"usbload=usb reset;" \
> > > +		"fatload usb 0 ${loadaddr} ${bootimage};" \
> > > +		"fatload usb 0 ${fdt_addr} ${fdtimage}\0"
> > 
> > Again, please use the generic FS commands here, e.g. "load" instead
> > of "fatload".
> > 
> > And doesn't it make sense to consolidate these common, identical
> > commands into a common file (socfpga_common.h)?
> 
> Even better -- why not switch to distro_bootcmd and/or update it to
> support
> booting from USB (it probably already does).

Thanks for sharing this. I presume we need a script to store the boot
command? Let me read more on this.

Thanks
Chin Liang

> 
> Best regards,
> Marek Vasut
Chin Liang See Nov. 27, 2015, 1:40 a.m. UTC | #4
Hi Stefan,

On Thu, 2015-11-26 at 07:14 +0100, Stefan Roese wrote:
> On 26.11.2015 04:17, Chin Liang See wrote:
> > Adding new environment usbload which will load zImage and
> > Linux DTB from USB mass storage through FAT file system.
> > 
> > Signed-off-by: Chin Liang See <clsee@altera.com>
> > Cc: Dinh Nguyen <dinguyen@opensource.altera.com>
> > Cc: Dinh Nguyen <dinh.linux@gmail.com>
> > Cc: Pavel Machek <pavel@denx.de>
> > Cc: Marek Vasut <marex@denx.de>
> > Cc: Stefan Roese <sr@denx.de>
> > ---
> >   include/configs/socfpga_arria5_socdk.h   | 5 ++++-
> >   include/configs/socfpga_cyclone5_socdk.h | 5 ++++-
> >   2 files changed, 8 insertions(+), 2 deletions(-)
> > 
> > diff --git a/include/configs/socfpga_arria5_socdk.h
> > b/include/configs/socfpga_arria5_socdk.h
> > index 0506336..f488b00 100644
> > --- a/include/configs/socfpga_arria5_socdk.h
> > +++ b/include/configs/socfpga_arria5_socdk.h
> > @@ -100,7 +100,10 @@
> >   		"sf read ${fdt_addr} ${qspifdtaddr}
> > ${fdtimagesize};\0" \
> >   	"qspiboot=setenv bootargs " CONFIG_BOOTARGS \
> >   		" root=${qspiroot} rw
> > rootfstype=${qspirootfstype};"\
> > -		"bootm ${loadaddr} - ${fdt_addr}\0"
> > +		"bootm ${loadaddr} - ${fdt_addr}\0" \
> > +	"usbload=usb reset;" \
> > +		"fatload usb 0 ${loadaddr} ${bootimage};" \
> > +		"fatload usb 0 ${fdt_addr} ${fdtimage}\0"
> > 
> >   /* The rest of the configuration is shared */
> >   #include <configs/socfpga_common.h>
> > diff --git a/include/configs/socfpga_cyclone5_socdk.h
> > b/include/configs/socfpga_cyclone5_socdk.h
> > index d7369ee..40a4f08 100644
> > --- a/include/configs/socfpga_cyclone5_socdk.h
> > +++ b/include/configs/socfpga_cyclone5_socdk.h
> > @@ -100,7 +100,10 @@
> >   		"sf read ${fdt_addr} ${qspifdtaddr}
> > ${fdtimagesize};\0" \
> >   	"qspiboot=setenv bootargs " CONFIG_BOOTARGS \
> >   		" root=${qspiroot} rw
> > rootfstype=${qspirootfstype};"\
> > -		"bootm ${loadaddr} - ${fdt_addr}\0"
> > +		"bootm ${loadaddr} - ${fdt_addr}\0" \
> > +	"usbload=usb reset;" \
> > +		"fatload usb 0 ${loadaddr} ${bootimage};" \
> > +		"fatload usb 0 ${fdt_addr} ${fdtimage}\0"
> 
> Again, please use the generic FS commands here, e.g. "load" instead
> of "fatload".

Oops, forget about the load. Let me fix this.

> 
> And doesn't it make sense to consolidate these common, identical
> commands into a common file (socfpga_common.h)?

Hmmm, currently there are all in board specific configuration as board
to board might have different configuration (e.g. some board might not
have USB).

Thanks
Chin Liang

> 
> Thanks,
> Stefan
>
Marek Vasut Nov. 27, 2015, 10:19 a.m. UTC | #5
On Friday, November 27, 2015 at 02:38:57 AM, Chin Liang See wrote:
> Hi Marek,
> 
> On Thu, 2015-11-26 at 12:04 +0100, Marek Vasut wrote:
> > On Thursday, November 26, 2015 at 07:14:56 AM, Stefan Roese wrote:
> > > On 26.11.2015 04:17, Chin Liang See wrote:
> > > > Adding new environment usbload which will load zImage and
> > > > Linux DTB from USB mass storage through FAT file system.
> > > > 
> > > > Signed-off-by: Chin Liang See <clsee@altera.com>
> > > > Cc: Dinh Nguyen <dinguyen@opensource.altera.com>
> > > > Cc: Dinh Nguyen <dinh.linux@gmail.com>
> > > > Cc: Pavel Machek <pavel@denx.de>
> > > > Cc: Marek Vasut <marex@denx.de>
> > > > Cc: Stefan Roese <sr@denx.de>
> > > > ---
> > > > 
> > > >   include/configs/socfpga_arria5_socdk.h   | 5 ++++-
> > > >   include/configs/socfpga_cyclone5_socdk.h | 5 ++++-
> > > >   2 files changed, 8 insertions(+), 2 deletions(-)
> > > > 
> > > > diff --git a/include/configs/socfpga_arria5_socdk.h
> > > > b/include/configs/socfpga_arria5_socdk.h index 0506336..f488b00
> > > > 100644
> > > > --- a/include/configs/socfpga_arria5_socdk.h
> > > > +++ b/include/configs/socfpga_arria5_socdk.h
> > > > @@ -100,7 +100,10 @@
> > > > 
> > > >   		"sf read ${fdt_addr} ${qspifdtaddr}
> > > > 
> > > > ${fdtimagesize};\0" \
> > > > 
> > > >   	"qspiboot=setenv bootargs " CONFIG_BOOTARGS \
> > > >   	
> > > >   		" root=${qspiroot} rw
> > > > 
> > > > rootfstype=${qspirootfstype};"\
> > > > 
> > > > -		"bootm ${loadaddr} - ${fdt_addr}\0"
> > > > +		"bootm ${loadaddr} - ${fdt_addr}\0" \
> > > > +	"usbload=usb reset;" \
> > > > +		"fatload usb 0 ${loadaddr} ${bootimage};" \
> > > > +		"fatload usb 0 ${fdt_addr} ${fdtimage}\0"
> > > > 
> > > >   /* The rest of the configuration is shared */
> > > >   #include <configs/socfpga_common.h>
> > > > 
> > > > diff --git a/include/configs/socfpga_cyclone5_socdk.h
> > > > b/include/configs/socfpga_cyclone5_socdk.h index d7369ee..40a4f08
> > > > 100644
> > > > --- a/include/configs/socfpga_cyclone5_socdk.h
> > > > +++ b/include/configs/socfpga_cyclone5_socdk.h
> > > > @@ -100,7 +100,10 @@
> > > > 
> > > >   		"sf read ${fdt_addr} ${qspifdtaddr}
> > > > 
> > > > ${fdtimagesize};\0" \
> > > > 
> > > >   	"qspiboot=setenv bootargs " CONFIG_BOOTARGS \
> > > >   	
> > > >   		" root=${qspiroot} rw
> > > > 
> > > > rootfstype=${qspirootfstype};"\
> > > > 
> > > > -		"bootm ${loadaddr} - ${fdt_addr}\0"
> > > > +		"bootm ${loadaddr} - ${fdt_addr}\0" \
> > > > +	"usbload=usb reset;" \
> > > > +		"fatload usb 0 ${loadaddr} ${bootimage};" \
> > > > +		"fatload usb 0 ${fdt_addr} ${fdtimage}\0"
> > > 
> > > Again, please use the generic FS commands here, e.g. "load" instead
> > > of "fatload".
> > > 
> > > And doesn't it make sense to consolidate these common, identical
> > > commands into a common file (socfpga_common.h)?
> > 
> > Even better -- why not switch to distro_bootcmd and/or update it to
> > support
> > booting from USB (it probably already does).
> 
> Thanks for sharing this. I presume we need a script to store the boot
> command? Let me read more on this.

Yeah, it'd be much better than this ad-hoc stuff.

Best regards,
Marek Vasut
diff mbox

Patch

diff --git a/include/configs/socfpga_arria5_socdk.h b/include/configs/socfpga_arria5_socdk.h
index 0506336..f488b00 100644
--- a/include/configs/socfpga_arria5_socdk.h
+++ b/include/configs/socfpga_arria5_socdk.h
@@ -100,7 +100,10 @@ 
 		"sf read ${fdt_addr} ${qspifdtaddr} ${fdtimagesize};\0" \
 	"qspiboot=setenv bootargs " CONFIG_BOOTARGS \
 		" root=${qspiroot} rw rootfstype=${qspirootfstype};"\
-		"bootm ${loadaddr} - ${fdt_addr}\0"
+		"bootm ${loadaddr} - ${fdt_addr}\0" \
+	"usbload=usb reset;" \
+		"fatload usb 0 ${loadaddr} ${bootimage};" \
+		"fatload usb 0 ${fdt_addr} ${fdtimage}\0"
 
 /* The rest of the configuration is shared */
 #include <configs/socfpga_common.h>
diff --git a/include/configs/socfpga_cyclone5_socdk.h b/include/configs/socfpga_cyclone5_socdk.h
index d7369ee..40a4f08 100644
--- a/include/configs/socfpga_cyclone5_socdk.h
+++ b/include/configs/socfpga_cyclone5_socdk.h
@@ -100,7 +100,10 @@ 
 		"sf read ${fdt_addr} ${qspifdtaddr} ${fdtimagesize};\0" \
 	"qspiboot=setenv bootargs " CONFIG_BOOTARGS \
 		" root=${qspiroot} rw rootfstype=${qspirootfstype};"\
-		"bootm ${loadaddr} - ${fdt_addr}\0"
+		"bootm ${loadaddr} - ${fdt_addr}\0" \
+	"usbload=usb reset;" \
+		"fatload usb 0 ${loadaddr} ${bootimage};" \
+		"fatload usb 0 ${fdt_addr} ${fdtimage}\0"
 
 /* The rest of the configuration is shared */
 #include <configs/socfpga_common.h>