at91: add bootstrap support
Subsystems (5)
v2 cover at91: add bootstrap support
Hi,
can we have it on master the v2 does not cange much since v1
v2:
fix whitesapce
fix comment
fix command default
This patch serie introduce a common bootstrap code aka xloder for TI and at91bootstrap for Atmel to barebox
As I do not have with me right now a TI platform I did not switch it to the new generic bootstrap code.
On at91 add it on the calao usb-a9263 test on nand and spi This patch serie depends on the previous at91 patch series
The following changes since commit 9f7f67ca887b26a4488edf5fa171a78e142e0a5b:
at91: drop AT91_BASE_PIOx for soc specific one for none boot code (2012-12-29 01:37:47 +0800)
are available in the git repository at:
git://git.jcrosoft.org/barebox.git delivery/at91_bootstrap
for you to fetch changes up to 44bfbedb17c35a99aa0f9a2a16330d2928b9ba31:
at91: usb_a9263: add bootstrap version (2012-12-29 17:56:45 +0800)
----------------------------------------------------------------
Jean-Christophe PLAGNIOL-VILLARD (7):
at91: add test commamd to emulate bootrom boot
at91sam926x: lowlevel add external boot support
at91: sam926x: switch lowlevel param to c code
at91: usb-a9263 add lowlevel init introduce common bootstrap code
at91: add bootstrap version
at91: usb_a9263: add bootstrap version
arch/arm/boards/at91sam9263ek/Makefile | 5 ++ arch/arm/boards/at91sam9263ek/config.h | 87 ------------------------------- arch/arm/boards/at91sam9263ek/lowlevel_init.c | 104 +++++++++++++++++++++++++++++++++++++ arch/arm/boards/mmccpu/Makefile | 5 ++ arch/arm/boards/mmccpu/config.h | 118 ------------------------------------------ arch/arm/boards/mmccpu/lowlevel_init.c | 135 ++++++++++++++++++++++++++++++++++++++++++++++++ arch/arm/boards/pm9261/Makefile | 5 ++ arch/arm/boards/pm9261/config.h | 87 ------------------------------- arch/arm/boards/pm9261/lowlevel_init.c | 102 ++++++++++++++++++++++++++++++++++++ arch/arm/boards/pm9263/Makefile | 5 ++ arch/arm/boards/pm9263/config.h | 103 ------------------------------------ arch/arm/boards/usb-a926x/Makefile | 9 ++++ arch/arm/boards/usb-a926x/config.h | 97 ++++++++++++++++++++++++++++++++++ arch/arm/boards/usb-a926x/usb_a9263_bootstrap.c | 16 ++++++ arch/arm/boards/usb-a926x/usb_a9263_lowlevel_init.c | 111 +++++++++++++++++++++++++++++++++++++++ arch/arm/configs/usb_a9263_128mib_bootstrap_defconfig | 24 +++++++++ arch/arm/configs/usb_a9263_bootstrap_defconfig | 23 +++++++++ arch/arm/mach-at91/Kconfig | 7 +++ arch/arm/mach-at91/Makefile | 2 + arch/arm/mach-at91/at91sam926x_lowlevel_init.c | 84 +++++++++++++++++++++--------- arch/arm/mach-at91/boot_test_cmd.c | 97 ++++++++++++++++++++++++++++++++++ arch/arm/mach-at91/bootstrap.c | 86 ++++++++++++++++++++++++++++++ arch/arm/mach-at91/include/mach/at91_lowlevel_init.h | 33 ++++++++++++ arch/arm/mach-at91/include/mach/bootstrap.h | 28 ++++++++++ include/bootstrap.h | 34 ++++++++++++ lib/Kconfig | 2 + lib/Makefile | 1 + lib/bootstrap/Kconfig | 13 +++++ lib/bootstrap/Makefile | 3 ++ lib/bootstrap/common.c | 21 ++++++++ lib/bootstrap/devfs.c | 98 +++++++++++++++++++++++++++++++++++ lib/bootstrap/disk.c | 36 +++++++++++++ 32 files changed, 1161 insertions(+), 420 deletions(-) create mode 100644 arch/arm/boards/at91sam9263ek/lowlevel_init.c create mode 100644 arch/arm/boards/mmccpu/lowlevel_init.c create mode 100644 arch/arm/boards/pm9261/lowlevel_init.c create mode 100644 arch/arm/boards/usb-a926x/usb_a9263_bootstrap.c create mode 100644 arch/arm/boards/usb-a926x/usb_a9263_lowlevel_init.c create mode 100644 arch/arm/configs/usb_a9263_128mib_bootstrap_defconfig create mode 100644 arch/arm/configs/usb_a9263_bootstrap_defconfig create mode 100644 arch/arm/mach-at91/boot_test_cmd.c create mode 100644 arch/arm/mach-at91/bootstrap.c create mode 100644 arch/arm/mach-at91/include/mach/at91_lowlevel_init.h create mode 100644 arch/arm/mach-at91/include/mach/bootstrap.h create mode 100644 include/bootstrap.h create mode 100644 lib/bootstrap/Kconfig create mode 100644 lib/bootstrap/Makefile create mode 100644 lib/bootstrap/common.c create mode 100644 lib/bootstrap/devfs.c create mode 100644 lib/bootstrap/disk.c
Best Regards,
J.
_______________________________________________
barebox mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/barebox
_______________________________________________
barebox mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/barebox
PATCH v2 1/7 at91: add test commamd to emulate bootrom boot
--- arch/arm/mach-at91/Kconfig | 6 +++ arch/arm/mach-at91/Makefile | 1 + arch/arm/mach-at91/boot_test_cmd.c | 99 ++++++++++++++++++++++++++++++++++++ 3 files changed, 106 insertions(+) create mode 100644 arch/arm/mach-at91/boot_test_cmd.c
arch/arm/mach-at91/Kconfig +6 -0
@@ -483,4 +483,10 @@ config CMD_AT91MUX bool "at91mux dump command" default y +config CONFIG_CMD_AT91_BOOT_TEST + bool "at91_boot_test" + help + allow to upload a boot binary to sram and execute it + usefull to test bootstrap or barebox lowlevel init + endif
arch/arm/mach-at91/Makefile +1 -0
@@ -1,4 +1,5 @@ obj-y += setup.o clock.o gpio.o +obj-$(CONFIG_CMD_AT91_BOOT_TEST) += boot_test_cmd.o lowlevel_init-y = at91sam926x_lowlevel_init.o lowlevel_init-$(CONFIG_ARCH_AT91RM9200) = at91rm9200_lowlevel_init.o
arch/arm/mach-at91/boot_test_cmd.c new file +99 -0
99 lines not on this page · raw message
Signature · 7 lines
1.7.10.4 _______________________________________________ barebox mailing list [email protected] http://lists.infradead.org/mailman/listinfo/barebox
PATCH v2 2/7 at91sam926x: lowlevel add external boot support
--- arch/arm/mach-at91/at91sam926x_lowlevel_init.c | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-)
arch/arm/mach-at91/at91sam926x_lowlevel_init.c +18 -2
@@ -36,10 +36,19 @@ static void inline pmc_check_mckrdy(void) }while (!(r &AT91_PMC_MCKRDY )); } +static int inline running_in_sram (void ) +{ +u32 addr =get_pc (); + + addr >>=28 ; +return addr ==0 ; +} + void __naked __bare_init reset(void) {u32 r;int i; +int in_sram =running_in_sram ();common_reset ();
@@ -74,7 +83,7 @@ void __naked __bare_init reset(void)* PMC Check if the PLL is already initialized */ r =at91_pmc_read (AT91_PMC_MCKR ); -if (r &AT91_PMC_CSS ) +if (r &AT91_PMC_CSS && !in_sram) goto end;/*
@@ -117,7 +126,7 @@ void __naked __bare_init reset(void)* SDRAMC Check if Refresh Timer Counter is already initialized */ r =at91_sys_read (AT91_SDRAMC_TR ); -if (r) +if (r && !in_sram) goto end;/* SDRAMC_MR : Normal Mode */
@@ -170,6 +179,13 @@ void __naked __bare_init reset(void)/* MATRIX_MCFG - REMAP all masters */ at91_sys_write (AT91_MATRIX_MCFG0 ,0x1FF );#endif +/* +* When boot from external boot +* we need to enable mck and ohter clock +* so enable all of them +* We will shutdown what we don't need later +*/ +at91_pmc_write (AT91_PMC_PCER ,0xffffffff ); end:board_init_lowlevel_return ();
Signature · 7 lines
1.7.10.4 _______________________________________________ barebox mailing list [email protected] http://lists.infradead.org/mailman/listinfo/barebox
PATCH v2 3/7 at91: sam926x: switch lowlevel param to c code
In reply to Jean-Christophe PLAGNIOL-VILLARDInstead of hardcode define use a struct that the board fill
--- arch/arm/boards/at91sam9263ek/Makefile | 5 + arch/arm/boards/at91sam9263ek/config.h | 99 +------------- arch/arm/boards/at91sam9263ek/lowlevel_init.c | 104 +++++++++++++++ arch/arm/boards/mmccpu/Makefile | 5 + arch/arm/boards/mmccpu/config.h | 130 +------------------ arch/arm/boards/mmccpu/lowlevel_init.c | 135 ++++++++++++++++++++ arch/arm/boards/pm9261/Makefile | 5 + arch/arm/boards/pm9261/config.h | 99 +------------- arch/arm/boards/pm9261/lowlevel_init.c | 102 +++++++++++++++ arch/arm/boards/pm9263/Makefile | 5 + arch/arm/boards/pm9263/config.h | 115 +---------------- arch/arm/boards/pm9263/lowlevel_init.c | 121 ++++++++++++++++++ arch/arm/mach-at91/at91sam926x_lowlevel_init.c | 64 ++++++---- .../mach-at91/include/mach/at91_lowlevel_init.h | 33 +++++ 14 files changed, 580 insertions(+), 442 deletions(-) rewrite arch/arm/boards/at91sam9263ek/config.h (95%) create mode 100644 arch/arm/boards/at91sam9263ek/lowlevel_init.c rewrite arch/arm/boards/mmccpu/config.h (97%) create mode 100644 arch/arm/boards/mmccpu/lowlevel_init.c rewrite arch/arm/boards/pm9261/config.h (95%) create mode 100644 arch/arm/boards/pm9261/lowlevel_init.c rewrite arch/arm/boards/pm9263/config.h (97%) create mode 100644 arch/arm/boards/pm9263/lowlevel_init.c create mode 100644 arch/arm/mach-at91/include/mach/at91_lowlevel_init.h
arch/arm/boards/at91sam9263ek/Makefile +5 -0
@@ -1 +1,6 @@ obj-y += init.o + +lowlevel_init-y = lowlevel_init.o +obj-$(CONFIG_MACH_DO_LOWLEVEL_INIT) += $(lowlevel_init-y) + +pbl-$(CONFIG_MACH_DO_LOWLEVEL_INIT) += $(lowlevel_init-y)
arch/arm/boards/at91sam9263ek/config.h +6 -93
99 lines not on this page · raw message
arch/arm/boards/at91sam9263ek/lowlevel_init.c new file +104 -0
104 lines not on this page · raw message
arch/arm/boards/mmccpu/Makefile +5 -0
@@ -1 +1,6 @@ obj-y += init.o + +lowlevel_init-y = lowlevel_init.o +obj-$(CONFIG_MACH_DO_LOWLEVEL_INIT) += $(lowlevel_init-y) + +pbl-$(CONFIG_MACH_DO_LOWLEVEL_INIT) += $(lowlevel_init-y)
arch/arm/boards/mmccpu/config.h +6 -124
130 lines not on this page · raw message
arch/arm/boards/mmccpu/lowlevel_init.c new file +135 -0
135 lines not on this page · raw message
arch/arm/boards/pm9261/Makefile +5 -0
@@ -1 +1,6 @@ obj-y += init.o + +lowlevel_init-y = lowlevel_init.o +obj-$(CONFIG_MACH_DO_LOWLEVEL_INIT) += $(lowlevel_init-y) + +pbl-$(CONFIG_MACH_DO_LOWLEVEL_INIT) += $(lowlevel_init-y)
arch/arm/boards/pm9261/config.h +6 -93
99 lines not on this page · raw message
arch/arm/boards/pm9261/lowlevel_init.c new file +102 -0
102 lines not on this page · raw message
arch/arm/boards/pm9263/Makefile +5 -0
@@ -1 +1,6 @@ obj-y += init.o + +lowlevel_init-y = lowlevel_init.o +obj-$(CONFIG_MACH_DO_LOWLEVEL_INIT) += $(lowlevel_init-y) + +pbl-$(CONFIG_MACH_DO_LOWLEVEL_INIT) += $(lowlevel_init-y)
arch/arm/boards/pm9263/config.h +6 -109
115 lines not on this page · raw message
arch/arm/boards/pm9263/lowlevel_init.c new file +121 -0
121 lines not on this page · raw message
arch/arm/mach-at91/at91sam926x_lowlevel_init.c +41 -23
146 lines not on this page · raw message
arch/arm/mach-at91/include/mach/at91_lowlevel_init.h new file +33 -0
@@ -0,0 +1,33 @@ +/* +* Copyright (C) 2009-2011 Jean-Christophe PLAGNIOL-VILLARD <[email protected]> +* +* Under GPLv2 +*/ + +#ifndef __AT91_LOWLEVEL_INIT_H__ +#define __AT91_LOWLEVEL_INIT_H__ + +struct at91sam926x_lowlevel_cfg { +u32 wdt_mr; +u32 ebi_pio_pdr; +u32 ebi_pio_ppudr; +u32 ebi_csa; +u32 smc_cs; +u32 smc_mode; +u32 smc_cycle; +u32 smc_pulse; +u32 smc_setup; +u32 pmc_mor; +u32 pmc_pllar; +u32 pmc_mckr1; +u32 pmc_mckr2; +u32 sdrc_cr; +u32 sdrc_tr1; +u32 sdrc_mdr; +u32 sdrc_tr2; +u32 rstc_rmr; +}; + +void at91sam926x_lowlevel_board_config (struct at91sam926x_lowlevel_cfg *cfg); + +#endif /* __AT91_LOWLEVEL_INIT_H__ */
Signature · 7 lines
1.7.10.4 _______________________________________________ barebox mailing list [email protected] http://lists.infradead.org/mailman/listinfo/barebox
PATCH v2 4/7 at91: usb-a9263 add lowlevel init
In reply to Jean-Christophe PLAGNIOL-VILLARD--- arch/arm/boards/usb-a926x/Makefile | 6 ++ .../arm/boards/usb-a926x/usb_a9263_lowlevel_init.c | 111 ++++++++++++++++++++ arch/arm/mach-at91/Kconfig | 1 + 3 files changed, 118 insertions(+) create mode 100644 arch/arm/boards/usb-a926x/usb_a9263_lowlevel_init.c
arch/arm/boards/usb-a926x/Makefile +6 -0
@@ -1 +1,7 @@ obj-y += init.o + +lowlevel_init-$(CONFIG_MACH_USB_A9263) = usb_a9263_lowlevel_init.o + +obj-$(CONFIG_MACH_DO_LOWLEVEL_INIT) += $(lowlevel_init-y) + +pbl-$(CONFIG_MACH_DO_LOWLEVEL_INIT) += $(lowlevel_init-y)
arch/arm/boards/usb-a926x/usb_a9263_lowlevel_init.c new file +111 -0
111 lines not on this page · raw message
arch/arm/mach-at91/Kconfig +1 -0
@@ -357,6 +357,7 @@ config MACH_TNY_A9263 config MACH_USB_A9263 bool "CALAO USB-A9263" + select MACH_HAS_LOWLEVEL_INIT help Select this if you are using a Calao Systems USB-A9263. <http://www.calao-systems.com>
Signature · 7 lines
1.7.10.4 _______________________________________________ barebox mailing list [email protected] http://lists.infradead.org/mailman/listinfo/barebox
PATCH v2 5/7 introduce common bootstrap code
In reply to Jean-Christophe PLAGNIOL-VILLARDThis will allow to have a generic code to create different bootstrap
As example
Barebox as TI Xloader
Barebox as AT91 Bootstrap
--- include/bootstrap.h | 34 +++++++++++++++++ lib/Kconfig | 2 + lib/Makefile | 1 + lib/bootstrap/Kconfig | 13 +++++++ lib/bootstrap/Makefile | 3 ++ lib/bootstrap/common.c | 21 +++++++++++ lib/bootstrap/devfs.c | 98 ++++++++++++++++++++++++++++++++++++++++++++++++ lib/bootstrap/disk.c | 36 ++++++++++++++++++ 8 files changed, 208 insertions(+) create mode 100644 include/bootstrap.h create mode 100644 lib/bootstrap/Kconfig create mode 100644 lib/bootstrap/Makefile create mode 100644 lib/bootstrap/common.c create mode 100644 lib/bootstrap/devfs.c create mode 100644 lib/bootstrap/disk.c
include/bootstrap.h new file +34 -0
@@ -0,0 +1,34 @@ +/* +* Copyright (C) 2012 Jean-Christophe PLAGNIOL-VILLARD <[email protected]> +* +* Under GPLv2 +*/ + +#ifndef __BOOSTRAP_H__ +#define __BOOSTRAP_H__ + +#define bootstrap_err(fmt, arg...) printf(fmt, ##arg) + +void bootstrap_boot (int (*func)(void ),bool barebox); + +#ifdef CONFIG_BOOTSTRAP_DEVFS +void *bootstrap_read_devfs (char *devname,bool use_bb,int offset, +int default_size,int max_size); +#else +static inline void *bootstrap_read_devfs (char *devname,bool use_bb,int offset, +int default_size,int max_size) +{ +return NULL ; +} +#endif + +#ifdef CONFIG_BOOTSTRAP_DISK +void *bootstrap_read_disk (char *devname); +#else +static inline void *bootstrap_read_disk (char *devname) +{ +return NULL ; +} +#endif + +#endif /* __BOOSTRAP_H__ */
lib/Kconfig +2 -0
@@ -52,4 +52,6 @@ config LIBMTD source lib/gui/Kconfig +source lib/bootstrap/Kconfig + endmenu
lib/Makefile +1 -0
@@ -1,3 +1,4 @@ +obj-$(CONFIG_BOOTSTRAP) += bootstrap/ obj-y += ctype.o obj-y += rbtree.o obj-y += display_options.o
lib/bootstrap/Kconfig new file +13 -0
@@ -0,0 +1,13 @@ +menuconfig BOOTSTRAP + bool "Library bootstrap routines " + depends on SHELL_NONE + +if BOOTSTRAP + +config BOOTSTRAP_DEVFS + bool "devfs support" + +config BOOTSTRAP_DISK + bool "disk support" + +endif
lib/bootstrap/Makefile new file +3 -0
@@ -0,0 +1,3 @@ +obj-y += common.o +obj-$(CONFIG_BOOTSTRAP_DEVFS) += devfs.o +obj-$(CONFIG_BOOTSTRAP_DISK) += disk.o
lib/bootstrap/common.c new file +21 -0
@@ -0,0 +1,21 @@ +/* +* Copyright (C) 2011 Sascha Hauer, Pengutronix +* Copyright (C) 2012 Jean-Christophe PLAGNIOL-VILLARD <[email protected]> +* +* Under GPLv2 +*/ + +#include <common.h> +#include <bootstrap.h> +#include <filetype.h> + +void bootstrap_boot (int (*func)(void ),bool barebox) +{ +if (barebox && !is_barebox_arm_head ((void *)func)) +return ; + +shutdown_barebox (); +func (); + +while (1 ); +}
lib/bootstrap/devfs.c new file +98 -0
98 lines not on this page · raw message
lib/bootstrap/disk.c new file +36 -0
@@ -0,0 +1,36 @@ +/* +* Copyright (C) 2011 Sascha Hauer, Pengutronix +* Copyright (C) 2012 Jean-Christophe PLAGNIOL-VILLARD <[email protected]> +* +* Under GPLv2 +*/ + +#include <common.h> +#include <fs.h> +#include <fcntl.h> +#include <sizes.h> +#include <errno.h> +#include <malloc.h> + +void *bootstrap_read_disk (char *devname) +{ +int ret; +void *buf; +int len; +char *path ="/" ; + + ret =mount (dev,"fat" , path); +if (ret) { +boot_err ("mounting %s failed with %d\n" , dev, ret); +return NULL ; + } + + buf =read_file ("/barebox.bin" , &len); +if (!buf) { +boot_err ("could not read barebox.bin from %s\n" , dev); +umount (path); +return NULL ; + } + +return buf; +}
Signature · 7 lines
1.7.10.4 _______________________________________________ barebox mailing list [email protected] http://lists.infradead.org/mailman/listinfo/barebox
Re: [PATCH 5/7] introduce common bootstrap code
Quoted 261 lines · Jean-Christophe PLAGNIOL-VILLARD
This will allow to have a generic code to create different bootstrap
As example
Barebox as TI Xloader
Barebox as AT91 BootstrapSigned-off-by Jean-Christophe PLAGNIOL-VILLARD <[email protected]>--- include/bootstrap.h | 34 +++++++++++++++++ lib/Kconfig | 2 + lib/Makefile | 1 + lib/bootstrap/Kconfig | 13 +++++++ lib/bootstrap/Makefile | 3 ++ lib/bootstrap/common.c | 21 +++++++++++ lib/bootstrap/devfs.c | 98 ++++++++++++++++++++++++++++++++++++++++++++++++ lib/bootstrap/disk.c | 36 ++++++++++++++++++ 8 files changed, 208 insertions(+) create mode 100644 include/bootstrap.h create mode 100644 lib/bootstrap/Kconfig create mode 100644 lib/bootstrap/Makefile create mode 100644 lib/bootstrap/common.c create mode 100644 lib/bootstrap/devfs.c create mode 100644 lib/bootstrap/disk.cinclude/bootstrap.h new file +34
-0@@ -0,0 +1,34 @@ +/* +* Copyright (C) 2012 Jean-Christophe PLAGNIOL-VILLARD <[email protected]> +* +* Under GPLv2 +*/ + +#ifndef __BOOSTRAP_H__ +#define __BOOSTRAP_H__ + +#define bootstrap_err(fmt, arg...) printf(fmt, ##arg) + +void bootstrap_boot (int (*func)(void ),bool barebox); + +#ifdef CONFIG_BOOTSTRAP_DEVFS +void *bootstrap_read_devfs (char *devname,bool use_bb,int offset, +int default_size,int max_size); +#else +static inline void *bootstrap_read_devfs (char *devname,bool use_bb,int offset, +int default_size,int max_size) +{ +return NULL ; +} +#endif + +#ifdef CONFIG_BOOTSTRAP_DISK +void *bootstrap_read_disk (char *devname); +#else +static inline void *bootstrap_read_disk (char *devname) +{ +return NULL ; +} +#endif + +#endif /* __BOOSTRAP_H__ */ lib/Kconfig +2
-0@@ -52,4 +52,6 @@ config LIBMTD source lib/gui/Kconfig +source lib/bootstrap/Kconfig + endmenulib/Makefile +1
-0@@ -1,3 +1,4 @@ +obj-$(CONFIG_BOOTSTRAP) += bootstrap/ obj-y += ctype.o obj-y += rbtree.o obj-y += display_options.olib/bootstrap/Kconfig new file +13
-0@@ -0,0 +1,13 @@ +menuconfig BOOTSTRAP + bool "Library bootstrap routines " + depends on SHELL_NONE + +if BOOTSTRAP + +config BOOTSTRAP_DEVFS + bool "devfs support" + +config BOOTSTRAP_DISK + bool "disk support" + +endiflib/bootstrap/Makefile new file +3
-0@@ -0,0 +1,3 @@ +obj-y += common.o +obj-$(CONFIG_BOOTSTRAP_DEVFS) += devfs.o +obj-$(CONFIG_BOOTSTRAP_DISK) += disk.olib/bootstrap/common.c new file +21
-0@@ -0,0 +1,21 @@ +/* +* Copyright (C) 2011 Sascha Hauer, Pengutronix +* Copyright (C) 2012 Jean-Christophe PLAGNIOL-VILLARD <[email protected]> +* +* Under GPLv2 +*/ + +#include <common.h> +#include <bootstrap.h> +#include <filetype.h> + +void bootstrap_boot (int (*func)(void ),bool barebox) +{ +if (barebox && !is_barebox_arm_head ((void *)func)) +return ; + +shutdown_barebox (); +func (); + +while (1 ); +}lib/bootstrap/devfs.c new file +98
-0@@ -0,0 +1,98 @@ +/* +* Copyright (C) 2011 Sascha Hauer, Pengutronix +* Copyright (C) 2012 Jean-Christophe PLAGNIOL-VILLARD <[email protected]> +* +* Under GPLv2 +*/ + +#include <common.h> +#include <partition.h> +#include <nand.h> +#include <driver.h> +#include <linux/mtd/mtd.h> +#include <fcntl.h> +#include <filetype.h> +#include <sizes.h> +#include <errno.h> +#include <malloc.h> +#include <bootstrap.h> + +static void *read_image_head (const char *name) +{ +void *header =xmalloc (ARM_HEAD_SIZE ); +struct cdev *cdev; +int ret; + + cdev =cdev_open (name,O_RDONLY ); +if (!cdev) { +bootstrap_err ("failed to open partition\n" ); +return NULL ; + } + + ret =cdev_read (cdev, header,ARM_HEAD_SIZE ,0 ,0 ); +cdev_close (cdev); + +if (ret !=ARM_HEAD_SIZE ) { +bootstrap_err ("failed to read from partition\n" ); +return NULL ; + } + +return header; +} + +static unsigned int get_image_size (void *head) +{ +unsigned int ret =0 ; +unsigned int *psize = head +ARM_HEAD_SIZE_OFFSET ; + +if (is_barebox_arm_head (head)) + ret = *psize; +debug ("Detected barebox image size %u\n" , ret); + +return ret; +} + +void *bootstrap_read_devfs (char *devname,bool use_bb,int offset, +int default_size,int max_size) +{ +int ret; +int size =0 ; +void *to, *header; +struct cdev *cdev; +char *partname ="x" ; + +devfs_add_partition (devname, offset, max_size,DEVFS_PARTITION_FIXED , partname); +if (use_bb) { +dev_add_bb_dev (partname,"bbx" ); + partname ="bbx" ; + } + + header =read_image_head (partname); +if (header) { + size =get_image_size (header); +if (!size) +bootstrap_err ("%s: failed to get image size\n" , devname); + } + +if (!size) { + size = default_size; +bootstrap_err ("%s: failed to detect barebox and it's image size so use %d\n" , + devname, size); + } + + to =xmalloc (size); + + cdev =cdev_open (partname,O_RDONLY ); +if (!cdev) { +bootstrap_err ("%s: failed to open %s\n" , devname, partname); +return NULL ; + } + + ret =cdev_read (cdev, to, size,0 ,0 ); +if (ret != size) { +bootstrap_err ("%s: failed to read from %s\n" , devname, partname); +return NULL ; + } + +return to; +}lib/bootstrap/disk.c new file +12
-0@@ -0,0 +1,36 @@ +/* +* Copyright (C) 2011 Sascha Hauer, Pengutronix +* Copyright (C) 2012 Jean-Christophe PLAGNIOL-VILLARD <[email protected]> +* +* Under GPLv2 +*/ + +#include <common.h> +#include <fs.h> +#include <fcntl.h> +#include <sizes.h> +#include <errno.h>
lib/bootstrap/disk.c line 22
Quoted 10 lines
lib/bootstrap/disk.c new file +10
-0+#include <malloc.h> + +void *bootstrap_read_disk (char *devname) +{ +int ret; +void *buf; +int len; +char *path ="/" ; + + ret =mount (dev,"fat" , path);
lib/bootstrap/disk.c: In function 'bootstrap_read_disk':lib/bootstrap/disk.c:22:14: error: 'dev' undeclared (first use in this function) lib/bootstrap/disk.c:22:14: note: each undeclared identifier is reported only once for each function it appears in
lib/bootstrap/disk.c line 24
Quoted 2 lines
lib/bootstrap/disk.c new file +2
-0+if (ret) { +boot_err ("mounting %s failed with %d\n" , dev, ret);
lib/bootstrap/disk.c:24:3: warning: implicit declaration of function 'boot_err' [-Wimplicit-function-declaration]
Sascha
Signature · 9 lines
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 [email protected] http://lists.infradead.org/mailman/listinfo/barebox
Re: [PATCH 5/7] introduce common bootstrap code
Quoted 277 lines · Sascha Hauer
Quoted 261 lines · Jean-Christophe PLAGNIOL-VILLARD
This will allow to have a generic code to create different bootstrap
As example
Barebox as TI Xloader
Barebox as AT91 BootstrapSigned-off-by Jean-Christophe PLAGNIOL-VILLARD <[email protected]>--- include/bootstrap.h | 34 +++++++++++++++++ lib/Kconfig | 2 + lib/Makefile | 1 + lib/bootstrap/Kconfig | 13 +++++++ lib/bootstrap/Makefile | 3 ++ lib/bootstrap/common.c | 21 +++++++++++ lib/bootstrap/devfs.c | 98 ++++++++++++++++++++++++++++++++++++++++++++++++ lib/bootstrap/disk.c | 36 ++++++++++++++++++ 8 files changed, 208 insertions(+) create mode 100644 include/bootstrap.h create mode 100644 lib/bootstrap/Kconfig create mode 100644 lib/bootstrap/Makefile create mode 100644 lib/bootstrap/common.c create mode 100644 lib/bootstrap/devfs.c create mode 100644 lib/bootstrap/disk.cinclude/bootstrap.h new file +34
-0@@ -0,0 +1,34 @@ +/* +* Copyright (C) 2012 Jean-Christophe PLAGNIOL-VILLARD <[email protected]> +* +* Under GPLv2 +*/ + +#ifndef __BOOSTRAP_H__ +#define __BOOSTRAP_H__ + +#define bootstrap_err(fmt, arg...) printf(fmt, ##arg) + +void bootstrap_boot (int (*func)(void ),bool barebox); + +#ifdef CONFIG_BOOTSTRAP_DEVFS +void *bootstrap_read_devfs (char *devname,bool use_bb,int offset, +int default_size,int max_size); +#else +static inline void *bootstrap_read_devfs (char *devname,bool use_bb,int offset, +int default_size,int max_size) +{ +return NULL ; +} +#endif + +#ifdef CONFIG_BOOTSTRAP_DISK +void *bootstrap_read_disk (char *devname); +#else +static inline void *bootstrap_read_disk (char *devname) +{ +return NULL ; +} +#endif + +#endif /* __BOOSTRAP_H__ */ lib/Kconfig +2
-0@@ -52,4 +52,6 @@ config LIBMTD source lib/gui/Kconfig +source lib/bootstrap/Kconfig + endmenulib/Makefile +1
-0@@ -1,3 +1,4 @@ +obj-$(CONFIG_BOOTSTRAP) += bootstrap/ obj-y += ctype.o obj-y += rbtree.o obj-y += display_options.olib/bootstrap/Kconfig new file +13
-0@@ -0,0 +1,13 @@ +menuconfig BOOTSTRAP + bool "Library bootstrap routines " + depends on SHELL_NONE + +if BOOTSTRAP + +config BOOTSTRAP_DEVFS + bool "devfs support" + +config BOOTSTRAP_DISK + bool "disk support" + +endiflib/bootstrap/Makefile new file +3
-0@@ -0,0 +1,3 @@ +obj-y += common.o +obj-$(CONFIG_BOOTSTRAP_DEVFS) += devfs.o +obj-$(CONFIG_BOOTSTRAP_DISK) += disk.olib/bootstrap/common.c new file +21
-0@@ -0,0 +1,21 @@ +/* +* Copyright (C) 2011 Sascha Hauer, Pengutronix +* Copyright (C) 2012 Jean-Christophe PLAGNIOL-VILLARD <[email protected]> +* +* Under GPLv2 +*/ + +#include <common.h> +#include <bootstrap.h> +#include <filetype.h> + +void bootstrap_boot (int (*func)(void ),bool barebox) +{ +if (barebox && !is_barebox_arm_head ((void *)func)) +return ; + +shutdown_barebox (); +func (); + +while (1 ); +}lib/bootstrap/devfs.c new file +98
-0@@ -0,0 +1,98 @@ +/* +* Copyright (C) 2011 Sascha Hauer, Pengutronix +* Copyright (C) 2012 Jean-Christophe PLAGNIOL-VILLARD <[email protected]> +* +* Under GPLv2 +*/ + +#include <common.h> +#include <partition.h> +#include <nand.h> +#include <driver.h> +#include <linux/mtd/mtd.h> +#include <fcntl.h> +#include <filetype.h> +#include <sizes.h> +#include <errno.h> +#include <malloc.h> +#include <bootstrap.h> + +static void *read_image_head (const char *name) +{ +void *header =xmalloc (ARM_HEAD_SIZE ); +struct cdev *cdev; +int ret; + + cdev =cdev_open (name,O_RDONLY ); +if (!cdev) { +bootstrap_err ("failed to open partition\n" ); +return NULL ; + } + + ret =cdev_read (cdev, header,ARM_HEAD_SIZE ,0 ,0 ); +cdev_close (cdev); + +if (ret !=ARM_HEAD_SIZE ) { +bootstrap_err ("failed to read from partition\n" ); +return NULL ; + } + +return header; +} + +static unsigned int get_image_size (void *head) +{ +unsigned int ret =0 ; +unsigned int *psize = head +ARM_HEAD_SIZE_OFFSET ; + +if (is_barebox_arm_head (head)) + ret = *psize; +debug ("Detected barebox image size %u\n" , ret); + +return ret; +} + +void *bootstrap_read_devfs (char *devname,bool use_bb,int offset, +int default_size,int max_size) +{ +int ret; +int size =0 ; +void *to, *header; +struct cdev *cdev; +char *partname ="x" ; + +devfs_add_partition (devname, offset, max_size,DEVFS_PARTITION_FIXED , partname); +if (use_bb) { +dev_add_bb_dev (partname,"bbx" ); + partname ="bbx" ; + } + + header =read_image_head (partname); +if (header) { + size =get_image_size (header); +if (!size) +bootstrap_err ("%s: failed to get image size\n" , devname); + } + +if (!size) { + size = default_size; +bootstrap_err ("%s: failed to detect barebox and it's image size so use %d\n" , + devname, size); + } + + to =xmalloc (size); + + cdev =cdev_open (partname,O_RDONLY ); +if (!cdev) { +bootstrap_err ("%s: failed to open %s\n" , devname, partname); +return NULL ; + } + + ret =cdev_read (cdev, to, size,0 ,0 ); +if (ret != size) { +bootstrap_err ("%s: failed to read from %s\n" , devname, partname); +return NULL ; + } + +return to; +}lib/bootstrap/disk.c new file +12
-0@@ -0,0 +1,36 @@ +/* +* Copyright (C) 2011 Sascha Hauer, Pengutronix +* Copyright (C) 2012 Jean-Christophe PLAGNIOL-VILLARD <[email protected]> +* +* Under GPLv2 +*/ + +#include <common.h> +#include <fs.h> +#include <fcntl.h> +#include <sizes.h> +#include <errno.h> lib/bootstrap/disk.c line 22
Quoted 10 lines
lib/bootstrap/disk.c new file +10
-0+#include <malloc.h> + +void *bootstrap_read_disk (char *devname) +{ +int ret; +void *buf; +int len; +char *path ="/" ; + + ret =mount (dev,"fat" , path);
lib/bootstrap/disk.c: In function 'bootstrap_read_disk':lib/bootstrap/disk.c:22:14: error: 'dev' undeclared (first use in this function)lib/bootstrap/disk.c:22:14: note: each undeclared identifier is reported only once for each function it appears in
Quoted 4 lines
lib/bootstrap/disk.c line 24
Quoted 2 lines
lib/bootstrap/disk.c new file +2
-0+if (ret) { +boot_err ("mounting %s failed with %d\n" , dev, ret);
lib/bootstrap/disk.c:24:3: warning: implicit declaration of function 'boot_err' [-Wimplicit-function-declaration]
I see too I send the old patch seres
Best Regards,
J.
Quoted 9 lines
Sascha
Signature · 4 lines
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
[email protected]
http://lists.infradead.org/mailman/listinfo/barebox
Re: [PATCH 5/7] introduce common bootstrap code
In reply to Jean-Christophe PLAGNIOL-VILLARDQuoted 123 lines · Jean-Christophe PLAGNIOL-VILLARD
This will allow to have a generic code to create different bootstrap
As example
Barebox as TI Xloader
Barebox as AT91 BootstrapSigned-off-by Jean-Christophe PLAGNIOL-VILLARD <[email protected]>--- include/bootstrap.h | 34 +++++++++++++++++ lib/Kconfig | 2 + lib/Makefile | 1 + lib/bootstrap/Kconfig | 13 +++++++ lib/bootstrap/Makefile | 3 ++ lib/bootstrap/common.c | 21 +++++++++++ lib/bootstrap/devfs.c | 98 ++++++++++++++++++++++++++++++++++++++++++++++++ lib/bootstrap/disk.c | 36 ++++++++++++++++++ 8 files changed, 208 insertions(+) create mode 100644 include/bootstrap.h create mode 100644 lib/bootstrap/Kconfig create mode 100644 lib/bootstrap/Makefile create mode 100644 lib/bootstrap/common.c create mode 100644 lib/bootstrap/devfs.c create mode 100644 lib/bootstrap/disk.cinclude/bootstrap.h new file +34
-0@@ -0,0 +1,34 @@ +/* +* Copyright (C) 2012 Jean-Christophe PLAGNIOL-VILLARD <[email protected]> +* +* Under GPLv2 +*/ + +#ifndef __BOOSTRAP_H__ +#define __BOOSTRAP_H__ + +#define bootstrap_err(fmt, arg...) printf(fmt, ##arg) + +void bootstrap_boot (int (*func)(void ),bool barebox); + +#ifdef CONFIG_BOOTSTRAP_DEVFS +void *bootstrap_read_devfs (char *devname,bool use_bb,int offset, +int default_size,int max_size); +#else +static inline void *bootstrap_read_devfs (char *devname,bool use_bb,int offset, +int default_size,int max_size) +{ +return NULL ; +} +#endif + +#ifdef CONFIG_BOOTSTRAP_DISK +void *bootstrap_read_disk (char *devname); +#else +static inline void *bootstrap_read_disk (char *devname) +{ +return NULL ; +} +#endif + +#endif /* __BOOSTRAP_H__ */ lib/Kconfig +2
-0@@ -52,4 +52,6 @@ config LIBMTD source lib/gui/Kconfig +source lib/bootstrap/Kconfig + endmenulib/Makefile +1
-0@@ -1,3 +1,4 @@ +obj-$(CONFIG_BOOTSTRAP) += bootstrap/ obj-y += ctype.o obj-y += rbtree.o obj-y += display_options.olib/bootstrap/Kconfig new file +13
-0@@ -0,0 +1,13 @@ +menuconfig BOOTSTRAP + bool "Library bootstrap routines " + depends on SHELL_NONE + +if BOOTSTRAP + +config BOOTSTRAP_DEVFS + bool "devfs support" + +config BOOTSTRAP_DISK + bool "disk support" + +endiflib/bootstrap/Makefile new file +3
-0@@ -0,0 +1,3 @@ +obj-y += common.o +obj-$(CONFIG_BOOTSTRAP_DEVFS) += devfs.o +obj-$(CONFIG_BOOTSTRAP_DISK) += disk.olib/bootstrap/common.c new file +5
-0@@ -0,0 +1,21 @@ +/* +* Copyright (C) 2011 Sascha Hauer, Pengutronix +* Copyright (C) 2012 Jean-Christophe PLAGNIOL-VILLARD <[email protected]> +* +* Under GPLv2
lib/bootstrap/common.c line 15
Quoted 10 lines
lib/bootstrap/common.c new file +10
-0+*/ + +#include <common.h> +#include <bootstrap.h> +#include <filetype.h> + +void bootstrap_boot (int (*func)(void ),bool barebox) +{ +if (barebox && !is_barebox_arm_head ((void *)func)) +return ;
This is ARM specific.
lib/bootstrap/common.c line 17
Quoted 2 lines
lib/bootstrap/common.c new file +2
-0+ + ret =cdev_read (cdev, header,ARM_HEAD_SIZE ,0 ,0 );
Also ARM specific.
Quoted 7 lines
lib/bootstrap/common.c new file +7
-0+cdev_close (cdev); + +if (ret !=ARM_HEAD_SIZE ) { +bootstrap_err ("failed to read from partition\n" ); +return NULL ; + } +
lib/bootstrap/common.c
Quoted 10 lines
lib/bootstrap/common.c new file +10
-0+return header; +} + +static unsigned int get_image_size (void *head) +{ +unsigned int ret =0 ; +unsigned int *psize = head +ARM_HEAD_SIZE_OFFSET ; + +if (is_barebox_arm_head (head)) + ret = *psize;
ARM specific.
Given the amount of ARM specific code I doubt this currently should be in a non ARM specific place.
Sascha
Signature · 9 lines
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 [email protected] http://lists.infradead.org/mailman/listinfo/barebox
Re: [PATCH 5/7] introduce common bootstrap code
Quoted 137 lines · Sascha Hauer
Quoted 123 lines · Jean-Christophe PLAGNIOL-VILLARD
This will allow to have a generic code to create different bootstrap
As example
Barebox as TI Xloader
Barebox as AT91 BootstrapSigned-off-by Jean-Christophe PLAGNIOL-VILLARD <[email protected]>--- include/bootstrap.h | 34 +++++++++++++++++ lib/Kconfig | 2 + lib/Makefile | 1 + lib/bootstrap/Kconfig | 13 +++++++ lib/bootstrap/Makefile | 3 ++ lib/bootstrap/common.c | 21 +++++++++++ lib/bootstrap/devfs.c | 98 ++++++++++++++++++++++++++++++++++++++++++++++++ lib/bootstrap/disk.c | 36 ++++++++++++++++++ 8 files changed, 208 insertions(+) create mode 100644 include/bootstrap.h create mode 100644 lib/bootstrap/Kconfig create mode 100644 lib/bootstrap/Makefile create mode 100644 lib/bootstrap/common.c create mode 100644 lib/bootstrap/devfs.c create mode 100644 lib/bootstrap/disk.cinclude/bootstrap.h new file +34
-0@@ -0,0 +1,34 @@ +/* +* Copyright (C) 2012 Jean-Christophe PLAGNIOL-VILLARD <[email protected]> +* +* Under GPLv2 +*/ + +#ifndef __BOOSTRAP_H__ +#define __BOOSTRAP_H__ + +#define bootstrap_err(fmt, arg...) printf(fmt, ##arg) + +void bootstrap_boot (int (*func)(void ),bool barebox); + +#ifdef CONFIG_BOOTSTRAP_DEVFS +void *bootstrap_read_devfs (char *devname,bool use_bb,int offset, +int default_size,int max_size); +#else +static inline void *bootstrap_read_devfs (char *devname,bool use_bb,int offset, +int default_size,int max_size) +{ +return NULL ; +} +#endif + +#ifdef CONFIG_BOOTSTRAP_DISK +void *bootstrap_read_disk (char *devname); +#else +static inline void *bootstrap_read_disk (char *devname) +{ +return NULL ; +} +#endif + +#endif /* __BOOSTRAP_H__ */ lib/Kconfig +2
-0@@ -52,4 +52,6 @@ config LIBMTD source lib/gui/Kconfig +source lib/bootstrap/Kconfig + endmenulib/Makefile +1
-0@@ -1,3 +1,4 @@ +obj-$(CONFIG_BOOTSTRAP) += bootstrap/ obj-y += ctype.o obj-y += rbtree.o obj-y += display_options.olib/bootstrap/Kconfig new file +13
-0@@ -0,0 +1,13 @@ +menuconfig BOOTSTRAP + bool "Library bootstrap routines " + depends on SHELL_NONE + +if BOOTSTRAP + +config BOOTSTRAP_DEVFS + bool "devfs support" + +config BOOTSTRAP_DISK + bool "disk support" + +endiflib/bootstrap/Makefile new file +3
-0@@ -0,0 +1,3 @@ +obj-y += common.o +obj-$(CONFIG_BOOTSTRAP_DEVFS) += devfs.o +obj-$(CONFIG_BOOTSTRAP_DISK) += disk.olib/bootstrap/common.c new file +5
-0@@ -0,0 +1,21 @@ +/* +* Copyright (C) 2011 Sascha Hauer, Pengutronix +* Copyright (C) 2012 Jean-Christophe PLAGNIOL-VILLARD <[email protected]> +* +* Under GPLv2 lib/bootstrap/common.c line 15
Quoted 10 lines
lib/bootstrap/common.c new file +10
-0+*/ + +#include <common.h> +#include <bootstrap.h> +#include <filetype.h> + +void bootstrap_boot (int (*func)(void ),bool barebox) +{ +if (barebox && !is_barebox_arm_head ((void *)func)) +return ;This is ARM specific.
Quoted 4 lines
lib/bootstrap/common.c line 17
Quoted 2 lines
lib/bootstrap/common.c new file +2
-0+ + ret =cdev_read (cdev, header,ARM_HEAD_SIZE ,0 ,0 );Also ARM specific.
yes if not arm is_barebox_arm return 0 so shoud compile too
and the code will be drop
we can move the code to arch/arm but did not see the point too much
Best Regards,
J.
Quoted 22 lines
Quoted 9 lines
lib/bootstrap/common.c new file +7
-0+cdev_close (cdev); + +if (ret !=ARM_HEAD_SIZE ) { +bootstrap_err ("failed to read from partition\n" ); +return NULL ; + } +lib/bootstrap/common.c
Quoted 10 lines
lib/bootstrap/common.c new file +10
-0+return header; +} + +static unsigned int get_image_size (void *head) +{ +unsigned int ret =0 ; +unsigned int *psize = head +ARM_HEAD_SIZE_OFFSET ; + +if (is_barebox_arm_head (head)) + ret = *psize;ARM specific.
Quoted 10 lines
Given the amount of ARM specific code I doubt this currently should be in a non ARM specific place.
Sascha
Signature · 4 lines
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
[email protected]
http://lists.infradead.org/mailman/listinfo/barebox
PATCH v2 6/7 at91: add bootstrap version
In reply to Jean-Christophe PLAGNIOL-VILLARDThis will allow to boot from NAND/MMC and others.
This version of bootstrap is a non shell version of barebox compressed by the pbl.
--- arch/arm/mach-at91/Kconfig | 1 + arch/arm/mach-at91/Makefile | 1 + arch/arm/mach-at91/bootstrap.c | 86 +++++++++++++++++++++++++++ arch/arm/mach-at91/include/mach/bootstrap.h | 28 +++++++++ 4 files changed, 116 insertions(+) create mode 100644 arch/arm/mach-at91/bootstrap.c create mode 100644 arch/arm/mach-at91/include/mach/bootstrap.h
arch/arm/mach-at91/Kconfig +1 -0
@@ -92,6 +92,7 @@ config SOC_AT91SAM9263 select HAVE_AT91_DBGU1 select HAS_MACB select AT91SAM9_RESET + select HAVE_NOSHELL config SOC_AT91SAM9G45 bool
arch/arm/mach-at91/Makefile +1 -0
@@ -1,6 +1,7 @@ obj-y += setup.o clock.o gpio.o obj-$(CONFIG_CMD_AT91_BOOT_TEST) += boot_test_cmd.o +obj-$(CONFIG_SHELL_NONE) += bootstrap.o lowlevel_init-y = at91sam926x_lowlevel_init.o lowlevel_init-$(CONFIG_ARCH_AT91RM9200) = at91rm9200_lowlevel_init.o obj-$(CONFIG_MACH_DO_LOWLEVEL_INIT) += $(lowlevel_init-y)
arch/arm/mach-at91/bootstrap.c new file +86 -0
86 lines not on this page · raw message
arch/arm/mach-at91/include/mach/bootstrap.h new file +28 -0
@@ -0,0 +1,28 @@ +/* +* Copyright (C) 2012 Jean-Christophe PLAGNIOL-VILLARD <[email protected]> +* +* Under GPLv2 +*/ + +#ifndef __MACH_BOOTSTRAP_H__ +#define __MACH_BOOTSTRAP_H__ + +#ifdef CONFIG_MTD_M25P80 +void *bootstrap_board_read_m25p80 (void ); +#else +static inline void *bootstrap_board_read_m25p80 (void ) +{ +return NULL ; +} +#endif + +#ifdef CONFIG_MTD_DATAFLASH +void *bootstrap_board_read_dataflash (void ); +#else +static inline void *bootstrap_board_read_dataflash (void ) +{ +return NULL ; +} +#endif + +#endif /* __MACH_BOOTSTRAP_H__ */
Signature · 7 lines
1.7.10.4 _______________________________________________ barebox mailing list [email protected] http://lists.infradead.org/mailman/listinfo/barebox
PATCH v2 7/7 at91: usb_a9263: add bootstrap version
In reply to Jean-Christophe PLAGNIOL-VILLARD--- arch/arm/boards/usb-a926x/Makefile | 3 +++ arch/arm/boards/usb-a926x/usb_a9263_bootstrap.c | 16 +++++++++++++ .../configs/usb_a9263_128mib_bootstrap_defconfig | 24 ++++++++++++++++++++ arch/arm/configs/usb_a9263_bootstrap_defconfig | 23 +++++++++++++++++++ 4 files changed, 66 insertions(+) create mode 100644 arch/arm/boards/usb-a926x/usb_a9263_bootstrap.c create mode 100644 arch/arm/configs/usb_a9263_128mib_bootstrap_defconfig create mode 100644 arch/arm/configs/usb_a9263_bootstrap_defconfig
arch/arm/boards/usb-a926x/Makefile +3 -0
@@ -1,5 +1,8 @@ obj-y += init.o +bootstrap-$(CONFIG_MACH_USB_A9263) = usb_a9263_bootstrap.o +obj-$(CONFIG_BOOTSTRAP) += $(bootstrap-y) + lowlevel_init-$(CONFIG_MACH_USB_A9263) = usb_a9263_lowlevel_init.o obj-$(CONFIG_MACH_DO_LOWLEVEL_INIT) += $(lowlevel_init-y)
arch/arm/boards/usb-a926x/usb_a9263_bootstrap.c new file +16 -0
@@ -0,0 +1,16 @@ +/* +* Copyright (C) 2012 Jean-Christophe PLAGNIOL-VILLARD <[email protected]> +* +* Under GPLv2 +*/ + +#include <common.h> +#include <bootstrap.h> +#include <mach/bootstrap.h> + +#ifdef CONFIG_MTD_DATAFLASH +void *bootstrap_board_read_dataflash (void ) +{ +return bootstrap_read_devfs ("dataflash0" , false,0xffc0 ,204864 ,204864 ); +} +#endif
arch/arm/configs/usb_a9263_128mib_bootstrap_defconfig new file +24 -0
@@ -0,0 +1,24 @@ +CONFIG_ARCH_AT91SAM9263=y +CONFIG_MACH_USB_A9263=y +CONFIG_AT91_HAVE_SRAM_128M=y +CONFIG_BAREBOX_MAX_IMAGE_SIZE=0x12000 +CONFIG_AEABI=y +# CONFIG_CMD_ARM_CPUINFO is not set +CONFIG_ARM_OPTIMZED_STRING_FUNCTIONS=y +CONFIG_ENVIRONMENT_VARIABLES=y +CONFIG_PBL_IMAGE=y +CONFIG_MMU=y +CONFIG_MALLOC_DUMMY=y +CONFIG_PROMPT="USB-9263:" +CONFIG_SHELL_NONE=y +# CONFIG_DEFAULT_ENVIRONMENT is not set +# CONFIG_SPI is not set +CONFIG_MTD=y +# CONFIG_MTD_WRITE is not set +# CONFIG_MTD_OOB_DEVICE is not set +CONFIG_NAND=y +# CONFIG_NAND_ECC_HW is not set +# CONFIG_NAND_ECC_HW_SYNDROME is not set +# CONFIG_NAND_ECC_HW_NONE is not set +CONFIG_NAND_ATMEL=y +# CONFIG_FS_RAMFS is not set
arch/arm/configs/usb_a9263_bootstrap_defconfig new file +23 -0
@@ -0,0 +1,23 @@ +CONFIG_ARCH_AT91SAM9263=y +CONFIG_MACH_USB_A9263=y +CONFIG_BAREBOX_MAX_IMAGE_SIZE=0x12000 +CONFIG_AEABI=y +# CONFIG_CMD_ARM_CPUINFO is not set +CONFIG_ARM_OPTIMZED_STRING_FUNCTIONS=y +CONFIG_ENVIRONMENT_VARIABLES=y +CONFIG_PBL_IMAGE=y +CONFIG_MMU=y +CONFIG_MALLOC_DUMMY=y +CONFIG_PROMPT="USB-9263:" +CONFIG_SHELL_NONE=y +# CONFIG_DEFAULT_ENVIRONMENT is not set +# CONFIG_SPI is not set +CONFIG_MTD=y +# CONFIG_MTD_WRITE is not set +# CONFIG_MTD_OOB_DEVICE is not set +CONFIG_NAND=y +# CONFIG_NAND_ECC_HW is not set +# CONFIG_NAND_ECC_HW_SYNDROME is not set +# CONFIG_NAND_ECC_HW_NONE is not set +CONFIG_NAND_ATMEL=y +# CONFIG_FS_RAMFS is not set
Signature · 7 lines
1.7.10.4 _______________________________________________ barebox mailing list [email protected] http://lists.infradead.org/mailman/listinfo/barebox
Re: [PATCH 7/7] at91: usb_a9263: add bootstrap version
Quoted 95 lines · Jean-Christophe PLAGNIOL-VILLARD
Signed-off-by Jean-Christophe PLAGNIOL-VILLARD <[email protected]>--- arch/arm/boards/usb-a926x/Makefile | 3 +++ arch/arm/boards/usb-a926x/usb_a9263_bootstrap.c | 16 +++++++++++++ .../configs/usb_a9263_128mib_bootstrap_defconfig | 24 ++++++++++++++++++++ arch/arm/configs/usb_a9263_bootstrap_defconfig | 23 +++++++++++++++++++ 4 files changed, 66 insertions(+) create mode 100644 arch/arm/boards/usb-a926x/usb_a9263_bootstrap.c create mode 100644 arch/arm/configs/usb_a9263_128mib_bootstrap_defconfig create mode 100644 arch/arm/configs/usb_a9263_bootstrap_defconfigarch/arm/boards/usb-a926x/Makefile +3
-0@@ -1,5 +1,8 @@ obj-y += init.o +bootstrap-$(CONFIG_MACH_USB_A9263) = usb_a9263_bootstrap.o +obj-$(CONFIG_BOOTSTRAP) += $(bootstrap-y) + lowlevel_init-$(CONFIG_MACH_USB_A9263) = usb_a9263_lowlevel_init.o obj-$(CONFIG_MACH_DO_LOWLEVEL_INIT) += $(lowlevel_init-y)arch/arm/boards/usb-a926x/usb_a9263_bootstrap.c new file +16
-0@@ -0,0 +1,16 @@ +/* +* Copyright (C) 2012 Jean-Christophe PLAGNIOL-VILLARD <[email protected]> +* +* Under GPLv2 +*/ + +#include <common.h> +#include <bootstrap.h> +#include <mach/bootstrap.h> + +#ifdef CONFIG_MTD_DATAFLASH +void *bootstrap_board_read_dataflash (void ) +{ +return bootstrap_read_devfs ("dataflash0" , false,0xffc0 ,204864 ,204864 ); +} +#endif arch/arm/configs/usb_a9263_128mib_bootstrap_defconfig new file +24
-0@@ -0,0 +1,24 @@ +CONFIG_ARCH_AT91SAM9263=y +CONFIG_MACH_USB_A9263=y +CONFIG_AT91_HAVE_SRAM_128M=y +CONFIG_BAREBOX_MAX_IMAGE_SIZE=0x12000 +CONFIG_AEABI=y +# CONFIG_CMD_ARM_CPUINFO is not set +CONFIG_ARM_OPTIMZED_STRING_FUNCTIONS=y +CONFIG_ENVIRONMENT_VARIABLES=y +CONFIG_PBL_IMAGE=y +CONFIG_MMU=y +CONFIG_MALLOC_DUMMY=y +CONFIG_PROMPT="USB-9263:" +CONFIG_SHELL_NONE=y +# CONFIG_DEFAULT_ENVIRONMENT is not set +# CONFIG_SPI is not set +CONFIG_MTD=y +# CONFIG_MTD_WRITE is not set +# CONFIG_MTD_OOB_DEVICE is not set +CONFIG_NAND=y +# CONFIG_NAND_ECC_HW is not set +# CONFIG_NAND_ECC_HW_SYNDROME is not set +# CONFIG_NAND_ECC_HW_NONE is not set +CONFIG_NAND_ATMEL=y +# CONFIG_FS_RAMFS is not setarch/arm/configs/usb_a9263_bootstrap_defconfig new file +13
-0@@ -0,0 +1,23 @@ +CONFIG_ARCH_AT91SAM9263=y +CONFIG_MACH_USB_A9263=y +CONFIG_BAREBOX_MAX_IMAGE_SIZE=0x12000 +CONFIG_AEABI=y +# CONFIG_CMD_ARM_CPUINFO is not set +CONFIG_ARM_OPTIMZED_STRING_FUNCTIONS=y +CONFIG_ENVIRONMENT_VARIABLES=y +CONFIG_PBL_IMAGE=y +CONFIG_MMU=y +CONFIG_MALLOC_DUMMY=y +CONFIG_PROMPT="USB-9263:" +CONFIG_SHELL_NONE=y +# CONFIG_DEFAULT_ENVIRONMENT is not set
arch/arm/configs/usb_a9263_bootstrap_defconfig line 23
Quoted 10 lines
arch/arm/configs/usb_a9263_bootstrap_defconfig new file +10
-0+# CONFIG_SPI is not set +CONFIG_MTD=y +# CONFIG_MTD_WRITE is not set +# CONFIG_MTD_OOB_DEVICE is not set +CONFIG_NAND=y +# CONFIG_NAND_ECC_HW is not set +# CONFIG_NAND_ECC_HW_SYNDROME is not set +# CONFIG_NAND_ECC_HW_NONE is not set +CONFIG_NAND_ATMEL=y +# CONFIG_FS_RAMFS is not set
Compilation of these configs ends with:
arch/arm/mach-at91/built-in.o: In function `boot_seq':
at91sam9263_devices.c:(.text.boot_seq+0x28): undefined reference to `bootstrap_boot'
Sascha
Signature · 9 lines
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 [email protected] http://lists.infradead.org/mailman/listinfo/barebox
Re: [PATCH 7/7] at91: usb_a9263: add bootstrap version
Quoted 109 lines · Sascha Hauer
Quoted 95 lines · Jean-Christophe PLAGNIOL-VILLARD
Signed-off-by Jean-Christophe PLAGNIOL-VILLARD <[email protected]>--- arch/arm/boards/usb-a926x/Makefile | 3 +++ arch/arm/boards/usb-a926x/usb_a9263_bootstrap.c | 16 +++++++++++++ .../configs/usb_a9263_128mib_bootstrap_defconfig | 24 ++++++++++++++++++++ arch/arm/configs/usb_a9263_bootstrap_defconfig | 23 +++++++++++++++++++ 4 files changed, 66 insertions(+) create mode 100644 arch/arm/boards/usb-a926x/usb_a9263_bootstrap.c create mode 100644 arch/arm/configs/usb_a9263_128mib_bootstrap_defconfig create mode 100644 arch/arm/configs/usb_a9263_bootstrap_defconfigarch/arm/boards/usb-a926x/Makefile +3
-0@@ -1,5 +1,8 @@ obj-y += init.o +bootstrap-$(CONFIG_MACH_USB_A9263) = usb_a9263_bootstrap.o +obj-$(CONFIG_BOOTSTRAP) += $(bootstrap-y) + lowlevel_init-$(CONFIG_MACH_USB_A9263) = usb_a9263_lowlevel_init.o obj-$(CONFIG_MACH_DO_LOWLEVEL_INIT) += $(lowlevel_init-y)arch/arm/boards/usb-a926x/usb_a9263_bootstrap.c new file +16
-0@@ -0,0 +1,16 @@ +/* +* Copyright (C) 2012 Jean-Christophe PLAGNIOL-VILLARD <[email protected]> +* +* Under GPLv2 +*/ + +#include <common.h> +#include <bootstrap.h> +#include <mach/bootstrap.h> + +#ifdef CONFIG_MTD_DATAFLASH +void *bootstrap_board_read_dataflash (void ) +{ +return bootstrap_read_devfs ("dataflash0" , false,0xffc0 ,204864 ,204864 ); +} +#endif arch/arm/configs/usb_a9263_128mib_bootstrap_defconfig new file +24
-0@@ -0,0 +1,24 @@ +CONFIG_ARCH_AT91SAM9263=y +CONFIG_MACH_USB_A9263=y +CONFIG_AT91_HAVE_SRAM_128M=y +CONFIG_BAREBOX_MAX_IMAGE_SIZE=0x12000 +CONFIG_AEABI=y +# CONFIG_CMD_ARM_CPUINFO is not set +CONFIG_ARM_OPTIMZED_STRING_FUNCTIONS=y +CONFIG_ENVIRONMENT_VARIABLES=y +CONFIG_PBL_IMAGE=y +CONFIG_MMU=y +CONFIG_MALLOC_DUMMY=y +CONFIG_PROMPT="USB-9263:" +CONFIG_SHELL_NONE=y +# CONFIG_DEFAULT_ENVIRONMENT is not set +# CONFIG_SPI is not set +CONFIG_MTD=y +# CONFIG_MTD_WRITE is not set +# CONFIG_MTD_OOB_DEVICE is not set +CONFIG_NAND=y +# CONFIG_NAND_ECC_HW is not set +# CONFIG_NAND_ECC_HW_SYNDROME is not set +# CONFIG_NAND_ECC_HW_NONE is not set +CONFIG_NAND_ATMEL=y +# CONFIG_FS_RAMFS is not setarch/arm/configs/usb_a9263_bootstrap_defconfig new file +13
-0@@ -0,0 +1,23 @@ +CONFIG_ARCH_AT91SAM9263=y +CONFIG_MACH_USB_A9263=y +CONFIG_BAREBOX_MAX_IMAGE_SIZE=0x12000 +CONFIG_AEABI=y +# CONFIG_CMD_ARM_CPUINFO is not set +CONFIG_ARM_OPTIMZED_STRING_FUNCTIONS=y +CONFIG_ENVIRONMENT_VARIABLES=y +CONFIG_PBL_IMAGE=y +CONFIG_MMU=y +CONFIG_MALLOC_DUMMY=y +CONFIG_PROMPT="USB-9263:" +CONFIG_SHELL_NONE=y +# CONFIG_DEFAULT_ENVIRONMENT is not setarch/arm/configs/usb_a9263_bootstrap_defconfig line 23
Quoted 10 lines
arch/arm/configs/usb_a9263_bootstrap_defconfig new file +10
-0+# CONFIG_SPI is not set +CONFIG_MTD=y +# CONFIG_MTD_WRITE is not set +# CONFIG_MTD_OOB_DEVICE is not set +CONFIG_NAND=y +# CONFIG_NAND_ECC_HW is not set +# CONFIG_NAND_ECC_HW_SYNDROME is not set +# CONFIG_NAND_ECC_HW_NONE is not set +CONFIG_NAND_ATMEL=y +# CONFIG_FS_RAMFS is not setCompilation of these configs ends with:
Quoted 2 lines
arch/arm/mach-at91/built-in.o: In function `boot_seq':
at91sam9263_devices.c:(.text.boot_seq+0x28): undefined reference to `bootstrap_boot'
I found it too
I send the wrong patch series
this is because in the defcofnig this verison does not have the lib bootstrap enabled
Best Regards,
J.
Quoted 8 lines
Sascha
Signature · 4 lines
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
[email protected]
http://lists.infradead.org/mailman/listinfo/barebox