dear Igor,
On 14 July 2011 21:15, Igor Grinberg <grinb...@compulab.co.il> wrote: > CONFIG_MACH_TYPE is used to set the machine type number in the > common arm code instead of setting it in the board code. > Boards with dynamically discoverable machine types can still set the > machine type number in the board code. > > Signed-off-by: Igor Grinberg <grinb...@compulab.co.il> > --- > v2: Document the option as mandatory. > Move the bi_arch_number setting to board_init_f() > > README | 10 ++++++++++ > arch/arm/lib/board.c | 4 ++++ > 2 files changed, 14 insertions(+), 0 deletions(-) > > diff --git a/README b/README > index 446966d..0b6802d 100644 > --- a/README > +++ b/README > @@ -442,6 +442,16 @@ The following options need to be configured: > crash. This is needed for buggy hardware (uc101) where > no pull down resistor is connected to the signal IDE5V_DD7. > > + CONFIG_MACH_TYPE [relevant for ARM only][mandatory] > + > + This setting is mandatory for all boards that have only one > + machine type and must be used to specify the machine type > + number as it appears in the ARM machine registry > + (see http://www.arm.linux.org.uk/developer/machines/). > + Only boards that have multiple machine types supported > + in a single configuration file and the machine type is > + runtime discoverable, do not have to use this setting. > + > - vxWorks boot parameters: > > bootvx constructs a valid bootline using the following > diff --git a/arch/arm/lib/board.c b/arch/arm/lib/board.c > index 169dfeb..9901694 100644 > --- a/arch/arm/lib/board.c > +++ b/arch/arm/lib/board.c > @@ -281,6 +281,10 @@ void board_init_f (ulong bootflag) > > gd->mon_len = _bss_end_ofs; > > +#ifdef CONFIG_MACH_TYPE > + gd->bd->bi_arch_number = CONFIG_MACH_TYPE; /* board id for Linux */ > +#endif > + bd structure is not initialised by this time. It leads to u-boot hanging for my board. I fixed this problem but modifying it. Below is the patch attached for the same. > for (init_fnc_ptr = init_sequence; *init_fnc_ptr; ++init_fnc_ptr) { > if ((*init_fnc_ptr)() != 0) { > hang (); > -- > 1.7.3.4 > > _______________________________________________ > U-Boot mailing list > U-Boot@lists.denx.de > http://lists.denx.de/mailman/listinfo/u-boot > >From d8df2f0ca9f08470c0cb88307fea4a66f41147a5 Mon Sep 17 00:00:00 2001 From: Chander Kashyap <chander.kash...@linaro.org> Date: Wed, 27 Jul 2011 15:10:59 +0530 Subject: [PATCH] ARM: Fix wrong initialisation of bi_arch_number bi_arch_number is initialised using @arch/arm/lib/board.c \#ifdef CONFIG_MACH_TYPE gd->bd->bi_arch_number = CONFIG_MACH_TYPE; /* board id for Linux */ \#endif bd structure is not intialized by this time. This leads to u-boot hanging when CONFIG_MACH_TYPE is defined. Signed-off-by: Chander Kashyap <chander.kash...@linaro.org> --- arch/arm/lib/board.c | 7 +++---- 1 files changed, 3 insertions(+), 4 deletions(-) diff --git a/arch/arm/lib/board.c b/arch/arm/lib/board.c index bcbf697..98a9bcc 100644 --- a/arch/arm/lib/board.c +++ b/arch/arm/lib/board.c @@ -281,10 +281,6 @@ void board_init_f (ulong bootflag) gd->mon_len = _bss_end_ofs; -#ifdef CONFIG_MACH_TYPE - gd->bd->bi_arch_number = CONFIG_MACH_TYPE; /* board id for Linux */ -#endif - for (init_fnc_ptr = init_sequence; *init_fnc_ptr; ++init_fnc_ptr) { if ((*init_fnc_ptr)() != 0) { hang (); @@ -380,6 +376,9 @@ void board_init_f (ulong bootflag) gd->bd = bd; debug ("Reserving %zu Bytes for Board Info at: %08lx\n", sizeof (bd_t), addr_sp); +#ifdef CONFIG_MACH_TYPE + gd->bd->bi_arch_number = CONFIG_MACH_TYPE; /* board id for Linux */ +#endif addr_sp -= sizeof (gd_t); id = (gd_t *) addr_sp; debug ("Reserving %zu Bytes for Global Data at: %08lx\n", -- 1.7.4.1 -- with warm regards, Chander Kashyap _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot