summaryrefslogtreecommitdiff
path: root/arch/microblaze
Commit message (Collapse)AuthorAgeLines
* gpio: Add support for microblaze xilinx GPIOMichal Simek2013-05-09-33/+7
| | | | | | | | | | | | | | | | | | | | | | | | Microblaze uses gpio which is connected to the system reset. Currently gpio subsystem wasn't used for it. Add gpio driver and change Microblaze reset logic to be done via gpio subsystem. There are various configurations which Microblaze can have that's why gpio_alloc/gpio_alloc_dual(for dual channel) function has been introduced and gpio can be allocated dynamically. Adding several gpios IP is also possible and supported. For listing gpio configuration please use "gpio status" command This patch also remove one compilation warning: microblaze-generic.c: In function 'do_reset': microblaze-generic.c:38:47: warning: operation on '*1073741824u' may be undefined [-Wsequence-point] Signed-off-by: Michal Simek <michal.simek@xilinx.com>
* microblaze: bootm: Add support for loading initrdMichal Simek2013-05-09-0/+8
| | | | | | | fdt_initrd add additional information to DTB about initrd addresses which are later used by kernel. Signed-off-by: Michal Simek <michal.simek@xilinx.com>
* microblaze: bootm: Fix coding style issuesMichal Simek2013-05-09-9/+11
| | | | | | Prepare place for new patch. Signed-off-by: Michal Simek <michal.simek@xilinx.com>
* lib: consolidate hang()Andreas Bießmann2013-05-01-7/+0
| | | | | | | | | Delete all occurrences of hang() and provide a generic function. Signed-off-by: Andreas Bießmann <andreas.devel@googlemail.com> Acked-by: Albert ARIBAUD <albert.u.boot@aribaud.net> [trini: Modify check around puts() in hang.c slightly] Signed-off-by: Tom Rini <trini@ti.com>
* microblaze: fix style in board.cAndreas Bießmann2013-05-01-32/+31
| | | | | | | | Make microblaze's board.c checkpatch clean. Signed-off-by: Andreas Bießmann <andreas.devel@googlemail.com> Reviewed-by: Michal Simek <monstr@monstr.eu>
* watchdog: Add support for Xilinx Microblaze watchdogMichal Simek2013-04-30-0/+7
| | | | | | | Watchdog can be used on Microblaze, PPC and Zynq hw designs. Signed-off-by: Michal Simek <michal.simek@xilinx.com> Reviewed-by: Tom Rini <trini@ti.com>
* Merge branch 'master' of git://git.denx.de/u-boot-armTom Rini2013-03-18-1/+1
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Albert's rework of the linker scripts conflicted with Simon's making everyone use __bss_end. We also had a minor conflict over README.scrapyard being added to in mainline and enhanced in u-boot-arm/master with proper formatting. Conflicts: arch/arm/cpu/ixp/u-boot.lds arch/arm/cpu/u-boot.lds arch/arm/lib/Makefile board/actux1/u-boot.lds board/actux2/u-boot.lds board/actux3/u-boot.lds board/dvlhost/u-boot.lds board/freescale/mx31ads/u-boot.lds doc/README.scrapyard include/configs/tegra-common.h Build tested for all of ARM and run-time tested on am335x_evm. Signed-off-by: Tom Rini <trini@ti.com>
| * Refactor linker-generated arraysAlbert ARIBAUD2013-03-12-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Refactor linker-generated array code so that symbols which were previously linker-generated are now compiler- generated. This causes relocation records of type R_ARM_ABS32 to become R_ARM_RELATIVE, which makes code which uses LGA able to run before relocation as well as after. Note: this affects more than ARM targets, as linker- lists span possibly all target architectures, notably PowerPC. Conflicts: arch/arm/cpu/arm926ejs/mxs/u-boot-spl.lds arch/arm/cpu/arm926ejs/spear/u-boot-spl.lds arch/arm/cpu/armv7/omap-common/u-boot-spl.lds board/ait/cam_enc_4xx/u-boot-spl.lds board/davinci/da8xxevm/u-boot-spl-da850evm.lds board/davinci/da8xxevm/u-boot-spl-hawk.lds board/vpac270/u-boot-spl.lds Signed-off-by: Albert ARIBAUD <albert.u.boot@aribaud.net>
* | Introduce generic link section.h symbol filesSimon Glass2013-03-15-0/+27
|/ | | | | | | | | | | | | | | | | | We create a separate header file for link symbols defined by the link scripts. It is helpful to have these all in one place and try to make them common across architectures. Since Linux already has a similar file, we bring this in even though many of the symbols there are not relevant to us. Each architecture has its own asm/sections.h where symbols specifc to that architecture can be added. For now everything except AVR32 just includes the generic header. One change is needed in arch/avr32/lib/board.c to make this conversion work. Reviewed-by: Tom Rini <trini@ti.com> (version 5) Signed-off-by: Simon Glass <sjg@chromium.org>
* Merge branch 'master' of git://www.denx.de/git/u-boot-microblazeTom Rini2013-02-04-0/+92
|\
| * microblaze: Add muldi3.c which contains routines for _muldi3David Holsgrove2013-02-04-0/+92
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Referenced arch/blackfin/lib/muldi3.c and the linux kernel. Resolves issue seen when building u-boot for HW_MUL=0; PLATFORM_CPPFLAGS += -mxl-soft-mul PLATFORM_CPPFLAGS += -mno-xl-multiply-high which resulted in error while linking to libgcc.a without mul hw (bs / m); libgcc.a(_muldi3.o): In function `__muldi3': .... src/gcc-4.6.2/libgcc/libgcc2.c:550: undefined reference to `_GLOBAL_OFFSET_TABLE_' This link failure would not occur if we used gcc instead of ld directly, as gcc will correctly use the crt's to resolve this link. Signed-off-by: David Holsgrove <david.holsgrove@xilinx.com> Signed-off-by: Michal Simek <michal.simek@xilinx.com>
* | microblaze: Use generic global_dataSimon Glass2013-02-04-26/+1
| | | | | | | | | | | | | | Move microblaze over to use generic global_data. Signed-off-by: Simon Glass <sjg@chromium.org> Tested-by: Michal Simek <monstr@monstr.eu>
* | Add architecture-specific global dataSimon Glass2013-02-01-0/+6
|/ | | | | | | | | | | | | We plan to move architecture-specific data into a separate structure so that we can make the rest of it common. As a first step, create struct arch_global_data to hold these fields. Initially it is empty. This patch applies to all archs at once. I can split it if this is really a pain. Signed-off-by: Simon Glass <sjg@chromium.org>
* env: Use getenv_yesno() more generallyJoe Hershberger2012-12-13-3/+1
| | | | | | | Move the getenv_yesno() to env_common.c and change most checks for 'y' or 'n' to use this helper. Signed-off-by: Joe Hershberger <joe.hershberger@ni.com>
* microblaze: Fix compilation failure because of missing libdtsMichal Simek2012-11-08-0/+2
| | | | | | | | | | Microblaze platform can use CONFIG_OF_EMBED option but also it is necessary to support boards which don't want to use this option. U-Boot doesn't compile dts/libdts.o for #undef CONFIG_OF_EMBED case that's why it should be guarded by ifdef. Signed-off-by: Michal Simek <monstr@monstr.eu>
* microblaze: Remove asm/bitops.h from asm/posix_types.hMichal Simek2012-11-07-3/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | The patch "include/linux/byteorder: import latest endian definitions from linux" (sha1: eef1cf2d5cf1cae5fb76713e912263dedf110aeb) Introduced a lot of compilation failures with unknow types. include/linux/byteorder/big_endian.h:45:1: error: unknown type name '__le64' include/linux/byteorder/big_endian.h: In function '__cpu_to_le64p': include/linux/byteorder/big_endian.h:47:18: error: '__le64' undeclared (first use in this function) include/linux/byteorder/big_endian.h:47:18: note: each undeclared identifier is reported only once for each function it appears in include/linux/byteorder/big_endian.h:47:25: error: expected ';' before '__swab64p' include/linux/byteorder/big_endian.h: At top level: include/linux/byteorder/big_endian.h:49:1: error: unknown type name '__le64' include/linux/byteorder/big_endian.h:53:1: error: unknown type name '__le32' include/linux/byteorder/big_endian.h: In function '__cpu_to_le32p': include/linux/byteorder/big_endian.h:55:18: error: '__le32' undeclared (first use in this function) include/linux/byteorder/big_endian.h:55:25: error: expected ';' before '__swab32p' include/linux/byteorder/big_endian.h: At top level: include/linux/byteorder/big_endian.h:57:1: error: unknown type name '__le32' include/linux/byteorder/big_endian.h:61:1: error: unknown type name '__le16' ... Removing asm/bitops.h solved this problem. Signed-off-by: Michal Simek <monstr@monstr.eu>
* microblaze: Flush caches before enabling themMichal Simek2012-11-07-10/+6
| | | | | | | | Flushing caches is necessary because of soft reset which doesn't clear caches. Signed-off-by: Michal Simek <monstr@monstr.eu> Reviewed-by: Marek Vasut <marex@denx.de>
* microblaze: Fix byteorder for microblazeMichal Simek2012-11-07-23/+0
| | | | | | | | Just remove ancient code. Signed-off-by: Michal Simek <monstr@monstr.eu> Acked-by: Stephan Linz <linz@li-pro.net> Reviewed-by: Marek Vasut <marex@denx.de>
* microblaze: Fix compilation warning in ext2_find_next_zero_bitMichal Simek2012-11-07-1/+2
| | | | | | | | | | | | ext2_find_next_zero_bit must be also static if __swab32 is also static. Warning: include/asm/bitops.h:369:22: warning: '__fswab32' is static but used in inline function 'ext2_find_next_zero_bit' which is not static [enabled by default] Signed-off-by: Michal Simek <monstr@monstr.eu> Acked-by: Stephan Linz <linz@li-pro.net>
* common: Discard the __u_boot_cmd sectionMarek Vasut2012-10-22-8/+0
| | | | | | | | | | | The command declaration now uses the new LG-array method to generate list of commands. Thus the __u_boot_cmd section is now superseded and redundant and therefore can be removed. Also, remove externed symbols associated with this section from include/command.h . Signed-off-by: Marek Vasut <marex@denx.de> Cc: Joe Hershberger <joe.hershberger@gmail.com> Cc: Mike Frysinger <vapier@gentoo.org>
* common: Add .u_boot_list into all linker filesMarek Vasut2012-10-22-0/+5
| | | | | | | | | | Add section for the linker-generated lists into all possible linker files, so that everyone can easily use these lists. This is mostly a mechanical adjustment. Signed-off-by: Marek Vasut <marex@denx.de> Cc: Joe Hershberger <joe.hershberger@gmail.com> Cc: Mike Frysinger <vapier@gentoo.org>
* microblaze: Change bi_baudrate and global data baudrate to intSimon Glass2012-10-19-2/+2
| | | | | | | These don't need to be longs, so change them. Signed-off-by: Simon Glass <sjg@chromium.org> Signed-off-by: Tom Rini <trini@ti.com>
* serial: Remove CONFIG_SERIAL_MULTI from remaining sourcesMarek Vasut2012-10-15-2/+0
| | | | | | | | | | | | Remove the parts depending either on disabled CONFIG_SERIAL_MULTI or ifdefs around CONFIG_SERIAL_MULTI parts since CONFIG_SERIAL_MULTI is now enabled by default. Signed-off-by: Marek Vasut <marex@denx.de> Cc: Marek Vasut <marek.vasut@gmail.com> Cc: Tom Rini <trini@ti.com> Cc: Anatolij Gustschin <agust@denx.de> Cc: Stefan Roese <sr@denx.de>
* microblaze: board: Use bi_flashstart instead of CONFIG_SYS_FLASH_BASEMichal Simek2012-09-11-4/+6
| | | | | | | Prepare for device-tree driven configuration. Signed-off-by: Michal Simek <monstr@monstr.eu> Acked-by: Stephan Linz <linz@li-pro.net>
* microblaze: Clean microblaze initializationMichal Simek2012-09-11-15/+7
| | | | | | | | | Move board specific function to board_init function in board/ folder Remove externs from generic board.c Use board_init_f function in board.c file. Signed-off-by: Michal Simek <monstr@monstr.eu> Acked-by: Stephan Linz <linz@li-pro.net>
* microblaze: timer: Prepare for device-tree initializationMichal Simek2012-09-11-38/+39
| | | | | | | | | Fix CONFIG_SYS_HZ usage in board config. Do not use hardcoded value. Use CONFIG_SYS_HZ instead. Separate static configuration to single block. Signed-off-by: Michal Simek <monstr@monstr.eu>
* microblaze: intc: Coding style cleanupMichal Simek2012-09-11-13/+13
| | | | | | | | | Just coding style cleanup. Remove unneeded externs. Signed-off-by: Michal Simek <monstr@monstr.eu> Acked-by: Simon Glass <sjg@chromium.org> Acked-by: Stephan Linz <linz@li-pro.net>
* microblaze: intc: Registering interrupt should return valueMichal Simek2012-09-11-8/+19
| | | | | | Return value to find out if un/registration was succesful. Signed-off-by: Michal Simek <monstr@monstr.eu>
* microblaze: board: Remove compilation warningMichal Simek2012-09-11-1/+2
| | | | | | | | | | | Variable is used when CONFIG_SYS_FLASH_CHECKSUM is used. Warning log: board.c: In function 'board_init': board.c:101: warning: unused variable 's' Signed-off-by: Michal Simek <monstr@monstr.eu> Acked-by: Stephan Linz <linz@li-pro.net>
* microblaze: Add support for device tree driven board configurationMichal Simek2012-09-11-0/+28
| | | | | | | | | | | | | This is minimum code required to be able to use device-tree for u-boot initialization. Currently only for device driver initialization. Linker script change ensures DTB to be aligned for both options CONFIG_OF_EMBED and CONFIG_OF_SEPARATE. Signed-off-by: Michal Simek <monstr@monstr.eu> Acked-by: Stephan Linz <linz@li-pro.net> CC: Simon Glass <sjg@chromium.org>
* global_data: unify global flag definesMike Frysinger2012-08-09-13/+1
| | | | | | | All the global flag defines are the same across all arches. So unify them in one place, and add a simple way for arches to extend for their needs. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
* microblaze: intc: Clear interrupt codeMichal Simek2012-07-10-47/+54
| | | | | | | | | Clear and prepare for device-tree driven configuration. Remove CONFIG_SYS_INTC_0 definition Use dynamic allocation instead of static. Signed-off-by: Michal Simek <monstr@monstr.eu> Acked-by: Simon Glass <sjg@chromium.org>
* microblaze: Call serial multi initializationMichal Simek2012-07-10-0/+5
| | | | | Signed-off-by: Michal Simek <monstr@monstr.eu> Acked-by: Simon Glass <sjg@chromium.org>
* microblaze: Move __udelay implementationMichal Simek2012-07-10-43/+19
| | | | | | | | Move __udelay to the timer code because of unification. And clean coding style because of checkpatch.pl. Signed-off-by: Michal Simek <monstr@monstr.eu> Acked-by: Simon Glass <sjg@chromium.org>
* microblaze: Remove extern from board.cMichal Simek2012-07-10-4/+0
| | | | | | | eth_init() is defined at include/net.h. Signed-off-by: Michal Simek <monstr@monstr.eu> Acked-by: Simon Glass <sjg@chromium.org>
* microblaze: Move individual board linker scripts to common script in cpu tree.Michal Simek2012-07-09-0/+73
| | | | | | Unification for all microblaze boards. Signed-off-by: Michal Simek <monstr@monstr.eu>
* microblaze: Add gpio.hMichal Simek2012-07-09-0/+41
| | | | | | Gpio support is not implemented yet. Adding it because of fdtdec. Signed-off-by: Michal Simek <monstr@monstr.eu>
* net: move bootfile init into eth_initializeMike Frysinger2012-05-15-4/+0
| | | | | | | | All arches init this the same way, so move the logic into the core net code to avoid duplicating it everywhere else. Signed-off-by: Mike Frysinger <vapier@gentoo.org> Reviewed-by: Joe Hershberger <joe.hershberger@ni.com>
* net: punt bd->bi_ip_addrMike Frysinger2012-05-15-4/+0
| | | | | | | | | This field gets read in one place (by "bdinfo"), and we can replace that with getenv("ipaddr"). After all, the bi_ip_addr field is kept up-to-date implicitly with the value of the ipaddr env var. Signed-off-by: Mike Frysinger <vapier@gentoo.org> Reviewed-by: Joe Hershberger <joe.hershberger@ni.com>
* bootstage: Replace show_boot_progress/error() with bootstage_...()Simon Glass2012-03-18-1/+1
| | | | | | | These calls should not be made directly any more, since bootstage will call the show_boot_...() functions as needed. Signed-off-by: Simon Glass <sjg@chromium.org>
* bootstage: Make use of BOOTSTAGE_ID_RUN_OS in show_boot_progress()Simon Glass2012-03-18-1/+1
| | | | | | | | | This changes the number 15 as used in boot_stage_progress() to use the new name provided for it. This is a separate patch because it touches so many files. Signed-off-by: Simon Glass <sjg@chromium.org> Acked-by: Mike Frysinger <vapier@gentoo.org>
* microblaze: avoid interrupt race conditionsStephan Linz2012-02-23-2/+2
| | | | | | | | | | | | | | The interrupt acknowledge action have to run after the registered interrupt handler. So we have a chance to bear out the corresponding interrupt request in the corresponding controller hardware. With this reordering, we optain a proper interrupt handling for level triggered interrupt sources -- for example the new axi_timer v1.02.a introduced in ISE 13.2. Signed-off-by: Stephan Linz <linz@li-pro.net> Acked-by: Michal Simek <monstr@monstr.eu>
* microblaze: fix build failure due to undefined reference to `get_ticks'Stephan Linz2012-02-23-0/+18
| | | | | | | | | | | | | | after commit "common: add possibility for readline_into_buffer timeout" (sha1:9c34831) was applied. The Microblaze generic build fails with error below: common/libcommon.o: In function `cread_line': /devel/u-boot/common/main.c:717: undefined reference to `get_ticks' /devel/u-boot/common/main.c:717: undefined reference to `get_tbclk' /devel/u-boot/common/main.c:720: undefined reference to `get_ticks' Signed-off-by: Stephan Linz <linz@li-pro.net> Acked-by: Michal Simek <monstr@monstr.eu>
* microblaze: Fix strict-aliasing rules for in_be32Michal Simek2011-10-24-1/+1
| | | | | | readl should work with unsigned int instead of unsigned long. Signed-off-by: Michal Simek <monstr@monstr.eu>
* microblaze: Use getenv_ulong() in place of getenv(), strtoulSimon Glass2011-10-23-3/+2
| | | | | | This changes the board code to use the new getenv_ulong() function. Signed-off-by: Simon Glass <sjg@chromium.org>
* microblaze: cache: define ARCH_DMA_MINALIGN for DMA buffer alignmentAnton Staaf2011-10-23-0/+37
| | | | | | | Signed-off-by: Anton Staaf <robotboy@chromium.org> Cc: Mike Frysinger <vapier@gentoo.org> Cc: Lukasz Majewski <l.majewski@samsung.com> Cc: Michal Simek <monstr@monstr.eu>
* microblaze: Copy bootfile from variablesMichal Simek2011-10-10-0/+4
| | | | | | Setup bootfile. Signed-off-by: Michal Simek <monstr@monstr.eu>
* microblaze: Fix unaligned.h for endiansMichal Simek2011-10-10-16/+1
| | | | | | | Also support little endian MB. Signed-off-by: Michal Simek <monstr@monstr.eu> Acked-by: Mike Frysinger <vapier@gentoo.org>
* microblaze: Initialize jumptable and consoleMichal Simek2011-10-10-0/+6
| | | | | | This changes were done to get support for netconsole. Signed-off-by: Michal Simek <monstr@monstr.eu>
* microblaze: Support flashes on lower addressesMichal Simek2011-10-10-1/+36
| | | | Signed-off-by: Michal Simek <monstr@monstr.eu>