[PATCH 1/5] ARM: i.MX: rename barebox_loc to bootsource
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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