summaryrefslogtreecommitdiff
path: root/lib_arm
Commit message (Collapse)AuthorAgeLines
* ARM: compiler options cleanup - improve tool chain supportWolfgang Denk2009-08-21-3/+58
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | For some time there have been repeated reports about build problems with some ARM (cross) tool chains. Especially issues about (in)compatibility with the tool chain provided runtime support library libgcc.a caused to add and support a private implementation of such runtime support code in U-Boot. A closer look at the code indicated that some of these issues are actually home-made. This patch attempts to clean up some of the most obvious problems and make building of U-Boot with different tool chains easier: - Even though all ARM systems basicy used the same compiler options to select a specific ABI from the tool chain, the code for this was distributed over all cpu/*/config.mk files. We move this one level up into lib_arm/config.mk instead. - So far, we only checked if "-mapcs-32" was supported by the tool chain; if yes, this was used, if not, "-mabi=apcs-gnu" was selected, no matter if the tool chain actually understood this option. There was no support for EABI conformant tool chains. This patch implements the following logic: 1) If the tool chain supports "-mabi=aapcs-linux -mno-thumb-interwork" we use these options (EABI conformant tool chain). 2) Otherwise, we check first if "-mapcs-32" is supported, and then check for "-mabi=apcs-gnu" If one test succeeds, we use the first found option. 3) In case 2), we also test if "-mno-thumb-interwork", and use this if the test succeeds. [For "-mabi=aapcs-linux" we set "-mno-thumb-interwork" mandatorily.] This way we use a similar logic for the compile options as the Linux kernel does. - Some EABI conformant tool chains cause external references to utility functions like raise(); such functions are provided in the new file lib_arm/eabi_compat.c Note that lib_arm/config.mk gets parsed several times, so we must make sure to add eabi_compat.o only once to the linker list. Signed-off-by: Wolfgang Denk <wd@denx.de> Cc: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com> Cc: Dirk Behme <dirk.behme@googlemail.com> Cc: Magnus Lilja <lilja.magnus@gmail.com> Cc: Tom Rix <Tom.Rix@windriver.com> Cc: Prafulla Wadaskar <prafulla@marvell.com> Acked-by: Sergey Kubushyn <ksi@koi8.net> Tested-by: Magnus Lilja <lilja.magnus@gmail.com> Tested-by: Andrzej Wolski <awolski@poczta.fm> Tested-by: Gaye Abdoulaye Walsimou <walsimou@walsimou.com> Tested-by: Tom Rix <Tom.Rix@windriver.com> Tested-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
* ARM EABI: add new helper functions resp. function namesWolfgang Denk2009-08-09-9/+33
| | | | | | | | | | | The ARM EABI defines new names for GCC helper functions, and GCC seems to need some new functions as well. This patch is a minimal-invasive approach to fix problems with EABI conformant tool chains (to be used with "USE_PRIVATE_LIBGCC=yes"). Signed-off-by: Wolfgang Denk <wd@denx.de> Tested-by: Dirk Behme <dirk.behme@googlemail.com>
* arm: add _lshrdi3.SHeiko Schocher2009-07-27-0/+47
| | | | Signed-off-by: Heiko Schocher <hs@denx.de>
* Make linking against libgcc configurableWolfgang Denk2009-07-27-8/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | Many (especially ARM) tool chains seem to come with broken or otherwise unusable (for the purposes of builing U-Boot) run-time support libraries `libgcc.a'. By using the "USE_PRIVATE_LIBGCC" setting we allow to use alternative libraries instead. "USE_PRIVATE_LIBGCC" can either be set as an environment variable in the shell, or as a command line argument when running "make", i. e. $ make USE_PRIVATE_LIBGCC=yes or $ USE_PRIVATE_LIBGCC=yes $ export USE_PRIVATE_LIBGCC $ make The value of "USE_PRIVATE_LIBGCC" is the name of the directory which contains the alternative run-time support library `libgcc.a'. The special value "yes" selects the directory $(OBJTREE)/lib_$(ARCH) . Note that not all architectures provide an alternative `libgcc.a' in their lib_$(ARCH) directories - so far, only ARM does. Signed-off-by: Wolfgang Denk <wd@denx.de> Cc: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com> Cc: Prafulla Wadaskar <prafulla@marvell.com> cc: Stefan Roese <sr@denx.de>
* Move architecture specific config.mk files into subdirsPeter Tyser2009-07-21-0/+28
| | | | | | | | This cleans up U-Boot's toplevel directory a bit and makes the architecture 'config.mk' file naming and location similar to board and cpu 'config.mk' files Signed-off-by: Peter Tyser <ptyser@xes-inc.com>
* stdio/device: rework function naming conventionJean-Christophe PLAGNIOL-VILLARD2009-07-18-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | So far the console API uses the following naming convention: ======Extract====== typedef struct device_t; int device_register (device_t * dev); int devices_init (void); int device_deregister(char *devname); struct list_head* device_get_list(void); device_t* device_get_by_name(char* name); device_t* device_clone(device_t *dev); ======= which is too generic and confusing. Instead of using device_XX and device_t we change this into stdio_XX and stdio_dev This will also allow to add later a generic device mechanism in order to have support for multiple devices and driver instances. Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com> Edited commit message. Signed-off-by: Wolfgang Denk <wd@denx.de>
* arm: add support for CONFIG_GENERIC_MMCIlya Yanok2009-06-21-0/+7
| | | | Signed-off-by: Ilya Yanok <yanok@emcraft.com>
* make MODEM SUPPORT generic instead of duplicate itJean-Christophe PLAGNIOL-VILLARD2009-06-12-99/+0
| | | | | | | | | | and fix comment Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com> Adjusted Copyright message. Signed-off-by: Wolfgang Denk <wd@denx.de>
* arch_misc_init support for ARM architecturesPrafulla Wadaskar2009-06-12-0/+4
| | | | | | | This patch is required for Kirkwood support may be used by other ARM architectures Signed-off-by: Prafulla Wadaskar <prafulla@marvell.com>
* arm: remove cpu_initJean-Christophe PLAGNIOL-VILLARD2009-06-12-1/+0
| | | | | | move s3c44b0 to arch_cpu_init and as noone use cpu_init remove it Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
* arm: unify interrupt initJean-Christophe PLAGNIOL-VILLARD2009-06-12-0/+13
| | | | | | | all arm init the IRQ stack the same way so unify it in lib_arm/interrupts.c and then call arch specific interrupt init Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
* ARM Add blue colour LED to status_led.Tom Rix2009-06-12-0/+4
| | | | | | | There is exiting support for red,yellow,green but no blue. The main LED on the zoom2 is a blue LED. Signed-off-by: Tom Rix <Tom.Rix@windriver.com>
* arm: timer and interrupt init reworkJean-Christophe PLAGNIOL-VILLARD2009-06-12-0/+3
| | | | | | | | | | | | | | actually the timer init use the interrupt_init as init callback which make the interrupt and timer implementation difficult to follow so now rename it as int timer_init(void) and use interrupt_init for interrupt btw also remane the corresponding file to the functionnality implemented as ixp arch implement two timer - one based on interrupt - so all the timer related code is moved to timer.c Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
* lib_arch/board.c: Move malloc initialization before flash_init()Stefan Roese2009-06-12-3/+3
| | | | | | | | | | | | | | | | | | | This patch moves the malloc initialization before calling flash_init(). Upcoming changes to the NOR FLASH common CFI driver with optional MTD infrastructure and MTD concatenation support will call malloc(). And nothing really speaks against enabling malloc just a little earlier in the boot stage. Some architectures already enable malloc before calling flash_init() so they don't need any changes here. Signed-off-by: Stefan Roese <sr@denx.de> Cc: Wolfgang Denk <wd@denx.de> Cc: Mike Frysinger <vapier@gentoo.org> Cc: Scott McNutt <smcnutt@psyent.com> Cc: Shinya Kuribayashi <shinya.kuribayashi@necel.com> Cc: Nobuhiro Iwamatsu <iwamatsu@nigauri.org> Cc: Daniel Hellstrom <daniel@gaisler.com> Cc: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com> Cc: John Rigby <jcrigby@gmail.com>
* Fix e-mail address of Gary Jennejohn.Detlev Zundel2009-05-15-2/+2
| | | | Signed-off-by: Detlev Zundel <dzu@denx.de>
* lib_arm/board.c: remove misleading "test-only" comment.Wolfgang Denk2009-04-26-1/+1
| | | | | | | | For a long time, the print_cpuinfo() declaration in lib_arm/board.c had been marked as "test-only", which is plain wrong considering current usage. Delete this misleading comment. Signed-off-by: Wolfgang Denk <wd@denx.de>
* at91sam9/at91cap: improve clock frameworkJean-Christophe PLAGNIOL-VILLARD2009-04-16-0/+3
| | | | | | calculate dynamically the clock rate and pllb setting for usb Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
* arm: unify reset commandJean-Christophe PLAGNIOL-VILLARD2009-04-05-0/+54
| | | | Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
* arm: clean cache managementJean-Christophe PLAGNIOL-VILLARD2009-04-05-0/+123
| | | | | | unify arm cache management except for non standard cache as ARM7TDMI Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
* rename include/zlib.h to include/u-boot/zlib.hJean-Christophe PLAGNIOL-VILLARD2009-04-04-1/+1
| | | | | | | | | Some systems have zlib.h installed in /usr/include/. This isn't the desired file for u-boot code - we want the one in include/zlib.h. This rename will avoid the conflict. Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com> Signed-off-by: Mike Frysinger <vapier@gentoo.org>
* cmc_pu2: get mac address from environmentMike Frysinger2009-03-20-4/+0
| | | | | | | | | | | | The environment is the canonical storage location of the mac address, so we're killing off the global data location and moving everything to querying the env directly. Also rename load_sernum_ethaddr() to misc_init_r() so we don't need to handle this board specially in common ARM code. Signed-off-by: Mike Frysinger <vapier@gentoo.org> CC: Ben Warren <biggerbadderben@gmail.com>
* arm: get mac address from environmentMike Frysinger2009-03-20-32/+11
| | | | | | | | | | | | | | | The environment is the canonical storage location of the mac address, so we're killing off the global data location and moving everything to querying the env directly. Some warts are remaining and should be killed off (by moving the func to the appropriate board init code): - davinci_eth_set_mac_addr - cs8900_get_enetaddr - smc_set_mac_addr Signed-off-by: Mike Frysinger <vapier@gentoo.org> CC: Ben Warren <biggerbadderben@gmail.com>
* arm: add uart dcc supportJean-Christophe PLAGNIOL-VILLARD2009-02-22-0/+3
| | | | | | | | | | Serial driver via the EmbeddedICE macrocell's DCC channel using co-processor 14. It does include a timeout to ensure that the system does not totally freeze when there is nothing connected to read. Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
* Merge branch 'master' of git://git.denx.de/u-boot-armWolfgang Denk2009-02-19-7/+3
|\
| * ARM: remove unused variableGuennadi Liakhovetski2009-02-06-7/+3
| | | | | | | | | | | | | | | | The "size" variable in start_armboot() in lib_arm/board.c is only really used in "#ifndef CONFIG_SYS_NO_FLASH" case, and even there it can be eliminated (thanks to Jean-Christophe PLAGNIOL-VILLARD for a suggestion.) Signed-off-by: Guennadi Liakhovetski <lg@denx.de>
* | API: Provide syscall entry point for the ARM architecture.Rafal Jaworowski2009-02-18-0/+5
|/ | | | | Signed-off-by: Rafal Czubak <rcz@semihalf.com> Acked-by: Rafal Jaworowski <raj@semihalf.com>
* ixp: move pci init in arm/board instead of cpuJean-Christophe PLAGNIOL-VILLARD2009-01-31-0/+12
| | | | Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
* Update U-Boot's build timestamp on every compilePeter Tyser2008-12-06-1/+2
| | | | | | | Use the GNU 'date' command to auto-generate a new U-Boot timestamp on every compile. Signed-off-by: Peter Tyser <ptyser@xes-inc.com>
* lib_arm: do_bootm_linux() - correct a small mistakeIlko Iliev2008-11-21-1/+1
| | | | | | | | | This patch corrects a small bug in the "if" condition: the parameter "flag" is 0 and the "if" condition is always true. The result is - the boom command doesn't start the kernel. Affected targets: all arm based. Signed-off-by: Ilko Iliev <iliev@ronetix.at>
* bootm: Add subcommandsKumar Gala2008-10-29-0/+3
| | | | | | | | | | | | | | Add the ability to break the steps of the bootm command into several subcommands: start, loados, ramdisk, fdt, bdt, cmdline, prep, go. This allows us to do things like manipulate device trees before they are passed to a booting kernel or setup memory for a secondary core in multicore situations. Not all OS types support all subcommands (currently only start, loados, ramdisk, fdt, and go are supported). Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
* rename CFG_ macros to CONFIG_SYSJean-Christophe PLAGNIOL-VILLARD2008-10-18-11/+11
| | | | Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
* Fix bug: in arch-arm, env_get_char dose not work finegnusercn2008-10-08-0/+2
| | | | | | | | due to the arm implementation which supposed that U-Boot is in RAM when we jump to start_armboot Signed-off-by: gnusercn <gnusercn@gmail.com> Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
* Revert "ARM: set GD_FLG_RELOC for boards skipping relocation to RAM"Jean-Christophe PLAGNIOL-VILLARD2008-09-30-17/+0
| | | | | | | | | | we need this due to the arm implementation which supposed that U-Boot is in RAM when we jump to start_armboot This reverts commit f96b44cef897bd372beb86dde1b33637c119d84d. in order to do it for all arm board Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
* lib_arm/bootm.c: fix compile warningsWolfgang Denk2008-09-08-2/+1
| | | | | | | bootm.c:128: warning: label 'error' defined but not used bootm.c:65: warning: unused variable 'ret' Signed-off-by: Wolfgang Denk <wd@denx.de>
* ARM DaVinci: Changing function names for EMAC driverSandeep Paulraj2008-08-31-2/+2
| | | | | | | | | | DM644x is just one of a series of DaVinci chips that use the EMAC driver. By replacing all the function names that start with dm644x_* to davinci_* we make these function more portable. I have tested this change on my EVM. DM6467 is another DaVinci SOC which uses the EMAC driver and i will be sending patches that add DaVinci DM6467 support to the list soon. Signed-off-by: Sandeep Paulraj <s-paulraj@ti.com>
* bootm: refactor do_reset and os boot function argsKumar Gala2008-08-26-8/+2
| | | | | | | | | | | | There is no need for each OS specific function to call do_reset() we can just do it once in bootm. This means its feasible on an error for the OS boot function to return. Also, remove passing in cmd_tbl_t as its not needed by the OS boot functions. flag isn't currently used but might be in the future so we left it alone. Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
* bootm: refactor ramdisk locating codeKumar Gala2008-08-26-8/+2
| | | | | | | | Move determing if we have a ramdisk and where its located into the common code. Keep track of the ramdisk start and end in the bootm_headers_t image struct. Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
* bootm: refactor entry point codeKumar Gala2008-08-26-18/+1
| | | | | | | Move entry point code out of each arch and into common code. Keep the entry point in the bootm_headers_t images struct. Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
* Consolidate strmhz() implementationHaavard Skinnemoen2008-08-21-13/+0
| | | | | | | | | | ARM, i386, m68k and ppc all have identical implementations of strmhz(). Other architectures don't provide this function at all. This patch moves strmhz() into lib_generic, reducing code duplication and providing a more unified API across architectures. Signed-off-by: Haavard Skinnemoen <haavard.skinnemoen@atmel.com>
* Fix fallout from autostart revertKumar Gala2008-08-12-5/+1
| | | | | | | | The autostart revert caused a bit of duplicated code as well as code that was using images->autostart that needs to get removed so we can build again. Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
* ARM: set GD_FLG_RELOC for boards skipping relocation to RAMRemy Bohmer2008-07-30-0/+17
| | | | | | | | | | | | | If CONFIG_SKIP_RELOCATE_UBOOT is set the flag GD_FLG_RELOC is usually never set, because relocation to RAM is actually never done by U-boot itself. However, several pieces of code check if this flag is set at some time. So, to make sure this flag is set on boards skipping relocation, this is added to the initialisation of U-boot at a moment where it is safe to do so. Signed-off-by: Remy Bohmer <linux@bohmer.net>
* Remove unused code from lib_arm/bootm.cGururaja Hebbar K R2008-07-20-3/+0
| | | | Signed-off-by: Gururaja Hebbar <gururajakr@sanyo.co.in>
* Merge remote branch 'u-boot-at91/for-1.3.4'Wolfgang Denk2008-06-03-11/+28
|\
| * Merging Stelian Pop AT91 patchesJean-Christophe PLAGNIOL-VILLARD2008-05-24-11/+28
| |\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Merge branch 'testing-V2' Conflicts: board/atmel/at91cap9adk/Makefile Fixing copyright board/atmel/at91sam9260ek/Makefile Fixing copyright board/atmel/at91sam9260ek/u-boot.lds Delete no more needed ld script Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
| | * Add ATMEL LCD driverStelian Pop2008-05-10-11/+28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch adds support for the ATMEL LCDC driver which is used on some AT91 and AVR platforms. Is has been tested with the AT91CAP9ADK, AT91SAM9261EK, AT91SAM9263EK and AT91SAM9RLEK boards. Adaptation for AVR32 should probably be easy. Signed-off-by: Stelian Pop <stelian@popies.net> Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
* | | Remove prototypes of nand_init() in favor of including nand.h.Scott Wood2008-05-28-8/+2
|/ / | | | | | | | | | | Likewise with onenand_init(). Signed-off-by: Scott Wood <scottwood@freescale.com>
* | Big white-space cleanup.Wolfgang Denk2008-05-21-5/+5
|/ | | | | | | | | | | This commit gets rid of a huge amount of silly white-space issues. Especially, all sequences of SPACEs followed by TAB characters get removed (unless they appear in print statements). Also remove all embedded "vim:" and "vi:" statements which hide indentation problems. Signed-off-by: Wolfgang Denk <wd@denx.de>
* Fix implicit declaration build warningsMarcel Ziswiler2008-05-03-0/+1
| | | | | | - warning: implicit declaration of function ‘serial_initialize’ Signed-off-by: Marcel Ziswiler <marcel@ziswiler.com>
* Restore the ability to continue booting after legacy image overwriteMarian Balakowicz2008-04-17-1/+1
| | | | | | | | | | | Before new uImage code was merged, bootm code allowed for the kernel image to get overwritten during decompresion. new uImage introduced a check for image overwrites and refused to boot the image that got overwritten. This patch restores the old behavior. It also adds a warning when the image overwriten is a multi-image file, because in such case accessing componentes other than the first one will fail. Signed-off-by: Marian Balakowicz <m8@semihalf.com>
* [new uImage] Add new uImage format support to arch specific do_bootm_linux() ↵Marian Balakowicz2008-03-12-4/+16
| | | | | | | | | | | routines This patch updates architecture specific implementations of do_bootm_linux() adding new uImage format handling for operations like get kernel entry point address, get kernel image data start address. Signed-off-by: Marian Balakowicz <m8@semihalf.com>