[PATCH] omap: add SPI as a boot mode for xload

2012-09-10 Thread Jan Luebbe
Signed-off-by: Jan Luebbe j...@pengutronix.de
---
 arch/arm/mach-omap/include/mach/xload.h |1 +
 arch/arm/mach-omap/xload.c  |   40 +++
 2 files changed, 41 insertions(+)

diff --git a/arch/arm/mach-omap/include/mach/xload.h 
b/arch/arm/mach-omap/include/mach/xload.h
index 26f1b68..9b44388 100644
--- a/arch/arm/mach-omap/include/mach/xload.h
+++ b/arch/arm/mach-omap/include/mach/xload.h
@@ -8,6 +8,7 @@ enum omap_boot_src {
OMAP_BOOTSRC_UNKNOWN,
OMAP_BOOTSRC_MMC1,
OMAP_BOOTSRC_NAND,
+   OMAP_BOOTSRC_SPI1,
 };
 
 enum omap_boot_src omap3_bootsrc(void);
diff --git a/arch/arm/mach-omap/xload.c b/arch/arm/mach-omap/xload.c
index 0afeea9..31c2e37 100644
--- a/arch/arm/mach-omap/xload.c
+++ b/arch/arm/mach-omap/xload.c
@@ -103,6 +103,42 @@ void *omap_xload_boot_mmc(void)
return buf;
 }
 
+void *omap_xload_boot_spi(int offset)
+{
+   int ret;
+   int size;
+   void *to, *header;
+   struct cdev *cdev;
+
+   devfs_add_partition(m25p0, offset, SZ_1M, DEVFS_PARTITION_FIXED, x);
+
+   header = read_image_head(x);
+   if (header == NULL)
+   return NULL;
+
+   size = get_image_size(header);
+   if (!size) {
+   printf(failed to get image size\n);
+   return NULL;
+   }
+
+   to = xmalloc(size);
+
+   cdev = cdev_open(x, O_RDONLY);
+   if (!cdev) {
+   printf(failed to open spi flash\n);
+   return NULL;
+   }
+
+   ret = cdev_read(cdev, to, size, 0, 0);
+   if (ret != size) {
+   printf(failed to read from spi flash\n);
+   return NULL;
+   }
+
+   return to;
+}
+
 enum omap_boot_src omap_bootsrc(void)
 {
 #if defined(CONFIG_ARCH_OMAP3)
@@ -131,6 +167,10 @@ int run_shell(void)
printf(booting from NAND\n);
func = omap_xload_boot_nand(SZ_128K);
break;
+   case OMAP_BOOTSRC_SPI1:
+   printf(booting from SPI1\n);
+   func = omap_xload_boot_spi(SZ_128K);
+   break;
}
 
if (!func) {
-- 
1.7.10.4


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


Re: [PATCH] omap: add SPI as a boot mode for xload

2012-09-10 Thread Jan Lübbe
Note that this applies on top of Jan Weitzel's 'xload: get barebox size
from barebox_arm_head'.
-- 
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- |


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


Re: [PATCH] omap: add SPI as a boot mode for xload

2012-09-10 Thread Baruch Siach
Hi Jan,

On Mon, Sep 10, 2012 at 11:50:24AM +0200, Jan Luebbe wrote:
 Signed-off-by: Jan Luebbe j...@pengutronix.de
 ---
  arch/arm/mach-omap/include/mach/xload.h |1 +
  arch/arm/mach-omap/xload.c  |   40 
 +++
  2 files changed, 41 insertions(+)

[snip]

 +void *omap_xload_boot_spi(int offset)

static?

baruch

-- 
 http://baruch.siach.name/blog/  ~. .~   Tk Open Systems
=}ooO--U--Ooo{=
   - bar...@tkos.co.il - tel: +972.2.679.5364, http://www.tkos.co.il -

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