summaryrefslogtreecommitdiff
path: root/board/armltd
Commit message (Collapse)AuthorAgeLines
...
* integrator: remove fragile delay loop from PCI codeLinus Walleij2012-03-04-5/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | The reference implementation of the PCI initialization code almost everywhere contain this fragile loop of "a few usecs", and its use of volatile variables to delay a number of bus cycles is indeed uncertain. Reading the manual "Integrator/AP Users Guide", page 5-15 it is clearly stated: "Wait until 230ms after the end of the reset period before accessing V360EPC internal registers. The V360EPC supports the use of a serial configuration PROM and the software must wait for the device to detect the absence of this PROM before accessing any registers. The required delay is a function of the PCI Clock, but at the lower frequency (25MHz) is 230ms". So let's simply wait 230ms per the spec. This solves the compilation error that looked like this: pci.c: In function ‘pci_init_board’: pci.c:286:18: warning: variable ‘j’ set but not used Reported-by: Wolfgang Denk <wd@denx.de> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
* integrator: rewrite the AP PCI driverLinus Walleij2012-02-27-250/+532
| | | | | | | | | | | | | | | | | | | | | | | | | The PCI support for the Integrator AP has apparently never been finished and I strongly suspect that it has never worked, so let's fix it. This is a list of the more or less un-splittable changes done in this driver rewrite: - Replace the register definitions stashed into the config file (!) with a copy if the register file from the Linux kernels arch/arm/include/asm/hardware/pci_v3.h - Delete the unreadable gigantic macros that perform the config accesses and replace them with copyedited code from Linux arch/arm/mach-integrator/pci_v3.c - Rewrite the rest of the setup code to use the v3_[read|write][lwb]() accessors. - Enable PCI by default in the AP board configuration. - Fix checkpatch warnings and make code more conformant. Tested-by: Will Deacon <will.deacon@arm.com> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
* integrator: stop calling pci_init() twiceLinus Walleij2012-02-27-3/+0
| | | | | | | | The U-Boot startup infrastructure already makes sure pci_init() is called at a proper time, calling it again from within the board setup code will not make things better. Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
* integrator: enable Vpp and disable flash protectionLinus Walleij2011-11-10-0/+20
| | | | | | | | | | This enables Vpp and disables the flash protection on the Integrator when starting U-Boot. The integrator/AP has double protection mechanisms: this one and the EBI protection bit (patch earlier), the Integrator/CP has only one line of protection in these registers. Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
* integrator: add system controller headerLinus Walleij2011-11-10-0/+91
| | | | | | | | Break out the AP system controller and CP "CP controller" registers into a header file, it gives better overview than hardcoding its values and other disturbing practices. Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
* integrator: make flash writeable on bootLinus Walleij2011-11-10-0/+77
| | | | | | | | | | | | | This reconfigures the EBI (External Bus Interface) on the integrator so that chip select 1, handling the flash memory, is set to writeable. Without this it is not possible for U-Boot to access flash memory and it crashes on startup since CFI won't work properly. Since this is the first time we use the EBI, we create a header file for its registers. Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
* integrator: use io-accessors for board initLinus Walleij2011-11-10-4/+5
| | | | | | | Casting around to *(volatile ulong *) doesn't look good, so include the <asm/io.h> macros and use good old readl() instead. Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
* integrator: move text offset to configLinus Walleij2011-11-10-5/+0
| | | | | | | Do away with the config.mk file and move the text offset to the config files to make things easier. Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
* integrator: do not test first part of the memoryLinus Walleij2011-11-08-4/+15
| | | | | | | | | | | When booting from Flash, the Integrator remaps its flash memory from 0x24000000 to 0x00000000, and starts executing it at 0x00000000. This ROM thus hides the RAM underneath and first 0x40000 bytes of the memory cannot be tested by get_ram_size(). So let's test from 0x40000 to the end of detected memory instead. Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
* punt unused clean/distclean targetsMike Frysinger2011-10-15-18/+0
| | | | | | | | | | The top level Makefile does not do any recursion into subdirs when cleaning, so these clean/distclean targets in random arch/board dirs never get used. Punt them all. MAKEALL didn't report any errors related to this that I could see. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
* ARM: versatile: delete split_by_variant.shLinus Walleij2011-09-28-42/+0
| | | | | | | | | Since commit d388298a59ba375c76597b8f95b560afa971a0fb by Stefano Babic this file is no longer needed so delete it. Cc: Stefano Babic <sbabic@denx.de> Cc: Loïc Minier <loic.minier@linaro.org> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
* ARM: versatile: drop warningsStefano Babic2011-09-04-1/+1
| | | | | | | | Drop warning: "passing argument 1 of 'get_ram_size' discards qualifiers from pointer target type" Signed-off-by: Stefano Babic <sbabic@denx.de> CC: Albert Aribaud <albert.u.boot@aribaud.net>
* integrator: convert to new build systemLinus Walleij2011-09-03-220/+0
| | | | | | | | | | | | | | | | | This deletes the integrator split_by_variant.sh script and defines a number of unique board types for the core modules that are meaningful to support for the Integrator AP/CP, i.e. the ones that did not just say "unsupported core module" in split_by_variant.sh. If more core modules need to be supported they are easy to add. We delete all the old cruft in Makefile and MAKEALL that was working around the old way of building boards. We create a unique config file per board to satisfy the build system, but they are just oneliners that include the existing integratorap.h and integratorcp.h configs. Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
* integratorap: support relocationLinus Walleij2011-09-03-8/+7
| | | | | | | | | | The integrator board was apparently never converted over to support relocation until now. After this the integrator u-boot both compiles and boots on the Integrator AP. This also fixes the SDRAM memory size detection. Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
* integratorap: make the compile work againLinus Walleij2011-09-03-1/+1
| | | | | | | | | The integratorap/cp config for u-boot was outdated and would not even compile, so fix the obvious missing bits for it to start building. After this "make ap920t_config/make all" starts working again. Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
* ARM: versatile: fix board supportStefano Babic2011-08-04-6/+9
| | | | | | | | | | | | | Versatile board is used as example to run u-boot under qemu. The patch fixes relocation for all versatile boards and adds a versatileqemu target to be used under qemu. Patch tested only under qemu, not on real boards. Tested with QEMU emulator version 0.14.50. Signed-off-by: Stefano Babic <sbabic@denx.de> CC: Alessandro Rubini <rubini-list@gnudd.com> CC: Loïc Minier <loic.minier@linaro.org>
* Timer: Remove reset_timer_masked()Graeme Russ2011-07-26-9/+4
| | | | | | | In some circumstances, reset_timer_masked() was called be timer_init() in order to perform architecture specific timer initialisation. In such cases, the required code in reset_timer_masked() has been moved into timer_init()
* Timer: Remove reset_timer() for non-Nios2 archesGraeme Russ2011-07-26-10/+0
|
* Timer: Remove set_timer completelyGraeme Russ2011-07-26-6/+0
|
* armv7: rename cache related CONFIG flagsAneesh V2011-07-04-4/+4
| | | | | | | | | | | | | | | | Replace the cache related CONFIG flags with more meaningful names. Following are the changes: CONFIG_L2_OFF -> CONFIG_SYS_L2CACHE_OFF CONFIG_SYS_NO_ICACHE -> CONFIG_SYS_ICACHE_OFF CONFIG_SYS_NO_DCACHE -> CONFIG_SYS_DCACHE_OFF Signed-off-by: Aneesh V <aneesh@ti.com> V2: * Changed CONFIG_L2_OFF -> CONFIG_SYS_NO_L2CACHE V4: * Changed all three flags to the final names suggested as above and accordingly changed the commit message
* ARMV7: Vexpress: Add missing MMC headerDirk Behme2011-05-31-0/+1
| | | | | | | | | | | | | | Add a header file with the missing function prototype to fix ca9x4_ct_vxp.c: In function 'cpu_mmc_init': ca9x4_ct_vxp.c:93: warning: implicit declaration of function 'arm_pl180_mmci_init' introduced by commit "ARMV7: Vexpress: Add MMC support" (f0c64526b7e51ba997a0f1baf9e74e6d497b957e) Signed-off-by: Dirk Behme <dirk.behme@googlemail.com> CC: Andy Fleming <afleming@freescale.com> CC: Matt Waddel <matt.waddel@linaro.org>
* ARMV7: Vexpress: Add MMC supportMatt Waddel2011-04-29-0/+9
| | | | | | Added the board specific definitions to use the MMCI device. Signed-off-by: Matt Waddel <matt.waddel@linaro.org>
* ARMV7: Vexpress: Remove config.mkMatt Waddel2011-04-27-22/+0
| | | | | | Remove obsolete board config.mk. Signed-off-by: Matt Waddel <matt.waddel@linaro.org>
* ARMV7: Vexpress: Fix build errorDirk Behme2010-12-08-1/+1
| | | | | | | | | | | | | | | | Fix ca9x4_ct_vxp build error Configuring for ca9x4_ct_vxp board... board/armltd/vexpress/libvexpress.o: In function `udelay': u-boot.git/board/armltd/vexpress/ca9x4_ct_vxp.c:161: multiple definition of `udelay' lib/libgeneric.o:u-boot.git/lib/time.c:34: first defined here lib/libgeneric.o: In function `udelay': zlib.c:(.text+0x1ee8): undefined reference to `__udelay' Signed-of-by: Dirk Behme <dirk.behme@googlemail.com>
* ARMV7: Vexpress: fix compile warningsMatt Waddel2010-12-08-3/+6
| | | | | | Fixed "pointer from integer without a cast" warnings in Vexpress. Signed-off-by: Matt Waddel <matt.waddel@linaro.org>
* ARMV7: Vexpress: fix build errorsMatt Waddel2010-12-08-67/+1
| | | | | | | | | This patch fixes build errors in the vexpress system: - Removed sys_proto.h requirement from syslib.c. - Switched vexpress to the default armv7 linker script. - Renamed TEXT_BASE to CONFIG_SYS_TEXT_BASE. Signed-off-by: Matt Waddel <matt.waddel@linaro.org>
* Switch from archive libraries to partial linkingSebastien Carlier2010-11-17-6/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | Before this commit, weak symbols were not overridden by non-weak symbols found in archive libraries when linking with recent versions of binutils. As stated in the System V ABI, "the link editor does not extract archive members to resolve undefined weak symbols". This commit changes all Makefiles to use partial linking (ld -r) instead of creating library archives, which forces all symbols to participate in linking, allowing non-weak symbols to override weak symbols as intended. This approach is also used by Linux, from which the gmake function cmd_link_o_target (defined in config.mk and used in all Makefiles) is inspired. The name of each former library archive is preserved except for extensions which change from ".a" to ".o". This commit updates references accordingly where needed, in particular in some linker scripts. This commit reveals board configurations that exclude some features but include source files that depend these disabled features in the build, resulting in undefined symbols. Known such cases include: - disabling CMD_NET but not CMD_NFS; - enabling CONFIG_OF_LIBFDT but not CONFIG_QE. Signed-off-by: Sebastien Carlier <sebastien.carlier@gmail.com>
* Rename TEXT_BASE into CONFIG_SYS_TEXT_BASEWolfgang Denk2010-10-18-2/+2
| | | | | | | | | | | | The change is currently needed to be able to remove the board configuration scripting from the top level Makefile and replace it by a simple, table driven script. Moving this configuration setting into the "CONFIG_*" name space is also desirable because it is needed if we ever should move forward to a Kconfig driven configuration system. Signed-off-by: Wolfgang Denk <wd@denx.de>
* board/armltd/integrator/split_by_variant.sh: fix 'echo -n'Andreas Bießmann2010-10-13-72/+57
| | | | | | | | | | | | | | This patch fixes an error when running MAKEALL for ARM9. On OS X /bin/sh uses builtin echo which does not utilise '-n' switch. GNU manual for builtins recomend to use here-document style to solve this portability issue. This patch removes the usage of 'echo -n' and replace by here-document style or a oneline echo command. Signed-off-by: Andreas Bießmann <andreas.devel@googlemail.com> CC: Peter Pearse <peter.pearse@arm.com>
* ARMV7: Versatile Express Coretile CortexA9x4 supportMatt Waddel2010-10-13-0/+357
| | | | | | | | | | | | | | | Adds support for the ARM quad-core Cortex-A9 processor This system includes a motherboard(Versatile Express), daughterboard (Coretile), and SOC(Cortex-A9 quad core). The serial port, ethernet, and flash systems work with these additions. The naming convention is: SOC -> CortexA9 quad core = ca9x4 daughterboard -> Coretile = ct motherboard -> Versatile Express = vxp This gives ca9x4_ct_vxp.c as the board support file. Signed-off-by: Matt Waddel <matt.waddel@linaro.org>
* arm/integrator: Remove unneccessary CONFIG_PCI check.Detlev Zundel2010-04-04-2/+0
| | | | | | | | | | | | pci_eth_init() is already conditional to CONFIG_PCI so not every caller needs to have conditionals. This is the only place in the current code base where such a check is still at the calling site. Signed-off-by: Detlev Zundel <dzu@denx.de> CC: Ben Warren <biggerbadderben@gmail.com> CC: Peter Pearse <peter.pearse@arm.com>
* Generic udelay() with watchdog supportIngo van Lil2009-12-05-1/+1
| | | | | | | | | | | | | According to the PPC reference implementation the udelay() function is responsible for resetting the watchdog timer as frequently as needed. Most other architectures do not meet that requirement, so long-running operations might result in a watchdog reset. This patch adds a generic udelay() function which takes care of resetting the watchdog before calling an architecture-specific __udelay(). Signed-off-by: Ingo van Lil <inguin@gmx.de>
* Convert SMC91111 Ethernet driver to CONFIG_NET_MULTI APIBen Warren2009-10-04-4/+21
| | | | | | | | | | | | | | All in-tree boards that use this controller have CONFIG_NET_MULTI added Also: - changed CONFIG_DRIVER_SMC91111 to CONFIG_SMC91111 - cleaned up line lengths - modified all boards that override weak function in this driver - modified all eeprom standalone apps to work with new driver - updated blackfin standalone EEPROM app after testing Signed-off-by: Ben Warren <biggerbadderben@gmail.com> Signed-off-by: Mike Frysinger <vapier@gentoo.org>
* ARM: make split_by_variant.sh output more usefulWolfgang Denk2009-07-18-2/+2
| | | | | | | | | The board/armltd/integrator/split_by_variant.sh script used to print "Configuring for integrator*p board..." no matter which board name was being compiled. This made it difficult to match MAKEALL output to board names. This patch fixes this. Signed-off-by: Wolfgang Denk <wd@denx.de>
* versatile: update config and merge to cfi flash driverJean-Christophe PLAGNIOL-VILLARD2009-07-12-515/+1
| | | | | | Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com> Signed-off-by: Peter Pearse <peter.pearse@arm.com> Cc: Catalin Marinas <catalin.marinas@arm.com>
* integrator: merge integratorap and integratorcpJean-Christophe PLAGNIOL-VILLARD2009-06-23-819/+286
| | | | | Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com> Acked-by: Peter Pearse <peter.pearse@arm.com>
* integratorap/cp: use cfi driverJean-Christophe PLAGNIOL-VILLARD2009-06-23-1039/+0
| | | | | Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com> Acked-by: Peter Pearse <peter.pearse@arm.com>
* integratorap/cp/versatile: remove non used functionsJean-Christophe PLAGNIOL-VILLARD2009-06-23-56/+0
| | | | | Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com> Acked-by: Peter Pearse <peter.pearse@arm.com>
* integratorcp: split timer supportJean-Christophe PLAGNIOL-VILLARD2009-06-23-141/+180
| | | | | Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com> Acked-by: Peter Pearse <peter.pearse@arm.com>
* integratorap: split timer supportJean-Christophe PLAGNIOL-VILLARD2009-06-23-135/+172
| | | | | Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com> Acked-by: Peter Pearse <peter.pearse@arm.com>
* integratorap: split pci supportJean-Christophe PLAGNIOL-VILLARD2009-06-23-374/+407
| | | | | Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com> Acked-by: Peter Pearse <peter.pearse@arm.com>
* arm: unify linker scriptJean-Christophe PLAGNIOL-VILLARD2009-06-12-177/+0
| | | | | | | | | | | | all arm boards except a few use the same cpu linker script so move it to cpu/$(CPU) that could be overwrite in following order SOC BOARD via the corresponding config.mk Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
* arm: timer and interrupt init reworkJean-Christophe PLAGNIOL-VILLARD2009-06-12-2/+2
| | | | | | | | | | | | | | 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>
* Fix e-mail address of Gary Jennejohn.Detlev Zundel2009-05-15-3/+3
| | | | Signed-off-by: Detlev Zundel <dzu@denx.de>
* arm: clean cache managementJean-Christophe PLAGNIOL-VILLARD2009-04-05-3/+15
| | | | | | unify arm cache management except for non standard cache as ARM7TDMI Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
* Fix all linker script to handle all rodata sectionsTrent Piepho2009-03-20-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A recent gcc added a new unaligned rodata section called '.rodata.str1.1', which needs to be added the the linker script. Instead of just adding this one section, we use a wildcard ".rodata*" to get all rodata linker section gcc has now and might add in the future. However, '*(.rodata*)' by itself will result in sub-optimal section ordering. The sections will be sorted by object file, which causes extra padding between the unaligned rodata.str.1.1 of one object file and the aligned rodata of the next object file. This is easy to fix by using the SORT_BY_ALIGNMENT command. This patch has not be tested one most of the boards modified. Some boards have a linker script that looks something like this: *(.text) . = ALIGN(16); *(.rodata) *(.rodata.str1.4) *(.eh_frame) I change this to: *(.text) . = ALIGN(16); *(.eh_frame) *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*))) This means the start of rodata will no longer be 16 bytes aligned. However, the boundary between text and rodata/eh_frame is still aligned to 16 bytes, which is what I think the real purpose of the ALIGN call is. Signed-off-by: Trent Piepho <xyzzy@speakeasy.org>
* pci: Rename PCI_REGION_MEMORY to PCI_REGION_SYS_MEMORY for clarityKumar Gala2009-02-07-1/+1
| | | | | | | | | | The PCI_REGION_MEMORY and PCI_REGION_MEM are a bit to similar and can be confusing when reading the code. Rename PCI_REGION_MEMORY to PCI_REGION_SYS_MEMORY to clarify its used for system memory mapping purposes. Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
* move ARM Ltd. to vendor dirJean-Christophe PLAGNIOL-VILLARD2009-01-29-0/+3663
Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>