]> git.sur5r.net Git - u-boot/log
u-boot
14 years agoUSB-CDC: called handle_interrupts inside usb_eth_send
Stefano Babic [Sun, 15 Aug 2010 12:19:00 +0000 (14:19 +0200)]
USB-CDC: called handle_interrupts inside usb_eth_send

The patch removes an endless loop  in the usb_eth_send
if the tx_complete is not called before going
in the loop. The driver interrupt routine is called
allowing the driver to check if the TX is completed.

Signed-off-by: Stefano Babic <sbabic@denx.de>
14 years agoUSB-CDC: correct wrong alignment in ether.c
Stefano Babic [Sun, 15 Aug 2010 12:18:59 +0000 (14:18 +0200)]
USB-CDC: correct wrong alignment in ether.c

The buffer for the status request must be word aligned
because it is accessed with 32 bit pointer in the
eth_status_complete function.

Signed-off-by: Stefano Babic <sbabic@denx.de>
14 years agoUSB-CDC: change simple_strtol to simple_strtoul
Vitaly Kuzmichev [Fri, 13 Aug 2010 13:02:41 +0000 (17:02 +0400)]
USB-CDC: change simple_strtol to simple_strtoul

The patch is based on commit bb9496c6f7e853e5d4edd5397c9d45f1968d623c
(done by Julia Lawall <julia@diku.dk>) from linux-2.6.git.

Since num is unsigned, it would seem better to use simple_strtoul that
simple_strtol.

Signed-off-by: Vitaly Kuzmichev <vkuzmichev@mvista.com>
14 years agoUSB-CDC: ethernet error path potential oops fix
Vitaly Kuzmichev [Fri, 13 Aug 2010 13:02:29 +0000 (17:02 +0400)]
USB-CDC: ethernet error path potential oops fix

Fix potential oops on rare error path.
The patch is based on commit e7b13ec9235b9fded90f826ceeb8c34548631351
(done by David Brownell <david-b@pacbell.net>) from linux-2.6.git.

Description of the issue taken from linux kernel bugzilla:
(https://bugzilla.kernel.org/show_bug.cgi?id=9594)

The potential error can be tracked down as follows:

(1) line 807: let the second conjunct on the "if" statment be false
    meaning "dev->status_ep" is null. This means the "if" evaluates
    to false.

follow thru the code until...

(2) line 808: usb_ep_disable(dev->status_ep) passes in a null argument,
    however "usb_ep_disable" cannot handle that:

(from include/linux/usb/gadget.h)
191 static inline int
192 usb_ep_disable (struct usb_ep *ep)
193 {
194         return ep->ops->disable (ep);
195 }

--

Signed-off-by: Vitaly Kuzmichev <vkuzmichev@mvista.com>
14 years agoUSB-CDC: Correct stat_req initialization
Vitaly Kuzmichev [Fri, 13 Aug 2010 13:01:06 +0000 (17:01 +0400)]
USB-CDC: Correct stat_req initialization

Fix possible oops on stat_req->buf initialization and fix ep0 and
status_ep confusion (last one is just intended for stat_req keeping).

Signed-off-by: Vitaly Kuzmichev <vkuzmichev@mvista.com>
Signed-off-by: Stefano Babic <sbabic@denx.de>
14 years agoUSB-CDC: Replace 'strcpy' by 'strlcpy'
Vitaly Kuzmichev [Fri, 13 Aug 2010 13:00:45 +0000 (17:00 +0400)]
USB-CDC: Replace 'strcpy' by 'strlcpy'

Replace 'strcpy' by more safe 'strlcpy' that is implemented in ether.c

Signed-off-by: Vitaly Kuzmichev <vkuzmichev@mvista.com>
14 years agoUSB-CDC: Correct freeing usb requests
Vitaly Kuzmichev [Fri, 13 Aug 2010 13:00:16 +0000 (17:00 +0400)]
USB-CDC: Correct freeing usb requests

Fix in_ep and out_ep confusion (rx_req was allocated from out_ep, not
from in_ep) and add lost dev->req freeing.

Signed-off-by: Vitaly Kuzmichev <vkuzmichev@mvista.com>
14 years agoUSB-CDC: Use native debug printout macros
Vitaly Kuzmichev [Fri, 13 Aug 2010 12:57:51 +0000 (16:57 +0400)]
USB-CDC: Use native debug printout macros

Replace Linux-like debug printout macros by native ones.

Signed-off-by: Vitaly Kuzmichev <vkuzmichev@mvista.com>
Applied after removing dead code like '#define DEBUG/#undef DEBUG'

14 years agoUSB-CDC: Add lost 'qmult' definition
Vitaly Kuzmichev [Thu, 12 Aug 2010 12:44:40 +0000 (16:44 +0400)]
USB-CDC: Add lost 'qmult' definition

Add lost 'qmult' definition for High Speed devices and make it
configurable through CONFIG_USB_ETH_QMULT.

Signed-off-by: Vitaly Kuzmichev <vkuzmichev@mvista.com>
14 years agoUSB-CDC: Restuct USB gadget Makefile
Vitaly Kuzmichev [Thu, 12 Aug 2010 12:44:39 +0000 (16:44 +0400)]
USB-CDC: Restuct USB gadget Makefile

Prohibit simultaneous usage of both old and new gadget stacks and
allow UDC drivers to be dependent on CONFIG_USB_ETHER.

Signed-off-by: Vitaly Kuzmichev <vkuzmichev@mvista.com>
14 years agoIntegrate USB gadget layer and USB CDC driver layer
Remy Bohmer [Wed, 29 Jul 2009 16:18:43 +0000 (18:18 +0200)]
Integrate USB gadget layer and USB CDC driver layer

Derived from Linux kernel 2.6.27

Signed-off-by: Thomas Smits <ts.smits@gmail.com>
Signed-off-by: Remy Bohmer <linux@bohmer.net>
14 years agousb: musb: stub out MUSB_TXCSR_MODE for Blackfin parts
Mike Frysinger [Wed, 11 Aug 2010 21:54:00 +0000 (17:54 -0400)]
usb: musb: stub out MUSB_TXCSR_MODE for Blackfin parts

The MUSB_TXCSR_MODE register setting isn't supported on Blackfin musb
parts, so stub it out to 0.  This matches Linux behavior.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
14 years agocanmb board: Fix compiler warnings
Wolfgang Denk [Sun, 19 Sep 2010 10:59:41 +0000 (12:59 +0200)]
canmb board: Fix compiler warnings

Recent changes caused thatthe aev board now is included in the boards
built by MAKEALL, which revealed that compilation for this board
has been broken for a long time:

canmb.c: In function 'initdram':
canmb.c:109: warning: pointer targets in passing argument 1 of 'get_ram_size' differ in signedness
canmb.c:111: warning: pointer targets in passing argument 1 of 'get_ram_size' differ in signedness
canmb.c:137: warning: pointer targets in passing argument 1 of 'get_ram_size' differ in signedness
canmb.c:140: warning: pointer targets in passing argument 1 of 'get_ram_size' differ in signedness

Fix these.

Signed-off-by: Wolfgang Denk <wd@denx.de>
14 years agoaev board: Fix compile problems
Wolfgang Denk [Sun, 19 Sep 2010 10:40:02 +0000 (12:40 +0200)]
aev board: Fix compile problems

Recent changes caused thatthe aev board now is included in the boards
built by MAKEALL, which revealed that compilation for this board has
been broken for a long time:

mpc5xxx_fec.c:899:2: error: #error fec->xcv_type not initialized.
mpc5xxx_fec.c:899:2: error: #error fec->xcv_type not initialized.

Fix it.

Signed-off-by: Wolfgang Denk <wd@denx.de>
14 years agoda8xx: fixup ARM relocation support
Ben Gardiner [Mon, 23 Aug 2010 13:08:15 +0000 (09:08 -0400)]
da8xx: fixup ARM relocation support

Split the existing dram_init for da8xx when ARM reloc is enabled, like the
changes to arch/arm/cpu/arm926ejs/orion5x/dram.c in
0f234d263b17ccf1b8fd776eb8c15b7cdb27a887 by Heiko Schocher <hs@denx.de>.

Without these changes gd->ram_size is '0' which leads to incorrect relocation
when CONFIG_SYS_ARM_WITHOUT_RELOC is defined and the board does not boot.

We use get_ram_size to dynamically calculate the available RAM because it runs
on different board version with different ram, as suggested by Heiko in private
communication.

Tested on a da850evm with 128M of DDR2 installed; with both
CONFIG_SYS_ARM_WITHOUT_RELOC defined and undefined.

Signed-off-by: Ben Gardiner <bengardiner@nanometrics.ca>
Reviewed-by: Sudhakar Rajashekhara <sudhakar.raj@ti.com>
CC: Sudhakar Rajashekhara <sudhakar.raj@ti.com>
CC: Heiko Schocher <hs@denx.de>
14 years agoARM: implement relocation for arm1176
Heiko Schocher [Fri, 17 Sep 2010 11:10:53 +0000 (13:10 +0200)]
ARM: implement relocation for arm1176

Change the implementation for arm1176 to relocate the code to
an arbitrary address in RAM.

Portions of this work were supported by funding from
the CE Linux Forum.

Signed-off-by: Heiko Schocher <hs@denx.de>
14 years agoARM: implement relocation for arm720t
Heiko Schocher [Fri, 17 Sep 2010 11:10:52 +0000 (13:10 +0200)]
ARM: implement relocation for arm720t

Change the implementation for arm720t to relocate the code to
an arbitrary address in RAM.

Portions of this work were supported by funding from
the CE Linux Forum.

Signed-off-by: Heiko Schocher <hs@denx.de>
14 years agoARM: implement relocation for arm_intcm
Heiko Schocher [Fri, 17 Sep 2010 11:10:51 +0000 (13:10 +0200)]
ARM: implement relocation for arm_intcm

Change the implementation for arm_intcm to relocate the code to
an arbitrary address in RAM.

Portions of this work were supported by funding from
the CE Linux Forum.

Signed-off-by: Heiko Schocher <hs@denx.de>
14 years agoARM: implement relocation for lh7a40x
Heiko Schocher [Fri, 17 Sep 2010 11:10:50 +0000 (13:10 +0200)]
ARM: implement relocation for lh7a40x

Change the implementation for lh7a40x to relocate the code to
an arbitrary address in RAM.

Portions of this work were supported by funding from
the CE Linux Forum.

Signed-off-by: Heiko Schocher <hs@denx.de>
14 years agoARM: implement relocation for s3c44b0
Heiko Schocher [Fri, 17 Sep 2010 11:10:49 +0000 (13:10 +0200)]
ARM: implement relocation for s3c44b0

Change the implementation for s3c44b0 to relocate the code to
an arbitrary address in RAM.

Portions of this work were supported by funding from
the CE Linux Forum.

Signed-off-by: Heiko Schocher <hs@denx.de>
14 years agoARM: implement relocation for sa1100
Heiko Schocher [Fri, 17 Sep 2010 11:10:48 +0000 (13:10 +0200)]
ARM: implement relocation for sa1100

Change the implementation for sa1100 to relocate the code to
an arbitrary address in RAM.

Portions of this work were supported by funding from
the CE Linux Forum.

Signed-off-by: Heiko Schocher <hs@denx.de>
14 years agoARM: implement relocation for ixp
Heiko Schocher [Fri, 17 Sep 2010 11:10:47 +0000 (13:10 +0200)]
ARM: implement relocation for ixp

Change the implementation for ixp to relocate the code to
an arbitrary address in RAM.

Portions of this work were supported by funding from
the CE Linux Forum.

Signed-off-by: Heiko Schocher <hs@denx.de>
14 years agoARM: implement relocation for pxa
Heiko Schocher [Fri, 17 Sep 2010 11:10:46 +0000 (13:10 +0200)]
ARM: implement relocation for pxa

Change the implementation for pxa to relocate the code to
an arbitrary address in RAM.

Portions of this work were supported by funding from
the CE Linux Forum.

Signed-off-by: Heiko Schocher <hs@denx.de>
14 years agoARM: implement relocation for ARM946
Heiko Schocher [Fri, 17 Sep 2010 11:10:45 +0000 (13:10 +0200)]
ARM: implement relocation for ARM946

Change the implementation for arm946 to relocate the code to
an arbitrary address in RAM.

Portions of this work were supported by funding from
the CE Linux Forum.

Signed-off-by: Heiko Schocher <hs@denx.de>
14 years agoARM: implement relocation for ARM925
Heiko Schocher [Fri, 17 Sep 2010 11:10:44 +0000 (13:10 +0200)]
ARM: implement relocation for ARM925

Change the implementation for arm925 to relocate the code to
an arbitrary address in RAM.

Portions of this work were supported by funding from
the CE Linux Forum.

Signed-off-by: Heiko Schocher <hs@denx.de>
14 years agoARM: implement relocation for ARM920
Heiko Schocher [Fri, 17 Sep 2010 11:10:43 +0000 (13:10 +0200)]
ARM: implement relocation for ARM920

Change the implementation for arm920 to relocate the code to
an arbitrary address in RAM.

Portions of this work were supported by funding from
the CE Linux Forum.

Signed-off-by: Heiko Schocher <hs@denx.de>
14 years agoARM: implement relocation for ARM926
Heiko Schocher [Fri, 17 Sep 2010 11:10:42 +0000 (13:10 +0200)]
ARM: implement relocation for ARM926

Change the implementation for arm926 to relocate the code to
an arbitrary address in RAM.

Adapt the TX25 (i.MX25), magnesium board to test the changes.

On the tx25 board TEXT_BASE is set to the final relocation
address to prevent one more copying of u-boot code
when relocating. More info see:
doc/README.arm-relocation

da850 board:
Tested-by: Ben Gardiner <bengardiner@nanometrics.ca>
Portions of this work were supported by funding from
the CE Linux Forum.

Signed-off-by: Heiko Schocher <hs@denx.de>
Cc: Ben Gardiner <bengardiner@nanometrics.ca>
14 years agoARM: implement relocation for ARM V7 (OMAP)
Heiko Schocher [Fri, 17 Sep 2010 11:10:41 +0000 (13:10 +0200)]
ARM: implement relocation for ARM V7 (OMAP)

Change the implementation for ARM V7 to relocate the code to an
arbitrary address in RAM.

Adapt the Beagle board (Cortex A8) to test the changes.

Portions of this work were supported by funding from
the CE Linux Forum.

Signed-off-by: Heiko Schocher <hs@denx.de>
14 years agoARM: implement relocation for ARM11
Heiko Schocher [Fri, 17 Sep 2010 11:10:40 +0000 (13:10 +0200)]
ARM: implement relocation for ARM11

Change the implementation for ARM11 to relocate the code to an
arbitrary address in RAM.

Tested on the qong board.

Portions of this work were supported by funding from
the CE Linux Forum.

Signed-off-by: Heiko Schocher <hs@denx.de>
14 years agoARM: add relocation support
Heiko Schocher [Fri, 17 Sep 2010 11:10:39 +0000 (13:10 +0200)]
ARM: add relocation support

!! This breaks support for all arm boards !!

To compile in old style, you must define
CONFIG_SYS_ARM_WITHOUT_RELOC or you can compile
with "CONFIG_SYS_ARM_WITHOUT_RELOC=1 ./MAKEALL board"

!! This define will be removed soon, so convert your
board to use relocation support

Portions of this work were supported by funding from
the CE Linux Forum.

Signed-off-by: Heiko Schocher <hs@denx.de>
Fix boot from NAND for non-ARM systems
Signed-off-by: Wolfgang Denk <wd@denx.de>
14 years agonand_boot_fsl_nfc.c: make "nfc" a "static const" pointer
Heiko Schocher [Fri, 17 Sep 2010 11:10:38 +0000 (13:10 +0200)]
nand_boot_fsl_nfc.c: make "nfc" a "static const" pointer

With -fPIC enabled, this variable needs an entry in the GOT, which
causes the image size to exceed 2 KiB which is the maximum allowed for
some systems. Making it a "static const" avoids the GOT entry and thus
reduces the image size to < 2 KiB.

Portions of this work were supported by funding from
the CE Linux Forum.

Signed-off-by: Heiko Schocher <hs@denx.de>
Acked-by: Scott Wood <scottwood@freescale.com>
14 years agoi2c, omap24xx: set bus_initialized only after relocation.
Heiko Schocher [Fri, 17 Sep 2010 11:10:37 +0000 (13:10 +0200)]
i2c, omap24xx: set bus_initialized only after relocation.

Portions of this work were supported by funding from
the CE Linux Forum.

Signed-off-by: Heiko Schocher <hs@denx.de>
14 years agodisk/part.c: fix relocation fixup
Heiko Schocher [Fri, 17 Sep 2010 11:10:36 +0000 (13:10 +0200)]
disk/part.c: fix relocation fixup

Portions of this work were supported by funding from
the CE Linux Forum.

Signed-off-by: Heiko Schocher <hs@denx.de>
14 years agoi2c: fix command usage help
Heiko Schocher [Fri, 17 Sep 2010 11:10:35 +0000 (13:10 +0200)]
i2c: fix command usage help

Portions of this work were supported by funding from
the CE Linux Forum.

Signed-off-by: Heiko Schocher <hs@denx.de>
14 years agocommon: move TOTAL_MALLOC_LEN to include/common.h
Heiko Schocher [Fri, 17 Sep 2010 11:10:34 +0000 (13:10 +0200)]
common: move TOTAL_MALLOC_LEN to include/common.h

Portions of this work were supported by funding from
the CE Linux Forum.

Signed-off-by: Heiko Schocher <hs@denx.de>
14 years agorelocation: fixup cmdtable
Heiko Schocher [Fri, 17 Sep 2010 11:10:33 +0000 (13:10 +0200)]
relocation: fixup cmdtable

fixup_cmdtable() did all work for fixing up the cmdtable,
if CONFIG_RELOC_FIXUP_WORKS is not defined.

CONFIG_RELOC_FIXUP_WORKS is missing for i386! I talked
with Graeme Russ, and he will fix this soon.

Portions of this work were supported by funding from
the CE Linux Forum.

Signed-off-by: Heiko Schocher <hs@denx.de>
14 years agoARM (ARM11): add data cache support, test on Qong board
Heiko Schocher [Fri, 17 Sep 2010 11:10:32 +0000 (13:10 +0200)]
ARM (ARM11): add data cache support, test on Qong board

Add data cache support for arm1136 systems.

Enable "cache" command on Qong board and test performance.

    Test 1: Loading 127 MB of data from NAND flash into RAM:

    Instr. Cache off on on
      Data Cache off off on
    --------------------------------------------------
    QONG (ARM11) 177s 95s 43s = x 4.1

    Test 2: uncompressing a gzipped image from RAM to RAM
            (size compressed: 6.5 MiB, uncompressed: 35 MiB):

    Instr. Cache off on on
      Data Cache off off on
    --------------------------------------------------
    QONG (ARM11) 1.54s 0.95s 0.18s = x 8.6

Portions of this work were supported by funding from
the CE Linux Forum.

Signed-off-by: Heiko Schocher <hs@denx.de>
14 years agoARM V7 (OMAP): add data cache support, test on Beagle board
Heiko Schocher [Fri, 17 Sep 2010 11:10:31 +0000 (13:10 +0200)]
ARM V7 (OMAP): add data cache support, test on Beagle board

Add data cache support for ARM V7 systems. Used cache flush
functions from linux:arch/arm/mm/cache-v7.S developed from
Catalin Marinas.

Enable "cache" command on Beagle board and test performance.

    Test 1: Loading 127 MB of data from NAND flash into RAM:

    Instr. Cache off on on
      Data Cache off off on
    --------------------------------------------------
    Beagle (Cortex A8) 116s 106s 30.3s = x 3.8

    Test 2: uncompressing a gzipped image from RAM to RAM
            (size compressed: 6.5 MiB, uncompressed: 35 MiB):

    Instr. Cache off on on
      Data Cache off off on
    --------------------------------------------------
    Beagle (Cortex A8) 1.84s 1.64s 0.12s = x 15.3

Portions of this work were supported by funding from
the CE Linux Forum.

Signed-off-by: Heiko Schocher <hs@denx.de>
Reviewed-by: Ben Gardiner<bengardiner@nanometrics.ca>
14 years agoARM (ARM926ejs): add data cache support, tested on magnesium and tx25 board
Heiko Schocher [Fri, 17 Sep 2010 11:10:30 +0000 (13:10 +0200)]
ARM (ARM926ejs): add data cache support, tested on magnesium and tx25 board

Enable "cache" command on tx25 and magnesium board and test performance.

    Test 1: Loading 127 MB of data from NAND flash into RAM:

    Instr. Cache        off     on      on
      Data Cache        off     off     on
    --------------------------------------------------
    magnesium           32,6s   22,5s   30s     = x 1,09
    tx25 (29MB only)    9,69s   5,05s   8,16s   = x 1,19

    Test 2: uncompressing a gzipped image from RAM to RAM
            (size compressed: 6.5 MiB, uncompressed: 35 MiB):

    Instr. Cache        off     on      on
      Data Cache        off     off     on
    --------------------------------------------------
    magnesium           4,25s   2,08s   1,72s   = x 2,47
    tx25                4,82s   2,04s   1,84s   = x 2,62

Portions of this work were supported by funding from
the CE Linux Forum.

Signed-off-by: Alessandro Rubini <rubini@gnudd.com>
Signed-off-by: Heiko Schocher <hs@denx.de>
Cc: Alessandro Rubini <rubini@gnudd.com>
14 years agoARM: cp15: setup mmu and enable dcache
Heiko Schocher [Fri, 17 Sep 2010 11:10:29 +0000 (13:10 +0200)]
ARM: cp15: setup mmu and enable dcache

This has been tested on at91sam9263 and STN8815.
Again, I didn't check if it has bad effects
on non-arm926 cores.

Initially I had a "done" bit to only set up page tables
at the beginning. However, since the aligmnent requirement
was for the whole object file, this extra integer tool 16kB
in BSS, so I chose to remove it.

Also, note not all boards use PHYS_SDRAM, but it looks like
it's the most used name (more than CONFIG_SYS_DRAM_BASE for
example).

Portions of this work were supported by funding from
the CE Linux Forum.

Signed-off-by: Alessandro Rubini <rubini@gnudd.com>
Signed-off-by: Heiko Schocher <hs@denx.de>
14 years agoarm: get rid of bi_env
Heiko Schocher [Fri, 17 Sep 2010 11:10:28 +0000 (13:10 +0200)]
arm: get rid of bi_env

bi_env is nowhere used, so delete it!

Signed-off-by: Heiko Schocher <hs@denx.de>
similar patch posted from Dirk Behme Tue Jul 27 18:36:09 CEST 2010
http://lists.denx.de/pipermail/u-boot/2010-July/074542.html

14 years agompc52xx: Cleanup use of CONFIG_SYS_SRAM_BASE and CONFIG_SYS_SRAM_SIZE
Heiko Schocher [Mon, 13 Sep 2010 10:12:33 +0000 (12:12 +0200)]
mpc52xx: Cleanup use of CONFIG_SYS_SRAM_BASE and CONFIG_SYS_SRAM_SIZE

cleanup for the uc101 and the mucmc52 board.

Signed-off-by: Heiko Schocher <hs@denx.de>
14 years agotools: enable img2srec for "tools-all" target
Mike Frysinger [Sun, 15 Aug 2010 04:03:19 +0000 (00:03 -0400)]
tools: enable img2srec for "tools-all" target

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
14 years agotools/env: use host build flags
Mike Frysinger [Sun, 15 Aug 2010 04:03:22 +0000 (00:03 -0400)]
tools/env: use host build flags

Convert the tools/env/Makefile to use the same host tool syntax as the
other tool subdirs.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
14 years agounify toplevel tools targets
Mike Frysinger [Sun, 15 Aug 2010 04:03:21 +0000 (00:03 -0400)]
unify toplevel tools targets

Most tool subdirs do not rely on a configured tree, so move those targets
out of the config checks and unify them in the process.

Also add an easylogo target so people can easily build that.

Also add these new tool targets to the 'tools-all' target.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
14 years agotools: update .gitignore
Mike Frysinger [Sun, 15 Aug 2010 04:03:20 +0000 (00:03 -0400)]
tools: update .gitignore

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
14 years agoMAKEALL: cut down on duplication of targets
Mike Frysinger [Thu, 19 Aug 2010 17:05:06 +0000 (13:05 -0400)]
MAKEALL: cut down on duplication of targets

Merge the other significant source of board name duplication with the new
boards.cfg file.  I cleaned up most targets, but the ARM and MIPS trees
are such a mess than I didn't bother.  If those maintainers care, they can
take are of it.

While we're at it, we can be a bit more clever in the LIST_xxx handling
and avoid duplicating the list names too.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Reviewed-by: Ben Gardiner <bengardiner@nanometrics.ca>
Tested-by: Thomas Chou <thomas@wytron.com.tw>
14 years agoMakefile: restore support for board shortcut targets
Mike Frysinger [Wed, 11 Aug 2010 22:52:36 +0000 (18:52 -0400)]
Makefile: restore support for board shortcut targets

The helpful shortcut for doing a board config + make was dropped recently
as it conflicted with some new build code.  However, the reason for using
pattern targets originally was to avoid managing a duplicate list of
boards.  Since we now have one centralized place for a list of boards (the
new boards.cfg), we don't need a pattern target -- we can generate the
exact list of boards on the fly.  So do just that.

When cleaning things up, the top level gitignore file ignores all things
that end with ".depend", but the clean target only deletes files that are
named exactly ".depend".  Keep these in sync by having the clean target
punt all files that match the pattern that gitignore is using.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Acked-by: Detlev Zundel <dzu@denx.de>
14 years agoNew implementation for internal handling of environment variables.
Wolfgang Denk [Sun, 20 Jun 2010 21:33:59 +0000 (23:33 +0200)]
New implementation for internal handling of environment variables.

Motivation:

* Old environment code used a pessimizing implementation:
  - variable lookup used linear search => slow
  - changed/added variables were added at the end, i. e. most
    frequently used variables had the slowest access times => slow
  - each setenv() would calculate the CRC32 checksum over the whole
    environment block => slow
* "redundant" envrionment was locked down to two copies
* No easy way to implement features like "reset to factory defaults",
  or to select one out of several pre-defined (previously saved) sets
  of environment settings ("profiles")
* No easy way to import or export environment settings

======================================================================

API Changes:

- Variable names starting with '#' are no longer allowed

  I didn't find any such variable names being used; it is highly
  recommended to follow standard conventions and start variable names
  with an alphanumeric character

- "printenv" will now print a backslash at the end of all but the last
  lines of a multi-line variable value.

  Multi-line variables have never been formally defined, allthough
  there is no reason not to use them. Now we define rules how to deal
  with them, allowing for import and export.

- Function forceenv() and the related code in saveenv() was removed.
  At the moment this is causing build problems for the only user of
  this code (schmoogie - which has no entry in MAINTAINERS); may be
  fixed later by implementing the "env set -f" feature.

Inconsistencies:

- "printenv" will '\\'-escape the '\n' in multi-line variables, while
  "printenv var" will not do that.

======================================================================

Advantages:

- "printenv" output much better readable (sorted)
- faster!
- extendable (additional variable properties can be added)
- new, powerful features like "factory reset" or easy switching
  between several different environment settings ("profiles")

Disadvantages:

- Image size grows by typically 5...7 KiB (might shrink a bit again on
  systems with redundant environment with a following patch series)

======================================================================

Implemented:

- env command with subcommands:

  - env print [arg ...]

    same as "printenv": print environment

  - env set [-f] name [arg ...]

    same as "setenv": set (and delete) environment variables

    ["-f" - force setting even for read-only variables - not
    implemented yet.]

  - end delete [-f] name

    not implemented yet

    ["-f" - force delete even for read-only variables]

  - env save

    same as "saveenv": save environment

  - env export [-t | -b | -c] addr [size]

    export internal representation (hash table) in formats usable for
    persistent storage or processing:

-t: export as text format; if size is given, data will be
padded with '\0' bytes; if not, one terminating '\0'
will be added (which is included in the "filesize"
setting so you can for exmple copy this to flash and
keep the termination).
-b: export as binary format (name=value pairs separated by
'\0', list end marked by double "\0\0")
-c: export as checksum protected environment format as
used for example by "saveenv" command
addr: memory address where environment gets stored
size: size of output buffer

With "-c" and size is NOT given, then the export command will
format the data as currently used for the persistent storage,
i. e. it will use CONFIG_ENV_SECT_SIZE as output block size and
prepend a valid CRC32 checksum and, in case of resundant
environment, a "current" redundancy flag. If size is given, this
value will be used instead of CONFIG_ENV_SECT_SIZE; again, CRC32
checksum and redundancy flag will be inserted.

With "-b" and "-t", always only the real data (including a
terminating '\0' byte) will be written; here the optional size
argument will be used to make sure not to overflow the user
provided buffer; the command will abort if the size is not
sufficient. Any remainign space will be '\0' padded.

        On successful return, the variable "filesize" will be set.
        Note that filesize includes the trailing/terminating '\0'
        byte(s).

        Usage szenario: create a text snapshot/backup of the current
settings:

=> env export -t 100000
=> era ${backup_addr} +${filesize}
=> cp.b 100000 ${backup_addr} ${filesize}

Re-import this snapshot, deleting all other settings:

=> env import -d -t ${backup_addr}

  - env import [-d] [-t | -b | -c] addr [size]

    import external format (text or binary) into hash table,
    optionally deleting existing values:

-d: delete existing environment before importing;
otherwise overwrite / append to existion definitions
-t: assume text format; either "size" must be given or the
text data must be '\0' terminated
-b: assume binary format ('\0' separated, "\0\0" terminated)
-c: assume checksum protected environment format
addr: memory address to read from
size: length of input data; if missing, proper '\0'
termination is mandatory

  - env default -f

    reset default environment: drop all environment settings and load
    default environment

  - env ask name [message] [size]

    same as "askenv": ask for environment variable

  - env edit name

    same as "editenv": edit environment variable

  - env run

    same as "run": run commands in an environment variable

======================================================================

TODO:

- drop default env as implemented now; provide a text file based
  initialization instead (eventually using several text files to
  incrementally build it from common blocks) and a tool to convert it
  into a binary blob / object file.

- It would be nice if we could add wildcard support for environment
  variables; this is needed for variable name auto-completion,
  but it would also be nice to be able to say "printenv ip*" or
  "printenv *addr*"

- Some boards don't link any more due to the grown code size:
  DU405, canyonlands, sequoia, socrates.

=> cc: Matthias Fuchs <matthias.fuchs@esd-electronics.com>,
       Stefan Roese <sr@denx.de>,
       Heiko Schocher <hs@denx.de>

- Dropping forceenv() causes build problems on schmoogie

=> cc: Sergey Kubushyn <ksi@koi8.net>

- Build tested on PPC and ARM only; runtime tested with NOR and NAND
  flash only => needs testing!!

Signed-off-by: Wolfgang Denk <wd@denx.de>
Cc: Matthias Fuchs <matthias.fuchs@esd-electronics.com>,
Cc: Stefan Roese <sr@denx.de>,
Cc: Heiko Schocher <hs@denx.de>
Cc: Sergey Kubushyn <ksi@koi8.net>
14 years agoMake getenv() work before relocation.
Wolfgang Denk [Sat, 24 Jul 2010 18:22:02 +0000 (20:22 +0200)]
Make getenv() work before relocation.

So far, getenv() would work before relocation is most cases, even
though it was not intended to be used that way.  When switching to a
hash table based implementation, this would break a number of boards.

For convenience, we make getenv() check if it's running before
relocation and, if so, use getenv_f() internally.

Note that this is limited to simple cases, as we use a small static
buffer (32 bytes) in the global data for this purpose.

For this reason, it is also not a good idea to convert all current
uses of getenv_f() into getenv() - some of the existing use cases need
to be able to deal with longer variable values, so getenv_f() is still
needed and recommended for use before relocation.

Signed-off-by: Wolfgang Denk <wd@denx.de>
14 years agoRemove support for CONFIG_HAS_UID and "forceenv" command
Wolfgang Denk [Sun, 20 Jun 2010 14:03:45 +0000 (16:03 +0200)]
Remove support for CONFIG_HAS_UID and "forceenv" command

This (undocumented) concept was only in use for the MVSMR and
davinci_schmoogie Sergey Kubushyn <ksi@koi8.net> boards.
Drop it for now.  If really needed, it should be reimplemented
later in the context of the new environment command set.

Signed-off-by: Wolfgang Denk <wd@denx.de>
Cc: Andre Schwarz <andre.schwarz@matrix-vision.de>
Cc: Sergey Kubushyn <ksi@koi8.net>
Acked-by: Sergey Kubushyn <ksi@koi8.net>
14 years agoAdd hash table support as base for new environment code
Wolfgang Denk [Sun, 20 Jun 2010 11:17:12 +0000 (13:17 +0200)]
Add hash table support as base for new environment code

This implementation is based on code from uClibc-0.9.30.3 but was
modified and extended for use within U-Boot.

Major modifications and extensions:

* hsearch() [modified / extended]:
  - While the standard version does not make any assumptions about
    the type of the stored data objects at all, this implementation
    works with NUL terminated strings only.
  - Instead of storing just pointers to the original objects, we
    create local copies so the caller does not need to care about the
    data any more.
  - The standard implementation does not provide a way to update an
    existing entry.  This version will create a new entry or update an
    existing one when both "action == ENTER" and "item.data != NULL".
  - hsearch_r(): Instead of returning 1 on success, we return the
    index into the internal hash table, which is also guaranteed to be
    positive.  This allows us direct access to the found hash table
    slot for example for functions like hdelete().
* hdelete() [added]:
  - The standard implementation of hsearch(3) does not provide any way
    to delete any entries from the hash table.  We extend the code to
    do that.
* hexport() [added]:
  - Export the data stored in the hash table in linearized form:
    Entries are exported as "name=value" strings, separated by an
    arbitrary (non-NUL, of course) separator character. This allows to
    use this function both when formatting the U-Boot environment for
    external storage (using '\0' as separator), but also when using it
    for the "printenv" command to print all variables, simply by using
    as '\n" as separator. This can also be used for new features like
    exporting the environment data as text file, including the option
    for later re-import.
  - The entries in the result list will be sorted by ascending key
    values.
* himport() [added]:
  - Import linearized data into hash table.  This is the inverse
    function to hexport(): it takes a linear list of "name=value"
    pairs and creates hash table entries from it.
  - Entries without "value", i. e. consisting of only "name" or
    "name=", will cause this entry to be deleted from the hash table.
  - The "flag" argument can be used to control the behaviour: when
    the H_NOCLEAR bit is set, then an existing hash table will kept,
    i. e. new data will be added to an existing hash table;
    otherwise, old data will be discarded and a new hash table will
    be created.
  - The separator character for the "name=value" pairs can be
    selected, so we both support importing from externally stored
    environment data (separated by NUL characters) and from plain text
    files (entries separated by newline characters).
  - To allow for nicely formatted text input, leading white space
    (sequences of SPACE and TAB chars) is ignored, and entries
    starting (after removal of any leading white space) with a '#'
    character are considered comments and ignored.
  - NOTE: this means that a variable name cannot start with a '#'
    character.
  - When using a non-NUL separator character, backslash is used as
    escape character in the value part, allowing for example fo
    multi-line values.
  - In theory, arbitrary separator characters can be used, but only
    '\0' and '\n' have really been tested.

Signed-off-by: Wolfgang Denk <wd@denx.de>
14 years agoAdd qsort - add support for sorting data arrays
Wolfgang Denk [Sat, 12 Jun 2010 23:45:10 +0000 (01:45 +0200)]
Add qsort - add support for sorting data arrays

Code adapted from uClibc-0.9.30.3

Signed-off-by: Wolfgang Denk <wd@denx.de>
14 years agoAdd basic errno support.
Wolfgang Denk [Fri, 11 Jun 2010 22:19:46 +0000 (00:19 +0200)]
Add basic errno support.

Needed for hash table support; probably useful in a lot of other
places as well.

Signed-off-by: Wolfgang Denk <wd@denx.de>
14 years ago4xx: adjust TEXT_BASE to increase U-Boot image size
Wolfgang Denk [Sun, 25 Jul 2010 21:08:00 +0000 (23:08 +0200)]
4xx: adjust TEXT_BASE to increase U-Boot image size

On some boards (canyonlands, luan, sequoia) we need more room for the
U-Boot image to allow for new features like the new environment code.
Shift TEXT_BASE as needed.

Signed-off-by: Wolfgang Denk <wd@denx.de>
Cc: Stefan Roese <sr@denx.de>
Acked-by: Stefan Roese <sr@denx.de>
14 years agoIceCube.h: update configuration
Wolfgang Denk [Thu, 1 Jul 2010 07:44:39 +0000 (09:44 +0200)]
IceCube.h: update configuration

Increase malloc size,
enable command line editing and history,
enable hush shell.

Signed-off-by: Wolfgang Denk <wd@denx.de>
14 years agoCleanup use of CONFIG_SYS_SRAM_BASE and CONFIG_SYS_SRAM_SIZE
Wolfgang Denk [Wed, 11 Aug 2010 07:38:31 +0000 (09:38 +0200)]
Cleanup use of CONFIG_SYS_SRAM_BASE and CONFIG_SYS_SRAM_SIZE

Traditionally many boards used local definitions for SRAM base address
and size (like SRAM_BASE, SRAM_LEN and/or SRAM_SIZE), while the (now)
"official" names are CONFIG_SYS_SRAM_BASE and CONFIG_SYS_SRAM_SIZE.

The corresponding code in arch/powerpc/lib/board.c was board specific,
and has never actually been maintained well. Replace this by feature-
specific code and adapt the boards that actually use this.

NOTE: there is still a ton of boards using the old #defines, which
therefor contain incorrect values in bi_sramstart and bi_sramsize.

All respective board maintainers are requested to clean up their
respective configurations.  Thanks.

Signed-off-by: Wolfgang Denk <wd@denx.de>
Cc: Josef Wagner <Wagner@Microsys.de>
Cc: Stefan Roese <sr@denx.de>
Cc: Heiko Schocher <hs@denx.de>
Cc: Wolfgang Denk <wd@denx.de>
14 years ago4xx: add missing CONFIG_SYS_SRAM_SIZE definition
Wolfgang Denk [Fri, 10 Sep 2010 21:04:05 +0000 (23:04 +0200)]
4xx: add missing CONFIG_SYS_SRAM_SIZE definition

A number of boards define CONFIG_SYS_SRAM_BASE but fail to define
CONFIG_SYS_SRAM_SIZE which is needed when cleaning up the code that
prints this information with the bdinfo command.

Add the missing deinitions.

Signed-off-by: Wolfgang Denk <wd@denx.de>
Cc: Stefan Roese <sr@denx.de>
Acked-by: Stefan Roese <sr@denx.de>
14 years agoPrepare v2010.09-rc2 v2010.09-rc2
Wolfgang Denk [Sun, 19 Sep 2010 15:47:52 +0000 (17:47 +0200)]
Prepare v2010.09-rc2

Signed-off-by: Wolfgang Denk <wd@denx.de>
14 years agoSave environment data to mmc.
Terry Lv [Mon, 17 May 2010 02:57:01 +0000 (10:57 +0800)]
Save environment data to mmc.

This patch is to save environment data to mmc card.
It uses interfaces defined in generic mmc.

Signed-off-by: Terry Lv <r65388@freescale.com>
Acked-by: Stefano Babic <sbabic@denx.de>
14 years agosocrates: adjust TEXT_BASE to increase U-Boot image size
Wolfgang Denk [Fri, 10 Sep 2010 21:47:00 +0000 (23:47 +0200)]
socrates: adjust TEXT_BASE to increase U-Boot image size

We need more room for the U-Boot image.
Shift TEXT_BASE as needed.

Signed-off-by: Wolfgang Denk <wd@denx.de>
14 years agommc: fix compiler warnings
Wolfgang Denk [Sat, 18 Sep 2010 23:03:20 +0000 (01:03 +0200)]
mmc: fix compiler warnings

Commit d2bf29e3 caused a number of compiler warnings:

mmc.c: In function 'mmc_bwrite':
mmc.c:97: warning: format '%x' expects type 'unsigned int', but argument 2 has type 'long unsigned int'
mmc.c:97: warning: format '%x' expects type 'unsigned int', but argument 3 has type 'lbaint_t'
mmc.c: In function 'mmc_bread':
mmc.c:229: warning: format '%x' expects type 'unsigned int', but argument 2 has type 'long unsigned int'
mmc.c:229: warning: format '%x' expects type 'unsigned int', but argument 3 has type 'lbaint_t'

Fix these.

Signed-off-by: Wolfgang Denk <wd@denx.de>
Cc: Lei Wen <leiwen@marvell.com>
14 years agotools/env: fail on invalid options
Daniel Hobi [Thu, 16 Sep 2010 12:36:09 +0000 (14:36 +0200)]
tools/env: fail on invalid options

Signed-off-by: Daniel Hobi <daniel.hobi@schmid-telecom.ch>
14 years agotools/env: allow option "-n" for fw_printenv
Daniel Hobi [Wed, 15 Sep 2010 17:46:26 +0000 (19:46 +0200)]
tools/env: allow option "-n" for fw_printenv

In commit bd7b26f8 (Tools: set multiple variable with fw_setenv utility),
the option parsing was changed to getopt_long(3), but option "-n"
of fw_printenv was not included.

This leads to an error message "invalid option -- 'n'" on stderr,
although the output on stdout is correct.

Signed-off-by: Daniel Hobi <daniel.hobi@schmid-telecom.ch>
14 years agoARM: Update ARM mach-types
Thomas Weber [Tue, 14 Sep 2010 14:42:54 +0000 (16:42 +0200)]
ARM: Update ARM mach-types

This patch updates the mach-types.h based on the latest linux kernel

Signed-off-by: Thomas Weber <weber@corscience.de>
14 years agommc: print out partition table
Lei Wen [Mon, 13 Sep 2010 14:07:28 +0000 (22:07 +0800)]
mmc: print out partition table

Signed-off-by: Lei Wen <leiwen@marvell.com>
14 years agommc: add boundary check for mmc operation
Lei Wen [Mon, 13 Sep 2010 14:07:27 +0000 (22:07 +0800)]
mmc: add boundary check for mmc operation

Signed-off-by: Lei Wen <leiwen@marvell.com>
14 years agoMerge branch 'master' of git://git.denx.de/u-boot-nand-flash
Wolfgang Denk [Wed, 15 Sep 2010 20:06:32 +0000 (22:06 +0200)]
Merge branch 'master' of git://git.denx.de/u-boot-nand-flash

14 years agoMerge branch 'master' of git://git.denx.de/u-boot-x86
Wolfgang Denk [Wed, 15 Sep 2010 20:04:42 +0000 (22:04 +0200)]
Merge branch 'master' of git://git.denx.de/u-boot-x86

14 years agonand/davinci: make sure ECC calculation has really started
Wolfram Sang [Thu, 9 Sep 2010 11:54:41 +0000 (13:54 +0200)]
nand/davinci: make sure ECC calculation has really started

Due to a register glitch (result code <4 might show up right after the
start-calculation-bit was set), make sure the ECC has really started.

See 1c3275b656045aff9a75bb2c9f3251af1043ebb3 in the kernel.

Signed-off-by: Wolfram Sang <w.sang@pengutronix.de>
Cc: Sandeep Paulraj <s-paulraj@ti.com>
14 years agodisplay_buffer: fix misaligned buffer
Reinhard Meyer [Wed, 8 Sep 2010 10:25:40 +0000 (12:25 +0200)]
display_buffer: fix misaligned buffer

use a union to cause necessary alignment per architecture

Signed-off-by: Reinhard Meyer <u-boot@emk-elektronik.de>
14 years agox86: Remove Unmaintained Boards
Graeme Russ [Sun, 22 Aug 2010 06:26:00 +0000 (16:26 +1000)]
x86: Remove Unmaintained Boards

The SC520 CDP boards originally implemented by Daniel Engström are now
very broken. Attempts to contact Daniel via the email address on the
copyright notice have failed. Remove these boards from mainline

14 years agox86: Fix x86 Cold Boot
Graeme Russ [Sun, 22 Aug 2010 06:25:59 +0000 (16:25 +1000)]
x86: Fix x86 Cold Boot

Commit 077e1958ca4afe12d88043b123ded058c51b89f7 broke the ability of the
x86 port to boot from a cold-reset by removing the initial IDT. Re-
instate the initial IDT to allow cold-booting of x86 boards

14 years agox86: Add do_bdinfo()
Graeme Russ [Sun, 22 Aug 2010 06:25:58 +0000 (16:25 +1000)]
x86: Add do_bdinfo()

x86 failed to compile with a message "a case for this architecture does
not exist!" - Add do_bdinfo() for this arch

14 years agox86: Fix do_go_exec() - const argv[]
Graeme Russ [Sun, 22 Aug 2010 06:25:58 +0000 (16:25 +1000)]
x86: Fix do_go_exec() - const argv[]

Commit 54841ab50c20d6fa6c9cc3eb826989da3a22d934 made the argv parameter
to do_go_exec() const but did not allow for the fact that argv[-1] is
set to point to the global data structure and relies on argv being non-
const.

With this patch, do_go_exec() creates a new copy of the argv array with
an extra element to store global data pointer rather than simply
clobbering an arbitrary memory location.

14 years agousb: musb: set target address for non-multipoint devices
Bryan Wu [Mon, 9 Aug 2010 22:41:12 +0000 (18:41 -0400)]
usb: musb: set target address for non-multipoint devices

Signed-off-by: Bryan Wu <bryan.wu@analog.com>
Signed-off-by: Cliff Cai <cliff.cai@analog.com>
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
14 years agousb: musb: setup TXCOUNT for Blackfin musb
Bryan Wu [Mon, 9 Aug 2010 18:57:41 +0000 (14:57 -0400)]
usb: musb: setup TXCOUNT for Blackfin musb

The Blackfin implementation of musb has a TXCOUNT register that needs to
be programmed when transmitting data.

Signed-off-by: Bryan Wu <bryan.wu@analog.com>
Signed-off-by: Cliff Cai <cliff.cai@analog.com>
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
14 years agoPrepare v2010.09-rc1 v2010.09-rc1
Wolfgang Denk [Thu, 9 Sep 2010 22:16:19 +0000 (00:16 +0200)]
Prepare v2010.09-rc1

Coding style cleanup.

Signed-off-by: Wolfgang Denk <wd@denx.de>
14 years agoMerge branch 'master' of git://git.denx.de/u-boot-arm
Wolfgang Denk [Thu, 9 Sep 2010 19:39:46 +0000 (21:39 +0200)]
Merge branch 'master' of git://git.denx.de/u-boot-arm

14 years agoMX51: Update responsible for mx51evk
Stefano Babic [Fri, 13 Aug 2010 14:47:17 +0000 (16:47 +0200)]
MX51: Update responsible for mx51evk

Signed-off-by: Stefano Babic <sbabic@denx.de>
14 years agoMerge branch 'master' of git://git.denx.de/u-boot-ti
Wolfgang Denk [Thu, 9 Sep 2010 17:55:02 +0000 (19:55 +0200)]
Merge branch 'master' of git://git.denx.de/u-boot-ti

14 years agobedbug_860.c, bedbug_603e.c: Fix return type to silence compile warnings.
Wolfgang Denk [Wed, 18 Aug 2010 22:27:33 +0000 (00:27 +0200)]
bedbug_860.c, bedbug_603e.c: Fix return type to silence compile warnings.

commit 47e26b1b "cmd_usage(): simplify return code handling" caused
the following compile warnings:

bedbug_860.c: In function 'bedbug860_do_break':
bedbug_860.c:73: warning: 'return' with a value, in function returning void
bedbug_860.c:121: warning: 'return' with a value, in function returning void

Fix the return type.

Actually these files could need some cleanup - commands should
return proper error codes, and there are coding style issues.
=> To be fixed later.

Signed-off-by: Wolfgang Denk <wd@denx.de>
14 years agoARMV7: Fix pad mux for Panda LEDs
Ricardo Salveti de Araujo [Tue, 7 Sep 2010 23:17:52 +0000 (16:17 -0700)]
ARMV7: Fix pad mux for Panda LEDs

Correctly set PAD1_FREF_CLK4_REQ and PAD0_FREF_CLK4_OUT to enable and
activate both LEDs while setting pad mux.

Since this increases the line length, this patch also adjusts the white
space in this section of code to allign the pad mux signal description
comments.

Signed-off-by: Ricardo Salveti de Araujo <ricardo.salveti@canonical.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Sandeep Paulraj <s-paulraj@ti.com>
14 years agoARMV7: OMAP: Overo: Autodetect presence/absence of transceiver on mmc2
Steve Sakoman [Tue, 24 Aug 2010 17:37:29 +0000 (10:37 -0700)]
ARMV7: OMAP: Overo: Autodetect presence/absence of transceiver on mmc2

An upcoming version of Overo uses a Wifi/BT module with 1.8V signaling,
eliminating the need for an external transceiver to handle the level
shifting.  This patch detects whether an external transceiver is present
and adjusts the pinmux settings as appropriate.

Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Sandeep Paulraj <s-paulraj@ti.com>
14 years agoARMV7: OMAP3: Add support for Beagle xM
Steve Sakoman [Fri, 20 Aug 2010 03:56:11 +0000 (20:56 -0700)]
ARMV7: OMAP3: Add support for Beagle xM

This patch adds support for the Beagle xM.  It uses the board ID
GPIO bits to recognize this revision and perform appropriate setup.

Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Sandeep Paulraj <s-paulraj@ti.com>
14 years agoARMV7: OMAP3: Add CONFIG_SYS_NAND_QUIET_TEST to Beagle and Overo configs
Steve Sakoman [Fri, 20 Aug 2010 03:52:35 +0000 (20:52 -0700)]
ARMV7: OMAP3: Add CONFIG_SYS_NAND_QUIET_TEST to Beagle and Overo configs

Future versions of these boards have options for POP memory with no NAND.
This option prevents display of error messages when no NAND is detected.

Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Sandeep Paulraj <s-paulraj@ti.com>
14 years agomtd: nand: supress 'unknown NAND' warning if no nand is found
Steve Sakoman [Fri, 20 Aug 2010 03:14:01 +0000 (20:14 -0700)]
mtd: nand: supress 'unknown NAND' warning if no nand is found

This printk was added recently and results in ugly output on systems
with no NAND:

NAND:  nand_get_flash_type: unknown NAND device: Manufacturer ID: 0x00, Chip ID: 0x00 0 MiB

instead of:

NAND:  0 MiB

Signed-off-by: Steve Sakoman <steve@sakoman.com>
Acked-by: Scott Wood <scottwood@freescale.com>
Signed-off-by: Sandeep Paulraj <s-paulraj@ti.com>
14 years agoARMV7: OMAP3: Remove erroneous hard coded sdram setup for 128MB/bank
Steve Sakoman [Fri, 20 Aug 2010 03:09:57 +0000 (20:09 -0700)]
ARMV7: OMAP3: Remove erroneous hard coded sdram setup for 128MB/bank

Upcoming Beagle and Overo revisions use POP memory with 256MB or 512MB
per bank.  This patches uses the SDRC settings from x-load or the config
header to set up timing properly.

Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Sandeep Paulraj <s-paulraj@ti.com>
14 years agoARMV7: OMAP3: Fix broken reset command on OMAP36XX/37XX and OMAP4
Steve Sakoman [Wed, 25 Aug 2010 20:22:44 +0000 (13:22 -0700)]
ARMV7: OMAP3: Fix broken reset command on OMAP36XX/37XX and OMAP4

Using the reset command on OMAP36XX/37XX and OMAP4 caused a hang. This
patch uses the reset bit appropriate for each CPU architecture.

Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Sandeep Paulraj <s-paulraj@ti.com>
14 years agoARMV7: OMAP3: Apply Cortex-A8 errata workarounds only on affected revisions
Mans Rullgard [Wed, 14 Apr 2010 15:10:28 +0000 (16:10 +0100)]
ARMV7: OMAP3: Apply Cortex-A8 errata workarounds only on affected revisions

The workarounds for errata 621766 and 725233 should only be applied
on affected Cortex-A8 revisions.  Recent chips use r3px cores where
these have been fixed.

Signed-off-by: Mans Rullgard <mans@mansr.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Sandeep Paulraj <s-paulraj@ti.com>
14 years agoARMV7: OMAP3: Convert setup_auxcr() to pure asm
Mans Rullgard [Wed, 14 Apr 2010 14:49:57 +0000 (15:49 +0100)]
ARMV7: OMAP3: Convert setup_auxcr() to pure asm

This function consists entirely of inline asm statements, so writing
it directly in a .S file is simpler. Additionally, the inline asm is
not safe as is, since registers are not guaranteed to be preserved
between asm() statements.

Signed-off-by: Mans Rullgard <mans@mansr.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Sandeep Paulraj <s-paulraj@ti.com>
14 years agoARMV7: OMAP3: Fix and clean up L2 cache enable/disable functions
Mans Rullgard [Wed, 14 Apr 2010 10:08:00 +0000 (11:08 +0100)]
ARMV7: OMAP3: Fix and clean up L2 cache enable/disable functions

On OMAP34xx ES1.0, the L2 enable bit can only be set in secure mode,
so an SMC call to the ROM monitor is required.  On later versions,
and on newer devices, this bit is banked and we can set it directly.

The code checked only the ES revision of the chip, and hence incorrectly
used the ROM call on ES1.0 versions of other devices.

This patch adds a check for chip family as well as revision, and also
removes some code duplication between the enable and disable functions.

Signed-off-by: Mans Rullgard <mans@mansr.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Sandeep Paulraj <s-paulraj@ti.com>
14 years agoARMV7: OMAP3: Add clock setup for OMAP36XX/37XX
Steve Sakoman [Wed, 18 Aug 2010 14:34:09 +0000 (07:34 -0700)]
ARMV7: OMAP3: Add clock setup for OMAP36XX/37XX

This patch configures clocks properly when a 36XX/37XX
processor is detected.

Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Sandeep Paulraj <s-paulraj@ti.com>
14 years agoARMV7: OMAP3: Update CPU type detection for AM35XX/OMAP36XX/37XX
Steve Sakoman [Tue, 17 Aug 2010 21:39:34 +0000 (14:39 -0700)]
ARMV7: OMAP3: Update CPU type detection for AM35XX/OMAP36XX/37XX

TI has added new processors to the OMAP3 family.  This patch enhances
the code in sysinfo.c to detect which family member is present.

Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Sandeep Paulraj <s-paulraj@ti.com>
14 years agoARMV7: OMAP: Configure Overo's second network chip
Steve Sakoman [Fri, 13 Aug 2010 04:07:02 +0000 (21:07 -0700)]
ARMV7: OMAP: Configure Overo's second network chip

Confiures GPMC timings for both chips and also configures pinmux
for GPIO_65, which is used as the interrupt signal for the second chip

Signed-off-by: Scott Ellis <scott@jumpnowtek.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Sandeep Paulraj <s-paulraj@ti.com>
14 years agoARMV7: OMAP: Add detection and support for Beagle C4 revision
Steve Sakoman [Thu, 12 Aug 2010 22:17:37 +0000 (15:17 -0700)]
ARMV7: OMAP: Add detection and support for Beagle C4 revision

This patch enhances the revision detection function and adds
support for the C4 revision.  The board revision is printed
and approriate revision specific setup is done automatically.

Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Sandeep Paulraj <s-paulraj@ti.com>
14 years agoARMV7: OMAP: Add board revision detection for Overo
Steve Sakoman [Thu, 12 Aug 2010 22:13:02 +0000 (15:13 -0700)]
ARMV7: OMAP: Add board revision detection for Overo

The latest Overo COM modules encode their revision number on
GPIOs 115, 113, and 112.  All boards to date have no pullups on these pins
and hence appear as revision 0.

This patch reads and prints the revision information.

Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Sandeep Paulraj <s-paulraj@ti.com>
14 years agoARMV7: OMAP: Add mpurate boot arg for Overo and Beagle
Steve Sakoman [Wed, 3 Feb 2010 22:39:14 +0000 (14:39 -0800)]
ARMV7: OMAP: Add mpurate boot arg for Overo and Beagle

Allows one to set the processor clock rate via "setenv mpurate 720" for example

Default is set to a "safe" 500 Mhz.

Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Sandeep Paulraj <s-paulraj@ti.com>
14 years agoARMV7: OMAP: Enable input driver on Overo's MMC1_CLK and MMC3_CLK pinmux setup
Steve Sakoman [Tue, 16 Feb 2010 18:00:45 +0000 (10:00 -0800)]
ARMV7: OMAP: Enable input driver on Overo's MMC1_CLK and MMC3_CLK pinmux setup

This patch modifies the pinmux setup for MMC1_CLK and MMC3_CLK to enable
the input driver.  MMC2_CLK was already properly configured.

Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Sandeep Paulraj <s-paulraj@ti.com>
14 years agoARMV7: OMAP: add convenience function to set TWL4030 regulator voltages
Steve Sakoman [Tue, 10 Aug 2010 19:58:39 +0000 (12:58 -0700)]
ARMV7: OMAP: add convenience function to set TWL4030 regulator voltages

This patch adds a function to allow one to easily set the target
voltage for the TWL4030 regulators.  It also modifies the existing
code to use this new function.  Applicable definitions are moved
out of the driver file and into the header file so that they are
generally accessible

Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Sandeep Paulraj <s-paulraj@ti.com>