mail archive of the barebox mailing list
 help / color / mirror / Atom feed
* [PATCH 1/2] xymodem: select CRC16 from lib
@ 2014-11-12  7:41 Jan Weitzel
  2014-11-12  7:41 ` [PATCH 2/2] ARM: omap: Add bootsource serial to xload Jan Weitzel
  2014-11-12  8:23 ` [PATCH 1/2] xymodem: select CRC16 from lib Sascha Hauer
  0 siblings, 2 replies; 9+ messages in thread
From: Jan Weitzel @ 2014-11-12  7:41 UTC (permalink / raw)
  To: barebox

Signed-off-by: Jan Weitzel <j.weitzel@phytec.de>
---
 commands/Kconfig | 1 -
 lib/Kconfig      | 1 +
 2 files changed, 1 insertion(+), 1 deletion(-)

diff --git a/commands/Kconfig b/commands/Kconfig
index bef5847..494a019 100644
--- a/commands/Kconfig
+++ b/commands/Kconfig
@@ -481,7 +481,6 @@ config CMD_LOADS
 	  Load S-Record file over serial line with offset OFFS.
 
 config CMD_LOADY
-	select CRC16
 	select XYMODEM
 	depends on !CONSOLE_NONE
 	tristate
diff --git a/lib/Kconfig b/lib/Kconfig
index d4095fd..62695f1 100644
--- a/lib/Kconfig
+++ b/lib/Kconfig
@@ -41,6 +41,7 @@ config QSORT
 
 config XYMODEM
 	bool
+	select CRC16
 
 config LIBSCAN
 	bool
-- 
1.9.1


_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [PATCH 2/2] ARM: omap: Add bootsource serial to xload
  2014-11-12  7:41 [PATCH 1/2] xymodem: select CRC16 from lib Jan Weitzel
@ 2014-11-12  7:41 ` Jan Weitzel
  2014-11-12  8:22   ` Sascha Hauer
  2014-11-12  8:23 ` [PATCH 1/2] xymodem: select CRC16 from lib Sascha Hauer
  1 sibling, 1 reply; 9+ messages in thread
From: Jan Weitzel @ 2014-11-12  7:41 UTC (permalink / raw)
  To: barebox

If booted from serial via xmodem, also get barebox.bin per xmodem
For first stage you need the .pblx file instead of MLO.

Signed-off-by: Jan Weitzel <j.weitzel@phytec.de>
---
 arch/arm/mach-omap/Kconfig |  7 +++++++
 arch/arm/mach-omap/xload.c | 46 ++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 53 insertions(+)

diff --git a/arch/arm/mach-omap/Kconfig b/arch/arm/mach-omap/Kconfig
index f9b5ec3..953dd8f 100644
--- a/arch/arm/mach-omap/Kconfig
+++ b/arch/arm/mach-omap/Kconfig
@@ -118,6 +118,13 @@ config OMAP4_USBBOOT
 	  You need the utility program omap4_usbboot to boot from USB.
 	  Please read omap4_usb_booting.txt for more information.
 
+config OMAP_SERIALBOOT
+	bool
+	default y
+	select XYMODEM
+	select FS_RAMFS
+	depends on ARCH_AM33XX && SHELL_NONE
+
 config OMAP_MULTI_BOARDS
 	bool "Allow multiple boards to be selected"
 	select HAVE_DEFAULT_ENVIRONMENT_NEW
diff --git a/arch/arm/mach-omap/xload.c b/arch/arm/mach-omap/xload.c
index e9d7bbb..8d9d84c 100644
--- a/arch/arm/mach-omap/xload.c
+++ b/arch/arm/mach-omap/xload.c
@@ -11,6 +11,7 @@
 #include <sizes.h>
 #include <malloc.h>
 #include <filetype.h>
+#include <xymodem.h>
 #include <mach/generic.h>
 
 struct omap_barebox_part *barebox_part;
@@ -184,6 +185,45 @@ static void *omap4_xload_boot_usb(void){
 	return buf;
 }
 
+static void *omap_serial_boot(void){
+	struct console_device *cdev;
+	int ret;
+	void *buf;
+	int len;
+	int fd;
+
+	/* need temporary place to store file */
+	ret = mount("none", "ramfs", "/", NULL);
+	if (ret < 0) {
+		printf("failed to mount ramfs\n");
+		return NULL;
+	}
+
+	cdev = console_get_first_active();
+	if (!cdev) {
+		printf("failed to get console\n");
+		return NULL;
+	}
+
+	fd = open("/barebox.bin", O_WRONLY | O_CREAT);
+	if (fd < 0) {
+		printf("could not create barebox.bin\n");
+		return NULL;
+	}
+
+	ret = do_load_serial_xmodem(cdev, fd);
+	if (ret < 0) {
+		printf("loadx failed\n");
+		return NULL;
+	}
+
+	buf = read_file("/barebox.bin", &len);
+	if (!buf)
+		printf("could not read barebox.bin from serial\n");
+
+	return buf;
+}
+
 /*
  * Replaces the default shell in xload configuration
  */
@@ -218,6 +258,12 @@ static __noreturn int omap_xload(void)
 		func = omap_xload_boot_spi(barebox_part->nor_offset,
 					barebox_part->nor_size);
 		break;
+	case BOOTSOURCE_SERIAL:
+		if (IS_ENABLED(CONFIG_OMAP_SERIALBOOT)) {
+			printf("booting from serial\n");
+			func = omap_serial_boot();
+			break;
+		}
 	default:
 		printf("unknown boot source. Fall back to nand\n");
 		func = omap_xload_boot_nand(barebox_part->nand_offset,
-- 
1.9.1


_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH 2/2] ARM: omap: Add bootsource serial to xload
  2014-11-12  7:41 ` [PATCH 2/2] ARM: omap: Add bootsource serial to xload Jan Weitzel
@ 2014-11-12  8:22   ` Sascha Hauer
  2014-11-12  9:24     ` Jan Weitzel
  0 siblings, 1 reply; 9+ messages in thread
From: Sascha Hauer @ 2014-11-12  8:22 UTC (permalink / raw)
  To: Jan Weitzel; +Cc: barebox

Hi Jan,

On Wed, Nov 12, 2014 at 08:41:54AM +0100, Jan Weitzel wrote:
> If booted from serial via xmodem, also get barebox.bin per xmodem
> For first stage you need the .pblx file instead of MLO.
> 
> Signed-off-by: Jan Weitzel <j.weitzel@phytec.de>
> ---
>  arch/arm/mach-omap/Kconfig |  7 +++++++
>  arch/arm/mach-omap/xload.c | 46 ++++++++++++++++++++++++++++++++++++++++++++++
>  2 files changed, 53 insertions(+)
> 
> diff --git a/arch/arm/mach-omap/Kconfig b/arch/arm/mach-omap/Kconfig
> index f9b5ec3..953dd8f 100644
> --- a/arch/arm/mach-omap/Kconfig
> +++ b/arch/arm/mach-omap/Kconfig
> @@ -118,6 +118,13 @@ config OMAP4_USBBOOT
>  	  You need the utility program omap4_usbboot to boot from USB.
>  	  Please read omap4_usb_booting.txt for more information.
>  
> +config OMAP_SERIALBOOT
> +	bool
> +	default y

No default y please. Better keep it disabled by default because the
OMAP4 xload configs are quiet tight I think.

Sascha


> +	select XYMODEM
> +	select FS_RAMFS
> +	depends on ARCH_AM33XX && SHELL_NONE
> +
>  config OMAP_MULTI_BOARDS
>  	bool "Allow multiple boards to be selected"
>  	select HAVE_DEFAULT_ENVIRONMENT_NEW
> diff --git a/arch/arm/mach-omap/xload.c b/arch/arm/mach-omap/xload.c
> index e9d7bbb..8d9d84c 100644
> --- a/arch/arm/mach-omap/xload.c
> +++ b/arch/arm/mach-omap/xload.c
> @@ -11,6 +11,7 @@
>  #include <sizes.h>
>  #include <malloc.h>
>  #include <filetype.h>
> +#include <xymodem.h>
>  #include <mach/generic.h>
>  
>  struct omap_barebox_part *barebox_part;
> @@ -184,6 +185,45 @@ static void *omap4_xload_boot_usb(void){
>  	return buf;
>  }
>  
> +static void *omap_serial_boot(void){
> +	struct console_device *cdev;
> +	int ret;
> +	void *buf;
> +	int len;
> +	int fd;
> +
> +	/* need temporary place to store file */
> +	ret = mount("none", "ramfs", "/", NULL);
> +	if (ret < 0) {
> +		printf("failed to mount ramfs\n");
> +		return NULL;
> +	}
> +
> +	cdev = console_get_first_active();
> +	if (!cdev) {
> +		printf("failed to get console\n");
> +		return NULL;
> +	}
> +
> +	fd = open("/barebox.bin", O_WRONLY | O_CREAT);
> +	if (fd < 0) {
> +		printf("could not create barebox.bin\n");
> +		return NULL;
> +	}
> +
> +	ret = do_load_serial_xmodem(cdev, fd);
> +	if (ret < 0) {
> +		printf("loadx failed\n");
> +		return NULL;
> +	}
> +
> +	buf = read_file("/barebox.bin", &len);
> +	if (!buf)
> +		printf("could not read barebox.bin from serial\n");
> +
> +	return buf;
> +}
> +
>  /*
>   * Replaces the default shell in xload configuration
>   */
> @@ -218,6 +258,12 @@ static __noreturn int omap_xload(void)
>  		func = omap_xload_boot_spi(barebox_part->nor_offset,
>  					barebox_part->nor_size);
>  		break;
> +	case BOOTSOURCE_SERIAL:
> +		if (IS_ENABLED(CONFIG_OMAP_SERIALBOOT)) {
> +			printf("booting from serial\n");
> +			func = omap_serial_boot();
> +			break;
> +		}
>  	default:
>  		printf("unknown boot source. Fall back to nand\n");
>  		func = omap_xload_boot_nand(barebox_part->nand_offset,
> -- 
> 1.9.1
> 
> 
> _______________________________________________
> barebox mailing list
> barebox@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/barebox
> 

-- 
Pengutronix e.K.                           |                             |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH 1/2] xymodem: select CRC16 from lib
  2014-11-12  7:41 [PATCH 1/2] xymodem: select CRC16 from lib Jan Weitzel
  2014-11-12  7:41 ` [PATCH 2/2] ARM: omap: Add bootsource serial to xload Jan Weitzel
@ 2014-11-12  8:23 ` Sascha Hauer
  1 sibling, 0 replies; 9+ messages in thread
From: Sascha Hauer @ 2014-11-12  8:23 UTC (permalink / raw)
  To: Jan Weitzel; +Cc: barebox

On Wed, Nov 12, 2014 at 08:41:53AM +0100, Jan Weitzel wrote:
> Signed-off-by: Jan Weitzel <j.weitzel@phytec.de>
> ---
>  commands/Kconfig | 1 -
>  lib/Kconfig      | 1 +
>  2 files changed, 1 insertion(+), 1 deletion(-)

Applied this one, thanks

Sascha

> 
> diff --git a/commands/Kconfig b/commands/Kconfig
> index bef5847..494a019 100644
> --- a/commands/Kconfig
> +++ b/commands/Kconfig
> @@ -481,7 +481,6 @@ config CMD_LOADS
>  	  Load S-Record file over serial line with offset OFFS.
>  
>  config CMD_LOADY
> -	select CRC16
>  	select XYMODEM
>  	depends on !CONSOLE_NONE
>  	tristate
> diff --git a/lib/Kconfig b/lib/Kconfig
> index d4095fd..62695f1 100644
> --- a/lib/Kconfig
> +++ b/lib/Kconfig
> @@ -41,6 +41,7 @@ config QSORT
>  
>  config XYMODEM
>  	bool
> +	select CRC16
>  
>  config LIBSCAN
>  	bool
> -- 
> 1.9.1
> 
> 
> _______________________________________________
> barebox mailing list
> barebox@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/barebox
> 

-- 
Pengutronix e.K.                           |                             |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH 2/2] ARM: omap: Add bootsource serial to xload
  2014-11-12  8:22   ` Sascha Hauer
@ 2014-11-12  9:24     ` Jan Weitzel
  2014-11-13  7:37       ` Sascha Hauer
  0 siblings, 1 reply; 9+ messages in thread
From: Jan Weitzel @ 2014-11-12  9:24 UTC (permalink / raw)
  To: Sascha Hauer; +Cc: barebox

Am 12.11.2014 um 09:22 schrieb Sascha Hauer:
> Hi Jan,
>
> On Wed, Nov 12, 2014 at 08:41:54AM +0100, Jan Weitzel wrote:
>> If booted from serial via xmodem, also get barebox.bin per xmodem
>> For first stage you need the .pblx file instead of MLO.
>>
>> Signed-off-by: Jan Weitzel <j.weitzel@phytec.de>
>> ---
>>   arch/arm/mach-omap/Kconfig |  7 +++++++
>>   arch/arm/mach-omap/xload.c | 46 ++++++++++++++++++++++++++++++++++++++++++++++
>>   2 files changed, 53 insertions(+)
>>
>> diff --git a/arch/arm/mach-omap/Kconfig b/arch/arm/mach-omap/Kconfig
>> index f9b5ec3..953dd8f 100644
>> --- a/arch/arm/mach-omap/Kconfig
>> +++ b/arch/arm/mach-omap/Kconfig
>> @@ -118,6 +118,13 @@ config OMAP4_USBBOOT
>>   	  You need the utility program omap4_usbboot to boot from USB.
>>   	  Please read omap4_usb_booting.txt for more information.
>>   
>> +config OMAP_SERIALBOOT
>> +	bool
>> +	default y
> No default y please. Better keep it disabled by default because the
> OMAP4 xload configs are quiet tight I think.

Is adding it to am335x_mlo_defconfig ok? Because of the size I added the
ARCH_AM33XX dependency.

Jan

>
> Sascha
>
>
>> +	select XYMODEM
>> +	select FS_RAMFS
>> +	depends on ARCH_AM33XX && SHELL_NONE
>> +
>>   config OMAP_MULTI_BOARDS
>>   	bool "Allow multiple boards to be selected"
>>   	select HAVE_DEFAULT_ENVIRONMENT_NEW
>> diff --git a/arch/arm/mach-omap/xload.c b/arch/arm/mach-omap/xload.c
>> index e9d7bbb..8d9d84c 100644
>> --- a/arch/arm/mach-omap/xload.c
>> +++ b/arch/arm/mach-omap/xload.c
>> @@ -11,6 +11,7 @@
>>   #include <sizes.h>
>>   #include <malloc.h>
>>   #include <filetype.h>
>> +#include <xymodem.h>
>>   #include <mach/generic.h>
>>   
>>   struct omap_barebox_part *barebox_part;
>> @@ -184,6 +185,45 @@ static void *omap4_xload_boot_usb(void){
>>   	return buf;
>>   }
>>   
>> +static void *omap_serial_boot(void){
>> +	struct console_device *cdev;
>> +	int ret;
>> +	void *buf;
>> +	int len;
>> +	int fd;
>> +
>> +	/* need temporary place to store file */
>> +	ret = mount("none", "ramfs", "/", NULL);
>> +	if (ret < 0) {
>> +		printf("failed to mount ramfs\n");
>> +		return NULL;
>> +	}
>> +
>> +	cdev = console_get_first_active();
>> +	if (!cdev) {
>> +		printf("failed to get console\n");
>> +		return NULL;
>> +	}
>> +
>> +	fd = open("/barebox.bin", O_WRONLY | O_CREAT);
>> +	if (fd < 0) {
>> +		printf("could not create barebox.bin\n");
>> +		return NULL;
>> +	}
>> +
>> +	ret = do_load_serial_xmodem(cdev, fd);
>> +	if (ret < 0) {
>> +		printf("loadx failed\n");
>> +		return NULL;
>> +	}
>> +
>> +	buf = read_file("/barebox.bin", &len);
>> +	if (!buf)
>> +		printf("could not read barebox.bin from serial\n");
>> +
>> +	return buf;
>> +}
>> +
>>   /*
>>    * Replaces the default shell in xload configuration
>>    */
>> @@ -218,6 +258,12 @@ static __noreturn int omap_xload(void)
>>   		func = omap_xload_boot_spi(barebox_part->nor_offset,
>>   					barebox_part->nor_size);
>>   		break;
>> +	case BOOTSOURCE_SERIAL:
>> +		if (IS_ENABLED(CONFIG_OMAP_SERIALBOOT)) {
>> +			printf("booting from serial\n");
>> +			func = omap_serial_boot();
>> +			break;
>> +		}
>>   	default:
>>   		printf("unknown boot source. Fall back to nand\n");
>>   		func = omap_xload_boot_nand(barebox_part->nand_offset,
>> -- 
>> 1.9.1
>>
>>
>> _______________________________________________
>> barebox mailing list
>> barebox@lists.infradead.org
>> http://lists.infradead.org/mailman/listinfo/barebox
>>


_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH 2/2] ARM: omap: Add bootsource serial to xload
  2014-11-12  9:24     ` Jan Weitzel
@ 2014-11-13  7:37       ` Sascha Hauer
  2014-11-13 12:31         ` [PATCH v2] " Jan Weitzel
  2014-11-13 12:34         ` [PATCH 2/2] " Jan Weitzel
  0 siblings, 2 replies; 9+ messages in thread
From: Sascha Hauer @ 2014-11-13  7:37 UTC (permalink / raw)
  To: Jan Weitzel; +Cc: barebox

On Wed, Nov 12, 2014 at 10:24:48AM +0100, Jan Weitzel wrote:
> Am 12.11.2014 um 09:22 schrieb Sascha Hauer:
> >Hi Jan,
> >
> >On Wed, Nov 12, 2014 at 08:41:54AM +0100, Jan Weitzel wrote:
> >>If booted from serial via xmodem, also get barebox.bin per xmodem
> >>For first stage you need the .pblx file instead of MLO.
> >>
> >>Signed-off-by: Jan Weitzel <j.weitzel@phytec.de>
> >>---
> >>  arch/arm/mach-omap/Kconfig |  7 +++++++
> >>  arch/arm/mach-omap/xload.c | 46 ++++++++++++++++++++++++++++++++++++++++++++++
> >>  2 files changed, 53 insertions(+)
> >>
> >>diff --git a/arch/arm/mach-omap/Kconfig b/arch/arm/mach-omap/Kconfig
> >>index f9b5ec3..953dd8f 100644
> >>--- a/arch/arm/mach-omap/Kconfig
> >>+++ b/arch/arm/mach-omap/Kconfig
> >>@@ -118,6 +118,13 @@ config OMAP4_USBBOOT
> >>  	  You need the utility program omap4_usbboot to boot from USB.
> >>  	  Please read omap4_usb_booting.txt for more information.
> >>+config OMAP_SERIALBOOT
> >>+	bool
> >>+	default y
> >No default y please. Better keep it disabled by default because the
> >OMAP4 xload configs are quiet tight I think.
> 
> Is adding it to am335x_mlo_defconfig ok? Because of the size I added the
> ARCH_AM33XX dependency.

I overlooked this dependency. So the dependency is only because of the
binary size and it's otherwise usable on Omap aswell? In this case I
suggest to drop the dependency. And yes, ok to add it to the
am335x_mlo_defconfig.

Sascha

-- 
Pengutronix e.K.                           |                             |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [PATCH v2] ARM: omap: Add bootsource serial to xload
  2014-11-13  7:37       ` Sascha Hauer
@ 2014-11-13 12:31         ` Jan Weitzel
  2014-11-17  7:34           ` Sascha Hauer
  2014-11-13 12:34         ` [PATCH 2/2] " Jan Weitzel
  1 sibling, 1 reply; 9+ messages in thread
From: Jan Weitzel @ 2014-11-13 12:31 UTC (permalink / raw)
  To: barebox

If booted from serial via xmodem, also get barebox.bin per xmodem
For first stage you need the .pblx file instead of MLO.

Add serial boot to am335x_mlo_defconfig introduce some cleanups
by savedefconfig

Signed-off-by: Jan Weitzel <j.weitzel@phytec.de>
---
v2: make serialboot configurable
    select it in am335x_mlo_defconfig

 arch/arm/configs/am335x_mlo_defconfig |  4 +--
 arch/arm/mach-omap/Kconfig            |  9 +++++++
 arch/arm/mach-omap/xload.c            | 46 +++++++++++++++++++++++++++++++++++
 3 files changed, 56 insertions(+), 3 deletions(-)

diff --git a/arch/arm/configs/am335x_mlo_defconfig b/arch/arm/configs/am335x_mlo_defconfig
index d691570..9734da6 100644
--- a/arch/arm/configs/am335x_mlo_defconfig
+++ b/arch/arm/configs/am335x_mlo_defconfig
@@ -1,12 +1,12 @@
 CONFIG_ARCH_OMAP=y
 CONFIG_OMAP_BUILD_IFT=y
+CONFIG_OMAP_SERIALBOOT=y
 CONFIG_OMAP_MULTI_BOARDS=y
 CONFIG_MACH_AFI_GF=y
 CONFIG_MACH_BEAGLEBONE=y
 CONFIG_MACH_PCM051=y
 CONFIG_MACH_PFLA03=y
 CONFIG_THUMB2_BAREBOX=y
-# CONFIG_CMD_ARM_CPUINFO is not set
 # CONFIG_MEMINFO is not set
 CONFIG_MMU=y
 CONFIG_TEXT_BASE=0x0
@@ -37,10 +37,8 @@ CONFIG_NAND_OMAP_GPMC=y
 CONFIG_MCI=y
 # CONFIG_MCI_WRITE is not set
 CONFIG_MCI_OMAP_HSMMC=y
-CONFIG_PINCTRL=y
 CONFIG_PINCTRL_SINGLE=y
 CONFIG_BUS_OMAP_GPMC=y
-# CONFIG_FS_RAMFS is not set
 # CONFIG_FS_DEVFS is not set
 CONFIG_FS_FAT=y
 CONFIG_FS_FAT_LFN=y
diff --git a/arch/arm/mach-omap/Kconfig b/arch/arm/mach-omap/Kconfig
index f9b5ec3..0996ed9 100644
--- a/arch/arm/mach-omap/Kconfig
+++ b/arch/arm/mach-omap/Kconfig
@@ -118,6 +118,15 @@ config OMAP4_USBBOOT
 	  You need the utility program omap4_usbboot to boot from USB.
 	  Please read omap4_usb_booting.txt for more information.
 
+config OMAP_SERIALBOOT
+	bool "enable booting from serial"
+	select XYMODEM
+	select FS_RAMFS
+	depends on ARCH_AM33XX && SHELL_NONE
+	help
+	  Say Y here if you want to load the 2nd stage barebox.bin with
+	  xmodem after booting from serial line.
+
 config OMAP_MULTI_BOARDS
 	bool "Allow multiple boards to be selected"
 	select HAVE_DEFAULT_ENVIRONMENT_NEW
diff --git a/arch/arm/mach-omap/xload.c b/arch/arm/mach-omap/xload.c
index e9d7bbb..8d9d84c 100644
--- a/arch/arm/mach-omap/xload.c
+++ b/arch/arm/mach-omap/xload.c
@@ -11,6 +11,7 @@
 #include <sizes.h>
 #include <malloc.h>
 #include <filetype.h>
+#include <xymodem.h>
 #include <mach/generic.h>
 
 struct omap_barebox_part *barebox_part;
@@ -184,6 +185,45 @@ static void *omap4_xload_boot_usb(void){
 	return buf;
 }
 
+static void *omap_serial_boot(void){
+	struct console_device *cdev;
+	int ret;
+	void *buf;
+	int len;
+	int fd;
+
+	/* need temporary place to store file */
+	ret = mount("none", "ramfs", "/", NULL);
+	if (ret < 0) {
+		printf("failed to mount ramfs\n");
+		return NULL;
+	}
+
+	cdev = console_get_first_active();
+	if (!cdev) {
+		printf("failed to get console\n");
+		return NULL;
+	}
+
+	fd = open("/barebox.bin", O_WRONLY | O_CREAT);
+	if (fd < 0) {
+		printf("could not create barebox.bin\n");
+		return NULL;
+	}
+
+	ret = do_load_serial_xmodem(cdev, fd);
+	if (ret < 0) {
+		printf("loadx failed\n");
+		return NULL;
+	}
+
+	buf = read_file("/barebox.bin", &len);
+	if (!buf)
+		printf("could not read barebox.bin from serial\n");
+
+	return buf;
+}
+
 /*
  * Replaces the default shell in xload configuration
  */
@@ -218,6 +258,12 @@ static __noreturn int omap_xload(void)
 		func = omap_xload_boot_spi(barebox_part->nor_offset,
 					barebox_part->nor_size);
 		break;
+	case BOOTSOURCE_SERIAL:
+		if (IS_ENABLED(CONFIG_OMAP_SERIALBOOT)) {
+			printf("booting from serial\n");
+			func = omap_serial_boot();
+			break;
+		}
 	default:
 		printf("unknown boot source. Fall back to nand\n");
 		func = omap_xload_boot_nand(barebox_part->nand_offset,
-- 
1.9.1


_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH 2/2] ARM: omap: Add bootsource serial to xload
  2014-11-13  7:37       ` Sascha Hauer
  2014-11-13 12:31         ` [PATCH v2] " Jan Weitzel
@ 2014-11-13 12:34         ` Jan Weitzel
  1 sibling, 0 replies; 9+ messages in thread
From: Jan Weitzel @ 2014-11-13 12:34 UTC (permalink / raw)
  To: Sascha Hauer; +Cc: barebox


Am 13.11.2014 um 08:37 schrieb Sascha Hauer:
> On Wed, Nov 12, 2014 at 10:24:48AM +0100, Jan Weitzel wrote:
>> Am 12.11.2014 um 09:22 schrieb Sascha Hauer:
>>> Hi Jan,
>>>
>>> On Wed, Nov 12, 2014 at 08:41:54AM +0100, Jan Weitzel wrote:
>>>> If booted from serial via xmodem, also get barebox.bin per xmodem
>>>> For first stage you need the .pblx file instead of MLO.
>>>>
>>>> Signed-off-by: Jan Weitzel <j.weitzel@phytec.de>
>>>> ---
>>>>   arch/arm/mach-omap/Kconfig |  7 +++++++
>>>>   arch/arm/mach-omap/xload.c | 46 ++++++++++++++++++++++++++++++++++++++++++++++
>>>>   2 files changed, 53 insertions(+)
>>>>
>>>> diff --git a/arch/arm/mach-omap/Kconfig b/arch/arm/mach-omap/Kconfig
>>>> index f9b5ec3..953dd8f 100644
>>>> --- a/arch/arm/mach-omap/Kconfig
>>>> +++ b/arch/arm/mach-omap/Kconfig
>>>> @@ -118,6 +118,13 @@ config OMAP4_USBBOOT
>>>>   	  You need the utility program omap4_usbboot to boot from USB.
>>>>   	  Please read omap4_usb_booting.txt for more information.
>>>> +config OMAP_SERIALBOOT
>>>> +	bool
>>>> +	default y
>>> No default y please. Better keep it disabled by default because the
>>> OMAP4 xload configs are quiet tight I think.
>> Is adding it to am335x_mlo_defconfig ok? Because of the size I added the
>> ARCH_AM33XX dependency.
> I overlooked this dependency. So the dependency is only because of the
> binary size and it's otherwise usable on Omap aswell? In this case I
> suggest to drop the dependency. And yes, ok to add it to the
> am335x_mlo_defconfig.

Only AM335x set BOOTSOURCE_SERIAL by now
Jan

>
> Sascha
>


_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH v2] ARM: omap: Add bootsource serial to xload
  2014-11-13 12:31         ` [PATCH v2] " Jan Weitzel
@ 2014-11-17  7:34           ` Sascha Hauer
  0 siblings, 0 replies; 9+ messages in thread
From: Sascha Hauer @ 2014-11-17  7:34 UTC (permalink / raw)
  To: Jan Weitzel; +Cc: barebox

On Thu, Nov 13, 2014 at 01:31:46PM +0100, Jan Weitzel wrote:
> If booted from serial via xmodem, also get barebox.bin per xmodem
> For first stage you need the .pblx file instead of MLO.
> 
> Add serial boot to am335x_mlo_defconfig introduce some cleanups
> by savedefconfig
> 
> Signed-off-by: Jan Weitzel <j.weitzel@phytec.de>

Applied, thanks

Sascha

> ---
> v2: make serialboot configurable
>     select it in am335x_mlo_defconfig
> 
>  arch/arm/configs/am335x_mlo_defconfig |  4 +--
>  arch/arm/mach-omap/Kconfig            |  9 +++++++
>  arch/arm/mach-omap/xload.c            | 46 +++++++++++++++++++++++++++++++++++
>  3 files changed, 56 insertions(+), 3 deletions(-)
> 
> diff --git a/arch/arm/configs/am335x_mlo_defconfig b/arch/arm/configs/am335x_mlo_defconfig
> index d691570..9734da6 100644
> --- a/arch/arm/configs/am335x_mlo_defconfig
> +++ b/arch/arm/configs/am335x_mlo_defconfig
> @@ -1,12 +1,12 @@
>  CONFIG_ARCH_OMAP=y
>  CONFIG_OMAP_BUILD_IFT=y
> +CONFIG_OMAP_SERIALBOOT=y
>  CONFIG_OMAP_MULTI_BOARDS=y
>  CONFIG_MACH_AFI_GF=y
>  CONFIG_MACH_BEAGLEBONE=y
>  CONFIG_MACH_PCM051=y
>  CONFIG_MACH_PFLA03=y
>  CONFIG_THUMB2_BAREBOX=y
> -# CONFIG_CMD_ARM_CPUINFO is not set
>  # CONFIG_MEMINFO is not set
>  CONFIG_MMU=y
>  CONFIG_TEXT_BASE=0x0
> @@ -37,10 +37,8 @@ CONFIG_NAND_OMAP_GPMC=y
>  CONFIG_MCI=y
>  # CONFIG_MCI_WRITE is not set
>  CONFIG_MCI_OMAP_HSMMC=y
> -CONFIG_PINCTRL=y
>  CONFIG_PINCTRL_SINGLE=y
>  CONFIG_BUS_OMAP_GPMC=y
> -# CONFIG_FS_RAMFS is not set
>  # CONFIG_FS_DEVFS is not set
>  CONFIG_FS_FAT=y
>  CONFIG_FS_FAT_LFN=y
> diff --git a/arch/arm/mach-omap/Kconfig b/arch/arm/mach-omap/Kconfig
> index f9b5ec3..0996ed9 100644
> --- a/arch/arm/mach-omap/Kconfig
> +++ b/arch/arm/mach-omap/Kconfig
> @@ -118,6 +118,15 @@ config OMAP4_USBBOOT
>  	  You need the utility program omap4_usbboot to boot from USB.
>  	  Please read omap4_usb_booting.txt for more information.
>  
> +config OMAP_SERIALBOOT
> +	bool "enable booting from serial"
> +	select XYMODEM
> +	select FS_RAMFS
> +	depends on ARCH_AM33XX && SHELL_NONE
> +	help
> +	  Say Y here if you want to load the 2nd stage barebox.bin with
> +	  xmodem after booting from serial line.
> +
>  config OMAP_MULTI_BOARDS
>  	bool "Allow multiple boards to be selected"
>  	select HAVE_DEFAULT_ENVIRONMENT_NEW
> diff --git a/arch/arm/mach-omap/xload.c b/arch/arm/mach-omap/xload.c
> index e9d7bbb..8d9d84c 100644
> --- a/arch/arm/mach-omap/xload.c
> +++ b/arch/arm/mach-omap/xload.c
> @@ -11,6 +11,7 @@
>  #include <sizes.h>
>  #include <malloc.h>
>  #include <filetype.h>
> +#include <xymodem.h>
>  #include <mach/generic.h>
>  
>  struct omap_barebox_part *barebox_part;
> @@ -184,6 +185,45 @@ static void *omap4_xload_boot_usb(void){
>  	return buf;
>  }
>  
> +static void *omap_serial_boot(void){
> +	struct console_device *cdev;
> +	int ret;
> +	void *buf;
> +	int len;
> +	int fd;
> +
> +	/* need temporary place to store file */
> +	ret = mount("none", "ramfs", "/", NULL);
> +	if (ret < 0) {
> +		printf("failed to mount ramfs\n");
> +		return NULL;
> +	}
> +
> +	cdev = console_get_first_active();
> +	if (!cdev) {
> +		printf("failed to get console\n");
> +		return NULL;
> +	}
> +
> +	fd = open("/barebox.bin", O_WRONLY | O_CREAT);
> +	if (fd < 0) {
> +		printf("could not create barebox.bin\n");
> +		return NULL;
> +	}
> +
> +	ret = do_load_serial_xmodem(cdev, fd);
> +	if (ret < 0) {
> +		printf("loadx failed\n");
> +		return NULL;
> +	}
> +
> +	buf = read_file("/barebox.bin", &len);
> +	if (!buf)
> +		printf("could not read barebox.bin from serial\n");
> +
> +	return buf;
> +}
> +
>  /*
>   * Replaces the default shell in xload configuration
>   */
> @@ -218,6 +258,12 @@ static __noreturn int omap_xload(void)
>  		func = omap_xload_boot_spi(barebox_part->nor_offset,
>  					barebox_part->nor_size);
>  		break;
> +	case BOOTSOURCE_SERIAL:
> +		if (IS_ENABLED(CONFIG_OMAP_SERIALBOOT)) {
> +			printf("booting from serial\n");
> +			func = omap_serial_boot();
> +			break;
> +		}
>  	default:
>  		printf("unknown boot source. Fall back to nand\n");
>  		func = omap_xload_boot_nand(barebox_part->nand_offset,
> -- 
> 1.9.1
> 
> 
> _______________________________________________
> barebox mailing list
> barebox@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/barebox
> 

-- 
Pengutronix e.K.                           |                             |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2014-11-17  7:34 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-11-12  7:41 [PATCH 1/2] xymodem: select CRC16 from lib Jan Weitzel
2014-11-12  7:41 ` [PATCH 2/2] ARM: omap: Add bootsource serial to xload Jan Weitzel
2014-11-12  8:22   ` Sascha Hauer
2014-11-12  9:24     ` Jan Weitzel
2014-11-13  7:37       ` Sascha Hauer
2014-11-13 12:31         ` [PATCH v2] " Jan Weitzel
2014-11-17  7:34           ` Sascha Hauer
2014-11-13 12:34         ` [PATCH 2/2] " Jan Weitzel
2014-11-12  8:23 ` [PATCH 1/2] xymodem: select CRC16 from lib Sascha Hauer

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox