summaryrefslogtreecommitdiff
path: root/common
Commit message (Collapse)AuthorAgeLines
* SPI API improvementsHaavard Skinnemoen2008-06-03-48/+155
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch gets rid of the spi_chipsel table and adds a handful of new functions that makes the SPI layer cleaner and more flexible. Instead of the spi_chipsel table, each board that wants to use SPI gets to implement three hooks: * spi_cs_activate(): Activates the chipselect for a given slave * spi_cs_deactivate(): Deactivates the chipselect for a given slave * spi_cs_is_valid(): Determines if the given bus/chipselect combination can be activated. Not all drivers may need those extra functions however. If that's the case, the board code may just leave them out (assuming they know what the driver needs) or rely on the linker to strip them out (assuming --gc-sections is being used.) To set up communication parameters for a given slave, the driver needs to call spi_setup_slave(). This returns a pointer to an opaque spi_slave struct which must be passed as a parameter to subsequent SPI calls. This struct can be freed by calling spi_free_slave(), but most driver probably don't want to do this. Before starting one or more SPI transfers, the driver must call spi_claim_bus() to gain exclusive access to the SPI bus and initialize the hardware. When all transfers are done, the driver must call spi_release_bus() to make the bus available to others, and possibly shut down the SPI controller hardware. spi_xfer() behaves mostly the same as before, but it now takes a spi_slave parameter instead of a spi_chipsel function pointer. It also got a new parameter, flags, which is used to specify chip select behaviour. This may be extended with other flags in the future. This patch has been build-tested on all powerpc and arm boards involved. I have not tested NIOS since I don't have a toolchain for it installed, so I expect some breakage there even though I've tried fixing up everything I could find by visual inspection. I have run-time tested this on AVR32 ATNGW100 using the atmel_spi and DataFlash drivers posted as a follow-up. I'd like some help testing other boards that use the existing SPI API. But most of all, I'd like some comments on the new API. Is this stuff usable for everyone? If not, why? Changed in v4: - Build fixes for various boards, drivers and commands - Provide common struct spi_slave definition that can be extended by drivers - Pass a struct spi_slave * to spi_cs_activate and spi_cs_deactivate - Make default bus and mode build-time configurable - Override default SPI bus ID and mode on mx32ads and imx31_litekit. Changed in v3: - Add opaque struct spi_slave for controller-specific data associated with a slave. - Add spi_claim_bus() and spi_release_bus() - Add spi_free_slave() - spi_setup() is now called spi_setup_slave() and returns a struct spi_slave - soft_spi now supports four SPI modes (CPOL|CPHA) - Add bus parameter to spi_setup_slave() - Convert the new i.MX32 SPI driver - Convert the new MC13783 RTC driver Changed in v2: - Convert the mpc8xxx_spi driver and the mpc8349emds board to the new API. Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com> Tested-by: Guennadi Liakhovetski <lg@denx.de>
* soft_i2c: Pull SDA high before readingHaavard Skinnemoen2008-06-03-0/+1
| | | | | | | | | | | | | Spotted by Dean Capindale. Systems that support open-drain GPIO properly are allowed provide an empty I2C_TRISTATE define. However, this means that we need to be careful not to drive SDA low when the slave is expected to respond. This patch adds a missing I2C_SDA(1) to read_byte() required to tristate the SDA line on systems that support open-drain GPIO. Signed-off-by: Haavard Skinnemoen <haavard.skinnemoen@atmel.com>
* Make sure common.h is the first include.Kumar Gala2008-06-03-1/+2
| | | | | | | | | If common.h isn't first we can get CONFIG_ options defined in the board config file ignored. This can cause an issue if any of those config options impact the size of types of data structures (eg CONFIG_PHYS_64BIT). Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
* Avoid initrd and logbuffer area overlapsMarian Balakowicz2008-06-03-1/+17
| | | | | | | | | Add logbuffer to reserved LMB areas to prevent initrd allocation from overlaping with it. Make sure to use correct logbuffer base address. Signed-off-by: Marian Balakowicz <m8@semihalf.com>
* Merge remote branch 'u-boot-at91/for-1.3.4'Wolfgang Denk2008-06-03-1/+77
|\
| * Merging Stelian Pop AT91 patchesJean-Christophe PLAGNIOL-VILLARD2008-05-24-6/+77
| |\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
| | * Cleanup nand_info[] declaration.Stelian Pop2008-05-13-6/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | The nand_info array is declared as extern in several .c files. Those days, nand.h contains a reference to the array, so there is no need to declare it elsewhere. Signed-off-by: Stelian Pop <stelian@popies.net> Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
| | * Add ATMEL LCD driverStelian Pop2008-05-10-1/+78
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* | | Cleanup nand_info[] declaration.Stelian Pop2008-05-28-5/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | The nand_info array is declared as extern in several .c files. Those days, nand.h contains a reference to the array, so there is no need to declare it elsewhere. Signed-off-by: Stelian Pop <stelian@popies.net> Signed-off-by: Scott Wood <scottwood@freescale.com>
* | | USB: replace old swap_ with proper endianess conversion macrosChristian Eggers2008-05-22-45/+38
|/ / | | | | | | | | Signed-off-by: Christian Eggers <ceggers@gmx.de> Signed-off-by: Markus Klotzbuecher <mk@denx.de>
* | Merge branch 'lwmon5' of /home/wd/git/u-boot/projectsWolfgang Denk2008-05-21-2/+2
|\ \
| * | POST: replace the LOGBUFF_INITIALIZED flag in gd->post_log_word (1 << 31) ↵Yuri Tikhonov2008-05-20-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | with the GD_FLG_LOGINIT flag in gd->flags. This way we become able to utilize the full post_log_word for POST activities (overwise, POST ECC, which has 0x8000 ID, could be erroneously treated as started in post_output_backlog() even if there was actually no POST ECC run (because of OCM POST failure, for example). Signed-off-by: Yuri Tikhonov <yur@emcraft.com>
* | | Big white-space cleanup.Wolfgang Denk2008-05-21-207/+202
|/ / | | | | | | | | | | | | | | | | | | | | 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>
* | common/usb.c: fix incorrect escape sequenceHebbar2008-05-20-1/+1
| | | | | | | | Signed off by: Gururaja Hebbar <gururajakr@sanyo.co.in>
* | environment: cleanup prototype declarations of env functions.Wolfgang Denk2008-05-14-23/+0
| | | | | | | | Signed-off-by: Wolfgang Denk <wd@denx.de>
* | Revert "Avoid initrd and logbuffer area overlaps"Wolfgang Denk2008-05-12-14/+1
| | | | | | | | | | This reverts commit 1b5605ca57fbb364f4d78eeee28b974ed875e888 which breaks building on all PPC boards that don't use a log buffer.
* | Fix offset calculation for multi-type legacy images.Nick Spence2008-05-12-9/+4
| | | | | | | | | | | | | | | | Calculation of tail was incorrect when size % 4 == 0. New code removes the conditional and does the same thing but with arithmetic Signed-off-by: Nick Spence <nick.spence@freescale.com>
* | Revert "Change env_get_char from a global function ptr to a function."Wolfgang Denk2008-05-12-13/+13
| | | | | | | | | | This reverts commit c0559be371b2a64b1a817088c3308688e2182f93 which is known to break booting from dataflash and NAND.
* | Avoid initrd and logbuffer area overlapsMarian Balakowicz2008-05-10-1/+14
| | | | | | | | | | | | | | | | | | Add logbuffer to reserved LMB areas to prevent initrd allocation from overlaping with it. Make sure to use correct logbuffer base address. Signed-off-by: Marian Balakowicz <m8@semihalf.com>
* | Fix build errors when CONFIG_LOGBUFFER and CONFIG_FIT are enabledMarian Balakowicz2008-05-10-15/+0
| | | | | | | | | | | | | | | | | | | | | | Recent modifcations to LOGBUFFER handling code were incorrecly introduced to fit_check_kernel() routine during "Merge branch 'new-image' of git://www.denx.de/git/u-boot-testing", commit 27f33e9f45ef7f9685cbdc65066a1828e85dde4f. This patch cleans up this merge issue. Signed-off-by: Marian Balakowicz <m8@semihalf.com>
* | Fix readline_into_buffer() with CONFIG_CMDLINE_EDITING before relocatingJames Yang2008-05-09-10/+23
| | | | | | | | | | | | | | | | | | | | | | When CONFIG_CMDLINE_EDITING is enabled, readline_into_buffer() doesn't work before relocating to RAM because command history is written into a global array that is not writable before relocation. This patch defers to the no-editing and no-history code in readline_into_buffer() if it is called before relocation. Signed-off-by: James Yang <James.Yang@freescale.com> Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
* | ide: Remove spurious second include of io.hMarcel Ziswiler2008-05-09-4/+0
| | | | | | | | | | | | Removed the second include, with all the #ifdef around as suggested by Wolfgang. Signed-off-by: Marcel Ziswiler <marcel@ziswiler.com>
* | Recognize 'powerpc' As an Alias for IH_ARCH_PPCGrant Erickson2008-05-09-0/+1
|/ | | | | | | | Add support for the recognition of 'powerpc' as an alias for the PowerPC architecture type since Linux is already trending in that direction, preferring 'powerpc' to 'ppc'. Signed-off-by: Grant Erickson <gerickson@nuovations.com>
* fix building when saveenv is disabled in some setupsMike Frysinger2008-05-04-0/+2
| | | | | | | | | | | If you enable environment in the flash, but disable the embedded option, and you disable the saveenv command, then the #if nested logic will trigger a compile failure: env_flash.c: In function 'env_relocate_spec': env_flash.c:399: error: 'flash_addr' undeclared (first use in this function) The fix is to add CMD_SAVEENV ifdef protection like everywhere else. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
* cmd_nand: fix warning: str2long ncompatible pointer typeJean-Christophe PLAGNIOL-VILLARD2008-04-30-1/+1
| | | | Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
* Fix warning in env_nand.c if compiled for DaVinci Schmoogiedirk.behme@googlemail.com2008-04-30-3/+3
| | | | | | | | | | | | | | Fix warnings nv_nand.c: In function 'saveenv': env_nand.c:200: warning: passing argument 3 of 'nand_write' from incompatible pointer type env_nand.c: In function 'env_relocate_spec': env_nand.c:275: warning: passing argument 3 of 'nand_read' from incompatible pointer type if compiled for davinci_schmoogie_config. Signed-off-by: Dirk Behme <dirk.behme@gmail.com> Ack by: Sergey Kubushyn <ksi@koi8.net>
* common/env_nand.c: fix one more incompatible pointer type issueWolfgang Denk2008-04-29-1/+1
| | | | Signed-off-by: Wolfgang Denk <wd@denx.de>
* IDE: fix compiler warningsGuennadi Liakhovetski2008-04-28-2/+12
| | | | | | | The IDE driver can use 32-bit addresses in LBA mode, in which case it spits multiple warnings during compilation. Fix them. Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
* cmd_nand.c: fix "differ in signedness" problemWolfgang Denk2008-04-28-6/+7
| | | | Signed-off-by: Wolfgang Denk <wd@denx.de>
* NAND: fix some strict-aliasing compiler warningsWolfgang Denk2008-04-28-10/+11
| | | | Signed-off-by: Wolfgang Denk <wd@denx.de>
* Use watchdog-aware functions when calculating hashes of images - take twoBartlomiej Sieka2008-04-25-34/+8
| | | | | | | | | Some files didn't get updated properly with the "Use watchdog-aware functions when calculating hashes of images" commit, this commit fixes this. Signed-off-by: Bartlomiej Sieka <tur@semihalf.com> Signed-off-by: Wolfgang Denk <wd@denx.de>
* Merge branch 'master' of /home/wd/git/u-boot/lwmon5Wolfgang Denk2008-04-25-0/+7
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: common/cmd_bootm.c common/cmd_log.c include/common.h post/board/lwmon5/Makefile post/board/lwmon5/dsp.c post/board/lwmon5/dspic.c post/board/lwmon5/fpga.c post/board/lwmon5/gdc.c post/board/lwmon5/sysmon.c post/board/lwmon5/watchdog.c Signed-off-by: Wolfgang Denk <wd@denx.de>
| * Added watchdog triggering calls in the "mtest" test function.Sergei Poselenov2008-04-22-0/+7
| | | | | | | | Signed-off-by: Sergei Poselenov <sposelenov@emcraft.com>
| * The patch introduces the alternative configuration of the log buffer forYuri Tikhonov2008-03-18-6/+36
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | the lwmon5 board: the storage for the log-buffer itself is OCM(on-chip memory), the log-buffer header is moved to six GPT registers (PPC440EPX_GPT0_COMP1, ..., PPC440EPX_GPT0_COMP5). To enable this, alternative, configuration the U-Boot board configuration file for lwmon5 includes the definitions of alternative addresses for header (CONFIG_ALT_LH_ADDR) and buffer (CONFIG_ALT_LB_ADDR). The Linux shall be configured with the CONFIG_ALT_LB_LOCATION option set, and has the BOARD_ALT_LH_ADDR and BOARD_ALT_LB_ADDR constants defined in the lwmon5 board-specific header (arch/ppc/platforms/4xx/lwmon5.h). Signed-off-by: Yuri Tikhonov <yur@emcraft.com>
| * The patch introduces the CRITICAL feature of POST tests. If the testYuri Tikhonov2008-03-18-1/+7
| | | | | | | | | | | | | | | | | | marked as POST_CRITICAL fails then the alternative, post_critical, boot-command is used. If this command is not defined then U-Boot enters into interactive mode. Signed-off-by: Dmitry Rakhchev <rda@emcraft.com> Signed-off-by: Yuri Tikhonov <yur@emcraft.com>
* | Memory footprint optimizationsBartlomiej Sieka2008-04-24-37/+27
| | | | | | | | | | | | | | | | | | | | As suggested by Wolfgang Denk: - image printing functions: - remove wrappers - remove indentation prefix from functions' signatures - merge getenv_verify and getenv_autostart into one parametrized function Signed-off-by: Bartlomiej Sieka <tur@semihalf.com>
* | crc32: use uint32_t rather than unsigned longMike Frysinger2008-04-24-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | The envcrc.c does sizeof(unsigned long) when calculating the crc, but this is done with the build toolchain instead of the target tool chain, so if the build is a 64bit system but the target is 32bits, the size will obviously be wrong. This converts all unsigned long stuff related to crc32 to uint32_t types. Compile tested only: output of ./tools/envcrc when run on a 32bit build system matches that of a 64bit build system. Signed-off-by: Mike Frysinger <vapier@gentoo.org> Acked-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
* | Fix build breakage casued by commit c0559be371b2Wolfgang Denk2008-04-18-1/+0
| | | | | | | | | | | | Change env_get_char from a global function ptr to a function. Signed-off-by: Wolfgang Denk <wd@denx.de>
* | allow ports to override go behaviorMike Frysinger2008-04-18-28/+5
| | | | | | | | | | | | Split the arch-specific logic out of the common go code and into a dedicated weak function called do_go_exec() that lives in cpu directories. This will need review from i386/nios people to make sure I didn't break them.
* | allow ports to override bootelf behaviorMike Frysinger2008-04-18-12/+21
| | | | | | | | | | | | Change the bootelf setup function into a dedicated weak function called do_bootelf_exec. This way ports can control the behavior however they like before/after calling the ELF entry point.
* | Restore the ability to continue booting after legacy image overwriteMarian Balakowicz2008-04-17-12/+27
| | | | | | | | | | | | | | | | | | | | | | 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>
* | IDE: fix bug in reset sequenceMartin Krause2008-04-17-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | According to the ata (ata5) specification the RESET- signal shall be asserted for at least 25 us. Without this patch, the RESET- signal is asserted on some boards for only < 1 us (e. g. on the TQM5200). This patch adds a general delay of 25 us to the RESET- signal. Without this patch a Platinum 4 GiB CF card is not recognised properly on boards with a TQM5200 (STK52xx, TB5200). Signed-off-by: Martin Krause <martin.krause@tqs.de>
* | cmd_log.c: Fix assignment differ in signednessJean-Christophe PLAGNIOL-VILLARD2008-04-17-1/+1
| | | | | | | | | | | | | | In function 'logbuff_init_ptrs': cmd_log.c:79: warning: pointer targets in assignment differ in signedness Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
* | Change env_get_char from a global function ptr to a function.Joakim Tjernlund2008-04-17-13/+13
| | | | | | | | | | | | This avoids an early global data reference. Signed-off-by: Joakim Tjernlund <Joakim.Tjernlund@transmode.se>
* | Fix OneNAND erase commandKyungmin Park2008-04-13-14/+27
| | | | | | | | | | | | | | It mis-calculates the block address. Also fix DECLARE_GLOBAL_DATA_PTR in env_onenand. Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
* | Add CONFIG_MII_INIT support to related boardsTsiChung Liew2008-04-13-1/+1
| | | | | | | | | | | | | | | | | | Replace CONFIG_8xx and CONFIG_MCF532x to CONFIG_MII_INIT in cmd_init.c. Add CONFIG_MII_INIT to board configuration files that use mii_init() in cmd_init.c. Signed-off-by: TsiChung Liew <Tsi-Chung.Liew@freescale.com> Acked-by: Ben Warren <biggerbadderben@gmail.com>
* | Rename include/md5.h to include/u-boot/md5.hAndy Fleming2008-04-13-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Some systems have md5.h installed in /usr/include/. This isn't the desired file (we want the one in include/md5.h). This will avoid the conflict. This fixes the host tools building problem by creating a new directory for U-Boot specific header files. [Patch by Andy Fleming, modified to use separate directory by Wolfgang Denk] Signed-off-by: Wolfgang Denk <wd@denx.de> Signed-off-by: Andy Fleming <afleming@freescale.com> Acked-by: Timur Tabi <timur@freescale.com>
* | Altera Stratix II supporteran liberty2008-04-13-8/+275
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Adds Support for Altera's Stratix II. Within your board specific init file you will have to call 1. fpga_init (/* relocated code offset. usually => */ gd->reloc_off); 2. fpga_add (fpga_altera, (Altera_desc*)&altera_desc); Altera_desc* contines (for example): { Altera_StratixII, /* part type */ passive_serial, /* interface type */ 1, /* bytes of data part can accept */ (void *)(&funcs), /* interface function table */ 0L, /* base interface address */ 0 /* implementation specific cookie */ } funcs is the interface. It is of type altera_board_specific_func. It looks like this: altera_board_specific_func func = { pre_fn, config_fn, status_fn, done_fn, clk_fn, data_fn, abort_fn, post_fn, }; you will have to implement these functions, which is usually bit banging some gpio. Signed-off-by: Eran Liberty <liberty@extricom.com>
* | disable caches before booting an app for Blackfin appsMike Frysinger2008-04-13-20/+42
| | | | | | | | | | | | | | | | | | | | | | | | It isn't generally save to execute applications outside of U-Boot with caches enabled due to the way the Blackfin processor handles caches (requires software assistance). This patch disables caches before booting an ELF or just booting raw code. The previous discussion on the patch was that we wanted to use weaks instead, but that proved to not be feasible when multiple symbols are involved, which puts us back at the ifdef solution. I've minimized the ugliness by moving the setup step outside of the main function. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
* | Coding Style cleanup; update CHANGELOGWolfgang Denk2008-04-13-3/+3
| | | | | | | | Signed-off-by: Wolfgang Denk <wd@denx.de>