[PATCH] [RFC] omap: xload - try to get partition from dts

Christoph Fritz chf.fritz at googlemail.com
Mon May 12 08:21:41 PDT 2014


On Mon, 2014-05-12 at 16:57 +0200, Christoph Fritz wrote:
> dev_add_bb_dev("x", "bbx") doesn't work here anymore.
> Since pcm051 supports dts, nand boot works again with this patch.
> 
> Any ideas?
> ---
>  arch/arm/mach-omap/xload.c |   26 +++++++++++++++++---------
>  1 file changed, 17 insertions(+), 9 deletions(-)
> 
> diff --git a/arch/arm/mach-omap/xload.c b/arch/arm/mach-omap/xload.c
> index a309450..c360568 100644
> --- a/arch/arm/mach-omap/xload.c
> +++ b/arch/arm/mach-omap/xload.c
> @@ -56,18 +56,22 @@ static unsigned int get_image_size(void *head)
>  	return ret;
>  }
>  
> -static void *omap_xload_boot_nand(int offset, int part_size)
> +static void *omap_xload_boot_nand(unsigned int offset, unsigned int part_size)
>  {
>  	int ret;
>  	int size;
>  	void *to, *header;
>  	struct cdev *cdev;
> +	const char *bbx = "nand0.barebox";
>  
> -	devfs_add_partition("nand0", offset, part_size,
> +	if (!cdev_by_name(bbx)) { /* currently not all support dts */
> +		bbx = "bbx";
> +		devfs_add_partition("nand0", offset, part_size,
>  					DEVFS_PARTITION_FIXED, "x");
> -	dev_add_bb_dev("x", "bbx");
> +		dev_add_bb_dev("x", bbx);
> +	}
>  
> -	header = read_image_head("bbx");
> +	header = read_image_head(bbx);
>  	if (header == NULL)
>  		return NULL;
>  
> @@ -79,7 +83,7 @@ static void *omap_xload_boot_nand(int offset, int part_size)
>  
>  	to = xmalloc(size);
>  
> -	cdev = cdev_open("bbx", O_RDONLY);
> +	cdev = cdev_open(bbx, O_RDONLY);
>  	if (!cdev) {
>  		printf("failed to open nand\n");
>  		return NULL;
> @@ -134,11 +138,15 @@ static void *omap_xload_boot_spi(int offset, int part_size)
>  	int size;
>  	void *to, *header;
>  	struct cdev *cdev;
> +	onst char *x = "m25p0.barebox";

typo: const

>  
> -	devfs_add_partition("m25p0", offset, part_size,
> -					DEVFS_PARTITION_FIXED, "x");
> +	if (!cdev_by_name(x)) { /* currently not all support dts */
> +		x = "x";
> +		devfs_add_partition("m25p0", offset, part_size,
> +					DEVFS_PARTITION_FIXED, x);
> +	}
>  
> -	header = read_image_head("x");
> +	header = read_image_head(x);
>  	if (header == NULL)
>  		return NULL;
>  
> @@ -150,7 +158,7 @@ static void *omap_xload_boot_spi(int offset, int part_size)
>  
>  	to = xmalloc(size);
>  
> -	cdev = cdev_open("x", O_RDONLY);
> +	cdev = cdev_open(x, O_RDONLY);
>  	if (!cdev) {
>  		printf("failed to open spi flash\n");
>  		return NULL;






More information about the barebox mailing list