[PATCH 1/5] ARM: i.MX: rename barebox_loc to bootsource

2013-04-03 Thread Sascha Hauer
Rename the barebox_loc environment variable to bootsource, since
- barebox_loc is a mixture between abbriviation and fulltext which is not nice
- technically it describes the source the SoC has booted from. This is not
  necessarily barebox but could also be some other first stage loader.

Signed-off-by: Sascha Hauer s.ha...@pengutronix.de
---
 arch/arm/boards/efika-mx-smartbook/env/init/bootsource | 2 +-
 arch/arm/mach-imx/boot.c   | 8 
 arch/arm/mach-imx/imx51.c  | 2 +-
 3 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/arch/arm/boards/efika-mx-smartbook/env/init/bootsource 
b/arch/arm/boards/efika-mx-smartbook/env/init/bootsource
index fb08469..380e855 100644
--- a/arch/arm/boards/efika-mx-smartbook/env/init/bootsource
+++ b/arch/arm/boards/efika-mx-smartbook/env/init/bootsource
@@ -3,7 +3,7 @@
 # by default pick kernel from MMC card if booting from
 # it, otherwise default to boot from internal harddisk
 
-if [ $barebox_loc = mmc ]; then
+if [ $bootsource = mmc ]; then
global.boot.default=mmc-left
 else
global.boot.default=hd-internal
diff --git a/arch/arm/mach-imx/boot.c b/arch/arm/mach-imx/boot.c
index 95a7673..3d0b09b 100644
--- a/arch/arm/mach-imx/boot.c
+++ b/arch/arm/mach-imx/boot.c
@@ -42,8 +42,8 @@ void imx_set_bootsource(enum imx_bootsource src)
 
bootsource = src;
 
-   setenv(barebox_loc, bootsource_str[src]);
-   export(barebox_loc);
+   setenv(bootsource, bootsource_str[src]);
+   export(bootsource);
 }
 
 enum imx_bootsource imx_bootsource(void)
@@ -51,7 +51,7 @@ enum imx_bootsource imx_bootsource(void)
return bootsource;
 }
 
-BAREBOX_MAGICVAR(barebox_loc, The source barebox has been booted from);
+BAREBOX_MAGICVAR(bootsource, The source barebox has been booted from);
 
 /* [CTRL][TYPE] */
 static const enum imx_bootsource locations[4][4] = {
@@ -79,7 +79,7 @@ static const enum imx_bootsource locations[4][4] = {
 };
 
 /*
- * Saves the boot source media into the $barebox_loc environment variable
+ * Saves the boot source media into the $bootsource environment variable
  *
  * This information is useful for barebox init scripts as we can then easily
  * use a kernel image stored on the same media that we launch barebox with
diff --git a/arch/arm/mach-imx/imx51.c b/arch/arm/mach-imx/imx51.c
index cffcca3..96ac3b6 100644
--- a/arch/arm/mach-imx/imx51.c
+++ b/arch/arm/mach-imx/imx51.c
@@ -77,7 +77,7 @@ static int imx51_init(void)
 postcore_initcall(imx51_init);
 
 /*
- * Saves the boot source media into the $barebox_loc environment variable
+ * Saves the boot source media into the $bootsource environment variable
  *
  * This information is useful for barebox init scripts as we can then easily
  * use a kernel image stored on the same media that we launch barebox with
-- 
1.8.2.rc2


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


[PATCH 5/5] ARM: i.MX53: Add bootsource instance information

2013-04-03 Thread Sascha Hauer
The i.MX53 has the bootsource instance information stored
in SBMR[21:22], expose it to the environment.

Signed-off-by: Sascha Hauer s.ha...@pengutronix.de
---
 arch/arm/mach-imx/boot.c | 18 --
 1 file changed, 16 insertions(+), 2 deletions(-)

diff --git a/arch/arm/mach-imx/boot.c b/arch/arm/mach-imx/boot.c
index 7824206..bd0cb84 100644
--- a/arch/arm/mach-imx/boot.c
+++ b/arch/arm/mach-imx/boot.c
@@ -169,9 +169,10 @@ void imx51_boot_save_loc(void __iomem *src_base)
 void imx53_boot_save_loc(void __iomem *src_base)
 {
enum bootsource src = BOOTSOURCE_UNKNOWN;
-   uint32_t cfg1 = readl(src_base + IMX53_SRC_SBMR)  0xff;
+   int instance;
+   uint32_t cfg1 = readl(src_base + IMX53_SRC_SBMR);
 
-   switch (cfg1  4) {
+   switch ((cfg1  0xff)  4) {
case 2:
src = BOOTSOURCE_HD;
break;
@@ -194,7 +195,20 @@ void imx53_boot_save_loc(void __iomem *src_base)
if (cfg1  (1  7))
src = BOOTSOURCE_NAND;
 
+
+   switch (src) {
+   case BOOTSOURCE_MMC:
+   case BOOTSOURCE_SPI:
+   case BOOTSOURCE_I2C:
+   instance = (cfg1  21)  0x3;
+   break;
+   default:
+   instance = 0;
+   break;
+   }
+
bootsource_set(src);
+   bootsource_set_instance(instance);
 }
 
 #define IMX6_SRC_SBMR1 0x04
-- 
1.8.2.rc2


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


[PATCH 4/5] bootsource: add support for bootsource instance information

2013-04-03 Thread Sascha Hauer
From: Marc Kleine-Budde m...@pengutronix.de

Add a C interface to set and get the bootsource instance:

int bootsource_get_instance(void);
void bootsource_set_instance(int instance);

Also export the shell variable barebox_loc_instance.

Signed-off-by: Marc Kleine-Budde m...@pengutronix.de
Signed-off-by: Sascha Hauer s.ha...@pengutronix.de
---
 common/bootsource.c  | 24 
 include/bootsource.h |  4 
 2 files changed, 28 insertions(+)

diff --git a/common/bootsource.c b/common/bootsource.c
index 5f1d40c..7367215 100644
--- a/common/bootsource.c
+++ b/common/bootsource.c
@@ -34,6 +34,7 @@ static const char *bootsource_str[] = {
 };
 
 static enum bootsource bootsource = BOOTSOURCE_UNKNOWN;
+static int bootsource_instance = BOOTSOURCE_INSTANCE_UNKNOWN;
 
 void bootsource_set(enum bootsource src)
 {
@@ -45,6 +46,20 @@ void bootsource_set(enum bootsource src)
setenv(bootsource, bootsource_str[src]);
 }
 
+void bootsource_set_instance(int instance)
+{
+   char buf[32];
+
+   bootsource_instance = instance;
+
+   if (instance  0)
+   sprintf(buf, unknown);
+   else
+   snprintf(buf, sizeof(buf), %d, instance);
+
+   setenv(bootsource_instance, buf);
+}
+
 enum bootsource bootsource_get(void)
 {
return bootsource;
@@ -52,10 +67,19 @@ enum bootsource bootsource_get(void)
 
 BAREBOX_MAGICVAR(bootsource, The source barebox has been booted from);
 
+int bootsource_get_instance(void)
+{
+   return bootsource_instance;
+}
+
+BAREBOX_MAGICVAR(bootsource_instance, The instance of the source barebox has 
been booted from);
+
 static int bootsource_init(void)
 {
bootsource_set(bootsource);
+   bootsource_set_instance(bootsource_instance);
export(bootsource);
+   export(bootsource_instance);
 
return 0;
 }
diff --git a/include/bootsource.h b/include/bootsource.h
index ecd5938..44b69b1 100644
--- a/include/bootsource.h
+++ b/include/bootsource.h
@@ -13,7 +13,11 @@ enum bootsource {
BOOTSOURCE_HD,
 };
 
+#define BOOTSOURCE_INSTANCE_UNKNOWN-1
+
 enum bootsource bootsource_get(void);
+int bootsource_get_instance(void);
 void bootsource_set(enum bootsource src);
+void bootsource_set_instance(int instance);
 
 #endif /* __BOOTSOURCE_H__ */
-- 
1.8.2.rc2


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


[PATCH] bootsource

2013-04-03 Thread Sascha Hauer
This is a series based on earlier work by Marc. It creates an arch
independent framework for storing/retrieving the bootsource. Changes
to Marcs version are:

- rename (currently i.MX specific) barebox_loc environment variable
  to 'bootsource'
- initialize the bootsource instance to unknown (-1) instead of 0
  which is a valid bootsource instance

Sascha


Marc Kleine-Budde (3):
  bootsource: create arch independent bootsource framework
  bootsource: use initcall to export bootsource location to environment
  bootsource: add support for bootsource instance information

Sascha Hauer (2):
  ARM: i.MX: rename barebox_loc to bootsource
  ARM: i.MX53: Add bootsource instance information

 arch/arm/boards/efika-mx-smartbook/board.c |  3 +-
 .../boards/efika-mx-smartbook/env/init/bootsource  |  2 +-
 arch/arm/boards/karo-tx53/board.c  |  3 +-
 arch/arm/boards/pcm038/pcm038.c|  3 +-
 arch/arm/mach-imx/boot.c   | 77 ---
 arch/arm/mach-imx/imx51.c  |  2 +-
 arch/arm/mach-imx/include/mach/generic.h   | 15 
 common/Makefile|  1 +
 common/bootsource.c| 86 ++
 include/bootsource.h   | 23 ++
 10 files changed, 148 insertions(+), 67 deletions(-)
 create mode 100644 common/bootsource.c
 create mode 100644 include/bootsource.h

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


[PATCH 3/5] bootsource: use initcall to export bootsource location to environment

2013-04-03 Thread Sascha Hauer
From: Marc Kleine-Budde m...@pengutronix.de

This way the bootsource is exported to the environment, even if unknown.

Signed-off-by: Marc Kleine-Budde m...@pengutronix.de
Signed-off-by: Sascha Hauer s.ha...@pengutronix.de
---
 common/bootsource.c | 11 ++-
 1 file changed, 10 insertions(+), 1 deletion(-)

diff --git a/common/bootsource.c b/common/bootsource.c
index 6f9ae54..5f1d40c 100644
--- a/common/bootsource.c
+++ b/common/bootsource.c
@@ -19,6 +19,7 @@
 #include bootsource.h
 #include environment.h
 #include magicvar.h
+#include init.h
 
 static const char *bootsource_str[] = {
[BOOTSOURCE_UNKNOWN] = unknown,
@@ -42,7 +43,6 @@ void bootsource_set(enum bootsource src)
bootsource = src;
 
setenv(bootsource, bootsource_str[src]);
-   export(bootsource);
 }
 
 enum bootsource bootsource_get(void)
@@ -51,3 +51,12 @@ enum bootsource bootsource_get(void)
 }
 
 BAREBOX_MAGICVAR(bootsource, The source barebox has been booted from);
+
+static int bootsource_init(void)
+{
+   bootsource_set(bootsource);
+   export(bootsource);
+
+   return 0;
+}
+coredevice_initcall(bootsource_init);
-- 
1.8.2.rc2


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


[PATCH 2/5] bootsource: create arch independent bootsource framework

2013-04-03 Thread Sascha Hauer
From: Marc Kleine-Budde m...@pengutronix.de

This patch seperates the imx independent from the arch independent code. The
following functions and enums are renamed:

- imx_bootsource() - bootsource_get()
- imx_set_bootsource() - bootsource_set()
- enum imx_bootsource - enum bootsource

Signed-off-by: Marc Kleine-Budde m...@pengutronix.de
Signed-off-by: Sascha Hauer s.ha...@pengutronix.de
---
 arch/arm/boards/efika-mx-smartbook/board.c |  3 +-
 arch/arm/boards/karo-tx53/board.c  |  3 +-
 arch/arm/boards/pcm038/pcm038.c|  3 +-
 arch/arm/mach-imx/boot.c   | 57 +++---
 arch/arm/mach-imx/include/mach/generic.h   | 15 
 common/Makefile|  1 +
 common/bootsource.c| 53 +++
 include/bootsource.h   | 19 ++
 8 files changed, 92 insertions(+), 62 deletions(-)
 create mode 100644 common/bootsource.c
 create mode 100644 include/bootsource.h

diff --git a/arch/arm/boards/efika-mx-smartbook/board.c 
b/arch/arm/boards/efika-mx-smartbook/board.c
index 03399a3..e9b6062 100644
--- a/arch/arm/boards/efika-mx-smartbook/board.c
+++ b/arch/arm/boards/efika-mx-smartbook/board.c
@@ -14,6 +14,7 @@
  */
 
 #include common.h
+#include bootsource.h
 #include net.h
 #include init.h
 #include environment.h
@@ -479,7 +480,7 @@ device_initcall(efikamx_devices_init);
 
 static int efikamx_part_init(void)
 {
-   if (imx_bootsource() == BOOTSOURCE_MMC) {
+   if (bootsource_get() == BOOTSOURCE_MMC) {
devfs_add_partition(mmc_left, 0x0, 0x8,
DEVFS_PARTITION_FIXED, self0);
devfs_add_partition(mmc_left, 0x8, 0x8,
diff --git a/arch/arm/boards/karo-tx53/board.c 
b/arch/arm/boards/karo-tx53/board.c
index f3976ee..6ead6a9 100644
--- a/arch/arm/boards/karo-tx53/board.c
+++ b/arch/arm/boards/karo-tx53/board.c
@@ -13,6 +13,7 @@
  *
  */
 #include common.h
+#include bootsource.h
 #include environment.h
 #include fcntl.h
 #include fec.h
@@ -234,7 +235,7 @@ static int tx53_part_init(void)
 {
const char *envdev;
 
-   switch (imx_bootsource()) {
+   switch (bootsource_get()) {
case BOOTSOURCE_MMC:
devfs_add_partition(disk0, 0x0, SZ_512K, 
DEVFS_PARTITION_FIXED, self0);
devfs_add_partition(disk0, SZ_512K, SZ_1M, 
DEVFS_PARTITION_FIXED, env0);
diff --git a/arch/arm/boards/pcm038/pcm038.c b/arch/arm/boards/pcm038/pcm038.c
index 78ed2ef..df8b1f9 100644
--- a/arch/arm/boards/pcm038/pcm038.c
+++ b/arch/arm/boards/pcm038/pcm038.c
@@ -16,6 +16,7 @@
 #define pr_fmt(fmt) pcm038:  fmt
 
 #include common.h
+#include bootsource.h
 #include net.h
 #include init.h
 #include environment.h
@@ -299,7 +300,7 @@ static int pcm038_devices_init(void)
 */
imx27_add_fec(fec_info);
 
-   switch (imx_bootsource()) {
+   switch (bootsource_get()) {
case BOOTSOURCE_NAND:
devfs_add_partition(nand0, 0x0, 0x8,
DEVFS_PARTITION_FIXED, self_raw);
diff --git a/arch/arm/mach-imx/boot.c b/arch/arm/mach-imx/boot.c
index 3d0b09b..7824206 100644
--- a/arch/arm/mach-imx/boot.c
+++ b/arch/arm/mach-imx/boot.c
@@ -12,6 +12,7 @@
  */
 
 #include common.h
+#include bootsource.h
 #include environment.h
 #include init.h
 #include magicvar.h
@@ -21,40 +22,8 @@
 #include mach/imx25-regs.h
 #include mach/imx35-regs.h
 
-static const char *bootsource_str[] = {
-   [BOOTSOURCE_UNKNOWN] = unknown,
-   [BOOTSOURCE_NAND] = nand,
-   [BOOTSOURCE_NOR] = nor,
-   [BOOTSOURCE_MMC] = mmc,
-   [BOOTSOURCE_I2C] = i2c,
-   [BOOTSOURCE_SPI] = spi,
-   [BOOTSOURCE_SERIAL] = serial,
-   [BOOTSOURCE_ONENAND] = onenand,
-   [BOOTSOURCE_HD] = harddisk,
-};
-
-static enum imx_bootsource bootsource;
-
-void imx_set_bootsource(enum imx_bootsource src)
-{
-   if (src = ARRAY_SIZE(bootsource_str))
-   src = BOOTSOURCE_UNKNOWN;
-
-   bootsource = src;
-
-   setenv(bootsource, bootsource_str[src]);
-   export(bootsource);
-}
-
-enum imx_bootsource imx_bootsource(void)
-{
-   return bootsource;
-}
-
-BAREBOX_MAGICVAR(bootsource, The source barebox has been booted from);
-
 /* [CTRL][TYPE] */
-static const enum imx_bootsource locations[4][4] = {
+static const enum bootsource locations[4][4] = {
{ /* CTRL = WEIM */
BOOTSOURCE_NOR,
BOOTSOURCE_UNKNOWN,
@@ -98,11 +67,11 @@ static const enum imx_bootsource locations[4][4] = {
  */
 static void imx25_35_boot_save_loc(unsigned int ctrl, unsigned int type)
 {
-   enum imx_bootsource src;
+   enum bootsource src;
 
src = locations[ctrl][type];
 
-   imx_set_bootsource(src);
+   bootsource_set(src);
 }
 
 void imx25_boot_save_loc(void __iomem *ccm_base)
@@ -136,7 +105,7 @@ void imx35_boot_save_loc(void __iomem *ccm_base)
 
 void imx27_boot_save_loc(void 

[PATCH] ARM: tqma53: change uart to second uart

2013-04-03 Thread Sascha Hauer
From: Steffen Trumtrar s.trumt...@pengutronix.de

The second UART is used on the mba53 baseboard. The first UART is only
used on custom hardware. This patch changes the UART to the one used
on the freely available baseboard.

Signed-off-by: Steffen Trumtrar s.trumt...@pengutronix.de
---
 arch/arm/boards/tqma53/board.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/arm/boards/tqma53/board.c b/arch/arm/boards/tqma53/board.c
index 03cb8ea..7c660f8 100644
--- a/arch/arm/boards/tqma53/board.c
+++ b/arch/arm/boards/tqma53/board.c
@@ -254,7 +254,7 @@ static int tqma53_console_init(void)
 {
mxc_iomux_v3_setup_multiple_pads(tqma53_pads, ARRAY_SIZE(tqma53_pads));
imx53_init_lowlevel(800);
-   imx53_add_uart0();
+   imx53_add_uart1();
 
return 0;
 }
-- 
1.8.2.rc2


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


[PATCH 2/4] ARM: i.MX53: split lowlevel function into early/nonearly version

2013-04-03 Thread Sascha Hauer
clock_notifier_call_chain() can't be called before init time. Protecting
it with IS_ENABLED(__PBL__) is not enough. This patch splits out a new
imx53_init_lowlevel_early which can be called before init time and does
not have the call to clock_notifier_call_chain() in it.

Signed-off-by: Sascha Hauer s.ha...@pengutronix.de
---
 arch/arm/mach-imx/imx53.c | 12 
 arch/arm/mach-imx/include/mach/imx5.h |  1 +
 2 files changed, 9 insertions(+), 4 deletions(-)

diff --git a/arch/arm/mach-imx/imx53.c b/arch/arm/mach-imx/imx53.c
index b06a5d0..193406f 100644
--- a/arch/arm/mach-imx/imx53.c
+++ b/arch/arm/mach-imx/imx53.c
@@ -75,7 +75,7 @@ static int imx53_init(void)
 }
 postcore_initcall(imx53_init);
 
-void imx53_init_lowlevel(unsigned int cpufreq_mhz)
+void imx53_init_lowlevel_early(unsigned int cpufreq_mhz)
 {
void __iomem *ccm = (void __iomem *)MX53_CCM_BASE_ADDR;
u32 r;
@@ -188,8 +188,12 @@ void imx53_init_lowlevel(unsigned int cpufreq_mhz)
writel(0x, ccm + MX5_CCM_CCGR6);
writel(0x, ccm + MX53_CCM_CCGR7);
 
-   if (!IS_ENABLED(__PBL__))
-   clock_notifier_call_chain();
-
writel(0, ccm + MX5_CCM_CCDR);
 }
+
+void imx53_init_lowlevel(unsigned int cpufreq_mhz)
+{
+   imx53_init_lowlevel_early(cpufreq_mhz);
+
+   clock_notifier_call_chain();
+}
diff --git a/arch/arm/mach-imx/include/mach/imx5.h 
b/arch/arm/mach-imx/include/mach/imx5.h
index ff570c4..7f5c2ef 100644
--- a/arch/arm/mach-imx/include/mach/imx5.h
+++ b/arch/arm/mach-imx/include/mach/imx5.h
@@ -3,6 +3,7 @@
 
 void imx51_init_lowlevel(unsigned int cpufreq_mhz);
 void imx53_init_lowlevel(unsigned int cpufreq_mhz);
+void imx53_init_lowlevel_early(unsigned int cpufreq_mhz);
 void imx5_init_lowlevel(void);
 
 void imx5_setup_pll(void __iomem *base, int freq, u32 op, u32 mfd, u32 mfn);
-- 
1.8.2.rc2


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


[PATCH 4/4] ARM: tqma53: call SoC lowlevel function early

2013-04-03 Thread Sascha Hauer
With CONFIG_MMU_EARLY enabled the board does not survive the call
to imx53_init_lowlevel(). This should not happen, but the reasons
are currently unknown. This works on other boards like the i.MX53
QSB.
This patch moves the call to imx53_init_lowlevel to
barebox_arm_reset_vector() which is executed with MMU disabled.

Signed-off-by: Sascha Hauer s.ha...@pengutronix.de
---
 arch/arm/boards/tqma53/board.c| 1 -
 arch/arm/boards/tqma53/lowlevel.c | 2 ++
 2 files changed, 2 insertions(+), 1 deletion(-)

diff --git a/arch/arm/boards/tqma53/board.c b/arch/arm/boards/tqma53/board.c
index 03cb8ea..432f29f 100644
--- a/arch/arm/boards/tqma53/board.c
+++ b/arch/arm/boards/tqma53/board.c
@@ -253,7 +253,6 @@ late_initcall(tqma53_part_init);
 static int tqma53_console_init(void)
 {
mxc_iomux_v3_setup_multiple_pads(tqma53_pads, ARRAY_SIZE(tqma53_pads));
-   imx53_init_lowlevel(800);
imx53_add_uart0();
 
return 0;
diff --git a/arch/arm/boards/tqma53/lowlevel.c 
b/arch/arm/boards/tqma53/lowlevel.c
index 60c28f7..a6eaa46 100644
--- a/arch/arm/boards/tqma53/lowlevel.c
+++ b/arch/arm/boards/tqma53/lowlevel.c
@@ -1,9 +1,11 @@
 #include common.h
 #include mach/esdctl.h
 #include asm/barebox-arm-head.h
+#include mach/imx5.h
 
 void __naked barebox_arm_reset_vector(void)
 {
arm_cpu_lowlevel_init();
+   imx53_init_lowlevel_early(800);
imx53_barebox_entry(0);
 }
-- 
1.8.2.rc2


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


[PATCH 3/4] ARM: tx53: use early lowlevel function

2013-04-03 Thread Sascha Hauer
The tx53 calls imx53_init_lowlevel from early code, so use
imx53_init_lowlevel_early instead.

Signed-off-by: Sascha Hauer s.ha...@pengutronix.de
---
 arch/arm/boards/karo-tx53/lowlevel.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/arm/boards/karo-tx53/lowlevel.c 
b/arch/arm/boards/karo-tx53/lowlevel.c
index 32d2c8f..f47f260 100644
--- a/arch/arm/boards/karo-tx53/lowlevel.c
+++ b/arch/arm/boards/karo-tx53/lowlevel.c
@@ -14,7 +14,7 @@ void __naked barebox_arm_reset_vector(void)
 * so do the PLL setup here.
 */
if (IS_ENABLED(CONFIG_TX53_REV_XX30))
-   imx53_init_lowlevel(800);
+   imx53_init_lowlevel_early(800);
 
imx53_barebox_entry(0);
 }
-- 
1.8.2.rc2


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


Re: [PATCH v2] commands/tftp: use debug() for debug output

2013-04-03 Thread Sascha Hauer
On Tue, Apr 02, 2013 at 10:07:07AM +0200, Hubert Feurstein wrote:
 Signed-off-by: Hubert Feurstein h.feurst...@gmail.com

Applied, thanks

Sascha

 ---
  commands/tftp.c | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/commands/tftp.c b/commands/tftp.c
 index 558b0ac..c83d174 100644
 --- a/commands/tftp.c
 +++ b/commands/tftp.c
 @@ -76,7 +76,7 @@ static int do_tftpb(int argc, char *argv[])
   if (ret)
   goto err_rmdir;
  
 - printk(%s: %s - %s\n, __func__, source, dest);
 + debug(%s: %s - %s\n, __func__, source, dest);
  
   ret = copy_file(source, dest, 1);
  
 -- 
 1.8.1.3
 
 
 ___
 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- |

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


Re: [RFCv2 PATCH 1/2] OMAP: Move bootsource functions

2013-04-03 Thread Sascha Hauer
On Tue, Apr 02, 2013 at 02:48:06PM +0200, Teresa Gámez wrote:
 The bootsource functions are not specific to the first stage
 bootloader. They may also be used for detecting the
 bootsource to decide where to load the environment from.
 
 Also clean up includes in board files.
 
 Signed-off-by: Teresa Gámez t.ga...@phytec.de

Applied, thanks

Sascha

 ---
  arch/arm/boards/beagle/board.c|1 -
  arch/arm/boards/beaglebone/board.c|1 -
  arch/arm/boards/panda/board.c |2 +-
  arch/arm/boards/pcm049/board.c|1 -
  arch/arm/boards/phycard-a-l1/pca-a-l1.c   |1 -
  arch/arm/boards/phycard-a-xl2/pca-a-xl2.c |1 -
  arch/arm/mach-omap/Makefile   |2 +-
  arch/arm/mach-omap/am33xx_generic.c   |2 +-
  arch/arm/mach-omap/include/mach/generic.h |   16 ++
  arch/arm/mach-omap/include/mach/xload.h   |   16 --
  arch/arm/mach-omap/omap3_generic.c|2 +-
  arch/arm/mach-omap/omap4_generic.c|2 +-
  arch/arm/mach-omap/omap4_rom_usb.c|2 +-
  arch/arm/mach-omap/omap_generic.c |   32 
 +
  arch/arm/mach-omap/xload.c|   13 +--
  15 files changed, 55 insertions(+), 39 deletions(-)
  delete mode 100644 arch/arm/mach-omap/include/mach/xload.h
  create mode 100644 arch/arm/mach-omap/omap_generic.c
 
 diff --git a/arch/arm/boards/beagle/board.c b/arch/arm/boards/beagle/board.c
 index bed4651..972c05e 100644
 --- a/arch/arm/boards/beagle/board.c
 +++ b/arch/arm/boards/beagle/board.c
 @@ -62,7 +62,6 @@
  #include i2c/i2c.h
  #include linux/err.h
  #include usb/ehci.h
 -#include mach/xload.h
  
  #ifdef CONFIG_DRIVER_SERIAL_NS16550
  
 diff --git a/arch/arm/boards/beaglebone/board.c 
 b/arch/arm/boards/beaglebone/board.c
 index e4b8b0a..56e69a2 100644
 --- a/arch/arm/boards/beaglebone/board.c
 +++ b/arch/arm/boards/beaglebone/board.c
 @@ -45,7 +45,6 @@
  #include linux/err.h
  #include linux/phy.h
  #include usb/ehci.h
 -#include mach/xload.h
  #include mach/am33xx-devices.h
  #include mach/am33xx-mux.h
  #include mach/wdt.h
 diff --git a/arch/arm/boards/panda/board.c b/arch/arm/boards/panda/board.c
 index f1fbd5e..2518d3a 100644
 --- a/arch/arm/boards/panda/board.c
 +++ b/arch/arm/boards/panda/board.c
 @@ -20,7 +20,7 @@
  #include asm/mmu.h
  #include mach/gpio.h
  #include envfs.h
 -#include mach/xload.h
 +#include mach/generic.h
  #include i2c/i2c.h
  #include gpio.h
  #include led.h
 diff --git a/arch/arm/boards/pcm049/board.c b/arch/arm/boards/pcm049/board.c
 index 680539a..b0d689b 100644
 --- a/arch/arm/boards/pcm049/board.c
 +++ b/arch/arm/boards/pcm049/board.c
 @@ -36,7 +36,6 @@
  #include mach/gpio.h
  #include mach/gpmc.h
  #include mach/gpmc_nand.h
 -#include mach/xload.h
  #include i2c/i2c.h
  
  static int pcm049_console_init(void)
 diff --git a/arch/arm/boards/phycard-a-l1/pca-a-l1.c 
 b/arch/arm/boards/phycard-a-l1/pca-a-l1.c
 index 234d689..7cf6ae8 100644
 --- a/arch/arm/boards/phycard-a-l1/pca-a-l1.c
 +++ b/arch/arm/boards/phycard-a-l1/pca-a-l1.c
 @@ -54,7 +54,6 @@
  #include mach/gpmc.h
  #include mach/gpmc_nand.h
  #include mach/omap_hsmmc.h
 -#include mach/xload.h
  #include mach/sdrc.h
  #include mach/omap3-silicon.h
  #include mach/sys_info.h
 diff --git a/arch/arm/boards/phycard-a-xl2/pca-a-xl2.c 
 b/arch/arm/boards/phycard-a-xl2/pca-a-xl2.c
 index be7060f..8f79d98 100644
 --- a/arch/arm/boards/phycard-a-xl2/pca-a-xl2.c
 +++ b/arch/arm/boards/phycard-a-xl2/pca-a-xl2.c
 @@ -35,7 +35,6 @@
  #include mach/gpio.h
  #include mach/gpmc.h
  #include mach/gpmc_nand.h
 -#include mach/xload.h
  #include mach/omap_hsmmc.h
  #include mach/omap4-devices.h
  #include i2c/i2c.h
 diff --git a/arch/arm/mach-omap/Makefile b/arch/arm/mach-omap/Makefile
 index 38786b2..d9e00f7 100644
 --- a/arch/arm/mach-omap/Makefile
 +++ b/arch/arm/mach-omap/Makefile
 @@ -15,7 +15,7 @@
  # GNU General Public License for more details.
  #
  #
 -obj-$(CONFIG_ARCH_OMAP) += syslib.o omap_devices.o
 +obj-$(CONFIG_ARCH_OMAP) += syslib.o omap_devices.o omap_generic.o
  pbl-$(CONFIG_ARCH_OMAP) += syslib.o
  obj-$(CONFIG_OMAP_CLOCK_SOURCE_S32K) += s32k_clksource.o
  obj-$(CONFIG_OMAP_CLOCK_SOURCE_DMTIMER0) += dmtimer0.o
 diff --git a/arch/arm/mach-omap/am33xx_generic.c 
 b/arch/arm/mach-omap/am33xx_generic.c
 index d3014c2..059c55e 100644
 --- a/arch/arm/mach-omap/am33xx_generic.c
 +++ b/arch/arm/mach-omap/am33xx_generic.c
 @@ -24,7 +24,7 @@
  #include mach/am33xx-silicon.h
  #include mach/am33xx-clock.h
  #include mach/sys_info.h
 -#include mach/xload.h
 +#include mach/generic.h
  #include mach/am33xx-generic.h
  
  void __noreturn reset_cpu(unsigned long addr)
 diff --git a/arch/arm/mach-omap/include/mach/generic.h 
 b/arch/arm/mach-omap/include/mach/generic.h
 index c801a06..edc4f1d 100644
 --- a/arch/arm/mach-omap/include/mach/generic.h
 +++ b/arch/arm/mach-omap/include/mach/generic.h
 @@ -1,3 +1,5 @@
 +#ifndef _MACH_GENERIC_H
 +#define _MACH_GENERIC_H

[PATCH] ARM: zynq: fix zynq_clks enum

2013-04-03 Thread Steffen Trumtrar
clk-zynq7000 registers arm_smp_twd as clk. This clock was however not added to
the zynq_clks enum.

Signed-off-by: Steffen Trumtrar s.trumt...@pengutronix.de
---
 arch/arm/mach-zynq/clk-zynq7000.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/arch/arm/mach-zynq/clk-zynq7000.c 
b/arch/arm/mach-zynq/clk-zynq7000.c
index 1e03514..3dedefa 100644
--- a/arch/arm/mach-zynq/clk-zynq7000.c
+++ b/arch/arm/mach-zynq/clk-zynq7000.c
@@ -31,7 +31,8 @@
 
 enum zynq_clks {
dummy, ps_clk, arm_pll, ddr_pll, io_pll, uart_clk, uart0, uart1,
-   cpu_clk, cpu_6x4x, cpu_3x2x, cpu_2x, cpu_1x, clks_max
+   cpu_clk, cpu_6x4x, cpu_3x2x, cpu_2x, cpu_1x, arm_smp_twd,
+   clks_max
 };
 
 enum zynq_pll_type {
-- 
1.8.2.rc2


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


[PATCH 3/3] ARM: zedboard: add ethernet device

2013-04-03 Thread Steffen Trumtrar
The ZedBoard has a connection for the GEM0. Use it.

Signed-off-by: Steffen Trumtrar s.trumt...@pengutronix.de
---
 arch/arm/boards/avnet-zedboard/board.c| 13 +
 arch/arm/boards/avnet-zedboard/lowlevel.c | 11 ++-
 2 files changed, 23 insertions(+), 1 deletion(-)

diff --git a/arch/arm/boards/avnet-zedboard/board.c 
b/arch/arm/boards/avnet-zedboard/board.c
index 4e3d5a5..7b95754 100644
--- a/arch/arm/boards/avnet-zedboard/board.c
+++ b/arch/arm/boards/avnet-zedboard/board.c
@@ -29,6 +29,19 @@ static int zedboard_mem_init(void)
 }
 mem_initcall(zedboard_mem_init);
 
+static struct macb_platform_data macb_pdata = {
+   .phy_interface = PHY_INTERFACE_MODE_RGMII,
+   .phy_addr = 0x0,
+};
+
+static int zedboard_device_init(void)
+{
+   zynq_add_eth0(macb_pdata);
+
+   return 0;
+}
+device_initcall(zedboard_device_init);
+
 static int zedboard_console_init(void)
 {
zynq_add_uart1();
diff --git a/arch/arm/boards/avnet-zedboard/lowlevel.c 
b/arch/arm/boards/avnet-zedboard/lowlevel.c
index b50886e..fb05ef8 100644
--- a/arch/arm/boards/avnet-zedboard/lowlevel.c
+++ b/arch/arm/boards/avnet-zedboard/lowlevel.c
@@ -233,14 +233,23 @@ void __naked barebox_arm_reset_vector(void)
/* poor mans clkctrl */
writel(0x1403, ZYNQ_CLOCK_CTRL_BASE + ZYNQ_UART_CLK_CTRL);
 
+   /* GEM0 */
writel(0x0001, 0xf8000138);
-   writel(0x00100801, 0xf8000140);
+   writel(0x00500801, 0xf8000140);
writel(0x0302, 0xf8000740);
writel(0x0302, 0xf8000744);
writel(0x0302, 0xf8000748);
writel(0x0302, 0xf800074C);
writel(0x0302, 0xf8000750);
writel(0x0302, 0xf8000754);
+   writel(0x1303, 0xf8000758);
+   writel(0x1303, 0xf800075C);
+   writel(0x1303, 0xf8000760);
+   writel(0x1303, 0xf8000764);
+   writel(0x1303, 0xf8000768);
+   writel(0x1303, 0xf800076C);
+   writel(0x1280, 0xf80007D0);
+   writel(0x1280, 0xf80007D4);
 
writel(0x0001, 0xf8000B00);
 
-- 
1.8.2.rc2


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


[PATCH 1/3] net: macb: turn off endian_swp_pkt_en

2013-04-03 Thread Steffen Trumtrar
The core has a bit for swapping packet data endianism.
Reset default from Cadence is off. Xilinx however, that uses this core on the
Zynq SoCs, opted for on. Turn it off for all devices.

Signed-off-by: Steffen Trumtrar s.trumt...@pengutronix.de
Cc: Jean-Christophe PLAGNIOL-VILLARD plagn...@jcrosoft.com
---

Notes:
This fix was already applied to next for the linux driver counterpart.

 drivers/net/macb.c | 1 +
 drivers/net/macb.h | 2 ++
 2 files changed, 3 insertions(+)

diff --git a/drivers/net/macb.c b/drivers/net/macb.c
index 14a0689..4c0f206 100644
--- a/drivers/net/macb.c
+++ b/drivers/net/macb.c
@@ -307,6 +307,7 @@ static void macb_configure_dma(struct macb_device *bp)
dmacfg |= GEM_BF(FBLDO, 16);
dmacfg |= GEM_BIT(TXPBMS) | GEM_BF(RXBMS, -1L);
dmacfg |= GEM_BIT(DDRP);
+   dmacfg = ~GEM_BIT(ENDIA);
gem_writel(bp, DMACFG, dmacfg);
}
 }
diff --git a/drivers/net/macb.h b/drivers/net/macb.h
index cadd561..1be9ff9 100644
--- a/drivers/net/macb.h
+++ b/drivers/net/macb.h
@@ -168,6 +168,8 @@
 /* Bitfields in DMACFG. */
 #define GEM_FBLDO_OFFSET   0
 #define GEM_FBLDO_SIZE 5
+#define GEM_ENDIA_OFFSET   7
+#define GEM_ENDIA_SIZE 1
 #define GEM_RXBMS_OFFSET   8
 #define GEM_RXBMS_SIZE 2
 #define GEM_TXPBMS_OFFSET  10
-- 
1.8.2.rc2


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


[PATCH v2 3/7] bootsource: use initcall to export bootsource location to environment

2013-04-03 Thread Marc Kleine-Budde
This way the bootsource is exported to the environment, even if unknown.

Signed-off-by: Marc Kleine-Budde m...@pengutronix.de
Signed-off-by: Sascha Hauer s.ha...@pengutronix.de
---
 common/bootsource.c | 11 ++-
 1 file changed, 10 insertions(+), 1 deletion(-)

diff --git a/common/bootsource.c b/common/bootsource.c
index 6f9ae54..5f1d40c 100644
--- a/common/bootsource.c
+++ b/common/bootsource.c
@@ -19,6 +19,7 @@
 #include bootsource.h
 #include environment.h
 #include magicvar.h
+#include init.h
 
 static const char *bootsource_str[] = {
[BOOTSOURCE_UNKNOWN] = unknown,
@@ -42,7 +43,6 @@ void bootsource_set(enum bootsource src)
bootsource = src;
 
setenv(bootsource, bootsource_str[src]);
-   export(bootsource);
 }
 
 enum bootsource bootsource_get(void)
@@ -51,3 +51,12 @@ enum bootsource bootsource_get(void)
 }
 
 BAREBOX_MAGICVAR(bootsource, The source barebox has been booted from);
+
+static int bootsource_init(void)
+{
+   bootsource_set(bootsource);
+   export(bootsource);
+
+   return 0;
+}
+coredevice_initcall(bootsource_init);
-- 
1.8.2.rc2


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


[PATCH v2 5/7] bootsource: add definition for i2c-eeprom, spi-nor, spi-eeprom and usb

2013-04-03 Thread Marc Kleine-Budde
Signed-off-by: Marc Kleine-Budde m...@pengutronix.de
---
 common/bootsource.c  | 4 
 include/bootsource.h | 4 
 2 files changed, 8 insertions(+)

diff --git a/common/bootsource.c b/common/bootsource.c
index 7367215..7f3d51f 100644
--- a/common/bootsource.c
+++ b/common/bootsource.c
@@ -27,10 +27,14 @@ static const char *bootsource_str[] = {
[BOOTSOURCE_NOR] = nor,
[BOOTSOURCE_MMC] = mmc,
[BOOTSOURCE_I2C] = i2c,
+   [BOOTSOURCE_I2C_EEPROM] = i2c-eeprom,
[BOOTSOURCE_SPI] = spi,
+   [BOOTSOURCE_SPI_EEPROM] = spi-eeprom,
+   [BOOTSOURCE_SPI_NOR] = spi-nor,
[BOOTSOURCE_SERIAL] = serial,
[BOOTSOURCE_ONENAND] = onenand,
[BOOTSOURCE_HD] = harddisk,
+   [BOOTSOURCE_USB] = usb,
 };
 
 static enum bootsource bootsource = BOOTSOURCE_UNKNOWN;
diff --git a/include/bootsource.h b/include/bootsource.h
index 44b69b1..4bca9b9 100644
--- a/include/bootsource.h
+++ b/include/bootsource.h
@@ -7,10 +7,14 @@ enum bootsource {
BOOTSOURCE_NOR,
BOOTSOURCE_MMC,
BOOTSOURCE_I2C,
+   BOOTSOURCE_I2C_EEPROM,
BOOTSOURCE_SPI,
+   BOOTSOURCE_SPI_EEPROM,
+   BOOTSOURCE_SPI_NOR,
BOOTSOURCE_SERIAL,
BOOTSOURCE_ONENAND,
BOOTSOURCE_HD,
+   BOOTSOURCE_USB,
 };
 
 #define BOOTSOURCE_INSTANCE_UNKNOWN-1
-- 
1.8.2.rc2


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


[PATCH v2 4/7] bootsource: add support for bootsource instance information

2013-04-03 Thread Marc Kleine-Budde
Add a C interface to set and get the bootsource instance:

int bootsource_get_instance(void);
void bootsource_set_instance(int instance);

Also export the shell variable bootsource_instance.

Signed-off-by: Marc Kleine-Budde m...@pengutronix.de
Signed-off-by: Sascha Hauer s.ha...@pengutronix.de
---
 common/bootsource.c  | 24 
 include/bootsource.h |  4 
 2 files changed, 28 insertions(+)

diff --git a/common/bootsource.c b/common/bootsource.c
index 5f1d40c..7367215 100644
--- a/common/bootsource.c
+++ b/common/bootsource.c
@@ -34,6 +34,7 @@ static const char *bootsource_str[] = {
 };
 
 static enum bootsource bootsource = BOOTSOURCE_UNKNOWN;
+static int bootsource_instance = BOOTSOURCE_INSTANCE_UNKNOWN;
 
 void bootsource_set(enum bootsource src)
 {
@@ -45,6 +46,20 @@ void bootsource_set(enum bootsource src)
setenv(bootsource, bootsource_str[src]);
 }
 
+void bootsource_set_instance(int instance)
+{
+   char buf[32];
+
+   bootsource_instance = instance;
+
+   if (instance  0)
+   sprintf(buf, unknown);
+   else
+   snprintf(buf, sizeof(buf), %d, instance);
+
+   setenv(bootsource_instance, buf);
+}
+
 enum bootsource bootsource_get(void)
 {
return bootsource;
@@ -52,10 +67,19 @@ enum bootsource bootsource_get(void)
 
 BAREBOX_MAGICVAR(bootsource, The source barebox has been booted from);
 
+int bootsource_get_instance(void)
+{
+   return bootsource_instance;
+}
+
+BAREBOX_MAGICVAR(bootsource_instance, The instance of the source barebox has 
been booted from);
+
 static int bootsource_init(void)
 {
bootsource_set(bootsource);
+   bootsource_set_instance(bootsource_instance);
export(bootsource);
+   export(bootsource_instance);
 
return 0;
 }
diff --git a/include/bootsource.h b/include/bootsource.h
index ecd5938..44b69b1 100644
--- a/include/bootsource.h
+++ b/include/bootsource.h
@@ -13,7 +13,11 @@ enum bootsource {
BOOTSOURCE_HD,
 };
 
+#define BOOTSOURCE_INSTANCE_UNKNOWN-1
+
 enum bootsource bootsource_get(void);
+int bootsource_get_instance(void);
 void bootsource_set(enum bootsource src);
+void bootsource_set_instance(int instance);
 
 #endif /* __BOOTSOURCE_H__ */
-- 
1.8.2.rc2


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


[PATCH v2 1/7] ARM: i.MX: rename barebox_loc to bootsource

2013-04-03 Thread Marc Kleine-Budde
From: Sascha Hauer s.ha...@pengutronix.de

Rename the barebox_loc environment variable to bootsource, since
- barebox_loc is a mixture between abbriviation and fulltext which is not nice
- technically it describes the source the SoC has booted from. This is not
  necessarily barebox but could also be some other first stage loader.

Signed-off-by: Sascha Hauer s.ha...@pengutronix.de
Signed-off-by: Marc Kleine-Budde m...@pengutronix.de
---
 arch/arm/boards/efika-mx-smartbook/env/init/bootsource | 2 +-
 arch/arm/mach-imx/boot.c   | 8 
 arch/arm/mach-imx/imx51.c  | 2 +-
 3 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/arch/arm/boards/efika-mx-smartbook/env/init/bootsource 
b/arch/arm/boards/efika-mx-smartbook/env/init/bootsource
index fb08469..380e855 100644
--- a/arch/arm/boards/efika-mx-smartbook/env/init/bootsource
+++ b/arch/arm/boards/efika-mx-smartbook/env/init/bootsource
@@ -3,7 +3,7 @@
 # by default pick kernel from MMC card if booting from
 # it, otherwise default to boot from internal harddisk
 
-if [ $barebox_loc = mmc ]; then
+if [ $bootsource = mmc ]; then
global.boot.default=mmc-left
 else
global.boot.default=hd-internal
diff --git a/arch/arm/mach-imx/boot.c b/arch/arm/mach-imx/boot.c
index 95a7673..3d0b09b 100644
--- a/arch/arm/mach-imx/boot.c
+++ b/arch/arm/mach-imx/boot.c
@@ -42,8 +42,8 @@ void imx_set_bootsource(enum imx_bootsource src)
 
bootsource = src;
 
-   setenv(barebox_loc, bootsource_str[src]);
-   export(barebox_loc);
+   setenv(bootsource, bootsource_str[src]);
+   export(bootsource);
 }
 
 enum imx_bootsource imx_bootsource(void)
@@ -51,7 +51,7 @@ enum imx_bootsource imx_bootsource(void)
return bootsource;
 }
 
-BAREBOX_MAGICVAR(barebox_loc, The source barebox has been booted from);
+BAREBOX_MAGICVAR(bootsource, The source barebox has been booted from);
 
 /* [CTRL][TYPE] */
 static const enum imx_bootsource locations[4][4] = {
@@ -79,7 +79,7 @@ static const enum imx_bootsource locations[4][4] = {
 };
 
 /*
- * Saves the boot source media into the $barebox_loc environment variable
+ * Saves the boot source media into the $bootsource environment variable
  *
  * This information is useful for barebox init scripts as we can then easily
  * use a kernel image stored on the same media that we launch barebox with
diff --git a/arch/arm/mach-imx/imx51.c b/arch/arm/mach-imx/imx51.c
index cffcca3..96ac3b6 100644
--- a/arch/arm/mach-imx/imx51.c
+++ b/arch/arm/mach-imx/imx51.c
@@ -77,7 +77,7 @@ static int imx51_init(void)
 postcore_initcall(imx51_init);
 
 /*
- * Saves the boot source media into the $barebox_loc environment variable
+ * Saves the boot source media into the $bootsource environment variable
  *
  * This information is useful for barebox init scripts as we can then easily
  * use a kernel image stored on the same media that we launch barebox with
-- 
1.8.2.rc2


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


[PATCH v2 6/7] ARM: i.MX53: Add bootsource instance information

2013-04-03 Thread Marc Kleine-Budde
From: Sascha Hauer s.ha...@pengutronix.de

The i.MX53 has the bootsource instance information stored
in SBMR[21:22], expose it to the environment.

Signed-off-by: Sascha Hauer s.ha...@pengutronix.de
Signed-off-by: Marc Kleine-Budde m...@pengutronix.de
---
 arch/arm/mach-imx/boot.c | 18 --
 1 file changed, 16 insertions(+), 2 deletions(-)

diff --git a/arch/arm/mach-imx/boot.c b/arch/arm/mach-imx/boot.c
index 7824206..bd0cb84 100644
--- a/arch/arm/mach-imx/boot.c
+++ b/arch/arm/mach-imx/boot.c
@@ -169,9 +169,10 @@ void imx51_boot_save_loc(void __iomem *src_base)
 void imx53_boot_save_loc(void __iomem *src_base)
 {
enum bootsource src = BOOTSOURCE_UNKNOWN;
-   uint32_t cfg1 = readl(src_base + IMX53_SRC_SBMR)  0xff;
+   int instance;
+   uint32_t cfg1 = readl(src_base + IMX53_SRC_SBMR);
 
-   switch (cfg1  4) {
+   switch ((cfg1  0xff)  4) {
case 2:
src = BOOTSOURCE_HD;
break;
@@ -194,7 +195,20 @@ void imx53_boot_save_loc(void __iomem *src_base)
if (cfg1  (1  7))
src = BOOTSOURCE_NAND;
 
+
+   switch (src) {
+   case BOOTSOURCE_MMC:
+   case BOOTSOURCE_SPI:
+   case BOOTSOURCE_I2C:
+   instance = (cfg1  21)  0x3;
+   break;
+   default:
+   instance = 0;
+   break;
+   }
+
bootsource_set(src);
+   bootsource_set_instance(instance);
 }
 
 #define IMX6_SRC_SBMR1 0x04
-- 
1.8.2.rc2


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