summaryrefslogtreecommitdiff
path: root/common
Commit message (Collapse)AuthorAgeLines
* fs: Add a Coreboot Filesystem (CBFS) driver and commandsGabe Black2012-10-22-0/+215
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This change adds CBFS support and some commands to use it to u-boot. These commands are: cbfsinit - Initialize CBFS support and pull all metadata into RAM. The end of the ROM is an optional parameter which defaults to the standard 0xffffffff and can be used to support multiple CBFSes in a system. The last one set up with cbfsinit is the one that will be used. cbfsinfo - Print information from the CBFS header. cbfsls - Print out the size, type, and name of all the files in the current CBFS. Recognized types are translated into symbolic names. cbfsload - Load a file from CBFS into memory. Like the similar command for fat filesystems, you can optionally provide a maximum size. Support for CBFS is compiled in when the CONFIG_CMD_CBFS option is specified. The CBFS driver can also be used programmatically from within u-boot. If u-boot needs something out of CBFS very early before the heap is configured, it won't be able to use the normal CBFS support which caches some information in memory it allocates from the heap. The cbfs_file_find_uncached function searches a CBFS instance without touching the heap. Signed-off-by: Gabe Black <gabeblack@google.com> Signed-off-by: Stefan Reinauer <reinauer@chromium.org> Signed-off-by: Simon Glass <sjg@chromium.org>
* common: Convert the U-Boot commands to LG-arraysMarek Vasut2012-10-22-11/+14
| | | | | | | | | | | | | | | | | | This patch converts the old method of creating a list of command onto the new LG-arrays code. The old u_boot_cmd section is converted to new u_boot_list_cmd subsection and LG-array macros used as needed. Minor adjustments had to be made to the common code to work with the LG-array macros, mostly the fixup_cmdtable() calls are now passed the ll_entry_start and ll_entry_count instead of linker-generated symbols. The command.c had to be adjusted as well so it would use the newly introduced LG-array API instead of directly using linker-generated symbols. Signed-off-by: Marek Vasut <marex@denx.de> Cc: Joe Hershberger <joe.hershberger@gmail.com> Cc: Mike Frysinger <vapier@gentoo.org>
* usb: fallback safely when a configuration descriptor is too largeVincent Palatin2012-10-22-3/+9
| | | | | | | | | | | | | | | When a USB configuration descriptor was larger than our USB buffer (512 bytes), we were skipping the full descriptor reading but then we were still parsing and using it, triggering memory corruptions. Now in that case, it just skips this device enumeration and displays the appropriate message to the user, so he can fix the buffer if he wants. This bug was triggered by some UVC webcams which have very large configuration descriptors (e.g. a couple of kB) describing all their supported video encodings. Signed-off-by: Vincent Palatin <vpalatin@chromium.org> Acked-by: Simon Glass <sjg@chromium.org>
* usb: Support the CONFIG_SYS_64BIT_LBA optionGabe Black2012-10-22-10/+14
| | | | | | | | | | | | | | | | usb_storage wouldn't compile when the CONFIG_SYS_64BIT_LBA option is turned on because the used fixed size data types in their exported functions when they should have used lbaint_t for the block count parameter. That meant that when the sizes happened to be the same, when using a 28 bit LBA, the driver would build, but when it wasn't, a 48 bit LBA, things broke. This change adjusts the signatures to use the right type and makes small adjustments in the affected functions. Signed-off-by: Gabe Black <gabeblack@chromium.org> Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Marek Vasut <marex@denx.de>
* x86: Change global data baudrate to intSimon Glass2012-10-19-1/+1
| | | | | | | This doesn't need to be a long, so change it. Signed-off-by: Simon Glass <sjg@chromium.org> Signed-off-by: Tom Rini <trini@ti.com>
* nds32: Change global data baudrate to intSimon Glass2012-10-19-1/+1
| | | | | | | | | This doesn't need to be a long, so change it. Also adjust bi_baudrate to be unsigned. Signed-off-by: Simon Glass <sjg@chromium.org> Signed-off-by: Tom Rini <trini@ti.com>
* mips: Change global data baudrate to intSimon Glass2012-10-19-1/+1
| | | | | | | | | This doesn't need to be a long, so change it. Also adjust bi_baudrate to be unsigned. Signed-off-by: Simon Glass <sjg@chromium.org> Signed-off-by: Tom Rini <trini@ti.com>
* blackfin: Change global data baudrate to intSimon Glass2012-10-19-1/+1
| | | | | | | | | This doesn't need to be a long, so change it. Also adjust bi_baudrate to be unsigned. Signed-off-by: Simon Glass <sjg@chromium.org> Signed-off-by: Tom Rini <trini@ti.com>
* arm: Change global data baudrate to intSimon Glass2012-10-19-1/+1
| | | | | | | | | This does not need to be a long, so change it. Also adjust bi_baudrate to be unsigned. Signed-off-by: Simon Glass <sjg@chromium.org> Signed-off-by: Tom Rini <trini@ti.com>
* sparc: Change bi_baudrate and global data baudrate to intSimon Glass2012-10-19-1/+1
| | | | | | | 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>
* powerpc: Change bi_baudrate and global data baudrate to intSimon Glass2012-10-19-1/+1
| | | | | | | 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>
* openrisc: Change bi_baudrate and global data baudrate to intSimon Glass2012-10-19-1/+1
| | | | | | | 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>
* nios2: Change bi_baudrate and global data baudrate to intSimon Glass2012-10-19-1/+1
| | | | | | | 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>
* microblaze: Change bi_baudrate and global data baudrate to intSimon Glass2012-10-19-1/+1
| | | | | | | 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>
* m68k: Change bi_baudrate and global data baudrate to intSimon Glass2012-10-19-1/+1
| | | | | | | 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>
* avr32: Change bi_baudrate and global data baudrate to intSimon Glass2012-10-19-1/+1
| | | | | | | | These don't need to be longs, so change them. Signed-off-by: Simon Glass <sjg@chromium.org> Acked-by: Andreas Bießmann <andreas.devel@googlemail.com> Signed-off-by: Tom Rini <trini@ti.com>
* sh: Change bi_baudrate and global data baudrate to intSimon Glass2012-10-19-1/+1
| | | | | | | 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>
* env: cosmetic: Consilidate the default env definitionJoe Hershberger2012-10-19-197/+4
| | | | | | | There used to be a huge structure duplicated 3 times in the source. Signed-off-by: Joe Hershberger <joe.hershberger@ni.com> Signed-off-by: Tom Rini <trini@ti.com>
* Merge branch 'master' of git://git.denx.de/u-boot-i2cTom Rini2012-10-17-4/+66
|\
| * i2c_probe: update for use in scriptingEric Nelson2012-10-16-4/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | Allow the use of an I2C address to test and return success if one or more devices is found. This allows device presence to alter the flow of a script. e.g. if i2c probe 0x04 ; then echo found Hannstar touch ; fi Signed-off-by: Eric Nelson <eric.nelson@boundarydevices.com>
| * common/i2c: Add i2c write commandYork Sun2012-10-16-0/+50
| | | | | | | | | | | | Add i2c write command to write data from memory to i2c devices. Signed-off-by: York Sun <yorksun@freescale.com>
* | remove unnecessary includes from cmd_ide.cPavel Herrmann2012-10-17-8/+0
| | | | | | | | | | | | mpc8xx and mpc5xxx specific includes in cmd_ide.c are not required, remove them. Signed-off-by: Pavel Herrmann <morpheus.ibis@gmail.com>
* | split PCS440EP specific code from cmd_ide.cPavel Herrmann2012-10-17-18/+0
| | | | | | | | | | | | Move specific ide_input_data and friends to board-specific file. Signed-off-by: Pavel Herrmann <morpheus.ibis@gmail.com>
* | split AU1X00 specific code from cmd_ide.cPavel Herrmann2012-10-17-3/+2
| | | | | | | | | | | | move special case of ide_swap_read() for AU1X00 SoC into SoC-specific directory. Signed-off-by: Pavel Herrmann <morpheus.ibis@gmail.com>
* | make ide_led() a weak aliasPavel Herrmann2012-10-17-36/+27
| | | | | | | | | | | | | | | | | | | | Make ide_led() a weak alias instead of global/local function/empty macro based on CONFIG_IDE_LED value and/or board-specific CONFIGs, to get rid of board-specific code in cmd_ide.c Define dummy values to get rid of compoler errors in case where ide_led() used to be an empty macro Signed-off-by: Pavel Herrmann <morpheus.ibis@gmail.com>
* | split CPC45 board-specific IDE functions from cmd_ide.cPavel Herrmann2012-10-17-91/+0
| | | | | | | | | | | | | | | | | | Move input_data() and friends to board/cpc45/ide.c, as overrides for weak aliases in cmd_ide.c note: checkpatch emits warnings about using volatile Signed-off-by: Pavel Herrmann <morpheus.ibis@gmail.com>
* | change all versions of input_data() and output_data() to global weak aliasesPavel Herrmann2012-10-17-20/+37
| | | | | | | | | | | | | | | | | | | | This changes input_data() and friends from static function to global symbols under weak alias, to enable board specific overrides (and therefore get rid of board-specific code in cmd_ide.c) Also declare ide_bus_offset in the header file, so other files can use ATA_CURR_BASE as well. Signed-off-by: Pavel Herrmann <morpheus.ibis@gmail.com>
* | split IVM power hooks from cmd_ide.cPavel Herrmann2012-10-17-48/+0
| | | | | | | | | | | | Move power control code from ide_reset() into IVM-specific IDE reset code. Signed-off-by: Pavel Herrmann <morpheus.ibis@gmail.com>
* | split mpc8xx hooks from cmd_ide.cPavel Herrmann2012-10-17-183/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | move most of mpc8xx hooks from cmd_ide.c into ide_preinit() and newly created ide_init_postreset() (invoked after calling ide_reset after ide_preinit), some cleanup to make checkpatch happy, enable IDE init hooks in configs of affected boards. confusingly, these hooks are used by more than just mpc8xx-based boards, and therefore are placed in arch/ppc/lib/ note: checkpatch still emits warnings about using volatile Signed-off-by: Pavel Herrmann <morpheus.ibis@gmail.com>
* | remove CONFIG_SC3 from cmd_ide.cPavel Herrmann2012-10-17-7/+0
|/ | | | | | There is no difference in codepath with CONFIG_SC3 enabled, so just remove it Signed-off-by: Pavel Herrmann <morpheus.ibis@gmail.com>
* Merge branch 'agust@denx.de-next' of git://git.denx.de/u-boot-stagingTom Rini2012-10-15-19/+404
|\
| * bootstage: Add bootstage commandSimon Glass2012-10-03-0/+117
| | | | | | | | | | | | | | | | | | Now that there are a few features, add a bootstage command to access them. bootstage report - prints a report bootstage stash/unstash - stashes bootstage records in memory, reads them back Signed-off-by: Simon Glass <sjg@chromium.org>
| * bootstage: Add feature to stash/unstash bootstage infoSimon Glass2012-10-03-0/+159
| | | | | | | | | | | | | | | | | | | | | | | | It is useful to be able to write the bootstage information to memory for use by a later utility, or the Linux kernel. Provide a function to do this as well as a function to read bootstage information back and incorporate it into the current table. This also makes it possible for U-Boot to chain to another U-Boot and pass on its bootstage information. Signed-off-by: Simon Glass <sjg@chromium.org>
| * bootstage: Store boot timings in device treeSimon Glass2012-10-02-6/+89
| | | | | | | | | | | | | | | | Add an option, CONFIG_BOOTSTAGE_FDT to pass boot timings to the kernel in the device tree, if available. To use this, you must have CONFIG_OF_LIBFDT defined. Signed-off-by: Simon Glass <sjg@chromium.org>
| * bootstage: Add time accumulation featureSimon Glass2012-10-02-3/+33
| | | | | | | | | | | | | | | | | | | | | | Sometimes we want to add up the amount of time spent in a particular activity when it is happening in a number of discrete chunks. Add bootstage_start() to mark the start of an acitivity and bootstage_accum() to accumulate the time since the last start. Calling these function in pairs results in the accumulated time being collected. Signed-off-by: Simon Glass <sjg@chromium.org>
| * bootstage: Export bootstage_add_record() functionSimon Glass2012-10-02-10/+6
| | | | | | | | | | | | | | This function is not static, but not exported either. Add a prototype in the header file and move the required enum to the header also. Signed-off-by: Simon Glass <sjg@chromium.org>
* | env: Check for NULL pointer in envmatch()Joe Hershberger2012-10-15-0/+3
| | | | | | | | | | | | | | If the pointer passed into envmatch() is NULL, return -1 instead of crashing. Signed-off-by: Joe Hershberger <joe.hershberger@ni.com>
* | common: cmd_bdinfo: fix type of value in print_lnumDaniel Schwierzeck2012-10-15-1/+1
| | | | | | | | | | | | | | | | | | This fixes a warning when compiling with ELDK-5.2.1 for MIPS64: cmd_bdinfo.c: In function 'print_lnum': cmd_bdinfo.c:56:2: warning: format '%llX' expects argument of type 'long long unsigned int', but argument 3 has type 'u64' [-Wformat] Signed-off-by: Daniel Schwierzeck <daniel.schwierzeck@gmail.com>
* | usb: add support for multiple usb controllersLucas Stach2012-10-15-55/+69
| | | | | | | | | | | | | | | | | | Allows to initialize more than one USB controller at once. v2: print message when controller stop fails Signed-off-by: Lucas Stach <dev@lynxeye.de> Reviewed-by: Marek Vasut <marex@denx.de>
* | usb: lowlevel interface change to support multiple controllersLucas Stach2012-10-15-5/+7
| | | | | | | | | | | | | | | | | | | | | | Carry an index in the lowlevel usb functions to make specify the respective usb controller. Also pass through an controller struct from lowlevel_init to the creation of the root usb device of this controller. Signed-off-by: Lucas Stach <dev@lynxeye.de> Reviewed-by: Marek Vasut <marex@denx.de>
* | serial: Remove CONFIG_SERIAL_MULTI from remaining sourcesMarek Vasut2012-10-15-10/+2
| | | | | | | | | | | | | | | | | | | | | | | | 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>
* | serial: Move common/serial.c to drivers/serial/Marek Vasut2012-10-15-355/+0
| | | | | | | | | | | | | | | | | | | | Move the common/serial.c into driver/serial/, since this file provides serial multiplexing functions and it is imperative to be linked with libserial.o instead of libcommon.o. Signed-off-by: Marek Vasut <marex@denx.de> Cc: Marek Vasut <marek.vasut@gmail.com> Cc: Tom Rini <trini@ti.com>
* | serial: Use puts() and hang() instead of panic() in SPLMarek Vasut2012-10-15-2/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If case the get_current() call fails before relocation, the U-Boot must try to print an error message, fail and either reset or halt. Such error is critical enough to halt the system, as it means the system is in very bad state. This is now also used in SPL, since CONFIG_SERIAL_MULTI is enabled unconditionally. To avoid compiling whole vsprintf.c into SPL, use puts() to print error message and hang() to stop the system in case of SPL build. Signed-off-by: Marek Vasut <marex@denx.de> Cc: Marek Vasut <marek.vasut@gmail.com> Cc: Tom Rini <trini@ti.com>
* | serial: sh: Implement CONFIG_SERIAL_MULTI into sh serial driverMarek Vasut2012-10-15-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Implement support for CONFIG_SERIAL_MULTI into sh serial driver. This driver was so far only usable directly, but this patch also adds support for the multi method. This allows using more than one serial driver alongside the sh driver. Also, add a weak implementation of default_serial_console() returning this driver. Signed-off-by: Marek Vasut <marex@denx.de> Cc: Marek Vasut <marek.vasut@gmail.com> Cc: Phil Edworthy <PHIL.EDWORTHY@renesas.com> Cc: Nobuhiro Iwamatsu <iwamatsu@nigauri.org> Signed-off-by: Tom Rini <trini@ti.com>
* | serial: arm: Implement CONFIG_SERIAL_MULTI into sa1100 serial driverMarek Vasut2012-10-15-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | Implement support for CONFIG_SERIAL_MULTI into sa1100 serial driver. This driver was so far only usable directly, but this patch also adds support for the multi method. This allows using more than one serial driver alongside the sa1100 driver. Also, add a weak implementation of default_serial_console() returning this driver. Signed-off-by: Marek Vasut <marex@denx.de> Cc: Marek Vasut <marek.vasut@gmail.com> Cc: Tom Rini <trini@ti.com>
* | serial: arm: Implement CONFIG_SERIAL_MULTI into s3c44b0 serial driverMarek Vasut2012-10-15-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | Implement support for CONFIG_SERIAL_MULTI into s3c44b0 serial driver. This driver was so far only usable directly, but this patch also adds support for the multi method. This allows using more than one serial driver alongside the s3c44b0 driver. Also, add a weak implementation of default_serial_console() returning this driver. Signed-off-by: Marek Vasut <marex@denx.de> Cc: Marek Vasut <marek.vasut@gmail.com> Cc: Tom Rini <trini@ti.com>
* | serial: arm: Implement CONFIG_SERIAL_MULTI into pl01x serial driverMarek Vasut2012-10-15-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Implement support for CONFIG_SERIAL_MULTI into pl01x serial driver. This driver was so far only usable directly, but this patch also adds support for the multi method. This allows using more than one serial driver alongside the pl01x driver. Also, add a weak implementation of default_serial_console() returning this driver. Signed-off-by: Marek Vasut <marex@denx.de> Cc: Marek Vasut <marek.vasut@gmail.com> Cc: Tom Rini <trini@ti.com> Cc: Stefano Babic <sbabic@denx.de> Cc: Mathieu J. Poirier <mathieu.poirier@linaro.org> Cc: Linus Walleij <linus.walleij@linaro.org> Cc: John Rigby <john.rigby@linaro.org> Cc: Rabin Vincent <rabin.vincent@stericsson.com>
* | serial: arm: Implement CONFIG_SERIAL_MULTI into netarm serial driverMarek Vasut2012-10-15-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | Implement support for CONFIG_SERIAL_MULTI into netarm serial driver. This driver was so far only usable directly, but this patch also adds support for the multi method. This allows using more than one serial driver alongside the netarm driver. Also, add a weak implementation of default_serial_console() returning this driver. Signed-off-by: Marek Vasut <marex@denx.de> Cc: Marek Vasut <marek.vasut@gmail.com> Cc: Tom Rini <trini@ti.com> Cc: Stefano Babic <sbabic@denx.de>
* | serial: arm: Implement CONFIG_SERIAL_MULTI into mxc serial driverMarek Vasut2012-10-15-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | Implement support for CONFIG_SERIAL_MULTI into mxc serial driver. This driver was so far only usable directly, but this patch also adds support for the multi method. This allows using more than one serial driver alongside the mxc driver. Also, add a weak implementation of default_serial_console() returning this driver. Signed-off-by: Marek Vasut <marex@denx.de> Cc: Marek Vasut <marek.vasut@gmail.com> Cc: Tom Rini <trini@ti.com> Cc: Stefano Babic <sbabic@denx.de>
* | serial: Implement CONFIG_SERIAL_MULTI into max3100 serial driverMarek Vasut2012-10-15-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | Implement support for CONFIG_SERIAL_MULTI into max3100 serial driver. This driver was so far only usable directly, but this patch also adds support for the multi method. This allows using more than one serial driver alongside the max3100 driver. Also, add a weak implementation of default_serial_console() returning this driver. Signed-off-by: Marek Vasut <marex@denx.de> Cc: Marek Vasut <marek.vasut@gmail.com> Cc: Tom Rini <trini@ti.com>