summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* nand erase: .spread, .part, .chip subcommandsScott Wood2010-10-113-22/+60
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A while back, in http://lists.denx.de/pipermail/u-boot/2009-June/054428.html, Michele De Candia posted a patch to not count bad blocks toward the requested size to be erased. This is desireable when you're passing in something like $filesize, but not when you're trying to erase a partition. Thus, a .spread subcommand (named for consistency with http://lists.denx.de/pipermail/u-boot/2010-August/075163.html) is introduced to make explicit the user's desire to erase for a given amount of data, rather than to erase a specific region of the chip. While passing $filesize to "nand erase" is useful, accidentally passing something like $fliesize currently produces quite unpleasant results, as the variable evaluates to nothing and U-Boot assumes that you want to erase the entire rest of the chip/partition. To improve the safety of the erase command, require the user to make explicit their intentions by using a .part or .chip subcommand. This is an incompatible user interface change, but keeping compatibility would eliminate the safety gain, and IMHO it's worth it. While touching nand_erase_opts(), make it accept 64-bit offsets and sizes, fix the percentage display when erase length is rounded up, eliminate an inconsistent warning about rounding up the erase length which only happened when the length was less than one block (rounding up for $filesize is normal operation), and add a diagnostic if there's an attempt to erase beginning at a non-block boundary. Signed-off-by: Scott Wood <scottwood@freescale.com> Tested-by: Ben Gardiner <bengardiner@nanometrics.ca>
* cmd_nand: some infrastructure fixes and refactoringScott Wood2010-10-111-107/+167
| | | | | | | | | | | | | | | | - If the current device is overridden by a named partition, - update the caller's pointer/index, rather than copy over the nand_info struct, and - be sure to call board_nand_select_device even when the device is overridden by a named partition. - Support 64-bit offsets/sizes in a few more places. - Refactor arg_off_size for added readability and flexibility, and some added checks such as partition size. - Remove redundant check for bad subcommands -- if there's no match it'll print usage when it gets to the end anyway. Signed-off-by: Scott Wood <scottwood@freescale.com> Tested-by: Ben Gardiner <bengardiner@nanometrics.ca>
* nand util: read/write: accept unaligned lengthScott Wood2010-10-112-37/+63
| | | | | | | | | | | | | | | | The underlying code in nand_base.c already supports non-page-aligned reads and writes, but the block-skipping wrapper code did not. With block skipping, an unaligned start address is not useful since you really want to be starting at the beginning of a partition -- or at least that's where you want to start checking for blocks to skip, but we don't (yet) support that. So we still require the start address to be aligned. An unaligned length, though, is useful for passing $filesize to the read/write command, and handling it does not complicate block skipping. Signed-off-by: Scott Wood <scottwood@freescale.com> Tested-by: Ben Gardiner <bengardiner@nanometrics.ca>
* Merge branch 'master' of git://git.denx.de/u-boot-x86Wolfgang Denk2010-10-1120-702/+668
|\
| * x86: Implement fully relocatable imageGraeme Russ2010-10-073-24/+35
| | | | | | | | | | | | | | | | u-boot.bin can be loaded at any 4-byte aligned memory location and directly 'jumped' to using the 'go' command using the load address as the start address. Doing so performs a 'warm boot' which skips memory initialisation and other low-level initialisations, relocates U-Boot to upper memory and starts U-Boot in RAM as per normal 'cold boot'
| * x86: Use loops instead of memcpy/memset in board_init_fGraeme Russ2010-10-072-17/+33
| | | | | | | | | | | | | | Provides a small speed increase and prepares for fully relocatable image. Downside is the TEXT_BASE, bss, load address etc must ALL be aligned on a a 4-byte boundary which is not such a terrible restriction as everything is already 4-byte aligned anyway
| * x86: Rearrange linker scriptGraeme Russ2010-10-072-23/+21
| | | | | | | | Tidy up the linker script and discard some sections to save space
| * x86: Rename linker script symbolsGraeme Russ2010-10-074-36/+33
| | | | | | | | Create more generic names for the symbols exported from the linker script
| * x86: Set cold/warm boot flagGraeme Russ2010-10-073-16/+13
| |
| * x86: Place global data below stack before entering CGraeme Russ2010-10-073-37/+37
| | | | | | | | | | | | | | By reserving space for the Global Data immediately below the stack during assembly level initialisation, the C declaration of the static global data can be removed, along with the 'RAM Bootstrap' function. This results in cleaner code, and the ability to pass boot-up flags from assembler into C
| * x86: Dont clobber %eax after getting memory sizeGraeme Russ2010-10-071-3/+2
| | | | | | | | By using another register, reduce code size by one instruction
| * x86: Don't clobber %ebxGraeme Russ2010-10-072-7/+12
| | | | | | | | %ebx will hold low-level boot flags and must be preserved
| * x86: Remove usage of %ebp as a return pointerGraeme Russ2010-10-075-13/+12
| | | | | | | | Using %ebp as a return pointer prevents creating 'load anywhere' images
| * x86: Move ECC initialisation outside RAM initialisationGraeme Russ2010-10-072-14/+14
| | | | | | | | | | To allow for 'load anywhere' images, the %ebp return pointer 'hack' must be removed, so we cannot have two 'calls' to get_mem_size
| * x86: Remove progress indication in low-level initGraeme Russ2010-10-072-54/+2
| | | | | | | | | | Progress indication is not relocation friendly so remove it in preperation for full relocatability support
| * x86: Fix %ss and %esp in register structure for interruptsGraeme Russ2010-10-073-4/+45
| |
| * x86: Change compiler optionsGraeme Russ2010-10-074-17/+12
| | | | | | | | | | | | | | | | | | | | | | Change to: - reparam=3 - no-from-pointer - no-stack-protector - preferred-stack-boundary=2 - no-top-level-reorder These options make the code a little smaller and faster
| * x86: Coding Style CleanupGraeme Russ2010-10-074-373/+362
| | | | | | | | Perform some basic code cleanups of the x86 files
| * x86: Move loading of GTD to C codeGraeme Russ2010-10-072-96/+57
| | | | | | | | | | Linux has C macros and code to load the GTD after switching to Protected Mode. Using these greatly simplifies the assembler code
| * x86: use gc sections to reduce image sizeGraeme Russ2010-10-072-5/+8
| | | | | | | | | | Follow the discussion of Charles Manning and Mike Frysinger. Using gc_sections helps reduce image size.
| * x86: zboot updateGraeme Russ2010-10-071-5/+13
| | | | | | | | | | | | The header of recent Linux Kernels includes the size of the image, and therefore is not needed to be passed to zboot. Still process the third parameter (size of image) in the event that an older kernel is being loaded
| * x86: Use TEXT_BASE in linker scriptsGraeme Russ2010-10-071-4/+4
| | | | | | | | | | | | Use TEXT_BASE rather than a hard-coded base address on x86 linker scripts. This will allow any board to define its base link address without having to modify the linker script
| * x86: Make CONFIG_RELOC_FIXUP_WORKS generic for all x86 boardsGraeme Russ2010-10-072-2/+2
| | | | | | | | | | Relocation is not board-specific for the x86 architectrure, so CONFIG_RELOC_FIXUP_WORKS can be defined globally in the config.h
| * x86: Remove bi_env from do_bdinfoGraeme Russ2010-10-071-1/+0
| | | | | | | | | | Commit 55e97429d1e6cf0976711e4e0f29ea924b7e5917 removed the definition from /arch/i386/include/asm/u-boot.h but not its usage in do_bdinfo()
* | Merge branch 'master' of git://git.denx.de/u-boot-mpc85xxWolfgang Denk2010-10-1112-42/+225
|\ \
| * | fsl: add support for NXID v1 EEPROM formatTimur Tabi2010-10-071-9/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Freescale application note AN3638 describes an update to the NXID format, which stores MAC addresses and related data on an on-board EEPROM. The new version adds support for up to 23 MAC addresses, instead of just 8. Since the initial implementation of NXID had a "0" in the 'version' field, this new version is called "v1". Boards that are shipped with EEPROMs in the NXID v1 format should define CONFIG_SYS_I2C_EEPROM_NXID_1 instead of CONFIG_SYS_I2C_EEPROM_NXID. Signed-off-by: Timur Tabi <timur@freescale.com> Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
| * | powerpc/85xx: fix rev.2 job queue LIODN error stormKim Phillips2010-10-071-4/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | pumping line-rate traffic though a p4080 rev.2, which is configured to encrypt packets prior to forwarding through an IPsec tunnel, gets this error: of_platform ffe302000.jq: DECO: desc idx 22: LIODN error. DECO was trying to share from itself or from another DECO but the two Non-SEQ LIODN values didn't match or the "shared from" DECO's Descriptor required that the SEQ LIODNs be the same and they aren't. Since high traffic rates cause DECOs to begin to start sharing shared descriptors amongst themselves, and DECOs inherit job queue LIODNs when accessing shared descriptors, and a recently discovered rev.2 h/w erratum requires all sharing job queues in a partition have same liodn assignment, reassign the first job queue's liodn assignment to the rest. Signed-off-by: Kim Phillips <kim.phillips@freescale.com> Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
| * | powerpc/p4080: Add new CPC register - HDBCR0Kumar Gala2010-10-071-1/+4
| | | | | | | | | | | | | | | | | | Manual was updated to add a new register for disabling CDQ speculation. Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
| * | powerpc/85xx: Add support for 4th PCI controller on corenet_dsKumar Gala2010-10-072-1/+35
| | | | | | | | | | | | | | | | | | | | | We configure the controller but dont have virtual address space thus any devices on the 4th controller are not accessible in u-boot. Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
| * | powerpc/corenet_ds: Various updates to initial env cfgEmil Medve2010-10-071-6/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Make the U-Boot update command sequence conditional. Helps prevent accidental erasing if an upload or previous step fails * Make it easier to update other FLASH banks * Enable DDR controller cache line interleaving and bank cs0/cs1 by default Signed-off-by: Emil Medve <Emilian.Medve@Freescale.com> Signed-off-by: York Sun <yorksun@freescale.com> Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
| * | fsl: verify writes to the MAC address EEPROMTimur Tabi2010-10-071-1/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Update the code which writes to the on-board EEPROM so that it can detect if the write failed because the EEPROM is write-protected. Most of the 8xxx-class Freescale reference boards use an AT24C02 EEPROM to store MAC addresses and similar information. With this patch, if the EEPROM is protected, the "mac save" command will display an error message indicating that the write has not succeeded. Signed-off-by: Timur Tabi <timur@freescale.com> Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
| * | p1022ds: add audclk hwconfig setting to enable codec reference clockTimur Tabi2010-10-073-9/+80
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The Freescale P1022DS can use either a 12.288MHz or a 11.2896MHz reference clock for the audio codec, but by default both are disabled. Add a 'audclk' hwconfig option that allows the user to choose which clock he wants. The 12.288MHz clock allows the codec to use sampling rates of 16, 24, 32, 48, 64, and 96KHz. The 11.2896 clock allows 14700, 22050, 29400, 44100, 58800, and 88200Hz. Also configure a pin muxing to select some SSI signals, which will disable I2C1. Signed-off-by: Timur Tabi <timur@freescale.com> Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
| * | mpc8569mds: fix some ddr settingsHaiying Wang2010-10-071-3/+13
| | | | | | | | | | | | | | | | | | | | | Enable half drive strength, set RTT to 60Ohm and set write leveling override. Signed-off-by: Haiying Wang <Haiying.Wang@freescale.com> Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
| * | mpc8569mds: fix consuming long time while relocating code.Haiying Wang2010-10-073-6/+38
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The original code maps boot flash as non-cacheable region. When calling relocate_code in flash to copy u-boot from flash to ddr, every loop copy command is read from flash. The flash read speed will be the bottleneck, which consuming long time to do this operation. To resovle this, map the boot flash as write-through cache via tlb. And set tlb to remap the flash after code executing in ddr, to confirm flash erase operation properly done. Signed-off-by: Kai.Jiang <Kai.Jiang@freescale.com> Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
| * | mpc8569mds: fix CONFIG_ENV_SIZEHaiying Wang2010-10-071-2/+2
| |/ | | | | | | | | | | | | | | | | | | | | CONFIG_ENV_SIZE of MPC8569MDS was wrongly set to CONFIG_ENV_SECT_SIZE which is 128KB, so it took longer time to do crc32 calculation for ENV than it should do. It causes the bootup for MPC8569MDS significantly slow. This patch fixs it to 0x2000(8KB), also fix the comment for CONFIG_ENV_SECT_SIZE to correct size. Signed-off-by: Kai.Jiang <Kai.Jiang@freescale.com Signed-off-by: Haiying Wang <Haiying.Wang@freescale.com> Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
* | Merge branch 'sf' of git://git.denx.de/u-boot-blackfinWolfgang Denk2010-10-113-19/+46
|\ \
| * | sspi: add options to specify bus and modeReinhard Meyer2010-10-061-15/+25
| | | | | | | | | | | | | | | | | | | | | | | | and clean up error messages and help, removed pointless debug() call. Signed-off-by: Reinhard Meyer <u-boot@emk-elektronik.de> Signed-off-by: Mike Frysinger <vapier@gentoo.org>
| * | sf: spansion: add support for S25FL032P partsDavid Jander2010-10-061-0/+9
| | | | | | | | | | | | | | | | | | | | | | | | This patch introduces an extra mask-field in spansion_spi_flash_params to support flash chips with 1-byte extended ID (like the S25FL032P). Signed-off-by: David Jander <david@protonic.nl> Signed-off-by: Mike Frysinger <vapier@gentoo.org>
| * | sf: spansion: fixing erasing when sector size >64KiBMarc-André Hébert2010-10-061-4/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The spansion_erase currently only works when the sector size is 64KB. cmd[1] should contain the higher 8 bit of the 24 bit address of the sector to be erased. Currently it is holding the sector index to be erased which happens to be the same thing when the sector size is 64KB. Signed-off-by: Marc-Andre Hebert <marc-andre.hebert@humanware.com> Signed-off-by: Mike Frysinger <vapier@gentoo.org>
| * | sf: winbond: add support W25Q64 partsGraeme Smecher2010-10-061-0/+9
| |/ | | | | | | | | | | | | | | | | Adds support for Winbond's W25Q64 SPI flash. These devices are used on (among others) Xilinx' SP601 and SP605 Spartan-6 evaluation boards. Tested with "sf" commands. Signed-off-by: Graeme Smecher <graeme.smecher@mail.mcgill.ca> Signed-off-by: Mike Frysinger <vapier@gentoo.org>
* | include/compiler.h: remove uint typedef for __MACH__Andreas Bießmann2010-10-061-1/+0
| | | | | | | | | | | | | | | | | | | | uint is typedefed twice if __MACH__ is defined. This generates an error when calling MAKEALL for netstar bord on OS X. This patch removes the typedef for __MACH__ case in favor of general definiton some lines below. Signed-off-by: Andreas Bießmann <andreas.devel@googlemail.com>
* | Replace MAX_CMDBUF_SIZE references with CONFIG_SYS_CBSIZEPeter Tyser2010-10-061-5/+2
| | | | | | | | | | | | | | The MAX_CMDBUF_SIZE define is unneeded as it should always equal CONFIG_SYS_CBSIZE. Signed-off-by: Peter Tyser <ptyser@xes-inc.com>
* | ds1621: Fix negative temperature readingsJeff Dischler2010-10-061-1/+1
| | | | | | | | | | | | | | | | | | Fix bug where signed data was processed as unsigned. The bug previously resulted in negative temperature readings wrapping around, eg -10 became 245. Signed-off-by: Jeff Dischler <jdischler@xes-inc.com> Signed-off-by: Peter Tyser <ptyser@xes-inc.com>
* | ds1621: Clean up coding stylePeter Tyser2010-10-061-131/+114
| | | | | | | | Signed-off-by: Peter Tyser <ptyser@xes-inc.com>
* | ds1621: Poll for register write completionPeter Tyser2010-10-061-5/+21
| | | | | | | | | | | | | | | | | | Poll the ds1621 NV Memory Busy bit instead of waiting a static amount of time for register writes. Also add config retister bit defines. Signed-off-by: Peter Tyser <ptyser@xes-inc.com>
* | lib/hashtable.c: add CONFIG_ENV_MIN_ENTRIESAndreas Bießmann2010-10-061-4/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch adds a new config parameter for adjusting the calculation of hash table size when importing a buffer. When importing a extremely small buffer (e.g. the default_environment) the old calculation generated a hash table which could hold at most the buffer content but no more entires. The new calculation add a fixed number of entries to the result to fit better for small import buffers. This amount may be configured by the user in board file to adjust the behaviour. Signed-off-by: Andreas Bießmann <andreas.devel@googlemail.com>
* | cmd_elf: add an option for loading ELFs according to PHDRsMike Frysinger2010-10-061-9/+53
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The current ELF loading function does a lot of work above and beyond a simple "loading". It ignores the real load addresses and loads things into their virtual (runtime) address. This is undesirable when we just want it to load an ELF and let the ELF do the actual C runtime init. So add a command line option to let people choose to load via either the program or section headers. I'd prefer to have program header loading be the default, but this would break historical behavior, so I'll leave section header loading as the norm. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
* | PowerPC: change board specific early pci_init() into generic.Andre Schwarz2010-10-063-5/+6
| | | | | | | | Signed-off-by: Andre Schwarz <andre.schwarz@matrix-vision.de>
* | serial.c: Fix build breakage introduced with commit e3c78c9bStefan Roese2010-10-061-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch fixes the compilation problem introduced with commit e3c78c9b [ppc4xx: Remove now unused CONFIG_UART1_CONSOLE]: -> ./MAKEALL TB5200 Configuring for TB5200 board... serial.c: In function '__default_serial_console': serial.c:94: warning: no return statement in function returning non-void I accidentally removed an "#else" line. This patch adds it back. Signed-off-by: Stefan Roese <sr@denx.de>
* | env: fix cmd_env_sub fct pointers if CONFIG_RELOC_FIXUP_WORKS is not definedHeiko Schocher2010-10-062-0/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | commit ea882baf9c17cd142c99e3ff640d3ab01daa5cec introduces a command_sub_table for the "env" command. On arm, avr32, m68k, mips and sparc architectures, relocation needs manual fixups, so add these fixups for this sub command table too. Tested on arm/qong board. mips board (Ben NanoNote) from Xiangfu Liu arm/AT91 board from Reinhard Meyer Signed-off-by: Heiko Schocher <hs@denx.de> cc: Wolfgang Denk <wd@denx.de> cc: Shinya Kuribayashi <skuribay@ruby.dti.ne.jp> cc: Xiangfu Liu <xiangfu@openmobilefree.net> cc: Reinhard Meyer <u-boot@emk-elektronik.de> cc: sshtylyov@mvista.com
OpenPOWER on IntegriCloud