commit 2d78074d2e806edc380c1464eb9e5df335ece65e
Author: Stefan Roese <sr@denx.de>
Date:	Fri Jun 22 17:32:28 2007 +0200

    ppc7xx: Update CPCI750 board

    This small CPCI750 update extends the board specific command
    "show_config" to display the Marvell strapping registers and
    extends the PCI IDE controller.

    Signed-off-by: Reinhard Arlt <reinhard.arlt@esd-electronics.com>
    Signed-off-by: Stefan Roese <sr@denx.de>

commit 30b52df9e906bf0e465916c2c6bb5192b438e0b8
Author: Jon Loeliger <jdl@freescale.com>
Date:	Wed Aug 15 11:55:35 2007 -0500

    86xx: Fix lingering CFG_CMD_* references in sbc8641d.h

    Remove a leftover in net/tftp.c while we're at it.

    Signed-off-by: Jon Loeliger <jdl@freescale.com>

commit 4ce917742b1e48faa9bf9a9757545e56fb4cfe44
Author: Jon Loeliger <jdl@freescale.com>
Date:	Wed Aug 15 12:20:40 2007 -0500

    Move the MPC8641HPCN board under board/freescale.

    Minor path corrections needed to ensure buildability.

    Signed-off-by: Jon Loeliger <jdl@freescale.com>

commit 8662577fe36fdb6a44b55b998d9daac6392a736a
Author: Jon Loeliger <jdl@freescale.com>
Date:	Wed Aug 15 11:46:22 2007 -0500

    86xx: Fix lingering CFG_CMD_* references in sbc8641d.h

    Remove a leftover in net/tftp.c while we're at it.

    Signed-off-by: Jon Loeliger <jdl@freescale.com>

commit 210f463c71917b7a4495c2103c228b9c179ae64d
Author: Jerry Van Baren <gvb.uboot@gmail.com>
Date:	Wed Aug 15 11:13:15 2007 -0400

    Fix where the #ifdef CFG_BOOTMAPSZ is placed.

    Commit 073e1b509980cefe6f53c2d7fbbcd135df1e3924 "Fix initrd/dtb
    interaction" put the new code outside of the #if defined(CONFIG_OF_LIBFDT)
    when it should have gone inside of the conditional.  As a result, it
    broke non-LIBFDT board builds.

    Also added a missing "not." to the comment.

    Signed-off-by: Gerald Van Baren <vanbaren@cideas.com>

commit 594e79838ce5078a90d0c27abb2b2d61d5f8e8a7
Author: Ed Swarthout <Ed.Swarthout@freescale.com>
Date:	Tue Aug 14 14:06:45 2007 -0500

    Fix malloc size error in ahci_init_one.

    Typically this causes scsi init to corrupt the
    devlist and break the coninfo command.
    Fix a compiler size warning.

    Signed-off-by: Jason Jin <jason.jin@freescale.com>
    Signed-off-by: Ed Swarthout <Ed.Swarthout@freescale.com>
    Acked-by: Andy Fleming <afleming@freescale.com>

commit b361acd64fd2525c081b9b288b0804efe209c0e9
Author: ksi@koi8.net <ksi@koi8.net>
Date:	Tue Aug 14 10:02:16 2007 -0700

    TI DaVinci - fix unsupported %hhx format

    Signed-off-by: Sergey Kubushyn <ksi@koi8.net>

commit f01dbb5424a81453c81190dd30e945891466f621
Author: Wolfgang Denk <wd@denx.de>
Date:	Tue Aug 14 18:42:36 2007 +0200

    Coding style cleanup. Update CHANGELOG.

    Signed-off-by: Wolfgang Denk <wd@denx.de>

commit 073e1b509980cefe6f53c2d7fbbcd135df1e3924
Author: Andy Fleming <afleming@freescale.com>
Date:	Tue Aug 14 10:32:59 2007 -0500

    Fix initrd/dtb interaction

    The original code would wrongly relocate the blob to be right before
    the initrd if it existed.  The blob *must* be within CFG_BOOTMAPSZ,
    if it is defined.  So we make two changes:

    1) flag the blob for relocation whenever its address is above BOOTMAPSZ

    2) If the blob is being relocated, relocate it before kbd, not initrd

    Signed-off-by: Andy Fleming <afleming@freescale.com>

commit e54b970173769307a116bd34028b6d0c2eea2a4e
Author: Peter Pearse <peter.pearse@arm.com>
Date:	Tue Aug 14 15:40:00 2007 +0100

    Supply spi interface in at45.c

commit 4ce846ec59f36b85d6644a769690ad3feb667575
Author: Stefan Roese <sr@denx.de>
Date:	Tue Aug 14 15:12:01 2007 +0200

    POST: Fix merge problem

    Signed-off-by: Stefan Roese <sr@denx.de>

commit 429d9571f60631ae8a2fe12b11be4c75b0c2b37c
Author: Stefan Roese <sr@denx.de>
Date:	Tue Aug 14 15:03:17 2007 +0200

    Coding style cleanup

    Signed-off-by: Stefan Roese <sr@denx.de>

commit 779e975117a75e91fcebe226a63104dbfb924ab1
Author: Stefan Roese <sr@denx.de>
Date:	Tue Aug 14 14:44:41 2007 +0200

    ppc4xx: Add initial Zeus (PPC405EP) board support

    Signed-off-by: Stefan Roese <sr@denx.de>

commit c5a172a5fd636c12467429e3f7910e53773979c6
Author: Stefan Roese <sr@denx.de>
Date:	Tue Aug 14 14:41:55 2007 +0200

    POST: Add option for external ethernet loopback test

    When CFG_POST_ETHER_EXT_LOOPBACK is defined, the ethernet POST
    is not done using an internal loopback connection, but by assuming
    that an external loopback connector is plugged into the board.

    Signed-off-by: Stefan Roese <sr@denx.de>

commit eb2b4010ae426245172988804ee8d9193fb41038
Author: Stefan Roese <sr@denx.de>
Date:	Tue Aug 14 14:39:44 2007 +0200

    POST: Add ppc405 support to cache and UART POST

    Signed-off-by: Stefan Roese <sr@denx.de>

commit 0c42f36f15074bd9808a7dbd7ef611fad9bf537c
Author: Peter Pearse <peter.pearse@arm.com>
Date:	Tue Aug 14 10:46:32 2007 +0100

    Replace lost end of at45.c.

commit 65d7ada64557e76094b4fd3bad30a0f18f5fb2b2
Author: Peter Pearse <peter.pearse@arm.com>
Date:	Tue Aug 14 10:30:06 2007 +0100

    Update Makefiles for merged and split at45.c.

commit 3454cece2db57cb9eb7087995f7e73066a163f71
Author: Peter Pearse <peter.pearse@arm.com>
Date:	Tue Aug 14 10:21:06 2007 +0100

    Delete the merged files.

commit dcbfd2e5649f97aa04fbbc6ea2b008aa4486e225
Author: Peter Pearse <peter.pearse@arm.com>
Date:	Tue Aug 14 10:14:05 2007 +0100

    Add the files.

commit d4fc6012fd0a5c211b825691f44b06f8032c0551
Author: Peter Pearse <peter.pearse@arm.com>
Date:	Tue Aug 14 10:10:52 2007 +0100

    Add MACH_TYPE records for several AT91 boards.
    Merge to two at45.c files into a common file, split to at45.c and spi.c
    Fix spelling error in DM9161 PHY Support.
    Initialize at91rm9200 board (and set LED).
    Add PIO control for at91rm9200dk LEDs and Mux.
    Change dataflash partition boundaries to be compatible with Linux 2.6.

    Signed-off-by:	Peter Pearse <peter.pearse@arm.com>
    Signed-off-by:	Ulf Samuelsson <ulf@atmel.com>

commit 4ef35e53c693556c54b0c22d6f873de87bade253
Author: Wolfgang Denk <wd@denx.de>
Date:	Tue Aug 14 09:54:46 2007 +0200

    Coding style cleanup, update CHANGELOG

    Signed-off-by: Wolfgang Denk <wd@denx.de>

commit 85eb5caf6b906f7ec5b54814e8c7c74f55986bb7
Author: Wolfgang Denk <wd@denx.de>
Date:	Tue Aug 14 09:47:27 2007 +0200

    Coding style cleanup; rebuild CHANGELOG

commit 7f3f2bd2dc08e0b05e185662ca2e2d283757104a
Author: Randy Vinson <rvinson@linuxbox.(none)>
Date:	Tue Feb 27 19:42:22 2007 -0700

    85xxCDS: Add make targets for legacy systems.

    The PCI ID select values on the Arcadia main board differ depending
    on the version of the hardware. The standard configuration supports
    Rev 3.1. The legacy target supports Rev 2.x.

    Signed-off-by Randy Vinson <rvinson@mvista.com>

commit e41094c7e38177c755fbd9b182018069614f080d
Author: Andy Fleming <afleming@freescale.com>
Date:	Tue Aug 14 01:50:09 2007 -0500

    85xxCDS: Enable the VIA PCI-to-ISA bridge.

    Author: Randy Vinson <rvinson@linuxbox.(none)>

    Enable the PCI-to-ISA bridge in the VIA Southbridge located on the
    Arcadia main board.

    Signed-off-by: Randy Vinson <rvinson@mvista.com>
    Signed-off-by: York Sun <yorksun@freescale.com>

commit da9d4610d76e52c4d20a8f3d8433439a7fcf5b71
Author: Andy Fleming <afleming@freescale.com>
Date:	Tue Aug 14 00:14:25 2007 -0500

    Add support for UEC to 8568

    Signed-off-by: Haiying Wang <Haiying.Wang@freescale.com>
    Signed-off-by: Andy Fleming <afleming@freescale.com>

commit c59e4091ffe0148398b9e9ff14a019ea038b7432
Author: Haiying Wang <Haiying.Wang@freescale.com>
Date:	Tue Jun 19 14:18:34 2007 -0400

    Add PCI support for MPC8568MDS board

    This patch is against u-boot-mpc85xx.git of www.denx.com

    Signed-off-by: Haiying Wang <Haiying.Wang@freescale.com>
    Signed-off-by: Ebony Zhu <ebony.zhu@freescale.com>

commit d111d6382c99fdea08c2312eeeae8786945e189a
Author: Haiying Wang <Haiying.Wang@freescale.com>
Date:	Tue Jun 19 14:18:32 2007 -0400

    Empirically set cpo and clk_adjust for mpc85xx DDR2 support

    This patch is against u-boot-mpc85xx.git of www.denx.com

    Setting cpo to 0x9 for frequencies higher than 333MHz is verified on
    both MPC8548CDS board and MPC8568MDS board, especially for supporting
    533MHz DDR2.

    Setting clk_adjust to 0x6(3/4 late cycle) for MPC8568MDS board is for
    DDR2 on all current board versions especially ver 1.92 or later to bring
    up.

    Signed-off-by: Haiying Wang <Haiying.Wang@freescale.com>

commit 3db0bef59eab1155801618cef5c481e97553b597
Author: Kumar Gala <galak@kernel.crashing.org>
Date:	Tue Aug 7 18:07:27 2007 -0500

    Use an absolute address when jumping out of 4k boot page

    On e500 when we leave the 4k boot page we should use an absolute address since
    we don't know where the board code may want us to be really running at.

    Signed-off-by: Kumar Gala <galak@kernel.crashing.org>

commit 39980c610c9a4c381907c9e1d1b9c0e1c0dca57a
Author: Andy Fleming <afleming@freescale.com>
Date:	Mon Aug 13 14:49:59 2007 -0500

    MPC85xx BA bits not set for 3-bit bank address DIMM

    The current implementation does not set the number of bank address bits
    (BA) in the processor. The default assumes 2 logical bank bits. This
    works fine for a DIMM that uses devices with 4 internal banks (SPD
    byte17 = 0x4) but needs to be set appropriately for a DIMM that uses
    devices with 8 internal banks (SPD byte17 = 0x8).

    Signed-off-by: Greg Davis <DavisG@embeddedplanet.com>

commit 6c543597bb4b1ecf5d8589f7abb0f39929fb7fd1
Author: Andy Fleming <afleming@freescale.com>
Date:	Mon Aug 13 14:38:06 2007 -0500

    Fix minor 85xx warnings

    Some patches had inserted warnings into the build:
    * mpc8560ads declared data without using it
    * cpu_init declared ecm and immap without using it in all CONFIGs
    * MPC8548CDS.h had its default filenames changed so that they contained
      "\m" in the paths.  Made the defaults not Windows-specific (or
      anything-specific)

    Signed-off-by: Andy Fleming <afleming@freescale.com>

commit f2cff6b104f82b993bef6086ce0c97159bbe1add
Author: Ed Swarthout <Ed.Swarthout@freescale.com>
Date:	Fri Jul 27 01:50:52 2007 -0500

    8548cds PCIE support.

    Make the early L1 cache stack region guarded to prevent speculative
    fetches outside the locked range.

    Use _PHYS defines, not _MEM for cpu-side PCI memory mapped regions.
    init.S whitespace cleanup.

    Allow TEXT_BASE value to be specified on command line.  This allows it
    to be set to 0xfffc0000 which cuts the uboot binary in half.

    Clear and enable lbc and ecm errors.

    Update last_busno in device-tree for pci and pcie.

    Remove load of obsolete cpu/mpc85xx/pci.0

    Signed-off-by: Ed Swarthout <Ed.Swarthout@freescale.com>
    Acked-by: Andy Fleming <afleming@freescale.com>

commit 837f1ba05cfb248aba5ab8e1fb1bfeefa07d5962
Author: Ed Swarthout <Ed.Swarthout@freescale.com>
Date:	Fri Jul 27 01:50:51 2007 -0500

    8544ds PCIE support

    PCI1 LAW mapping should use CFG_PCI1_MEM_PHY and not _BASE address.

    Enable LBC and ECM errors and clear error registers.

    Add tftpflash env var to get uboot from tftp server and flash it.

    Add pci/pcie convenience env vars to display register space:
      "run pcie3regs" to see all pcie3 ccsr registers
      "run pcie3cfg" to see all cfg registers
    Whitespace cleanup and MPC8544DS.h

    Enable CONFIG_INTERRUPTS.

    Signed-off-by: Ed Swarthout <Ed.Swarthout@freescale.com>
    Acked-by: Andy Fleming <afleming@freescale.com>

commit 61a21e980a7b9188424d04f1c265fdc5c21c7e85
Author: Andy Fleming <afleming@freescale.com>
Date:	Tue Aug 14 01:34:21 2007 -0500

    85xx start.S cleanup and exception support

    From: Ed Swarthout <Ed.Swarthout@freescale.com>

    Support external interrupts from platform to eliminate system hangs.
    Define CONFIG_INTERRUPTS board configure option to enable.
    Enable ecm, ddr, lbc, and pci/pcie error interrupts in PIC.

    Remove extra cpu initialization redundant with hardware initialization.
    Whitespace cleanup.

    Define and use _START_OFFSET consistent with other processors using
    ppc_asm.tmpl

    Move additional code from .text to boot page to make room for
    exception vectors at start of image.

    Handle Machine Check, External and Critical exceptions.

    Fix e500 machine check error determination in traps.c

    TEXT_BASE can now be 0xfffc_0000 - which cuts binary image in half.

    Signed-off-by: Ed Swarthout <Ed.Swarthout@freescale.com>
    Acked-by: Andy Fleming <afleming@freescale.com>

commit 7bd30fc4a6475b41d6679ae3aafc9fa505260c47
Author: Andy Fleming <afleming@freescale.com>
Date:	Tue Aug 14 01:33:18 2007 -0500

    Add MPC8544DS README

    Signed-off-by: Andy Fleming <afleming@freescale.com>

commit 40c7f9b0de4e300370adfc704128fa0f79a143b6
Author: Ed Swarthout <Ed.Swarthout@freescale.com>
Date:	Fri Jul 27 01:50:48 2007 -0500

    85xx allow debugger to configure ddr.

    Only check for mpc8548 rev 1 when compiled for 8548.

    Signed-off-by: Ed Swarthout <Ed.Swarthout@freescale.com>
    Acked-by: Andy Fleming <afleming@freescale.com>

commit 29372ff38c5baab7d0e3a8c14fe11fa194a38704
Author: Ed Swarthout <Ed.Swarthout@freescale.com>
Date:	Fri Jul 27 01:50:47 2007 -0500

    mpc85xx L2 cache reporting and SRAM relocation option.

    Allow debugger to override flash cs0/cs1 settings to enable alternate
    boot regions

    Signed-off-by: Ed Swarthout <Ed.Swarthout@freescale.com>
    Acked-by: Andy Fleming <afleming@freescale.com>

commit 41f0f8fb1ab92f0cba7d329de90070f822f8299f
Author: Ed Swarthout <Ed.Swarthout@freescale.com>
Date:	Fri Jul 27 01:50:46 2007 -0500

    e500 needs ppc_asm.tmp MCK_EXCEPTION

    Always define MCK_EXCEPTION macro - so e500 can use it too.

    Signed-off-by: Ed Swarthout <Ed.Swarthout@freescale.com>
    Acked-by: Andy Fleming <afleming@freescale.com>

commit 53a5c424bf8655b7b4e2c305a441963259a26a81
Author: David Updegraff <dave@cray.com>
Date:	Mon Jun 11 10:41:07 2007 -0500

    multicast tftp: RFC2090

    Implemented IETF RFC2090, Multicast TFTP.  Initial implementation
    on Realtek RTL8139 and Freescale TSEC.

    Signed-off-by: David Updegraff <dave@cray.com>
    Signed-off-by: Ben Warren <bwarren@qstreams.com>

commit 5d110f0aa69f065ee386ec1840dfee1e8cc46bc1
Author: Wilson Callan <wcallan@savantav.com>
Date:	Sat Jul 28 10:56:13 2007 -0400

    New CONFIG_BOOTP_SERVERIP option

    Added CONFIG_BOOTP_SERVERIP to allow the tftp server to be different
    from the bootp server

    Signed-off-by: Wilson Callan <wcallan@savantav.com>
    Signed-off-by: Ben Warren <bwarren@qstreams.com>

commit 50cca8b976ec74069860208c36e64ce8f4d5e4c1
Author: Mike Rapoport <mike@compulab.co.il>
Date:	Sun Aug 12 08:48:27 2007 +0300

    Add ability to take MAC address from the environment to DM9000 driver

    Signed-off-by: Mike Rapoport <mike@compulab.co.il>
    Signed-off-by: Ben Warren <bwarren@qstreams.com>

commit be5d72d10d47609326226225181e301fb9a33b58
Author: Wolfgang Denk <wd@denx.de>
Date:	Mon Aug 13 21:57:53 2007 +0200

    Minor coding style cleanup. Update CHANGELOG.

    Signed-off-by: Wolfgang Denk <wd@denx.de>

commit cca34967cbd13ff6bd352be29e3f1cc88ab24c05
Author: Joe Hamman <joe.hamman@embeddedspecialties.com>
Date:	Sat Aug 11 06:54:58 2007 -0500

    Modify SBC8641D to use new Freescale PCI routines

    PCI-Express sockets 1 and 2 verified working with Intel Pro/1000 PT
    adapter.

    Signed-off-by: Joe Hamman <joe.hamman@embeddedspecialties.com>
    Signde-off-by: Jon Loeliger <jdl@freescale.com>

commit a08458303e7f9db67f296980036d3292c35cb45c
Author: Haavard Skinnemoen <hskinnemoen@atmel.com>
Date:	Fri Jun 29 18:38:51 2007 +0200

    atmel_mci: Fix data timeout value

    Calculate the data timeout based on values from the CSD instead of
    just using a hardcoded DTOR value. This is a backport of a similar fix
    in BSP 2.0, with one additional fix: the DTOCYC value is rounded up
    instead of down.

    Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>

commit 0ba8eed28b575626b17e0a7882f923b83e0d7584
Author: Haavard Skinnemoen <hskinnemoen@atmel.com>
Date:	Mon Aug 13 17:22:31 2007 +0200

    AVR32: Include <div64.h> instead of <asm/div64.h>

    include/asm-avr32/div64.h was recently moved to include/div64.h, but
    cpu/at32ap/interrupts.c wasn't properly updated (an earlier version of
    the patch was merged perhaps?)

    This patch updates cpu/at32ap/interrupts.c so that the avr32 port
    compiles again.

    Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>

commit f0d1246ed7cb5a88522244c596d7ae7e6f161283
Author: Haavard Skinnemoen <hskinnemoen@atmel.com>
Date:	Wed Jun 27 13:34:26 2007 +0200

    atmel_mci: Use 512 byte blocksize if possible

    Instead of always using the largest blocksize the card supports, check
    if it can support smaller block sizes and use 512 bytes if possible.
    Most cards do support this, and other parts of u-boot seem to have
    trouble with block sizes different from 512 bytes.

    Also enable underrun/overrun protection.

    Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>
    Acked-by: Hans-Christian Egtvedt <hcegtvedt@atmel.com>

commit 273db7e1bdd1937e32f1d4507321bb721ebd3118
Author: Stefan Roese <sr@denx.de>
Date:	Mon Aug 13 09:05:33 2007 +0200

    ppc4xx: Fix problem in PLL clock calculation

    This patch was originall provided by David Mitchell <dmitchell@amcc.com>
    and fixes a bug in the PLL clock calculation.

    Signed-off-by: Stefan Roese <sr@denx.de>

commit 9986bc3e40e899bea372a99a2bca4071bdf2e24b
Author: Wolfgang Denk <wd@denx.de>
Date:	Sun Aug 12 21:34:50 2007 +0200

    Update CHANGELOG

commit 77d19a8bf3b0b1e401cb9f23c81e2ef419705c1a
Author: Wolfgang Denk <wd@denx.de>
Date:	Sun Aug 12 21:34:34 2007 +0200

    Minor alignment of output, 2nd try.
    Also update CHANGELOG

    Signed-off-by: Wolfgang Denk <wd@denx.de>

commit 6b309f22a724fad8418e811751a0741b893419cf
Author: Wolfgang Denk <wd@denx.de>
Date:	Sun Aug 12 20:35:49 2007 +0200

    Minor alignment of output

    Signed-off-by: Wolfgang Denk <wd@denx.de>

commit 6f6d7b9c8559e241e8d232621542b8b59699b07b
Author: Wolfgang Denk <wd@denx.de>
Date:	Sun Aug 12 18:28:18 2007 +0200

    Cleanup output on ADS5121 board

    Signed-off-by: Wolfgang Denk

commit a4d2636f2a859245ed3a401f26189da2dfda4ceb
Author: Wolfgang Denk <wd@denx.de>
Date:	Sun Aug 12 15:11:38 2007 +0200

    Adapt board configuration and fix kernel crash on MCC200 board.

    The update procedure was modified to turn off the USB subsystem
    before exit for MCC200 and TRAB. This is necessary as otherwise the
    USB controller continues to write periodically to system memory!

    MCC200-specific notes:
    - the patch disables the magic key check for MCC200
    - the patch contains the configuration changes made
      for the new revision of the board.

    Signed-off-by: Sergei Poselenov <sposelenov@emcraft.com>
    Signed-off-by: Wolfgang Denk <wd@denx.de>

commit e27f3a6efb9db5a533223b05c629ff4ac8d921bf
Author: Wolfgang Denk <wd@denx.de>
Date:	Sun Aug 12 14:47:54 2007 +0200

    Adjust default configuration of ADS5121 board.

    Signed-off-by: Wolfgang Denk <wd@denx.de>

commit afaac86fe2948ac84cd9a12bbed883b3c683e7d9
Author: Wolfgang Denk <wd@denx.de>
Date:	Sun Aug 12 14:27:39 2007 +0200

    Clean up some remaining CFG_CMD_ -> CONFIG_CMD_ issues.

    Signed-off-by: Wolfgang Denk <wd@denx.de>

commit 5fe6be6208dda852c3564e384bd78d75784dea3e
Author: Gerald Van Baren <vanbaren@cideas.com>
Date:	Tue Aug 7 21:14:22 2007 -0400

    Improve error print messages.

    Signed-off-by: Gerald Van Baren <vanbaren@cideas.com>

commit 99dffca3b7590a16a00bc475c860b67b2a3f1462
Author: Kim Phillips <kim.phillips@freescale.com>
Date:	Tue Jul 17 13:57:04 2007 -0500

    fdt: allow for builds that don't want env and bd_t nodes

    protect fdt_env and fdt_bd_t invocations, fix codingstyle while in the
    area.

    Signed-off-by: Kim Phillips <kim.phillips@freescale.com>

commit 91148bf7aeba142d6f348805db7625db7da64d6f
Author: Kim Phillips <kim.phillips@freescale.com>
Date:	Tue Jul 17 13:56:53 2007 -0500

    fdt: do board setup based on fdt address specified on bootm line

    The last fdt patch to bootm did board setup based on the address
    specified by a prior fdt address command invocation.  The bootm
    code, as its call to fdt_chosen does, should use the fdt specified
    by the user on the bootm command.  Note this restores full
    functionality for the 8360's existing default boot environment
    values, e.g. 'run nfsboot' (i.e. no having to 'fdt addr $fdtaddr'
    before booting a kernel).

    Signed-off-by: Kim Phillips <kim.phillips@freescale.com>

commit e125a2ffc209dd34794e326c7175658253beadf3
Author: Gerald Van Baren <vanbaren@cideas.com>
Date:	Tue Jul 10 20:40:39 2007 -0400

    Call ft_board_setup() from the bootm command.

    In the patch titled "Create new fdt boardsetup command..." I removed the
    call to ft_board_setup() from the routine fdt_chosen(), but I forgot
    to add a direct call back into cmd_bootm.c

    This fixes the oversight by adding the direct call to the bootm command.

    Signed-off-by: Gerald Van Baren <vanbaren@cideas.com>

commit fd61e55dd8cb52ce3ff91b3917af26e24b6b0845
Author: Gerald Van Baren <vanbaren@cideas.com>
Date:	Mon Jun 25 23:25:28 2007 -0400

    Create new fdt boardsetup command, fix bug parsing [] form of set values.

    Previously ft_board_setup() was called by fdt_chosen() which was not
    really correctly structured.  This splits ft_board_setup() out by creating
    a new fdt boardsetup command.

    Fix a bug when parsing fdt set command values which have the square
    bracket form [00 11 22 33] - the length was updated incorrectly in when
    parsing that form.

    Signed-off-by: Gerald Van Baren <vanbaren@cideas.com>

commit 6f35ded9e85493595e0eb66a82b502a95326d049
Author: Gerald Van Baren <vanbaren@cideas.com>
Date:	Mon Jun 25 20:55:58 2007 -0400

    Tighten up the error messages.

    Signed-off-by: Gerald Van Baren <vanbaren@cideas.com>

commit c45874b05aae897a6c29d1a97d4bb708fca2756c
Author: Gerald Van Baren <vanbaren@cideas.com>
Date:	Mon Jun 25 19:52:23 2007 -0400

    Asthetic improvements: error messages and line lengths.

    Tighten up the error messages, split overlength lines.

    Signed-off-by: Gerald Van Baren <vanbaren@cideas.com>

commit 35ec398f16e17df600edc1b38c1e9e62c15c9aa1
Author: Gerald Van Baren <vanbaren@cideas.com>
Date:	Fri May 25 22:08:57 2007 -0400

    Fix fdt_chosen() to call ft_board_setup(), clean up long lines.

    The fdt_chosen() function was adding/seting some properties ad-hoc
      improperly and duplicated (poorly) what was done in ft_board_setup()

    Clean up long lines (setting properties, printing errors).

    Signed-off-by: Gerald Van Baren <vanbaren@cideas.com>

commit 06e19a07701c968f15d72c083b5872a1a11c7b01
Author: Gerald Van Baren <vanbaren@cideas.com>
Date:	Mon May 21 23:27:16 2007 -0400

    For fdt_find_node_by_path(), handle the root path properly.

    Also removes the special case root path detection in cmd_fdt.c since it
    is no longer necessary.

    Signed-off-by: Gerald Van Baren <vanbaren@cideas.com>

commit 9675ee7208ab965d13ea8d8262d77ac4160ef549
Author: Gerald Van Baren <vanbaren@cideas.com>
Date:	Thu May 17 23:54:36 2007 -0400

    Add fdt_find_node_by_type() and fdt_find_compatible_node() to LIBFDT

    Signed-off-by: Wolfgang Grandegger <wg@grandegger.com>
    Acked-by: Gerald Van Baren <vanbaren@cideas.com>

commit 1a861169bc3758f9de3aead62b058736c6891246
Author: Gerald Van Baren <vanbaren@cideas.com>
Date:	Wed Jun 6 22:47:58 2007 -0400

    Replace fdt_node_offset() with fdt_find_node_by_path().

    The new name matches more closely the kernel's name, which is also
    a much better description.

    Signed-off-by: Wolfgang Grandegger <wg@grandegger.com>
    Acked-by: Gerald Van Baren <vanbaren@cideas.com>

commit addd8ce83078c25f0eca5f23adbdfc64ca50a243
Author: Gerald Van Baren <vanbaren@cideas.com>
Date:	Wed May 16 22:39:59 2007 -0400

    Fix cmd_fdt line lengths, refactor code.

    Break lines that were greater than 80 characters in length.
    Move the fdt print and property parsing code to separate static functions
      to reduce coding clutter in the fdt_cmd handling body.

    Signed-off-by: Gerald Van Baren <vanbaren@cideas.com>

commit 25114033ab21788810c48ba4df103b649da1223b
Author: Gerald Van Baren <vanbaren@cideas.com>
Date:	Sat May 12 09:47:25 2007 -0400

    FDT command improvements.

    Fix "fdt set" so that it will create a non-existing property.
    Add "fdt mknode" to create nodes.

    Signed-off-by: Gerald Van Baren <vanbaren@cideas.com>

commit 38eb508e8e811e2e57628f445de3a24a23c7d804
Author: Gerald Van Baren <vanbaren@cideas.com>
Date:	Sat May 12 09:45:46 2007 -0400

    Reorganize and fix problems (returns) in the bootm command.

    Do *NOT* return after the "point of no return" has been passed.
      If something goes wrong, the board must be reset after that point.
    Move the "Transferring control to Linux" debug message back to where it
      belongs: just before transferring control to linux.

    Signed-off-by: Gerald Van Baren <vanbaren@cideas.com>

commit 89c8757d8f213c47709bdc4efe0695263a6080a6
Author: Gerald Van Baren <vanbaren@cideas.com>
Date:	Tue May 8 21:27:35 2007 -0400

    Fix bugs in the CONFIG_OF_LIBFDT

    Stupid coding mistakes (identified by Timur Tabi, thanks).

    Signed-off-by: Gerald Van Baren <vanbaren@cideas.com>

commit 6be07cc1ca458278c85ecdbf1a0536cff4c701ec
Author: Gerald Van Baren <vanbaren@cideas.com>
Date:	Wed Apr 25 22:47:15 2007 -0400

    Improve fdt move length handling.

    Make the length parameter optional: if not specified, do the move using
    the current size unchanged.

    Signed-off-by: Gerald Van Baren <vanbaren@cideas.com>

commit bb930e76fea6cf89ca2d98e2f7c7a6043d79327d
Author: Gerald Van Baren <vanbaren@cideas.com>
Date:	Wed Apr 25 22:23:36 2007 -0400

    Minor code clean up.

    Declare the variable fdt properly as extern.
    Call the "set_fn" function pointer the "short way" without the full
      dereferencing syntax.

    Signed-off-by: Gerald Van Baren <vanbaren@cideas.com>

commit ba24e2ac3bdb5c489f3c787e7542b6474c4d65c6
Author: Gerald Van Baren <vanbaren@cideas.com>
Date:	Wed Apr 25 21:24:27 2007 -0400

    Improve error messages, more informative.

    Print more than the raw libfdt error message strings.  This is especially
    useful for cluing in the user when the bootm command aborts due to
    blob problems.

    Signed-off-by: Gerald Van Baren <vanbaren@cideas.com>

commit 8096b3b8f772c1894ddeda9dbceff6a8826473a4
Author: Gerald Van Baren <vanbaren@cideas.com>
Date:	Fri Apr 20 22:46:53 2007 -0400

    libfdt: Conditionally compile based on CONFIG_OF_LIBFDT

    This is the way u-boot reduces configured-out code.  At Wolfgang
    Grandegger and Wolfgang Denk's request, make libfdt conform.

    Signed-off-by: Gerald Van Baren <vanbaren@cideas.com>

commit 923efd286411ed052d9e074f59f8986d6081061c
Author: Bruce Adler <bruce.adler@ccpu.com>
Date:	Fri Aug 10 14:54:47 2007 -0700

    add image size and descriptors for Spartan 3E FPGA chips

    Spartan 3E image sizes taken from Table 1-4 in Xilinx UG332 (v1.1)

    Signed-off by: Bruce Adler <bruce.adler@ccpu.com>

commit fb56579ffe7ef3275b7036bb7b924e5a0d32bd70
Author: Kim Phillips <kim.phillips@freescale.com>
Date:	Fri Aug 10 15:34:48 2007 -0500

    make MAKEALL more immune to merge conflicts

    ..by placing board entries one per line, as suggested by jdl.

    Signed-off-by: Kim Phillips <kim.phillips@freescale.com>

commit 2628114ec564f969f34b5f7105fbd168cb8c9c3f
Author: Kim Phillips <kim.phillips@freescale.com>
Date:	Fri Aug 10 13:28:25 2007 -0500

    README: Remove outdated cpu type, board type, and NAME_config lists

    Signed-off-by: Kim Phillips <kim.phillips@freescale.com>

commit 49bb59912d21aacb507eb81fd21fb7af650c706c
Author: Dave Liu <r63238@freescale.com>
Date:	Fri Aug 10 15:48:59 2007 +0800

    mpc83xx: Suppress the warning 'burstlen'

    suppress the warning 'burstlen' of spd_sdram.

    Signed-off-by: Dave Liu <daveliu@freescale.com>

commit c646bba6465a45c60746d4cc1602cd06c1960f2d
Author: Joe Hamman <joe.hamman@embeddedspecialties.com>
Date:	Thu Aug 9 15:11:03 2007 -0500

    Add support for SBC8641D. Config files.

    Add support for Wind River's SBC8641D reference board.

    Signed-off by: Joe Hamman <joe.hamman@embeddedspecialties.com>
    Acked-by: Wolfgang Denk <wd@denx.de>
    Acked-by: Jon Loeliger <jdl@freescale.com>

commit 8ac273271d57321f90505c7a51cdb1ef2113b628
Author: Joe Hamman <joe.hamman@embeddedspecialties.com>
Date:	Thu Aug 9 15:10:53 2007 -0500

    Add support for SBC8641D.  Board files.

    Add support for Wind River's SBC8641D reference board.

    Signed-off by: Joe Hamman <joe.hamman@embeddedspecialties.com>
    Acked-by: Wolfgang Denk <wd@denx.de>
    Acked-by: Jon Loeliger <jdl@freescale.com>

commit c2c0ab4aff86622b837a48a0e560351f9afafb95
Author: Stefan Roese <sr@denx.de>
Date:	Fri Aug 10 20:34:58 2007 +0200

    Conding style cleanup

    Signed-off-by: Stefan Roese <sr@denx.de>

commit c74b2108e31fe09bd1c5d291c3cf360510d4f13e
Author: Sergey Kubushyn <ksi@koi8.net>
Date:	Fri Aug 10 20:26:18 2007 +0200

    [ARM] TI DaVinci support, hopefully final

    Add support for the following DaVinci boards:
    - DV_EVM
    - SCHMOOGIE
    - SONATA

    Changes:

    - Split into separate board directories
    - Removed changes to MTD_DEBUG (or whatever it's called)
    - New CONFIG_CMD party line followed
    - Some cosmetic fixes, cleanup etc.
    - Patches against the latest U-Boot tree as of now.
    - Fixed CONFIG_CMD_NET in net files.
    - Fixed CONFIG_CMD_EEPROM for schmoogie.
    - Made sure it compiles and works (forceenv() link problem) on SCHMOOGIE and
       DV_EVM. Can't check if it works on SONATA, don't have a board any more,
       but it at least compiles.

    Here is an excerpt from session log on SCHMOOGIE...

    U-Boot 1.2.0-g6c33c785-dirty (Aug  7 2007 - 13:07:17)

    DRAM:  128 MB
    NAND:  128 MiB
    In:    serial
    Out:   serial
    Err:   serial
    ARM Clock : 297MHz
    DDR Clock : 162MHz
    ETH PHY   : DP83848 @ 0x01
    U-Boot > iprobe
    Valid chip addresses: 1B 38 3A 3D 3F 50 5D 6F
    U-Boot > ping 192.168.253.10
    host 192.168.253.10 is alive
    U-Boot >

    Signed-off-by: Sergey Kubushyn <ksi@koi8.net>
    Acked-by: Dirk Behme <dirk.behme@gmail.com>
    Acked-by: Zach Sadecki <Zach.Sadecki@ripcode.com>
    Acked-by: Stefan Roese <sr@denx.de>

commit 2e4d94f1e3c2961428967a33b6ff2520568391b3
Author: Ed Swarthout <Ed.Swarthout@freescale.com>
Date:	Fri Jul 27 01:50:45 2007 -0500

    fsl_pci_init cleanup.

    Do not enable normal errors created during probe (master abort, perr,
    and pcie Invalid Configuration access).

    Add CONFIG_PCI_NOSCAN board option to prevent bus scan.

    Signed-off-by: Ed Swarthout <Ed.Swarthout@freescale.com>
    Acked-by: Andy Fleming <afleming@freescale.com>

commit 936b3e69b667c3eb9a61ece4e78647d3fce9fc2a
Author: Ed Swarthout <Ed.Swarthout@freescale.com>
Date:	Fri Jul 27 01:50:44 2007 -0500

    pciauto_setup_device bars_num fix

    Passing bars_num=0 to pciauto_setup_device should assign no bars.

    Signed-off-by: Ed Swarthout <Ed.Swarthout@freescale.com>
    Acked-by: Shinya Kuribayashi <shinya.kuribayashi@necel.com>
    Acked-by: Andy Fleming <afleming@freescale.com>

commit cf0b185e58ca0aec8ae2b2a8804ec0ef58ee21d4
Author: Jon Loeliger <jdl@freescale.com>
Date:	Mon Aug 6 17:39:44 2007 -0500

    8641hpcn: Do correct sized pointer math.

    When I rebased Ed's patch and cleaned up a few compilation
    problems, I apparently rebased my brain on crack first.
    Fix that by doing (char *) sized pointer math as needed.

    Signed-off-by: Jon Loeliger <jdl@freescale.com>

commit cfc7a7f5bb3273c9951173c788001d45118f141f
Author: Jon Loeliger <jdl@freescale.com>
Date:	Thu Aug 2 14:42:20 2007 -0500

    cpu/86xx fixes.

    Remove rev 1 fixes.
    Always set PICGCR_MODE.
    Enable machine check and provide board config option
    to set and handle SoC error interrupts.

    Include MSSSR0 in error message.

    Isolate a RAMBOOT bit of code with #ifdef CFG_RAMBOOT.

    Signed-off-by: Ed Swarthout <Ed.Swarthout@freescale.com>
    Signed-off-by: Jon Loeliger <jdl@freescale.com>

commit 35d22f957a85a22bb3cd1ad084fa5404620d1c42
Author: Stefan Roese <sr@denx.de>
Date:	Fri Aug 10 10:42:25 2007 +0200

    Coding style cleanup

    Signed-off-by: Stefan Roese <sr@denx.de>

commit 3a6d56c20989fe27360afe743bd2a7ad4d76e48f
Author: Dirk Behme <dirk.behme@googlemail.com>
Date:	Thu Aug 2 17:42:08 2007 +0200

    Make use of generic 64bit division in nand_util.c

    Use generic 64bit division in nand_util.c. This makes nand_util.c
    independent of any toolchain 64bit division.

    Signed-off-by: Dirk Behme <dirk.behme@gmail.com>

commit f7c086e94e8ce9aad7268af97f73aa6884686f27
Author: Dirk Behme <dirk.behme@googlemail.com>
Date:	Thu Aug 2 17:41:14 2007 +0200

    Move 64bit division from avr32 to generic lib

    Move the 64bit division from lib_avr32 to lib_generic. With this, all
    boards can do_div/__div64_32 if needed, not only avr one. Code is put
    to lib_generic, so no larger memory footprint if not used. No code
    modifications. Thanks for proposal by Håvard Skinnemoen.

    Signed-off-by: Dirk Behme <dirk.behme@gmail.com>

commit 157cda4d0c3d592ccbb19bbfc07d9251894f0894
Author: Niklaus Giger <niklausgiger@gmx.ch>
Date:	Fri Jul 27 11:31:22 2007 +0200

    Add PPC4xx-HCU4 and HCU5 boards: HCU5 files

    Signed-off-by: Niklaus Giger <niklaus.giger@netstal.com>

commit 6e5de26c6e7580faf16e87745cd488b92b492d0c
Author: Niklaus Giger <niklausgiger@gmx.ch>
Date:	Fri Jul 27 11:30:33 2007 +0200

    Add PPC4xx-HCU4 and HCU5 boards: HCU4 files

    Signed-off-by: Niklaus Giger <niklaus.giger@netstal.com>

commit e8397fc78c9394d71de233a4d810fbc9047e4c76
Author: Niklaus Giger <niklausgiger@gmx.ch>
Date:	Fri Jul 27 11:38:26 2007 +0200

    Add PPC4xx-HCU4 and HCU5 boards: common files

    Signed-off-by: Niklaus Giger <niklaus.giger@netstal.com>

commit ac982ea5a4f2f993efcf52dca122f5a59df047d8
Author: Niklaus Giger <niklausgiger@gmx.ch>
Date:	Fri Jul 27 11:28:44 2007 +0200

    Add PPC4xx-HCU4 and HCU5 boards: make related

    Signed-off-by: Niklaus Giger <niklaus.giger@netstal.com>

commit 137fdd9f474ecb853efdace5200576308c67f18d
Author: Niklaus Giger <niklausgiger@gmx.ch>
Date:	Fri Jul 27 11:28:03 2007 +0200

    Add PPC4xx-HCU4 and HCU5 boards: HCU5 config

    Signed-off-by: Niklaus Giger <niklaus.giger@netstal.com>

commit 714bc55b35b6f6a65cc8740a3842a543e88cdef2
Author: Niklaus Giger <niklausgiger@gmx.ch>
Date:	Fri Jul 27 11:27:15 2007 +0200

    Add PPC4xx-HCU4 and HCU5 boards: HCU4 config

    Signed-off-by: Niklaus Giger <niklaus.giger@netstal.com>

commit 1894dd381124bdbfbdae7cf3a6ca52a8eb1f4421
Author: Niklaus Giger <niklausgiger@gmx.ch>
Date:	Fri Jul 27 11:25:31 2007 +0200

    Add PPC4xx-HCU4 and HCU5 boards: READMEs

    Signed-off-by: Niklaus Giger <niklaus.giger@netstal.com>

commit 641cca9569ce351ddb287fd3343d8b1dcb591db4
Author: Niklaus Giger <niklausgiger@gmx.ch>
Date:	Fri Jul 27 11:37:40 2007 +0200

    Add PPC4xx-HCU4 and HCU5 boards: Infrastructure

    This series of patches adds support for 2 boards from Netstal Maschinen.

    The HCU4 has a PPC405Gpr and
    the HCU5 has a PPC440EPX.

    The HCU4 has a somehow complicated flash setup, as the booteprom is
    only 8 bits and the CFI 16 bits wide, which makes it impossible to use a more
    elegant solution.

    The HCU5 has only a booteprom as the whole code will be downloaded from a
    different board which has HD, CD-ROM, etc and where all code is stored.

    This is my third try. I incorporated all suggestions made by Wolfgang and Stefan.
    Thanks them a lot.

    Signed-off-by: Niklaus Giger <niklaus.giger@netstal.com>

commit 3e4c90c6233618fc1806e63fde68df5f3d6a0171
Author: Stefan Roese <sr@denx.de>
Date:	Fri Aug 10 08:42:55 2007 +0200

    ppc4xx: Update lwmon5 POST configuration

    Signed-off-by: Stefan Roese <sr@denx.de>

commit 29cb25da56afe18cf5e7072a92a9d98ea8af1fd4
Author: Yuri Tikhonov <yur@emcraft.com>
Date:	Fri Aug 10 08:25:22 2007 +0200

    POST: Add ppc4xx UART POST support without external uart clock (lwmon5)

    The patch adds support for UART POST on ppc44x-based boards with no
    external serial clocks installed.

    Signed-off-by: Yuri Tikhonov <yur@emcraft.com>
    Acked-by: Stefan Roese <sr@denx.de>

commit 99c2fdab91bc633e46fb41dbaa629f87ccf6e00f
Author: Kim Phillips <kim.phillips@freescale.com>
Date:	Mon Aug 6 18:18:34 2007 -0500

    mpc83xx: fix ITX[GP] O=builddir builds

    make: *** No rule to make target `/work/wd/tmp/board/mpc8349itx/u-boot.lds', needed by `/work/wd/tmp/u-boot'.  Stop.

    Both the ITX and ITX-GP fail when you use "make O=<some dir> ..." or
    "BUILD_DIR=<some dir> ./MAKEALL ..."

    Signed-off-by: Kim Phillips <kim.phillips@freescale.com>

commit 47e8bc846759e037b8af0e5f9c9f9cfa7a1050c3
Author: Dave Liu <r63238@freescale.com>
Date:	Wed Aug 1 15:00:59 2007 +0800

    mpc83xx: Correct the README for DDR ECC

    Update the README for DDR ECC, change the name
    to README.mpc83xx.ddrecc.

    Signed-off-by: Dave Liu <daveliu@freescale.com>
    Signed-off-by: Kim Phillips <kim.phillips@freescale.com>

commit daab8c67d2defef73dc26ab07f0c3afd1b05d019
Author: Dave Liu <r63238@freescale.com>
Date:	Wed Aug 1 15:00:15 2007 +0800

    mpc83xx: Consolidate the ECC support of 83xx

    Remove the duplicated source code of ecc command on the <board>.c,
    for reused, move these code to cpu/mpc83xx directory.

    Signed-off-by: Dave Liu <daveliu@freescale.com>
    Signed-off-by: Kim Phillips <kim.phillips@freescale.com>

commit 036575c544cf1b69654d8fb334bda69c6ff3da36
Author: Dave Liu <r63238@freescale.com>
Date:	Sat Aug 4 13:37:39 2007 +0800

    mpc83xx: Correct the burst length for DDR2 with 32 bits

    The burst length should be 4 for DDR2 with 32 bits bus

    Signed-off-by: Dave Liu <daveliu@freescale.com>

commit 1c274c4e05b6dc9b24edc8aa618b02f607ee6eed
Author: Kim Phillips <kim.phillips@freescale.com>
Date:	Wed Jul 25 19:25:33 2007 -0500

    mpc83xx: add support for the MPC8323E RDB

    MPC8323E based board with 64MB fixed SDRAM, 16MB flash,
    five 10/100 ethernet ports connected via an ICPlus IP175C
    switch, one PCI slot, and serial.  Features not supported
    in this patch are SD card interface, 2 USB ports, and the
    two phone ports.

    Signed-off-by: Michael Barkowski <michael.barkowski@freescale.com>
    Signed-off-by: Kim Phillips <kim.phillips@freescale.com>

commit 343d91009d55fc5b3ff8cc940597af6c6aa1d359
Author: Kim Phillips <kim.phillips@freescale.com>
Date:	Wed Jul 25 19:25:28 2007 -0500

    mpc83xx: fixup generic pci for libfdt

    add libfdt support to the generic 83xx pci code

    Signed-off-by: Kim Phillips <kim.phillips@freescale.com>

commit f57ac7a7b37109245b69db80839ebee26179966a
Author: Kim Phillips <kim.phillips@freescale.com>
Date:	Wed Jul 25 19:25:22 2007 -0500

    mpc83xx: fix 8360 and cpu functions to update fdt being passed

    ..and not the global fdt. Rename local fdt vars to blob so as not to
    be confused with the global var with the same three-letter name.

    Signed-off-by: Kim Phillips <kim.phillips@freescale.com>

commit 8be404459a6b7395415a57bb35e8377e3b2b5acb
Author: Jerry Van Baren <gvb.uboot@gmail.com>
Date:	Wed Jul 4 21:34:24 2007 -0400

    mpc83xx: Fix errors when CONFIG_OF_LIBFDT is enabled

    Several node strings were not correct (trailing slashes and properties
      in the strings)
    Added setting of the timebase-frequency.
    Improved error messages and use debug() instead of printf().

    Signed-off-by: Gerald Van Baren <vanbaren@cideas.com>
    Signed-off-by: Kim Phillips <kim.phillips@freescale.com>

commit 26d02c9bbac1751c5e19294f000100b48d43a920
Author: Jerry Van Baren <gvb.uboot@gmail.com>
Date:	Wed Jul 4 21:27:30 2007 -0400

    mpc83xx: Replace fdt_node_offset() with fdt_find_node_by_path().

    The new name matches more closely the kernel's name, which is also
    a much better description.

    These are the mpc83xx changes made necessary by the function name change.

    Signed-off-by: Wolfgang Grandegger <wg@grandegger.com>
    Acked-by: Gerald Van Baren <vanbaren@cideas.com>
    Signed-off-by: Kim Phillips <kim.phillips@freescale.com>

commit 9be39a67c9f8fef7107f5df09d673005f04d0963
Author: Dave Liu <daveliu@freescale.com>
Date:	Mon Jun 25 10:41:56 2007 +0800

    mpc83xx: Add support for the display of reset status

    83xx processor family has many reset sources, such as
    power on reset, software hard reset, software soft reset,
    JTAG, bus monitor, software watchdog, check stop reset,
    external hard reset, external software reset.
    sometimes, to figure out the fault of system, we need to
    know the cause of reset early before the prompt of
    u-boot present.

    Signed-off-by: Dave Liu <daveliu@freescale.com>
    Signed-off-by: Kim Phillips <kim.phillips@freescale.com>

commit ff9658d7049bf8c8e8e0a05dbe5e9f7e91aa5a5d
Author: Dave Liu <daveliu@freescale.com>
Date:	Mon Jun 25 10:41:04 2007 +0800

    mpc83xx: Fix the align bug of SDMA buffer

    According to the latest user manual, the SDMA temporary
    buffer base address must be 4KB aligned.

    Signed-off-by: Dave Liu <daveliu@freescale.com>
    Signed-off-by: Kim Phillips <kim.phillips@freescale.com>

commit 66dc2c2dc51f8b88bb8e231bc80cd92eae1d6476
Author: Dave Liu <daveliu@freescale.com>
Date:	Mon Jun 25 13:21:12 2007 +0800

    mpc83xx: Revise the MPC8360EMDS readme doc

    When the rev2.x silicon mount on the MPC8360EMDS baord,
    and if you are using the u-boot version after the commit
    3fc0bd159103b536e1c54c6f4457a09b3aba66ca.
    to make the ethernet interface usable, we have to setup
    the jumpers correctly.

    Signed-off-by: Dave Liu <daveliu@freescale.com>
    Signed-off-by: Kim Phillips <kim.phillips@freescale.com>

commit e739bc95797aac4fefc4c75b55c7c78e59d3ea9c
Author: Timur Tabi <timur@freescale.com>
Date:	Tue Jul 3 13:46:32 2007 -0500

    FSL I2C driver programs the two I2C busses differently

    The i2c_init() function in fsl_i2c.c programs the two I2C busses differently.
    The second I2C bus has its slave address programmed incorrectly and is
    missing a 5-us delay.

    Signed-off-by: Timur Tabi <timur@freescale.com>
    Signed-off-by: Kim Phillips <kim.phillips@freescale.com>

commit df33f6b4d6d63693dd9200808b242de1b86cb8e8
Author: Timur Tabi <timur@freescale.com>
Date:	Tue Jul 3 13:04:34 2007 -0500

    Update SCCR programming in cpu_init_f() to support all 83xx processors

    Update the cpu_init_f() function in cpu/mpc83xx/cpu_init.c to program the
    bitfields for all 83xx processors.	The code to update some bitfields was
    compiled only on some processors.  Now, the bitfields are programmed as long
    as the corresponding CFG_SCCR option is defined in the board header file.
    This means that the board header file should not define any CFG_SCCR macros
    for bitfields that don't exist on that processor, otherwise the SCCR will be
    programmed incorrectly.

    Signed-off-by: Timur Tabi <timur@freescale.com>
    Signed-off-by: Kim Phillips <kim.phillips@freescale.com>

commit 9546266999f0b9b51372636614211b88d90f0f25
Author: Martin Krause <martin.krause@tqs.de>
Date:	Fri Jun 22 13:04:22 2007 +0200

    TQM834x: cleanup configuraton

    Remove irritating #undef DEBUG

    Signed-off-by: Martin Krause <martin.krause@tqs.de>
    Signed-off-by: Kim Phillips <kim.phillips@freescale.com>

commit 5d497e6bf0f5bf63729b4a47b3fd786d3c77a1bc
Author: david.saada <David.Saada@ecitele.com>
Date:	Mon Jun 18 09:09:53 2007 -0700

    MPC83xx: Fix makefile to generate config.h file in the build directory

    MPC83xx: Fix the Makefile config sections to generate the include/config.h
    file in the build directory instead of the source directory.

    Signed-off-by: David Saada <david.saada@ecitele.com>
    Signed-off-by: Kim Phillips <kim.phillips@freescale.com>

commit 1ded0242e437259366792d52b7e9d1e1931d8fa5
Author: Lee Nipper <Lee.Nipper@freescale.com>
Date:	Thu Jun 14 20:07:33 2007 -0500

    mpc83xx: Add support for 8360 silicon revision 2.1

    This change adds 8360 silicon revision 2.1 support to u-boot.

    Signed-off-by: Lee Nipper <lee.nipper@freescale.com>
    Signed-off-by: Kim Phillips <kim.phillips@freescale.com>

commit a22806469a8f2b69c829f4fd5361fdebd0cb01b4
Author: Kumar Gala <galak@kernel.crashing.org>
Date:	Wed Aug 8 04:14:28 2007 -0500

    Treat ppc64 host as ppc

    Signed-off-by: Kumar Gala <galak@kernel.crashing.org>

commit 0dc4279b08ff82472bec2e2c90858602459febe8
Author: Jason Jin <Jason.jin@freescale.com>
Date:	Wed Aug 8 09:01:46 2007 +0800

    Minor fix for bios emulator makefile

    Add $(obj) to LIB avoiding objects be built in the source dir

    Signed-off-by: Jason Jin <Jason.jin@freescale.com>

commit ce981dc857adfc8036ca2f6d5d5a06c2a8aa77d6
Author: Jason Jin <Jason.jin@freescale.com>
Date:	Wed Aug 8 08:33:11 2007 +0800

    Add CONFIG_BIOSEMU define to guard all the bios emulator code

    Signed-off-by: Jason Jin <Jason.jin@freescale.com>

    This patch fix the compile issue on the board that did not enable the bios emulator

commit ed8106433522f2ea8933e9808346860d061d7731
Author: Zach Sadecki <Zach.Sadecki@ripcode.com>
Date:	Tue Jul 31 12:27:25 2007 -0500

    tsec: fix multiple PHY support

    The change entitled "Reduce CONFIG_MPC8YXX_TSECx to CONFIG_TSECx"
    broke multiple PHY support in tsec.c.  This fixes it.

    Signed-off-by: Zach Sadecki <Zach.Sadecki@ripcode.com>
    Signed-off-by: Kim Phillips <kim.phillips@freescale.com>

commit dcb84b7208ade0bbebbeb56bec9c2c64f8b2eede
Author: Joe Hamman <joe.hamman@embeddedspecialties.com>
Date:	Thu Aug 9 09:08:18 2007 -0500

    tsec: Allow Ten Bit Interface address to be configurable

    Allow the address of the Ten Bit Interface (TBI) to be changed in the
    event of a conflict with another device.

    Signed-off by: Joe Hamman <joe.hamman@embeddedspecialties.com>

commit 7c4c3722a38d40b0cf537ddae72b04f4088b190c
Author: Jason Jin <Jason.jin@freescale.com>
Date:	Tue Aug 7 16:17:06 2007 +0800

    Add CONFIG_BIOSEMU define to guard all the bios emulator code

    This patch fix the compile issue on the board that did not enable the bios emulator

commit bf1060ea4f9eaa7e7d164a70a7d6f28939882053
Author: Wolfgang Denk <wd@denx.de>
Date:	Tue Aug 7 16:02:13 2007 +0200

    Fix missing brace error in fs/fat/fat.c
    [pointed out by Roderik Wildenburg]

    Signed-off-by: Wolfgang Denk <wd@denx.de>

commit 6c33c78557ca6f8da68c01ce33e278695197d3f4
Author: Wolfgang Denk <wd@denx.de>
Date:	Mon Aug 6 23:21:05 2007 +0200

    Fixed typo in README (pointed out by Martin Jost).

    Signed-off-by: Wolfgang Denk <wd@denx.de>

commit 537223afa61f64480df31ce440a9cb386df4a814
Author: Stefan Roese <sr@denx.de>
Date:	Mon Aug 6 21:10:17 2007 +0200

    ppc4xx: Update AMCC Bamboo README doc/README.bamboo

    As suggested by Eugene O'Brien <Eugene.O'Brien@advantechamt.com>,
    here an updated Bamboo README.

    Signed-off-by: Stefan Roese <sr@denx.de>

commit 9c7e4b06214db61bb21f1bcbe57c97519669baae
Author: Wolfgang Denk <wd@denx.de>
Date:	Mon Aug 6 02:17:36 2007 +0200

    Coding style cleanup. Update CHANGELOG.

    Signed-off-by: Wolfgang Denk <wd@denx.de>

commit 221838cc7eb178370ff62aa05920a582e12ac322
Author: Jason Jin <Jason.jin@freescale.com>
Date:	Tue Jul 10 09:03:22 2007 +0800

    Remove the bios emulator from MAI board.

    The bios emulator in the MAI board can not pass compile
    and have a lot of crap in it. remove it and will have a
    clean and small bios emulator in the drivers directory
    which can be uesed for every board.

    Signed-off-by: Jason Jin <Jason.jin@freescale.com>

commit 5618332409bb96f4448d1712899369fc80c0b489
Author: Jason Jin <Jason.jin@freescale.com>
Date:	Fri Jul 13 12:14:59 2007 +0800

    Fix some compile issues for MAI board.

    Signed-off-by: Jason Jin <Jason.jin@freescale.com>

commit 0f460a1ee148b648ee242c3157650287d4296260
Author: Jason Jin <Jason.jin@freescale.com>
Date:	Fri Jul 13 12:14:58 2007 +0800

    Configurations for ATI video card BIOS emulator

    This patch add definition of the BIOS emulator and the ATI framebuffer
    driver for MPC8641HPCN board.

    Signed-off-by: Jason Jin <Jason.jin@freescale.com>
    Signed-off-by: Zhang Wei <wei.zhang@freescale.com>

commit ece92f85053b8df613edcf05b26a416cbc3d629c
Author: Jason Jin <Jason.jin@freescale.com>
Date:	Fri Jul 6 08:34:56 2007 +0800

    This is a BIOS emulator, porting from SciTech for u-boot, mainly for
    ATI video card BIOS. and can be used for x86 code emulation by some
    modifications.

    Signed-off-by: Jason Jin <Jason.jin@freescale.com>

commit 5072188acabde3178fac7f5a597150e6e74fd40c
Author: Jason Jin <Jason.jin@freescale.com>
Date:	Fri Jul 6 08:33:33 2007 +0800

    This is a framebuffer driver for ATI video card, can work for PCI9200,
    X300, X700, X800 ATI video cards.

    Signed-off-by: Zhang Wei <wei.zhang@freescale.com>
    Signed-off-by: Jason Jin <Jason.jin@freescale.com>

commit 5728be389e65fd47f34b33c2596271eb4db751ae
Author: Wolfgang Denk <wd@denx.de>
Date:	Mon Aug 6 01:01:49 2007 +0200

    Coding style cleanup. Update CHANGELOG.

    Signed-off-by: Wolfgang Denk <wd@denx.de>

commit 8092fef4c29b395958bb649647da7e3775731517
Author: Martin Krause <Martin.Krause@tqs.de>
Date:	Tue Dec 12 14:26:01 2006 +0100

    Add functions to list of exported functions

    Additionally export the following fuctions (to make trab_config build again):
    - simple_strtol()
    - strcmp()

    Also bump the ABI version to reflect this change

    Signed-off-by: Martin Krause <martin.krause@tqs.de>

commit 63cec5814fab5d2b1c86982327433807a5ac0249
Author: Ed Swarthout <Ed.Swarthout@freescale.com>
Date:	Thu Aug 2 14:09:49 2007 -0500

    Make MPC8641's PCI/PCI-E driver a common driver for many FSL parts.

    All of the PCI/PCI-Express driver and initialization code that
    was in the MPC8641HPCN port has now been moved into the common
    drivers/fsl_pci_init.c.  In a subsequent patch, this will be
    utilized by the 85xx ports as well.

    Common PCI-E IMMAP register blocks for FSL 85xx/86xx are added.

    Also enable the second PCI-Express controller on 8641
    by getting its BATS and CFG_ setup right.

    Fixed a u16 vendor compiler warning in AHCI driver too.

    Signed-off-by: Ed Swarthout <Ed.Swarthout@freescale.com>
    Signed-off-by: Zhang Wei <wei.zhang@freescale.com>
    Signed-off-by: Jon Loeliger <jdl@freescale.com>

commit 86b116b1b1e165ca4840daefed36d2e3b8460173
Author: Bartlomiej Sieka <tur@semihalf.com>
Date:	Fri Aug 3 12:08:16 2007 +0200

    cm1_qp1 -> cm5200: single U-Boot image for modules from the cm5200 family.

    Add the ability for modules from the Schindler cm5200 family to use a
    single U-Boot image:
    - rename cm1_qp1 to cm5200
    - add run-time module detection
    - parametrize SDRAM configuration according to the module we are running on

    Few minor, board-specific fixes included in this patch:
    - better MAC address handling
    - updated default environment ('update' command uses +{filesize} now)
    - improved error messages in the auto-update code
    - allow booting U-Boot from RAM (CFG_RAMBOOT)

    Signed-off-by: Grzegorz Bernacki <gjb@semihalf.com>
    Signed-off-by: Piotr Kruszynski <ppk@semihalf.com>
    Signed-off-by: Bartlomiej Sieka <tur@semihalf.com>

commit c7e717ebc2b044d7a71062552c9dc0f54ea9b779
Author: Andy Fleming <afleming@freescale.com>
Date:	Fri Aug 3 04:05:25 2007 -0500

    Add Marvell 1149 PHY support to the TSEC

commit b1b54e352028ed370c3aa95d6fdeb9d64c5d2f86
Author: Wolfgang Denk <wd@denx.de>
Date:	Thu Aug 2 21:27:46 2007 +0200

    Coding style cleanup, update CHANGELOG

    Signed-off-by: Wolfgang Denk <wd@denx.de>

commit 63e22764d2f8653f68888c667eb65b3996b52680
Author: Wolfgang Denk <wd@denx.de>
Date:	Thu Aug 2 10:11:18 2007 +0200

    Minor cleanup of <board>_nand build rules.

commit 9ca8d79de096c65b9b9c867259b3ff4685f775ef
Author: Stefan Roese <sr@denx.de>
Date:	Thu Aug 2 08:33:56 2007 +0200

    ppc4xx: Code cleanup

    Signed-off-by: Stefan Roese <sr@denx.de>

commit c92409812206ac67a7fa7aae298539a9c3804a46
Author: Grzegorz Bernacki <gjb@semihalf.com>
Date:	Tue Jul 31 18:51:48 2007 +0200

    [ppc440SPe] Graceful recovery from machine check during PCIe configuration

    During config transactions on the PCIe bus an attempt to scan for a
    non-existent device can lead to a machine check exception with certain
    peripheral devices. In order to avoid crashing in such scenarios the
    instrumented versions of the config cycle read routines are introduced, so
    the exceptions fixups framework can gracefully recover.

    Signed-off-by: Grzegorz Bernacki <gjb@semihalf.com>
    Acked-by: Rafal Jaworowski <raj@semihalf.com>

commit dec99558b9ea75a37940d07f41a3565a50b54ad1
Author: Rafal Jaworowski <raj@semihalf.com>
Date:	Tue Jul 31 18:19:54 2007 +0200

    [ppc4xx] Separate settings for PCIe bus numbering on 440SPe rev.A

    This brings back separate settings for PCIe bus numbers depending on chip
    revision, which got eliminated in 2b393b0f0af8402ef43b25c1968bfd29714ddffa
    commit. 440SPe rev. A does NOT work properly with the same settings as for
    the rev. B (no devices are seen on the bus during enumeration).

    Signed-off-by: Rafal Jaworowski <raj@semihalf.com>

commit cdd917a43da6fa7fc8f54a3cc9f420ce5ecf3197
Author: Wolfgang Denk <wd@denx.de>
Date:	Thu Aug 2 00:48:45 2007 +0200

    Fix build errors and warnings / code cleanup.

    Signed-off-by: Wolfgang Denk <wd@denx.de>

commit d2f68006627eda6cb6c7f364bddf621dbfd2fc68
Author: Eugene OBrien <eugene.obrien@advantechamt.com>
Date:	Tue Jul 31 10:24:56 2007 +0200

    ppc4xx: Update AMCC Bamboo 440EP support

    Changed storage type of cfg_simulate_spd_eeprom to const
    Changed storage type of gpio_tab to stack storage
    (Cannot access global data declarations in .bss until afer code relocation)

    Improved SDRAM tests to catch problems where data is not uniquely addressable
    (e.g. incorrectly programmed SDRAM row or columns)

    Added CONFIG_PROG_SDRAM_TLB to support Bamboo SIMM/DIMM modules
    Fixed AM29LV320DT (OpCode Flash) sector map

    Signed-off-by: Eugene OBrien <eugene.obrien@advantechamt.com>
    Signed-off-by: Stefan Roese <sr@denx.de>

commit ea9f6bce383cc9fbcdee28b5836109b1a6dba574
Author: Stefan Roese <sr@denx.de>
Date:	Tue Jul 31 08:37:01 2007 +0200

    ppc4xx: Update 440EPx lwmon5 board support

    - Clear ECC status regs after ECC POST test
    - Set dcbz for ECC generation with caches enabled as default
    - Code cleanup

    Signed-off-by: Stefan Roese <sr@denx.de>

commit 27a528fb41433c4c1e2b5d6bd3fd8d78606fc724
Author: Stefan Roese <sr@denx.de>
Date:	Mon Jul 30 11:04:57 2007 +0200

    ppc4xx: Only print ECC related info when the error bis are set

    Signed-off-by: Stefan Roese <sr@denx.de>

commit e36220a4baf1f188ba60f17e9d0f043069b1362a
Author: Matthias Fuchs <matthias.fuchs@esd-electronics.com>
Date:	Fri Jul 27 16:44:31 2007 +0200

    new FPGA image for PLU405 board

    new FPGA image for PLU405 board with improved CompactFlash timing

    Signed-off-by: Matthias Fuchs <matthias.fuchs@esd-electronics.com>

commit 8993e54b6f397973794f3d6f47d3b3c0c98dd4f6
Author: Rafal Jaworowski <raj@semihalf.com>
Date:	Fri Jul 27 14:43:59 2007 +0200

    [ADS5121] Support for the ADS5121 board

    The following MPC5121e subsystems are supported:

    - low-level CPU init
    - NOR Boot Flash (common CFI driver)
    - DDR SDRAM
    - FEC
    - I2C
    - Watchdog

    Signed-off-by: Grzegorz Bernacki <gjb@semihalf.com>
    Signed-off-by: Rafal Jaworowski <raj@semihalf.com>
    Signed-off-by: Jan Wrobel <wrr@semihalf.com>

commit 1863cfb7b100ba0ee3401799457a01dc058745f8
Author: Rafal Jaworowski <raj@semihalf.com>
Date:	Fri Jul 27 14:22:04 2007 +0200

    [PPC] Remove unused MSR_USER definition

    Signed-off-by: Rafal Jaworowski <raj@semihalf.com>

commit d4024bb72dd81695ec099b2199eda0d27c623e62
Author: John Otken <john@softadvances.com>
Date:	Thu Jul 26 17:49:11 2007 +0200

    ppc4xx: Add support for AMCC 405EP Taihu board

    Signed-off-by: John Otken <john@softadvances.com>

commit b66091de6c7390620312c2501db23d8391e7cabb
Author: Anatolij Gustschin <agust@denx.de>
Date:	Thu Jul 26 15:08:01 2007 +0200

    ppc4xx: lwmon5: Update Lime initialization

    Change Lime SDRAM initialization to now support 100MHz and
    133MHz (if enabled). Also the framebuffer is initialized to
    display a blue rectangle with a white border.

    Signed-off-by: Anatolij Gustschin <agust@denx.de>
    Signed-off-by: Stefan Roese <sr@denx.de>

commit 9f24a808f17fc0f37b7fb4805f734741335caecc
Author: Stefan Roese <sr@denx.de>
Date:	Tue Jul 24 09:52:52 2007 +0200

    ppc4xx: lwmon5: Support for 128 MByte NOR FLASH added

    The used Intel NOR FLASH chips have internally two dies, and are now
    treated as two seperate chips.

    Signed-off-by: Stefan Roese <sr@denx.de>

commit aedf5bde179ecfbd0a96130d18996a96518b785f
Author: Stefan Roese <sr@denx.de>
Date:	Tue Jul 24 07:20:09 2007 +0200

    ppc4xx: Fix lwmon5 interrupt controller setup (polarity, trigger...)

    As suggested by Hakan Eryigit, here an updated setup for the lwmon5
    interrupt controller.

    Signed-off-by: Stefan Roese <sr@denx.de>

commit a71d96eac8130b53a91f93cd10c70fca0db18d52
Author: Stefan Roese <sr@denx.de>
Date:	Fri Jul 20 15:03:44 2007 +0200

    ppc4xx: Fix bug with default GPIO output value

    As spotted by Matthias Fuchs, the default output values for all GPIO1
    outputs were not setup correctly. This patch fixes this issue.

    Signed-off-by: Stefan Roese <sr@denx.de>

commit 531e3e8b831f357056448fa573137d5fb37000fd
Author: Pavel Kolesnikov <concord@emcraft.com>
Date:	Fri Jul 20 15:03:03 2007 +0200

    POST: Add ECC POST for the lwmon5 board

    This patch adds ECC Post test for the Lwmon5 board based
    on PPC440EPx to U-Boot.

    Signed-off-by: Pavel Kolesnikov <concord@emcraft.com>
    Acked-by: Yuri Tikhonov <yur@emcraft.com>
    Acked-by: Stefan Roese <sr@denx.de>

commit cc3023b9f95d7ac959a764471a65001062aecf41
Author: Rafal Jaworowski <raj@semihalf.com>
Date:	Thu Jul 19 17:12:28 2007 +0200

    Fix breakage of 8xx boards from recent commit.

    This patch fixes the negative consequences for 8xx of the recent
    "ppc4xx: Clean up 440 exceptions handling" commit.

    Signed-off-by: Rafal Jaworowski <raj@semihalf.com>

commit 8848ec858f74ed6dab06fb6d5ddc933e0a1328bf
Author: Stefan Roese <sr@denx.de>
Date:	Mon Jul 16 10:02:12 2007 +0200

    ppc4xx: Code cleanup

    Signed-off-by: Stefan Roese <sr@denx.de>

commit 2a49fc17d09020e7ebd9536694d99d20e419fcb8
Author: Stefan Roese <sr@denx.de>
Date:	Mon Jul 16 10:01:38 2007 +0200

    ppc4xx: AMCC Luan uses the new boardspecific DDR2 controller setup

    Signed-off-by: Stefan Roese <sr@denx.de>

commit df3f17422aeb03fb81a7ac8c78d2b05d05aa4cf9
Author: Stefan Roese <sr@denx.de>
Date:	Mon Jul 16 10:00:43 2007 +0200

    ppc4xx: Support for Yucca board with 440SPe Rev A added to 44x_spd_ddr2.c

    The new boardspecific DDR2 controller configuration is used for the Yucca
    board. Now the Yucca board with 440SPe Rev. A chips is also supported.

    Signed-off-by: Stefan Roese <sr@denx.de>

commit 6ed14addf97c8cd8f531e9ae7b2d3e222fffd53e
Author: Stefan Roese <sr@denx.de>
Date:	Mon Jul 16 09:57:00 2007 +0200

    ppc4xx: Add new weak functions to support boardspecific DDR2 configuration

    The new "weak" functions ddr_wrdtr() and ddr_clktr() are added to better
    support non default, boardspecific DDR(2) controller configuration.

    Signed-off-by: Stefan Roese <sr@denx.de>

commit 5743a9207a370b90f09b20ebd61167c806b937f3
Author: Stefan Roese <sr@denx.de>
Date:	Mon Jul 16 08:53:51 2007 +0200

    ppc4xx: Add remove_tlb() function to remove a mem area from TLB setup

    The new function remove_tlb() can be used to remove the TLB's used to
    map a specific memory region. This is especially useful for the DDR(2)
    setup routines which configure the SDRAM area temporarily as a cached
    area (for speedup on auto-calibration and ECC generation) and later
    need this area uncached for normal usage.

    Signed-off-by: Stefan Roese <sr@denx.de>

commit 3a6cab844cf74f76639d795e0be8717e02c86af7
Author: Wolfgang Denk <wd@denx.de>
Date:	Sat Jul 14 22:51:02 2007 +0200

    Update CHANGELOG

    Signed-off-by: Wolfgang Denk <wd@denx.de>

commit 011595307731a7a67a7445d107c279d031e8ab97
Author: Heiko Schocher <hs@pollux.denx.de>
Date:	Sat Jul 14 01:06:58 2007 +0200

    [PCS440EP]	- fix compile error, if BUILD_DIR is used

commit fad63407154f46246ce80d53a9c669a44362ac67
Author: Heiko Schocher <hs@pollux.denx.de>
Date:	Fri Jul 13 09:54:17 2007 +0200

    make show_boot_progress () weak.

    Signed-off-by: Heiko Schocher <hs@denx.de>

commit 907902472391b6ca1876ec300687562ecaf459b1
Author: Heiko Schocher <hs@pollux.denx.de>
Date:	Fri Jul 13 08:26:05 2007 +0200

    [PCS440EP]	- The DIAG LEDs are now blinking, if an error occur
		- fix compile error, if BUILD_DIR is used

    Signed-off-by: Heiko Schocher <hs@denx.de>

commit a2e1c7098cf9574386b0c96841dfc8ea5cc93578
Author: Stefan Roese <sr@denx.de>
Date:	Thu Jul 12 16:32:08 2007 +0200

    ppc4xx: Change receive buffer handling in the 4xx emac driver

    This change fixes a bug in the receive buffer handling, that
    could lead to problems upon high network traffic (broadcasts...).

    Signed-off-by: Stefan Roese <sr@denx.de>

commit 239f05ee4dd4cfe0b50f251b533dcebe9e67c360
Author: Wolfgang Denk <wd@denx.de>
Date:	Thu Jul 12 01:45:34 2007 +0200

    Update CHANGELOG, minor coding style cleanup.

    Signed-off-by: Wolfgang Denk <wd@denx.de>

commit 5a56af3b522ba47fb33a3fee84d23bf1e5429654
Author: Andy Fleming <afleming@freescale.com>
Date:	Fri Jun 8 16:41:18 2007 -0500

    Remove erroneous errata code from Marvel 88E1111S driver

    The Marvel 88E1111S driver for the TSEC was copied from the
    88E1101 driver, and included a fix for an erratum which does not
    exist on that part.  Now it is removed

    Signed-off-by: Andy Fleming <afleming@freescale.com>

commit 982efcf23fd03647e01e2fbe28a7a36239156cc0
Author: Andy Fleming <afleming@freescale.com>
Date:	Tue Jun 5 16:38:44 2007 -0500

    From: eran liberty <eran.liberty@gmail.com>

    adds the reset register to 85xx immap

    Signed-off-by: Eran Liberty <eran.liberty@gmail.com>
    Signed-off-by: Andy Fleming <afleming@freescale.com>

commit d3ec0d943a045bdb99e159e7bbc77430e09f11d7
Author: Andy Fleming <afleming@freescale.com>
Date:	Thu May 10 17:50:01 2007 -0500

    Polished the 85xx ADS config files

    Made the boot commands use device trees by default.
    Also moved the ramdisk to 1000000 (I think the previous address
    was getting overridden during boot).

    Signed-off-by: Andy Fleming <afleming@freescale.com>

commit bfb37b32d1b0b03f18077dba49cc66a6e76fa038
Author: Ed Swarthout <Ed.Swarthout@freescale.com>
Date:	Wed May 9 11:03:32 2007 -0500

    8544ds: Fix Makefile after moving pixis to board/freescale.

    The OBJTREE != SRCTREE build scenario was broken.
    This fixes it.

    Signed-off-by: Ed Swarthout <Ed.Swarthout@freescale.com>
    Signed-off-by: Jon Loeliger <jdl@freescale.com>

commit 2a3cee43c3b71fa5b8d91db19f05067865290f3e
Author: Andy Fleming <afleming@freescale.com>
Date:	Wed May 9 00:54:20 2007 -0500

    tsec: Fix PHY code to match first driver

    Jarrold Wen noticed that the generic PHY code always matches
    under the current implementation.  Change it so the first match
    wins, and *only* unknown PHYs trigger the generic driver

    Signed-off-by: Andy Fleming <afleming@freescale.com>

commit ccc091aac61a38cd998d575d92f7232e256d6312
Author: Andy Fleming <afleming@freescale.com>
Date:	Tue May 8 17:27:43 2007 -0500

    Add support for CPM device tree configuration to 8560 ADS

    * Adds code to modify CPM frequencies
    * Cleans up the config file to #define TSEC and (for now) #undef FCC
    * Adds the MII command for all 8560 ADS configurations
    * Updates config file to provide convenience commands for booting
      with a device tree

    Signed-off-by: Vitaly Bordug <vbordug@ru.mvista.com>
    Signed-off-by: Andy Fleming <afleming@freescale.com>

commit 7507d56ccaf7aae1c474342a9a5540165cd7e9d9
Author: Andy Fleming <afleming@freescale.com>
Date:	Tue May 8 17:23:02 2007 -0500

    Fix Marvell 88e1145 PHY init code

    Fix a bug in the Marvell 88e1145 PHY init code in the TSEC driver
    where the reset was being done after the errata code instead of
    before.

    Signed-off-by: Haiying Wang <haiying.wang@freescale.com>
    Signed-off-by: Andy Fleming <afleming@freescale.com>

commit 5dc210dec5bace98a50b6ba905347890091a9bb0
Author: Ed Swarthout <Ed.Swarthout@freescale.com>
Date:	Wed Jul 11 14:52:16 2007 -0500

    Add simple agent/end-point configuration in PCI AutoConfig for PCI_CLASS_PROCESSOR_POWERPC.

    Signed-off-by: Ed Swarthout <Ed.Swarthout@freescale.com>

commit e8b85f3ba4cd8930e0a2fea2100c815d64201765
Author: Ed Swarthout <Ed.Swarthout@freescale.com>
Date:	Wed Jul 11 14:52:08 2007 -0500

    pciauto setup bridge

    The P2P bridge bus numbers programmed into the device are relative to
    hose->first_busno.

    Signed-off-by: Ed Swarthout <Ed.Swarthout@freescale.com>

commit 571f49fa717004ca4268b4e24057efc7bf9f987b
Author: Ed Swarthout <Ed.Swarthout@freescale.com>
Date:	Wed Jul 11 14:52:01 2007 -0500

    Support PCIe extended config registers

    FSL PCIe block has extended cfg registers in the 100 and 400 range.
    For example, to read the LTSSM register: pci display <busn>.0 404 1

    Signed-off-by: Ed Swarthout <Ed.Swarthout@freescale.com>

commit ba5feb12581bb2912ce301e4866b71f846e9fc07
Author: Ed Swarthout <Ed.Swarthout@freescale.com>
Date:	Wed Jul 11 14:51:48 2007 -0500

    Minor improvements to drivers/pci_auto.c

    - Make pciauto_{pre,post}scan_setup_bridge non-static
    - Added physical address display in debug messages.

    Signed-off-by: Ed Swarthout <Ed.Swarthout@freescale.com>

commit 40e81addab7bb74d20ddf681ce9babc880a828ee
Author: Ed Swarthout <Ed.Swarthout@freescale.com>
Date:	Wed Jul 11 14:51:35 2007 -0500

    Start pci hose scan from hose->current_busno.

    Ensure hose->current_busno is not less than first_busno.  This fixes
    broken board code which leaves current_busno=0 when first_busno is
    greater than 0 for the cases with multiple controllers.

    Signed-off-by: Ed Swarthout <Ed.Swarthout@freescale.com>

commit 3865b1fb7843a08ad49a6319a36415752276ff48
Author: Stefan Roese <sr@denx.de>
Date:	Wed Jul 11 12:13:53 2007 +0200

    Fix some compile problems introduced by the latest CFG_CMD_xxx cleanup

    Signed-off-by: Stefan Roese <sr@denx.de>

commit fa1df308926a6f70e3504c57514ef27ac31fd13a
Author: Bartlomiej Sieka <tur@semihalf.com>
Date:	Wed Jul 11 20:11:07 2007 +0200

    CM1.QP1: Support for the Schindler CM1.QP1 board.

    Signed-off-by: Piotr Kruszynski <ppk@semihalf.com>
    Signed-off-by: Bartlomiej Sieka <tur@semihalf.com>

commit 96e1d75be8193ca79e4215a368bf9d7f2362450f
Author: Heiko Schocher <hs@pollux.denx.de>
Date:	Wed Jul 11 18:39:11 2007 +0200

    [PCS440EP]	- Show on the DIAG LEDs, if the SHA1 check failed
		- now the Flash ST M29W040B is supported (not tested)
		- fix the "led" command
		- fix compile error, if BUILD_DIR is used

    Signed-off-by: Heiko Schocher <hs@denx.de>

commit e9514751cfa5cce61ea699fa0d3eb37898a5eeb5
Author: Stefan Roese <sr@denx.de>
Date:	Sun Jul 8 13:44:27 2007 +0200

    Fix malloc problem introduced with the relocation fixup for the PPC platform

    The relocation fixup didn't handle the malloc pointer initialization
    correctly. This patch fixes this problem. Tested successfully on 4xx.
    The relocation fixup patches for 4xx will follow soon.

    Signed-off-by: Stefan Roese <sr@denx.de>

commit b3aff0cb9ecf236d7e8c93761dd1dadf6837a582
Author: Jon Loeliger <jdl@freescale.com>
Date:	Tue Jul 10 11:19:50 2007 -0500

    disk/ doc/ lib_*/ and tools/: Remove lingering references to CFG_CMD_* symbols.

    Fixed some broken instances of "#ifdef CMD_CFG_IDE" too.
    Those always evaluated TRUE, and thus were always compiled
    even when IDE really wasn't defined/wanted.

    Signed-off-by: Jon Loeliger <jdl@freescale.com>

commit ddb5d86f0215bcb6c293510c50eb050e92883b7a
Author: Jon Loeliger <jdl@freescale.com>
Date:	Tue Jul 10 11:13:21 2007 -0500

    drivers/: Remove lingering references to CFG_CMD_* symbols.

    Fixed some broken instances of "#ifdef CMD_CFG_IDE" too.
    Those always evaluated TRUE, and thus were always compiled
    even when IDE really wasn't defined/wanted.

    Signed-off-by: Jon Loeliger <jdl@freescale.com>

commit f40a7f3e3888b42a43674b099e5470022c8c544c
Author: Jon Loeliger <jdl@freescale.com>
Date:	Tue Jul 10 11:07:56 2007 -0500

    fs/: Remove lingering references to CFG_CMD_* symbols.

    Fixed some broken instances of "#ifdef CMD_CFG_IDE" too.
    Those always evaluated TRUE, and thus were always compiled
    even when IDE really wasn't defined/wanted.

    Signed-off-by: Jon Loeliger <jdl@freescale.com>

commit 610f2e9c28a9c101e09fa1b78143cf5f00ed1593
Author: Jon Loeliger <jdl@freescale.com>
Date:	Tue Jul 10 11:05:02 2007 -0500

    net/: Remove lingering references to CFG_CMD_* symbols.

    Fixed some broken instances of "#ifdef CMD_CFG_IDE" too.
    Those always evaluated TRUE, and thus were always compiled
    even when IDE really wasn't defined/wanted.

    Signed-off-by: Jon Loeliger <jdl@freescale.com>

commit 902531788376046da212afd1661cffb62f3daa1c
Author: Jon Loeliger <jdl@freescale.com>
Date:	Tue Jul 10 11:02:44 2007 -0500

    common/: Remove lingering references to CFG_CMD_* symbols.

    Fixed some broken instances of "#ifdef CMD_CFG_IDE" too.
    Those always evaluated TRUE, and thus were always compiled
    even when IDE really wasn't defined/wanted.

    Signed-off-by: Jon Loeliger <jdl@freescale.com>

commit d39b57415838c73fb0a37eca84de3c68ba990586
Author: Jon Loeliger <jdl@freescale.com>
Date:	Tue Jul 10 10:48:22 2007 -0500

    board/[j-z]*: Remove lingering references to CFG_CMD_* symbols.

    Fixed some broken instances of "#ifdef CMD_CFG_IDE" too.
    Those always evaluated TRUE, and thus were always compiled
    even when IDE really wasn't defined/wanted.

    Signed-off-by: Jon Loeliger <jdl@freescale.com>

commit 77a318545d57aefa844752465b94c7e09a3f26d0
Author: Jon Loeliger <jdl@freescale.com>
Date:	Tue Jul 10 10:39:10 2007 -0500

    board/[A-Za-i]*: Remove lingering references to CFG_CMD_* symbols.

    Fixed some broken instances of "#ifdef CMD_CFG_IDE" too.
    Those always evaluated TRUE, and thus were always compiled
    even when IDE really wasn't defined/wanted.

    Signed-off-by: Jon Loeliger <jdl@freescale.com>

commit 068b60a0eb7e73b243ca55399f2a7df76e2c3f3d
Author: Jon Loeliger <jdl@freescale.com>
Date:	Tue Jul 10 10:27:39 2007 -0500

    cpu/ rtc/ include/: Remove lingering references to CFG_CMD_* symbols.

    Signed-off-by: Jon Loeliger <jdl@freescale.com>

commit 079a136c3588814784561d6e4856970ee82d6e2a
Author: Jon Loeliger <jdl@freescale.com>
Date:	Tue Jul 10 10:12:10 2007 -0500

    include/configs/[p-z]* + misc: Cleanup BOOTP and lingering CFG_CMD_*.

    Explicitly add in default CONFIG_BOOTP_* options where cmd_confdefs.h
    used to be included but CONFIG_BOOTP_MASK was not defined.

    Remove lingering references to CFG_CMD_* symbols.

    Signed-off-by: Jon Loeliger <jdl@freescale.com>

commit 7f5c01577400c74cc5bac74f41dd0d3c79df623c
Author: Jon Loeliger <jdl@freescale.com>
Date:	Tue Jul 10 09:38:02 2007 -0500

    include/configs/[g-o]*: Cleanup BOOTP and lingering CFG_CMD_*.

    Explicitly add in default CONFIG_BOOTP_* options where cmd_confdefs.h
    used to be included but CONFIG_BOOTP_MASK was not defined.

    Remove lingering references to CFG_CMD_* symbols.

    Signed-off-by: Jon Loeliger <jdl@freescale.com>

commit 80ff4f99b84b64edca3fd10da365ec1493be1c95
Author: Jon Loeliger <jdl@freescale.com>
Date:	Tue Jul 10 09:29:01 2007 -0500

    include/configs/[a-e]*: Cleanup BOOTP and lingering CFG_CMD_*.

    Explicitly add in default CONFIG_BOOTP_* options where cmd_confdefs.h
    used to be included but CONFIG_BOOTP_MASK was not defined.

    Remove lingering references to CFG_CMD_* symbols.

    Signed-off-by: Jon Loeliger <jdl@freescale.com>

commit a1aa0bb502e25fd598b5e0ccdfb2c174921d714a
Author: Jon Loeliger <jdl@freescale.com>
Date:	Tue Jul 10 09:22:23 2007 -0500

    include/configs/[P-Z]*: Cleanup BOOTP and lingering CFG_CMD_*.

    Explicitly add in default CONFIG_BOOTP_* options where cmd_confdefs.h
    used to be included but CONFIG_BOOTP_MASK was not defined.

    Remove lingering references to CFG_CMD_* symbols.

    Signed-off-by: Jon Loeliger <jdl@freescale.com>

commit 659e2f6736232a08acca8785c206e2b4d9cd07d7
Author: Jon Loeliger <jdl@freescale.com>
Date:	Tue Jul 10 09:10:49 2007 -0500

    include/configs/[J-O]*: Cleanup BOOTP and lingering CFG_CMD_*.

    Explicitly add in default CONFIG_BOOTP_* options where cmd_confdefs.h
    used to be included but CONFIG_BOOTP_MASK was not defined.

    Remove lingering references to CFG_CMD_* symbols.

    Signed-off-by: Jon Loeliger <jdl@freescale.com>

commit 11799434c5ff15a612577bb1ad1f4ea1a0595e4b
Author: Jon Loeliger <jdl@freescale.com>
Date:	Tue Jul 10 09:02:57 2007 -0500

    include/configs/[A-I]*: Cleanup BOOTP and lingering CFG_CMD_*.

    Explicitly add in default CONFIG_BOOTP_* options where cmd_confdefs.h
    used to be included but CONFIG_BOOTP_MASK was not defined.

    Remove lingering references to CFG_CMD_* symbols.

    Signed-off-by: Jon Loeliger <jdl@freescale.com>

commit 1fe80d79c5c4e52d3410a7ab4b8515da095cdab3
Author: Jon Loeliger <jdl@freescale.com>
Date:	Mon Jul 9 22:08:34 2007 -0500

    Finally retire cmd_confdefs.h and CONFIG_BOOTP_MASK!

    All of the choices for CONFIG_BOOTP_ are now documented in
    the README file.  You must now individually select exactly
    the set that you want using a series of
	#define CONFIG_BOOTP_<x>
    statements in the board port config files now.

    Signed-off-by: Jon Loeliger <jdl@freescale.com>

commit d3b8c1a743dcd31625c99e6a44590f207eb00028
Author: Jon Loeliger <jdl@freescale.com>
Date:	Mon Jul 9 21:57:31 2007 -0500

    include/configs/[m-z]*: Directly use CONFIG_BOOTP_* symbols rather than CONFIG_BOOTP_MASK.

    Signed-off-by: Jon Loeliger <jdl@freescale.com>

commit 2fd90ce575b02d189cbf443c85309bcd001aa393
Author: Jon Loeliger <jdl@freescale.com>
Date:	Mon Jul 9 21:48:26 2007 -0500

    include/configs/[a-m]*: Directly use CONFIG_BOOTP_* symbols rather than CONFIG_BOOTP_MASK.

    Signed-off-by: Jon Loeliger <jdl@freescale.com>

commit 37d4bb70586659dedef1658ce1bed071be098aec
Author: Jon Loeliger <jdl@freescale.com>
Date:	Mon Jul 9 21:38:02 2007 -0500

    include/configs/[T-Z]*: Directly use CONFIG_BOOTP_* symbols rather than CONFIG_BOOTP_MASK.

    Signed-off-by: Jon Loeliger <jdl@freescale.com>

commit 18225e8dd1950bd6dbf35011e436db7f474c187d
Author: Jon Loeliger <jdl@freescale.com>
Date:	Mon Jul 9 21:31:24 2007 -0500

    include/configs/[P-S]*: Directly use CONFIG_BOOTP_* symbols rather than CONFIG_BOOTP_MASK.

    Signed-off-by: Jon Loeliger <jdl@freescale.com>

commit 7be044e4ea644b0ef1c486dadc1a4c2665b4374d
Author: Jon Loeliger <jdl@freescale.com>
Date:	Mon Jul 9 21:24:19 2007 -0500

    include/configs/[H-N]*: Directly use CONFIG_BOOTP_* symbols rather than CONFIG_BOOTP_MASK.

    Signed-off-by: Jon Loeliger <jdl@freescale.com>

commit 5d2ebe1b3ef0055c661bb1a0d252bf252380069f
Author: Jon Loeliger <jdl@freescale.com>
Date:	Mon Jul 9 21:16:53 2007 -0500

    include/configs/[A-G]*: Directly use CONFIG_BOOTP_* symbols rather than CONFIG_BOOTP_MASK.

    Signed-off-by: Jon Loeliger <jdl@freescale.com>

commit f55f7f8d83f36021ab1f0e3d738f5d8c8083a7e3
Author: Jon Loeliger <jdl@freescale.com>
Date:	Mon Jul 9 19:12:30 2007 -0500

    Retire CONFIG_COMMANDS finally.
    Strip old CFG_CMD_* symbols out.

    Signed-off-by: Jon Loeliger <jdl@freescale.com>

commit b5501f7d720fed99ab0b42c83f5dea52868ce007
Author: Jon Loeliger <jdl@freescale.com>
Date:	Mon Jul 9 19:10:03 2007 -0500

    Update README.* to reference new CONFIG_CMD_* names now.

    Signed-off-by: Jon Loeliger <jdl@freescale.com>

commit 4431283c7e6d54ae180d466e51bf2d97471a0ad9
Author: Jon Loeliger <jdl@freescale.com>
Date:	Mon Jul 9 19:06:00 2007 -0500

    cpu/m*: Remove obsolete references to CONFIG_COMMANDS

    Signed-off-by: Jon Loeliger <jdl@freescale.com>

commit 3a1ed1e1f922c419bb71f7df4949d783ade369fa
Author: Jon Loeliger <jdl@freescale.com>
Date:	Mon Jul 9 18:57:22 2007 -0500

    cpu/[7a-ln-z]*: Remove obsolete references to CONFIG_COMMANDS

    Signed-off-by: Jon Loeliger <jdl@freescale.com>

commit ab3abcbabd840928fb1eb5122118ca466b5e5013
Author: Jon Loeliger <jdl@freescale.com>
Date:	Mon Jul 9 18:45:16 2007 -0500

    board/[q-z]*: Remove obsolete references to CONFIG_COMMANDS

    Signed-off-by: Jon Loeliger <jdl@freescale.com>

commit 3fe00109a5f12de55b6e25b1f98dfc24bc9090c9
Author: Jon Loeliger <jdl@freescale.com>
Date:	Mon Jul 9 18:38:39 2007 -0500

    board/[m-p]*: Remove obsolete references to CONFIG_COMMANDS

    Signed-off-by: Jon Loeliger <jdl@freescale.com>

commit c508a4cefd8a953fc64957650506a035e6e3d9d1
Author: Jon Loeliger <jdl@freescale.com>
Date:	Mon Jul 9 18:31:28 2007 -0500

    board/[f-l]*: Remove obsolete references to CONFIG_COMMANDS

    Signed-off-by: Jon Loeliger <jdl@freescale.com>

commit b9307262f8a9f3b5c9e15a6067eadc17407146f6
Author: Jon Loeliger <jdl@freescale.com>
Date:	Mon Jul 9 18:24:55 2007 -0500

    board/[d-e]*: Remove obsolete references to CONFIG_COMMANDS

    Signed-off-by: Jon Loeliger <jdl@freescale.com>

commit fcec2eb93e126400009729328e797f12bc94f1fd
Author: Jon Loeliger <jdl@freescale.com>
Date:	Mon Jul 9 18:19:09 2007 -0500

    board/[A-Za-c]*: Remove obsolete references to CONFIG_COMMANDS

    Signed-off-by: Jon Loeliger <jdl@freescale.com>

commit a593814f2be0c9cdc3133cd550b167b8a988328f
Author: Jon Loeliger <jdl@freescale.com>
Date:	Mon Jul 9 18:10:50 2007 -0500

    rtc/: Remove obsolete references to CONFIG_COMMANDS

    Signed-off-by: Jon Loeliger <jdl@freescale.com>

commit 67350568f9d46e66c21829f3513b3db0caeb948b
Author: Jon Loeliger <jdl@freescale.com>
Date:	Mon Jul 9 18:05:38 2007 -0500

    lib_{arm,avr32,blackfin,generic,i386}/: Remove obsolete references to CONFIG_COMMANDS

    Signed-off-by: Jon Loeliger <jdl@freescale.com>

commit 7def6b34f910f08d7ef0a14646da067719237ca2
Author: Jon Loeliger <jdl@freescale.com>
Date:	Mon Jul 9 18:02:11 2007 -0500

    lib_{m68k,microblaze,mips,ppc}/: Remove obsolete references to CONFIG_COMMANDS

    Signed-off-by: Jon Loeliger <jdl@freescale.com>

commit dd60d1223b99a88a7216f3e041fe40634ad4c2bb
Author: Jon Loeliger <jdl@freescale.com>
Date:	Mon Jul 9 17:56:50 2007 -0500

    fs/: Remove obsolete references to CONFIG_COMMANDS

    Signed-off-by: Jon Loeliger <jdl@freescale.com>

commit c91898bbc505aff3e12a807af88e76da18efb7ee
Author: Jon Loeliger <jdl@freescale.com>
Date:	Mon Jul 9 17:46:09 2007 -0500

    tools/: Remove obsolete references to CONFIG_COMMANDS

    Signed-off-by: Jon Loeliger <jdl@freescale.com>

commit 643d1ab23960950b52e0a2803c2d3ea4c558fa01
Author: Jon Loeliger <jdl@freescale.com>
Date:	Mon Jul 9 17:45:14 2007 -0500

    net/: Remove obsolete references to CONFIG_COMMANDS

    Signed-off-by: Jon Loeliger <jdl@freescale.com>

commit cb51c0bf88f95a1bca68324b0126f8eed8b43273
Author: Jon Loeliger <jdl@freescale.com>
Date:	Mon Jul 9 17:39:42 2007 -0500

    drivers/[n-z]*: Remove obsolete references to CONFIG_COMMANDS

    Signed-off-by: Jon Loeliger <jdl@freescale.com>

commit 07d38a17e964aec4c7827f0ee9a583bc8cc1ad6b
Author: Jon Loeliger <jdl@freescale.com>
Date:	Mon Jul 9 17:30:01 2007 -0500

    drivers/[a-m]*: Remove obsolete references to CONFIG_COMMANDS

    Signed-off-by: Jon Loeliger <jdl@freescale.com>

commit cde5c64d17cf4834aa7b5c373f288bc7dad27b29
Author: Jon Loeliger <jdl@freescale.com>
Date:	Mon Jul 9 17:22:37 2007 -0500

    disk/: Remove obsolete references to CONFIG_COMMANDS

    Signed-off-by: Jon Loeliger <jdl@freescale.com>

commit 639221c76c88215bd55af83ad174fc30d1940f8f
Author: Jon Loeliger <jdl@freescale.com>
Date:	Mon Jul 9 17:15:49 2007 -0500

    include/: Remove obsolete references to CONFIG_COMMANDS
    Mostly removed from comments here.

    Signed-off-by: Jon Loeliger <jdl@freescale.com>

commit 4ef218f6fdf8d747f4589da5252b004e7d2c2876
Author: Wolfgang Denk <wd@denx.de>
Date:	Tue Jul 10 00:01:28 2007 +0200

    Coding style cleanup; update CHANGELOG.

    Signed-off-by: Wolfgang Denk <wd@denx.de>

commit c8603cfbd4573379a6076c9c208545ba2bbf019a
Author: Stefan Roese <sr@denx.de>
Date:	Mon Jul 9 11:00:24 2007 +0200

    Small coding style cleanup

    Signed-off-by: Stefan Roese <sr@denx.de>

commit 0f92c7e7c9a62755b1457d3c46f93c8c1f6c19fc
Author: Matthias Fuchs <matthias.fuchs@esd-electronics.com>
Date:	Mon Jul 9 10:10:08 2007 +0200

    Migrate esd 405EP boards to new NAND subsystem

    Remove unused CFG_NAND_LEGACY define

    These boards to not have NAND.

    Signed-off-by: Matthias Fuchs <matthias.fuchs@esd-electronics.com>

commit bd84ee4c2020c3a6861f4bb2e7ea0fb49f82e803
Author: Matthias Fuchs <matthias.fuchs@esd-electronics.com>
Date:	Mon Jul 9 10:10:06 2007 +0200

    Migrate esd 405EP boards to new NAND subsystem

    Migrate esd 405EP boards to new NAND subsystem

    -cleanup
    -use correct io accessors (in/out_be32())

    Signed-off-by: Matthias Fuchs <matthias.fuchs@esd-electronics.com>

commit e09f7ab5749c345f924da272bea0521a73af5b11
Author: Matthias Fuchs <matthias.fuchs@esd-electronics.com>
Date:	Mon Jul 9 10:10:04 2007 +0200

    Migrate esd 405EP boards to new NAND subsystem

    This patch prepares the migration from the legacy NAND driver
    to U-Boot's new NAND subsystem for esd boards.

    Signed-off-by: Matthias Fuchs <matthias.fuchs@esd-electronics.com>

commit c3517f919d0f61650cf3027fd4faf0f631142f6c
Author: Jon Loeliger <jdl@freescale.com>
Date:	Sun Jul 8 18:10:08 2007 -0500

    common/* non-cmd*: Remove obsolete references to CONFIG_COMMANDS

    Signed-off-by: Jon Loeliger <jdl@freescale.com>

commit fd9bcaa35be64fe41a4223fdb6ecdbad52470b39
Author: Jon Loeliger <jdl@freescale.com>
Date:	Sun Jul 8 18:05:39 2007 -0500

    common/cmd_[p-x]*: Remove obsolete references to CONFIG_COMMANDS.

    Signed-off-by: Jon Loeliger <jdl@freescale.com>

commit c76fe47425afc7d5d670ff0539823c85d65d9c42
Author: Jon Loeliger <jdl@freescale.com>
Date:	Sun Jul 8 18:02:23 2007 -0500

    common/cmd_[i-n]*: Remove obsolete references to CONFIG_COMMANDS.

    Signed-off-by: Jon Loeliger <jdl@freescale.com>

commit baa26db4113679b80970ff447d91cc10217742a6
Author: Jon Loeliger <jdl@freescale.com>
Date:	Sun Jul 8 17:51:39 2007 -0500

    common/cmd_[af]*: Remove obsolete references to CONFIG_COMMANDS.

    Signed-off-by: Jon Loeliger <jdl@freescale.com>

commit af075ee96e52dda7b6bca6c937588aeaaec5f2cd
Author: Jon Loeliger <jdl@freescale.com>
Date:	Sun Jul 8 17:02:01 2007 -0500

    Clear up confusion over the CMD_POST and POST_DIAG mess.

    For some reason, CONFIG_POST permeated as CONFIG_CMD_POST_DIAG
    when it really means just CONFIG_CMD_DIAG.	There is no CMD_POST.
    Clear this mess up some.

    Signed-off-by: Jon Loeliger <jdl@freescale.com>

commit b3631487105a57ab7cbadfc26efbaf9676275018
Author: Jon Loeliger <jdl@freescale.com>
Date:	Sun Jul 8 15:45:08 2007 -0500

    Remove references to the old cmd_confdefs.h include file.

    Signed-off-by: Jon Loeliger <jdl@freescale.com>

commit a22d4da95e20049b4daa1c2a022f61e8a72f2fb6
Author: Jon Loeliger <jdl@freescale.com>
Date:	Sun Jul 8 15:42:59 2007 -0500

    include/configs: Catch some CONFIG_CMD_* conversion stragglers.

    Use new CONFIG_CMD_* in lwmon5.h board config file.
    Fix CONFIG_CMD_* typo braindamage in omap1510inn.h

    Signed-off-by: Jon Loeliger <jdl@freescale.com>

commit a5562901661bd428f7e5feb333f796372cb81019
Author: Jon Loeliger <jdl@freescale.com>
Date:	Sun Jul 8 15:31:57 2007 -0500

    include/configs: Use new CONFIG_CMD_* in various [TUVWZYZ]* named board config files.

    Signed-off-by: Jon Loeliger <jdl@freescale.com>

commit fe7f782d5b8c64a0195c68c31a0a11d4f641355e
Author: Jon Loeliger <jdl@freescale.com>
Date:	Sun Jul 8 15:02:44 2007 -0500

    include/configs: Use new CONFIG_CMD_* in various S* named board config files.

    Signed-off-by: Jon Loeliger <jdl@freescale.com>

commit e9a0f8f15c11f337967aa0600ad6e8af33037f50
Author: Jon Loeliger <jdl@freescale.com>
Date:	Sun Jul 8 15:12:40 2007 -0500

    include/configs: Use new CONFIG_CMD_* in various R* named board config files.

    Signed-off-by: Jon Loeliger <jdl@freescale.com>

commit 12aa9fd23d724bd6ab88e1baa0db35133a27303f
Author: Jon Loeliger <jdl@freescale.com>
Date:	Sun Jul 8 14:55:07 2007 -0500

    include/configs: Use new CONFIG_CMD_* in various Q* named board config files.

    Signed-off-by: Jon Loeliger <jdl@freescale.com>

commit acf0269779422f3e147d2ddfb499c9f6ff10ad5e
Author: Jon Loeliger <jdl@freescale.com>
Date:	Sun Jul 8 14:49:44 2007 -0500

    include/configs: Use new CONFIG_CMD_* in various P* named board config files.

    Signed-off-by: Jon Loeliger <jdl@freescale.com>

commit e18a1061a8630cb67995fdf99afd3fb50d1b187d
Author: Jon Loeliger <jdl@freescale.com>
Date:	Sun Jul 8 14:21:43 2007 -0500

    include/configs: Use new CONFIG_CMD_* in various [NO]* named board config files.

    Signed-off-by: Jon Loeliger <jdl@freescale.com>

commit 8353e139bfad9059c54f5b2421f1a3090e15a2e2
Author: Jon Loeliger <jdl@freescale.com>
Date:	Sun Jul 8 14:14:17 2007 -0500

    include/configs: Use new CONFIG_CMD_* in various M* named board config files.

    Signed-off-by: Jon Loeliger <jdl@freescale.com>

commit 348f258f24253433e4a2302a0bbceb6740a67246
Author: Jon Loeliger <jdl@freescale.com>
Date:	Sun Jul 8 13:46:18 2007 -0500

    include/configs: Use new CONFIG_CMD_* in various [IJKL]* named board config files.

    Signed-off-by: Jon Loeliger <jdl@freescale.com>

commit 6c4f4da9bfc9f9403f54fce678ed0364b7c86a6a
Author: Jon Loeliger <jdl@freescale.com>
Date:	Sun Jul 8 10:09:35 2007 -0500

    include/configs: Use new CONFIG_CMD_* in various H* named board config files.

    Signed-off-by: Jon Loeliger <jdl@freescale.com>

commit 60a0876b5106b34220e459c208bbf648073306c0
Author: Jon Loeliger <jdl@freescale.com>
Date:	Sat Jul 7 21:04:26 2007 -0500

    include/configs: Use new CONFIG_CMD_* in various F* and G* named board config files.

    Signed-off-by: Jon Loeliger <jdl@freescale.com>

commit dcaa71562826a2466e894c868d132509dcda8444
Author: Jon Loeliger <jdl@freescale.com>
Date:	Sat Jul 7 20:56:05 2007 -0500

    include/configs: Use new CONFIG_CMD_* in various E* named board config files.

    Signed-off-by: Jon Loeliger <jdl@freescale.com>

commit 3c3227f3c737502311b25b72084573901cbbf17d
Author: Jon Loeliger <jdl@freescale.com>
Date:	Sat Jul 7 20:40:43 2007 -0500

    include/configs: Use new CONFIG_CMD_* in various D* named board config files.

    Signed-off-by: Jon Loeliger <jdl@freescale.com>

commit 49cf7e8ee7ef943fdfe866ce28410b0bfbf6a26c
Author: Jon Loeliger <jdl@freescale.com>
Date:	Thu Jul 5 19:52:35 2007 -0500

    include/configs: Use new CONFIG_CMD_* in various C* named board config files.

    Signed-off-by: Jon Loeliger <jdl@freescale.com>

commit de8b2a6e33298dcdb10bdda48db25e53c3089eba
Author: Jon Loeliger <jdl@freescale.com>
Date:	Thu Jul 5 19:32:07 2007 -0500

    include/configs: Use new CONFIG_CMD_* in various B* named board config files.

    Signed-off-by: Jon Loeliger <jdl@freescale.com>

commit 498ff9a228485bd4b9f23d066bada268f9add1dd
Author: Jon Loeliger <jdl@freescale.com>
Date:	Thu Jul 5 19:13:52 2007 -0500

    include/configs: Use new CONFIG_CMD_* in various A* named board config files.

    Since ADS860.h includes "board/fads/fads.h" with ramifications
    on the CONFIG_COMMAND treatment, it too has to be adjusted to
    exclude already configured commands in this same commit.

    Signed-off-by: Jon Loeliger <jdl@freescale.com>

commit 10e038932f22ee80ebd53de312531e70e6590a2f
Author: Thomas Knobloch <knobloch@siemens.com>
Date:	Fri Jul 6 14:58:39 2007 +0200

    [NAND] Bad block skipping for command nboot

    The old implementation of command nboot does not support reading the image from
    NAND flash with skipping of bad blocks. The patch implements a new version of
    the nboot command: by calling nboot.jffs2 from the u-boot command line the
    command will load the image from NAND flash with respect to bad blocks (by using
    nand_read_opts()). This is similar to e.g. the NAND read command: "nand
    read.jffs2 ...".

    Signed-off-by: Thomas Knobloch <knobloch@siemens.com>
    Signed-off-by: Stefan Roese <sr@denx.de>

commit 334043f601a90ac53e5ecc846fbb73a1ef38cb1f
Author: Stefan Roese <sr@denx.de>
Date:	Fri Jul 6 12:26:51 2007 +0200

    ppc4xx: Update lwmon5 default environment

    Signed-off-by: Stefan Roese <sr@denx.de>

commit 5d187430a055d62f17ca84d75e7245439d1f7e75
Author: Stefan Roese <sr@denx.de>
Date:	Fri Jul 6 11:48:24 2007 +0200

    ppc4xx: Update lwmon5 board

    Add unlock=yes environment variable to default variables to unlock
    the CFI flash by default.

    Signed-off-by: Stefan Roese <sr@denx.de>

commit 6b0a174a1e6f55e1f5a1fbb223cdad7645a4646e
Author: Stefan Roese <sr@denx.de>
Date:	Fri Jul 6 09:45:47 2007 +0200

    Fix problem with get/setdcr commands introduced by cfg patches

    Signed-off-by: Stefan Roese <sr@denx.de>

commit f1152f8c28db4a22087c21c618a3f7baa48e9a4f
Author: Wolfgang Denk <wd@denx.de>
Date:	Fri Jul 6 02:50:19 2007 +0200

    Code cleanup and default config update for STC GP3 SSA board.

    Signed-off-by: Wolfgang Denk <wd@denx.de>

commit e4dbe1b215f5c6c462e76909d240bd96472b84de
Author: Wolfgang Denk <wd@denx.de>
Date:	Thu Jul 5 17:56:27 2007 +0200

    Fixing some typos etc. introduced mainly by cfg patches.

    Signed-off-by: Wolfgang Denk <wd@denx.de>

commit b6b4684546809f89c8bac72863ca49b5fd8ac0cd
Author: Wolfgang Denk <wd@denx.de>
Date:	Thu Jul 5 11:12:16 2007 +0200

    Minor coding style cleanup. Update CHANGELOG.

commit dca3b3d6d6396b67e5e84af53452164923c73443
Author: Jon Loeliger <jdl@jdl.com>
Date:	Wed Jul 4 22:33:46 2007 -0500

    include/configs: Use new CONFIG_CMD_* in various [v-z]* named board config files.

    Signed-off-by: Jon Loeliger <jdl@freescale.com>

commit 6c18eb9804b525f3e4f3bb3d014dd69a200d9fa7
Author: Jon Loeliger <jdl@jdl.com>
Date:	Wed Jul 4 22:33:38 2007 -0500

    include/configs: Use new CONFIG_CMD_* in various t* and u* named board config files.

    Signed-off-by: Jon Loeliger <jdl@freescale.com>

commit 46da1e96b7db14f4fcd2c92544e7c0862024bc76
Author: Jon Loeliger <jdl@jdl.com>
Date:	Wed Jul 4 22:33:30 2007 -0500

    include/configs: Use new CONFIG_CMD_* in various s* named board config files.

    Signed-off-by: Jon Loeliger <jdl@freescale.com>

commit 90cc3eb6d2be856d9ddd81436de9cf343bc6b5c8
Author: Jon Loeliger <jdl@jdl.com>
Date:	Wed Jul 4 22:33:23 2007 -0500

    include/configs: Use new CONFIG_CMD_* in various q* and r* named board config files.

    Signed-off-by: Jon Loeliger <jdl@freescale.com>

commit 26a34560d56a9df5bc2ae23525d9229736134757
Author: Jon Loeliger <jdl@jdl.com>
Date:	Wed Jul 4 22:33:17 2007 -0500

    include/configs: Use new CONFIG_CMD_* in various p* named board config files.

    Signed-off-by: Jon Loeliger <jdl@freescale.com>

commit a5cb23092a7d31490a33d4ec871468b63babfa3c
Author: Jon Loeliger <jdl@jdl.com>
Date:	Wed Jul 4 22:33:13 2007 -0500

    include/configs: Use new CONFIG_CMD_* in various o* named board config files.

    Signed-off-by: Jon Loeliger <jdl@freescale.com>

commit 929a2bfd142737003a8fc32e1b86e1f2c1850257
Author: Jon Loeliger <jdl@jdl.com>
Date:	Wed Jul 4 22:33:07 2007 -0500

    include/configs: Use new CONFIG_CMD_* in various n* named board config files.

    Signed-off-by: Jon Loeliger <jdl@freescale.com>

commit 5dc11a511960d490f7f01ffd746edfe6277f99b0
Author: Jon Loeliger <jdl@jdl.com>
Date:	Wed Jul 4 22:33:01 2007 -0500

    include/configs: Use new CONFIG_CMD_* in various m* named board config files.

    Signed-off-by: Jon Loeliger <jdl@freescale.com>

commit 9bbb1c0820c1fbd3811ab6ee4ba0f6c6f76b27e4
Author: Jon Loeliger <jdl@jdl.com>
Date:	Wed Jul 4 22:32:57 2007 -0500

    include/configs: Use new CONFIG_CMD_* in various l* named board config files.

    Signed-off-by: Jon Loeliger <jdl@freescale.com>

commit bc234c129fa04fb9fa33530930e5cbc6084cd47a
Author: Jon Loeliger <jdl@jdl.com>
Date:	Wed Jul 4 22:32:51 2007 -0500

    include/configs: Use new CONFIG_CMD_* in various j* and k* named board config files.

    Signed-off-by: Jon Loeliger <jdl@freescale.com>

commit 1d2c6bc491969f8d8fb34c8e30e8bea7a2af9c31
Author: Jon Loeliger <jdl@jdl.com>
Date:	Wed Jul 4 22:32:32 2007 -0500

    include/configs: Use new CONFIG_CMD_* in various i* named board config files.

    Signed-off-by: Jon Loeliger <jdl@freescale.com>

commit 48d5d102a2f2e619c92050b9aedbb69689185bc0
Author: Jon Loeliger <jdl@jdl.com>
Date:	Wed Jul 4 22:32:25 2007 -0500

    include/configs: Use new CONFIG_CMD_* in various h* named board config files.

    Signed-off-by: Jon Loeliger <jdl@freescale.com>

commit 72eb0efaed7048afcc61fc6f0085c49394b5dc36
Author: Jon Loeliger <jdl@jdl.com>
Date:	Wed Jul 4 22:32:19 2007 -0500

    include/configs: Use new CONFIG_CMD_* in various g* named board config files.

    Signed-off-by: Jon Loeliger <jdl@freescale.com>

commit 1bec3d3002d3bbbae6f2468a0f7376db1120d33e
Author: Jon Loeliger <jdl@jdl.com>
Date:	Wed Jul 4 22:32:10 2007 -0500

    include/configs: Use new CONFIG_CMD_* in various e* named board config files.

    Signed-off-by: Jon Loeliger <jdl@freescale.com>

commit ab999ba1b31ebe78dd16374394a55d7c6e5aa6e4
Author: Jon Loeliger <jdl@jdl.com>
Date:	Wed Jul 4 22:32:03 2007 -0500

    include/configs: Use new CONFIG_CMD_* in various d* named board config files.

    Signed-off-by: Jon Loeliger <jdl@freescale.com>

commit 37e4f24b87fa255ae456d193b7cd23c18dd1d56b
Author: Jon Loeliger <jdl@jdl.com>
Date:	Wed Jul 4 22:31:56 2007 -0500

    include/configs: Use new CONFIG_CMD_* in various c* named board config files.

    Signed-off-by: Jon Loeliger <jdl@freescale.com>

commit ba2351f9d1e841bd00ea6dad1e3c16d0259ad264
Author: Jon Loeliger <jdl@jdl.com>
Date:	Wed Jul 4 22:31:49 2007 -0500

    include/configs: Use new CONFIG_CMD_* in various b* named board config files.

    Signed-off-by: Jon Loeliger <jdl@freescale.com>

commit 0b361c916617aff79e647b40f0e43361e0bbaccf
Author: Jon Loeliger <jdl@jdl.com>
Date:	Wed Jul 4 22:31:42 2007 -0500

    include/configs: Use new CONFIG_CMD_* in various a* named board config files.

    Signed-off-by: Jon Loeliger <jdl@freescale.com>

commit b730cda82e362df6a22f4c59c0a9b97e885b1014
Author: Jon Loeliger <jdl@jdl.com>
Date:	Wed Jul 4 22:31:35 2007 -0500

    include/configs: Use new CONFIG_CMD_* in mpc5xx board config files.

    Signed-off-by: Jon Loeliger <jdl@freescale.com>

commit d794cfefead5fc177cf4f41164e80382e9c9484a
Author: Jon Loeliger <jdl@jdl.com>
Date:	Wed Jul 4 22:31:15 2007 -0500

    include/configs: Use new CONFIG_CMD_* in various 5200 board config files.

    Signed-off-by: Jon Loeliger <jdl@freescale.com>

commit ef0df52ab49eea4a30c15087fd27d54c1d946f2c
Author: Jon Loeliger <jdl@jdl.com>
Date:	Wed Jul 4 22:31:07 2007 -0500

    include/configs: Use new CONFIG_CMD_* in STx board config files.

    Signed-off-by: Jon Loeliger <jdl@freescale.com>

commit 866e3089bfc826bb4dc74637f8aad87a3bab79fc
Author: Jon Loeliger <jdl@jdl.com>
Date:	Wed Jul 4 22:30:58 2007 -0500

    include/configs: Use new CONFIG_CMD_* in sbc* board config files.

    Signed-off-by: Jon Loeliger <jdl@freescale.com>

commit 2694690e285acaa34922f55f4b5ae030da60c55a
Author: Jon Loeliger <jdl@jdl.com>
Date:	Wed Jul 4 22:30:50 2007 -0500

    include/configs: Use new CONFIG_CMD_* in TQM board config files.

    Signed-off-by: Jon Loeliger <jdl@freescale.com>

commit 1cc4c458329765b58e584a19821e796b3c10e976
Author: Jon Loeliger <jdl@jdl.com>
Date:	Wed Jul 4 22:30:28 2007 -0500

    include/configs: Use new CONFIG_CMD_* in 82xx board config files.

    Signed-off-by: Jon Loeliger <jdl@freescale.com>

commit 8ea5499afdaba0acf60923dd99001c399d4a7c8e
Author: Jon Loeliger <jdl@jdl.com>
Date:	Wed Jul 4 22:30:06 2007 -0500

    include/configs: Use new CONFIG_CMD_* in 83xx board config files.

    Signed-off-by: Jon Loeliger <jdl@freescale.com>

commit b44896215a09c60fa40cae906f7ed207bbc2c492
Author: Sergei Poselenov <sposelenov@emcraft.com>
Date:	Thu Jul 5 08:17:37 2007 +0200

    Merged POST framework with the current TOT.

    Signed-off-by: Sergei Poselenov <sposelenov@emcraft.com>

commit b24629fa377214d63bb40d1360e354b6d3e4af56
Author: Jon Loeliger <jdl@jdl.com>
Date:	Wed Jun 13 13:23:15 2007 -0500

    mpc86xx: Remove old CFG_CMD_* references.

    Signed-off-by: Jon Loeliger <jdl@freescale.com>

commit 46175d9764da129bb4fd341cd2554dc7d55f5b2a
Author: Jon Loeliger <jdl@jdl.com>
Date:	Wed Jun 13 13:22:54 2007 -0500

    Add MPC8568MDS to MAKEALL 85xx target.

    It was missing from the original port submission.

    Signed-off-by: Jon Loeliger <jdl@freescale.com>

commit 2835e518c969e5124ba1174eef3e8375e12fa7d5
Author: Jon Loeliger <jdl@jdl.com>
Date:	Wed Jun 13 13:22:08 2007 -0500

    include/configs: Use new CONFIG_CMD_* in 85xx board config files.

    Signed-off-by: Jon Loeliger <jdl@freescale.com>

commit 56b304ac2091689506088a9ae67f63fd6300cf16
Author: Jon Loeliger <jdl@jdl.com>
Date:	Wed Jun 13 13:21:37 2007 -0500

    Fix #if typo in CONFIG_CMD_* changes.

    Signed-off-by: Jon Loeliger <jdl@freescale.com>

commit f780b83316d9af1f61d71cc88b1917b387b9b995
Author: Niklaus Giger <niklausgiger@gmx.ch>
Date:	Wed Jun 27 18:11:38 2007 +0200

    resubmit: ppc4xx: Remove sequoia/sequioa.h. Cleanup ppc440.h for PPC440EPX

    Signed-off-by: Niklaus Giger <niklaus.giger@nestal.com>

commit 04e6c38b766eaa2f3287561563c9e215e0c3a0d4
Author: Stefan Roese <sr@denx.de>
Date:	Wed Jul 4 10:06:30 2007 +0200

    ppc4xx: Update lwmon5 board

    - Add optional ECC generation routine to preserve existing
      RAM values. This is needed for the Linux log-buffer support
    - Add optional DDR2 setup with CL=4
    - GPIO50 not used anymore
    - Lime register setup added

    Signed-off-by: Stefan Roese <sr@denx.de>

commit 6810a34677dbc446334f5e451f1682426dd33b49
Author: Grant Likely <grant.likely@secretlab.ca>
Date:	Tue Jul 3 00:17:28 2007 -0600

    Fix Makefile to use $(MKCONFIG) macro for all board ports

    Signed-off-by: Grant Likely <grant.likely@secretlab.ca>

commit 90b1b2d69b9396ff2f01165ebc16c9a594eb5926
Author: Grant Likely <grant.likely@secretlab.ca>
Date:	Tue Jul 3 00:17:28 2007 -0600

    Fix Makefile to use $(MKCONFIG) macro for all board ports

    Signed-off-by: Grant Likely <grant.likely@secretlab.ca>

commit 057004f4a4863554d56cc56268bfa7c7d9738e27
Author: Grant Likely <grant.likely@secretlab.ca>
Date:	Tue Jul 3 00:34:49 2007 -0600

    Correct fixup relocation for mpc83xx

    Signed-off-by: Grant Likely <grant.likely@secretlab.ca>

commit 5af61b2f4b838a05f79be274f3e5a66edd2d9c96
Author: Grant Likely <grant.likely@secretlab.ca>
Date:	Tue Jul 3 00:34:44 2007 -0600

    Correct fixup relocation for mpc8260

    Signed-off-by: Grant Likely <grant.likely@secretlab.ca>

commit f3a52fe05923935db86985daf9438e2f70ac39aa
Author: Grant Likely <grant.likely@secretlab.ca>
Date:	Tue Jul 3 00:34:39 2007 -0600

    Correct fixup relocation for mpc824x

    Signed-off-by: Grant Likely <grant.likely@secretlab.ca>

commit a85dd254c0577fca13627c46e93fc2ad4c4f1f00
Author: Grant Likely <grant.likely@secretlab.ca>
Date:	Tue Jul 3 00:34:34 2007 -0600

    Correct fixup relocation for mpc8220

    Signed-off-by: Grant Likely <grant.likely@secretlab.ca>

commit 6f7576b20ecf0d040c3ac3b032b5cbc860e38a90
Author: Grant Likely <grant.likely@secretlab.ca>
Date:	Tue Jul 3 00:34:29 2007 -0600

    Correct fixup relocation for MPC5xxx

    Signed-off-by: Grant Likely <grant.likely@secretlab.ca>

commit 3649cd99ba815b6601868735765602f00ef3692b
Author: Grant Likely <grant.likely@secretlab.ca>
Date:	Tue Jul 3 00:34:24 2007 -0600

    Correct relocation fixup for mpc5xx

    Signed-off-by: Grant Likely <grant.likely@secretlab.ca>

commit f82b3b6304b620ef7e28bfaa1ea887a2ad2fa325
Author: Grant Likely <grant.likely@secretlab.ca>
Date:	Tue Jul 3 00:34:19 2007 -0600

    Don't set gd->reloc_off if relocation of .fixup works correctly

    Signed-off-by: Grant Likely <grant.likely@secretlab.ca>

commit e1a6144c32dc7de73bcdd33995de0148cbd0bd28
Author: Grant Likely <grant.likely@secretlab.ca>
Date:	Tue Jul 3 00:34:14 2007 -0600

    Remove obsolete mpc83xx linker scripts

    Signed-off-by: Grant Likely <grant.likely@secretlab.ca>

commit 17e32fc3908bf7089d3f16fc82a1c3ae674dd65b
Author: Grant Likely <grant.likely@secretlab.ca>
Date:	Tue Jul 3 00:34:09 2007 -0600

    Consolidate mpc8260 linker scripts

    Signed-off-by: Grant Likely <grant.likely@secretlab.ca>

commit af7d38b393690d7eeaf418ac85a1e831a50d5fd0
Author: Grant Likely <grant.likely@secretlab.ca>
Date:	Tue Jul 3 00:34:04 2007 -0600

    Remove obsolete mpc824x linker scripts

    Signed-off-by: Grant Likely <grant.likely@secretlab.ca>

commit f94a3aecebc40ca0939c7d66d010009cf51be9e2
Author: Grant Likely <grant.likely@secretlab.ca>
Date:	Tue Jul 3 00:33:59 2007 -0600

    Remove obsolete mpc824x linker scripts (3 of 4)

    Signed-off-by: Grant Likely <grant.likely@secretlab.ca>

commit a71c084f3ac7fedf144537db2b2da47323068833
Author: Grant Likely <grant.likely@secretlab.ca>
Date:	Tue Jul 3 00:33:53 2007 -0600

    Remove obsolete mpc824x linker scripts (2 of 4)

    Signed-off-by: Grant Likely <grant.likely@secretlab.ca>

commit f670a15468d1365241d40022b9408e1004181f5e
Author: Grant Likely <grant.likely@secretlab.ca>
Date:	Tue Jul 3 00:33:48 2007 -0600

    Remove obsolete mpc824x linker scripts (1 of 4)

    Signed-off-by: Grant Likely <grant.likely@secretlab.ca>

commit 09555bd45a04c0e54f172528d21bc18896550d28
Author: Grant Likely <grant.likely@secretlab.ca>
Date:	Tue Jul 3 00:33:43 2007 -0600

    Remove obsolete mpc8220 linker scripts

    Signed-off-by: Grant Likely <grant.likely@secretlab.ca>

commit 5efb992f046e51225c93d52f80fecbe433abd789
Author: Grant Likely <grant.likely@secretlab.ca>
Date:	Tue Jul 3 00:33:38 2007 -0600

    Remove obsolete mpc5xxx linker scripts (3 of 3)

    Signed-off-by: Grant Likely <grant.likely@secretlab.ca>

commit 07c13dfef65b31647e69d8b61daa1eec598add1a
Author: Grant Likely <grant.likely@secretlab.ca>
Date:	Tue Jul 3 00:33:33 2007 -0600

    Remove obsolete mpc5xxx linker scripts (2 of 3)

    Signed-off-by: Grant Likely <grant.likely@secretlab.ca>

commit b4f67513a624ce85866c66c575bd2d9d7977d7f0
Author: Grant Likely <grant.likely@secretlab.ca>
Date:	Tue Jul 3 00:33:28 2007 -0600

    Remove obsolete mpc5xxx linker scripts (1 of 3)

    Signed-off-by: Grant Likely <grant.likely@secretlab.ca>

commit b7d8e05f8675249b5f208aa73babeed384a4519d
Author: Grant Likely <grant.likely@secretlab.ca>
Date:	Tue Jul 3 00:33:23 2007 -0600

    Remove obsolete mpc5xx linker scripts

    Signed-off-by: Grant Likely <grant.likely@secretlab.ca>

commit 416a0b6d40f6eba3a2fc547253c16bda28d922f7
Author: Grant Likely <grant.likely@secretlab.ca>
Date:	Tue Jul 3 00:33:18 2007 -0600

    Consolidate mpc83xx linker scripts

    Signed-off-by: Grant Likely <grant.likely@secretlab.ca>

commit 5fc59175b92883ed5d2666a04e6bc49e70a4a365
Author: Grant Likely <grant.likely@secretlab.ca>
Date:	Tue Jul 3 00:33:13 2007 -0600

    Consolidate mpc8260 linker scripts

    Signed-off-by: Grant Likely <grant.likely@secretlab.ca>

commit 737f9eb02d7335df2b3e4d7a4d3348784d1da207
Author: Grant Likely <grant.likely@secretlab.ca>
Date:	Tue Jul 3 00:33:08 2007 -0600

    Consolidate mpc824x linker scripts

    Signed-off-by: Grant Likely <grant.likely@secretlab.ca>

commit 9c757b789a59a855db57b448dd825329c4e9c4a0
Author: Grant Likely <grant.likely@secretlab.ca>
Date:	Tue Jul 3 00:33:03 2007 -0600

    Consolidate mpc8220 linker scripts

    Signed-off-by: Grant Likely <grant.likely@secretlab.ca>

commit d181c9a15cd41863fe24840d17848429f27d3c8c
Author: Grant Likely <grant.likely@secretlab.ca>
Date:	Tue Jul 3 00:32:58 2007 -0600

    Consolidate mpc5xxx linker scripts

    Signed-off-by: Grant Likely <grant.likely@secretlab.ca>

commit 287ac924adb7291bebe5086652a362a30ab28b13
Author: Grant Likely <grant.likely@secretlab.ca>
Date:	Tue Jul 3 00:32:53 2007 -0600

    Consolidate mpc5xx linker scripts

    Signed-off-by: Grant Likely <grant.likely@secretlab.ca>

commit 52b8704d0245e589f86d462e9ec25aeb7ecbbbdd
Author: Wolfgang Denk <wd@denx.de>
Date:	Wed Jul 4 00:43:53 2007 +0200

    Fix a few file permission problems.

    Signed-off-by: Wolfgang Denk <wd@denx.de>

commit 78e0cf2de7be7f1eaeeb622eb61fd50e4d5e205c
Author: Wolfgang Denk <wd@denx.de>
Date:	Wed Jul 4 00:38:38 2007 +0200

    Minor coding style cleanup. Rebuild CHANGELOG file.

commit 2f9c19e496acb6bb50d9299e1aab377625d48c38
Author: Jon Loeliger <jdl@jdl.com>
Date:	Mon Jun 11 19:03:44 2007 -0500

    configs/ mpc86xx: Rewrite command line options using new CONFIG_CMD-* style.

    Signed-off-by: Jon Loeliger <jdl@freescale.com>

commit 602ad3b33d9ceef83dbab46be68646d645d637ee
Author: Jon Loeliger <jdl@jdl.com>
Date:	Mon Jun 11 19:03:39 2007 -0500

    README: Rewrite command line config to use CONFIG_CMD_* names.

    Signed-off-by: Jon Loeliger <jdl@freescale.com>

commit 72a074cec68e5bad60d63206c050974e08afd804
Author: Jon Loeliger <jdl@jdl.com>
Date:	Mon Jun 11 19:03:34 2007 -0500

    include/ non-config: Augment CONFIG_COMMANDS tests with defined(CONFIG_CMD_*).

    This is a compatibility step that allows both the older form
    and the new form to co-exist for a while until the older can
    be removed entirely.

    All transformations are of the form:
    Before:
	#if (CONFIG_COMMANDS & CFG_CMD_AUTOSCRIPT)
    After:
	#if (CONFIG_COMMANDS & CFG_CMD_AUTOSCRIPT) || defined(CONFIG_CMD_AUTOSCRIPT)

    Signed-off-by: Jon Loeliger <jdl@freescale.com>

commit 5fcf543e0b6628c76ff48705b1b0566bfd11507b
Author: Jon Loeliger <jdl@jdl.com>
Date:	Mon Jun 11 19:03:28 2007 -0500

    tools/ : Augment CONFIG_COMMANDS tests with defined(CONFIG_CMD_*).

    This is a compatibility step that allows both the older form
    and the new form to co-exist for a while until the older can
    be removed entirely.

    All transformations are of the form:
    Before:
	#if (CONFIG_COMMANDS & CFG_CMD_AUTOSCRIPT)
    After:
	#if (CONFIG_COMMANDS & CFG_CMD_AUTOSCRIPT) || defined(CONFIG_CMD_AUTOSCRIPT)

    Signed-off-by: Jon Loeliger <jdl@freescale.com>

commit 9107ebe0d352420895ab69b715697bdebc8caf50
Author: Jon Loeliger <jdl@jdl.com>
Date:	Mon Jun 11 19:03:23 2007 -0500

    board/[k-z]*: Augment CONFIG_COMMANDS tests with defined(CONFIG_CMD_*).

    This is a compatibility step that allows both the older form
    and the new form to co-exist for a while until the older can
    be removed entirely.

    All transformations are of the form:
    Before:
	#if (CONFIG_COMMANDS & CFG_CMD_AUTOSCRIPT)
    After:
	#if (CONFIG_COMMANDS & CFG_CMD_AUTOSCRIPT) || defined(CONFIG_CMD_AUTOSCRIPT)

    Signed-off-by: Jon Loeliger <jdl@freescale.com>

commit 5e378003d592ea828ec69d6defcd4de79096dd5c
Author: Jon Loeliger <jdl@jdl.com>
Date:	Mon Jun 11 19:03:19 2007 -0500

    board/[Ma-i]*: Augment CONFIG_COMMANDS tests with defined(CONFIG_CMD_*).

    This is a compatibility step that allows both the older form
    and the new form to co-exist for a while until the older can
    be removed entirely.

    All transformations are of the form:
    Before:
	#if (CONFIG_COMMANDS & CFG_CMD_AUTOSCRIPT)
    After:
	#if (CONFIG_COMMANDS & CFG_CMD_AUTOSCRIPT) || defined(CONFIG_CMD_AUTOSCRIPT)

    Signed-off-by: Jon Loeliger <jdl@freescale.com>

commit 737184114ec9c9e0ab94d6713536126073bd2472
Author: Jon Loeliger <jdl@jdl.com>
Date:	Mon Jun 11 19:03:15 2007 -0500

    cpu/ non-mpc*: Augment CONFIG_COMMANDS tests with defined(CONFIG_CMD_*).

    This is a compatibility step that allows both the older form
    and the new form to co-exist for a while until the older can
    be removed entirely.

    All transformations are of the form:
    Before:
	#if (CONFIG_COMMANDS & CFG_CMD_AUTOSCRIPT)
    After:
	#if (CONFIG_COMMANDS & CFG_CMD_AUTOSCRIPT) || defined(CONFIG_CMD_AUTOSCRIPT)

    Signed-off-by: Jon Loeliger <jdl@freescale.com>

commit f48070fe5fe440dfb5ee5268c920de70e48ea327
Author: Jon Loeliger <jdl@jdl.com>
Date:	Mon Jun 11 19:03:08 2007 -0500

    cpu/mpc*/ : Augment CONFIG_COMMANDS tests with defined(CONFIG_CMD_*).

    This is a compatibility step that allows both the older form
    and the new form to co-exist for a while until the older can
    be removed entirely.

    All transformations are of the form:
    Before:
	#if (CONFIG_COMMANDS & CFG_CMD_AUTOSCRIPT)
    After:
	#if (CONFIG_COMMANDS & CFG_CMD_AUTOSCRIPT) || defined(CONFIG_CMD_AUTOSCRIPT)

    Signed-off-by: Jon Loeliger <jdl@freescale.com>

commit 0c505db0a0dc1f670b13ce3b4d3fbf1ec5b3cbd2
Author: Jon Loeliger <jdl@jdl.com>
Date:	Mon Jun 11 19:03:03 2007 -0500

    lib_*/: Augment CONFIG_COMMANDS tests with defined(CONFIG_CMD_*).

    This is a compatibility step that allows both the older form
    and the new form to co-exist for a while until the older can
    be removed entirely.

    All transformations are of the form:
    Before:
	#if (CONFIG_COMMANDS & CFG_CMD_AUTOSCRIPT)
    After:
	#if (CONFIG_COMMANDS & CFG_CMD_AUTOSCRIPT) || defined(CONFIG_CMD_AUTOSCRIPT)

    Signed-off-by: Jon Loeliger <jdl@freescale.com>

commit 73f032021ec5f13cda8faa4e34b6de80960eb86f
Author: Jon Loeliger <jdl@jdl.com>
Date:	Mon Jun 11 19:02:58 2007 -0500

    lib_ppc/: Augment CONFIG_COMMANDS tests with defined(CONFIG_CMD_*).

    This is a compatibility step that allows both the older form
    and the new form to co-exist for a while until the older can
    be removed entirely.

    All transformations are of the form:
    Before:
	#if (CONFIG_COMMANDS & CFG_CMD_AUTOSCRIPT)
    After:
	#if (CONFIG_COMMANDS & CFG_CMD_AUTOSCRIPT) || defined(CONFIG_CMD_AUTOSCRIPT)

    Signed-off-by: Jon Loeliger <jdl@freescale.com>

commit 98b79003c21c2578206003256de4e781d6b36ca8
Author: Jon Loeliger <jdl@jdl.com>
Date:	Mon Jun 11 19:02:53 2007 -0500

    rtc/: Augment CONFIG_COMMANDS tests with defined(CONFIG_CMD_*).

    This is a compatibility step that allows both the older form
    and the new form to co-exist for a while until the older can
    be removed entirely.

    All transformations are of the form:
    Before:
	#if (CONFIG_COMMANDS & CFG_CMD_AUTOSCRIPT)
    After:
	#if (CONFIG_COMMANDS & CFG_CMD_AUTOSCRIPT) || defined(CONFIG_CMD_AUTOSCRIPT)

    Signed-off-by: Jon Loeliger <jdl@freescale.com>

commit 6e2115acb6a892d53a6881bf253ae41d3df39156
Author: Jon Loeliger <jdl@jdl.com>
Date:	Mon Jun 11 19:02:49 2007 -0500

    net/: Augment CONFIG_COMMANDS tests with defined(CONFIG_CMD_*).

    This is a compatibility step that allows both the older form
    and the new form to co-exist for a while until the older can
    be removed entirely.

    All transformations are of the form:
    Before:
	#if (CONFIG_COMMANDS & CFG_CMD_AUTOSCRIPT)
    After:
	#if (CONFIG_COMMANDS & CFG_CMD_AUTOSCRIPT) || defined(CONFIG_CMD_AUTOSCRIPT)

    Signed-off-by: Jon Loeliger <jdl@freescale.com>

commit 45cdb9b72c94655c7308b464a2666057c0b286e0
Author: Jon Loeliger <jdl@jdl.com>
Date:	Mon Jun 11 19:02:34 2007 -0500

    disk/: Augment CONFIG_COMMANDS tests with defined(CONFIG_CMD_*).

    This is a compatibility step that allows both the older form
    and the new form to co-exist for a while until the older can
    be removed entirely.

    All transformations are of the form:
    Before:
	#if (CONFIG_COMMANDS & CFG_CMD_AUTOSCRIPT)
    After:
	#if (CONFIG_COMMANDS & CFG_CMD_AUTOSCRIPT) || defined(CONFIG_CMD_AUTOSCRIPT)

    Signed-off-by: Jon Loeliger <jdl@freescale.com>

commit 4e109ae98294a5ca7ff848b7652c7bfd4023a94a
Author: Jon Loeliger <jdl@jdl.com>
Date:	Mon Jun 11 19:02:20 2007 -0500

    fs/: Augment CONFIG_COMMANDS tests with defined(CONFIG_CMD_*).

    This is a compatibility step that allows both the older form
    and the new form to co-exist for a while until the older can
    be removed entirely.

    All transformations are of the form:
    Before:
	#if (CONFIG_COMMANDS & CFG_CMD_AUTOSCRIPT)
    After:
	#if (CONFIG_COMMANDS & CFG_CMD_AUTOSCRIPT) || defined(CONFIG_CMD_AUTOSCRIPT)

    Signed-off-by: Jon Loeliger <jdl@freescale.com>

commit d5be43de93ff905c465e509d45a3164ef48d26e7
Author: Jon Loeliger <jdl@jdl.com>
Date:	Mon Jun 11 19:02:10 2007 -0500

    drivers/: Augment CONFIG_COMMANDS tests with defined(CONFIG_CMD_*).

    This is a compatibility step that allows both the older form
    and the new form to co-exist for a while until the older can
    be removed entirely.

    All transformations are of the form:
    Before:
	#if (CONFIG_COMMANDS & CFG_CMD_AUTOSCRIPT)
    After:
	#if (CONFIG_COMMANDS & CFG_CMD_AUTOSCRIPT) || defined(CONFIG_CMD_AUTOSCRIPT)

    Signed-off-by: Jon Loeliger <jdl@freescale.com>

commit b453960d4fdb87b3970d96119b90df2ed024fc4a
Author: Jon Loeliger <jdl@jdl.com>
Date:	Mon Jun 11 19:02:05 2007 -0500

    common/ non-cmd: Augment CONFIG_COMMANDS tests with defined(CONFIG_CMD_*).

    This is a compatibility step that allows both the older form
    and the new form to co-exist for a while until the older can
    be removed entirely.

    All transformations are of the form:
    Before:
	#if (CONFIG_COMMANDS & CFG_CMD_AUTOSCRIPT)
    After:
	#if (CONFIG_COMMANDS & CFG_CMD_AUTOSCRIPT) || defined(CONFIG_CMD_AUTOSCRIPT)

    Signed-off-by: Jon Loeliger <jdl@freescale.com>

commit 65c450b47a62659d522cfa8f4fa1e4e5c60dccd0
Author: Jon Loeliger <jdl@jdl.com>
Date:	Mon Jun 11 19:01:54 2007 -0500

    common/cmd_[i-z]* : Augment CONFIG_COMMANDS tests with defined(CONFIG_CMD_*).

    This is a compatibility step that allows both the older form
    and the new form to co-exist for a while until the older can
    be removed entirely.

    All transformations are of the form:
    Before:
	#if (CONFIG_COMMANDS & CFG_CMD_AUTOSCRIPT)
    After:
	#if (CONFIG_COMMANDS & CFG_CMD_AUTOSCRIPT) || defined(CONFIG_CMD_AUTOSCRIPT)

    Signed-off-by: Jon Loeliger <jdl@freescale.com>

commit a76adc8142c1d956385a109e0b70f9319ede4d66
Author: Jon Loeliger <jdl@jdl.com>
Date:	Mon Jun 11 19:01:43 2007 -0500

    common/cmd_[a-f]* : Augment CONFIG_COMMANDS tests with defined(CONFIG_CMD_*).

    This is a compatibility step that allows both the older form
    and the new form to co-exist for a while until the older can
    be removed entirely.

    All transformations are of the form:
    Before:
	#if (CONFIG_COMMANDS & CFG_CMD_AUTOSCRIPT)
    After:
	#if (CONFIG_COMMANDS & CFG_CMD_AUTOSCRIPT) || defined(CONFIG_CMD_AUTOSCRIPT)

    Signed-off-by: Jon Loeliger <jdl@freescale.com>

commit ec63b10b61fd68238d4c15c1cd04c0b38228e2c1
Author: Jon Loeliger <jdl@jdl.com>
Date:	Mon Jun 11 19:01:34 2007 -0500

    Introduce initial versions of new Command Config files.

    Derive three new files from cmd_confdefs.h:
	config_bootp.h - Has BOOTP related config options, not commands
	config_cmd_all.h - Has a CONFIG_CMD_* definition for every command
	config_cmd_default.h - Has a CONFIG_CMD_* definition for default cmds.

    For now, include "config_bootp.h" for compatability until all
    users of it directly include it properly.

    Signed-off-by: Jon Loeliger <jdl@freescale.com>

commit 1f2a05898658900dc5717761e27abf2052e67e13
Author: Mushtaq Khan <mushtaqk_921@yahoo.co.in>
Date:	Sat Jun 30 18:50:48 2007 +0200

    Fix S-ATA support.

    Signed-off-by: mushtaq khan <mushtaqk_921@yahoo.co.in>

commit a5d71e290f3673269be8eefb4ec44f53412f9461
Author: Heiko Schocher <hs@pollux.denx.de>
Date:	Mon Jun 25 19:11:37 2007 +0200

    [PCS440EP]	get rid of CONFIG_PPC4xx_USE_SPD_DDR_INIT_HANG

    Signed-off-by: Heiko Schocher <hs@denx.de>

commit a1bd6200eccd3a02040a955d5f43d3ee1fc9f93b
Author: Niklaus Giger <niklaus.giger@nestal.com>
Date:	Mon Jun 25 17:03:13 2007 +0200

    ppc4xx: PPC440EPx Emit DDR0 registers on machine check interrupt

    This patch prints the DDR status registers upon machine check
    interrupt on the 440EPx/GRx. This can be useful especially when
    ECC support is enabled.

    I added some small changes to the original patch from Niklaus to
    make it compile clean.

    Signed-off-by: Niklaus Giger <niklaus.giger@nestal.com>
    Signed-off-by: Stefan Roese <sr@denx.de>

commit 807018fb7faceb429ce0cb47baa2073746b33a4e
Author: Niklaus Giger <niklaus.giger@nestal.com>
Date:	Mon Jun 25 16:50:55 2007 +0200

    ppc4xx: Fix O=buildir builds

    This patch fixes the problem to assemble cpu/ppc4xx/start.S
    experienced last week where building failed having specified
    O=../build.sequoia.

    Signed-off-by: Niklaus Giger <niklaus.giger@nestal.com>

commit 466fff1a7bb5fe764a06450626f6098219f446b8
Author: Stefan Roese <sr@denx.de>
Date:	Mon Jun 25 15:57:39 2007 +0200

    ppc4xx: Add pci_pre_init() for 405 boards

    This patch removes the CFG_PCI_PRE_INIT option completely, since
    it's not needed anymore with the patch from Matthias Fuchs with
    the "weak" pci_pre_init() implementation.

    Signed-off-by: Stefan Roese <sr@denx.de>

commit 6f35c53166213c24a5a0e2390ed861136ff73870
Author: Matthias Fuchs <matthias.fuchs@esd-electronics.com>
Date:	Sun Jun 24 17:41:21 2007 +0200

    ppc4xx: Maintenance patch for esd's CPCI405 derivats

    -add pci_pre_init() for pci interrupt fixup code
    -disable phy sleep mode via reset_phy() function
    -use correct io accessors
    -cleanup

    Signed-off-by: Matthias Fuchs <matthias.fuchs@esd-electronics.com>

commit 5a1c9ff0c44305b57cb4d8f9369bba90bcf0e1f8
Author: Matthias Fuchs <matthias.fuchs@esd-electronics.com>
Date:	Sun Jun 24 17:23:41 2007 +0200

    ppc4xx: Add pci_pre_init() for 405 boards

    This patch adds support for calling a plattform dependant
    pci_pre_init() function for 405 boards. This can be used to
    move the current pci_405gp_fixup_irq() function into the
    board code.

    This patch also makes the CFG_PCI_PRE_INIT define obsolete.
    A default function with 'weak' attribute is used when
    a board specific pci_pre_init() is not implemented.

    Signed-off-by: Matthias Fuchs <matthias.fuchs@esd-electronics.com>

commit 1636d1c8529c006d106287cfbc20cd0a246fe1cb
Author: Wolfgang Denk <wd@denx.de>
Date:	Fri Jun 22 23:59:00 2007 +0200

    Coding stylke cleanup; rebuild CHANGELOG

commit 2dc64451b4c08ffd619372abfdc2506a2e2363b9
Author: Igor Lisitsin <igor@emcraft.com>
Date:	Wed Apr 18 14:55:19 2007 +0400

    Adapt log buffer code to support Linux 2.6

    A new environment variable, "logversion", selects the log buffer
    behaviour. If it is not set or set to a value other than 2, then the
    old, Linux 2.4.4, behaviour is selected.

    Signed-off-by: Igor Lisitsin <igor@emcraft.com>
    --

commit a11e06965ec91270c51853407ff1261d3c740386
Author: Igor Lisitsin <igor@emcraft.com>
Date:	Wed Mar 28 19:06:19 2007 +0400

    Extend POST support for PPC440

    Added memory, CPU, UART, I2C and SPR POST tests for PPC440.

    Signed-off-by: Igor Lisitsin <igor@emcraft.com>
    --

commit 566a494f592ae3b3c0785d90d4e1ba45574880c4
Author: Heiko Schocher <hs@pollux.denx.de>
Date:	Fri Jun 22 19:11:54 2007 +0200

    [PCS440EP]	    upgrade the PCS440EP board:
		    - Show on the Status LEDs, some States of the board.
		    - Get the MAC addresses from the EEProm
		    - use PREBOOT
		    - use the CF on the board.
		    - check the U-Boot image in the Flash with a SHA1
		      checksum.
		    - use dynamic TLB entries generation for the SDRAM

    Signed-off-by: Heiko Schocher <hs@denx.de>

commit 3a1f5c81b0b9557817a789bece839905581c2205
Author: Stefan Roese <sr@denx.de>
Date:	Fri Jun 22 16:58:40 2007 +0200

    ppc4xx: Fix problem with extended program_tlb() funtion

    The recently extended program_tlb() function had a problem when
    multiple TLB's had to be setup (for example with 512MB of SDRAM). The
    virtual address was not incremented. This patch fixes this issue
    and is tested on Katmai with 512MB SDRAM.

    Signed-off-by: Stefan Roese <sr@denx.de>

commit 02032e8f14751a1a751b09240a4f1cf9f8a2077f
Author: Rafal Jaworowski <raj@semihalf.com>
Date:	Fri Jun 22 14:58:04 2007 +0200

    [ppc] Fix build breakage for all non-4xx PowerPC variants.

    - adapt to the more generic EXCEPTION_PROLOG and CRIT_EXCEPTION macros
    - minor 4xx cleanup

commit d677b32855f577ae2690dcd64a172cdd706e0ffc
Author: Mike Frysinger <vapier@gentoo.org>
Date:	Fri Jun 22 10:34:12 2007 +0200

    [patch] add nand_init() prototype to nand.h

    since nand_init() is expected to be called by other parts of u-boot, there
    should be a prototype for it in nand.h

    Signed-off-by: Mike Frysinger <vapier@gentoo.org>
    Signed-off-by: Stefan Roese <sr@denx.de>

commit 83b4cfa3d629dff0264366263c5e94d9a50ad80b
Author: Wolfgang Denk <wd@denx.de>
Date:	Wed Jun 20 18:14:24 2007 +0200

    Coding style cleanup. Refresh CHANGELOG.

commit b3f9ec86e388207fd03dcdf7b145b9ed080bf024
Author: Stefan Roese <sr@denx.de>
Date:	Tue Jun 19 17:22:44 2007 +0200

    ppc4xx: Add bootstrap command for AMCC Sequoia (440EPx) eval board

    This patch adds a board command to configure the I2C bootstrap EEPROM
    values. Right now 533 and 667MHz are supported for booting either via NOR
    or NAND FLASH. Here the usage:

    => bootstrap 533 nor	;to configure the board for 533MHz NOR booting
    => bootstrap 667 nand	;to configure the board for 667MHz NNAND booting

    Signed-off-by: Stefan Roese <sr@denx.de>

commit df8a24cdd30151505cf57bbee5289e91bf53bd1b
Author: Stefan Roese <sr@denx.de>
Date:	Tue Jun 19 16:42:31 2007 +0200

    [ppc4xx] Fix problem with NAND booting on AMCC Acadia

    The latest changes showed a problem with the location of the NAND-SPL
    image in the OCM and the init-data area (incl. cache). This patch
    fixes this problem.

    Signed-off-by: Stefan Roese <sr@denx.de>

commit 86ba99e34194394052d24c04dc40d1263d29a26f
Author: Stefan Roese <sr@denx.de>
Date:	Tue Jun 19 16:40:58 2007 +0200

    [ppc4xx] Change board/amcc/acadia/cpr.c to pll.c

    Signed-off-by: Stefan Roese <sr@denx.de>

commit e73846b7cf1e29ae635bf9bb5570269663df2ee5
Author: Stefan Roese <sr@denx.de>
Date:	Fri Jun 15 11:33:41 2007 +0200

    [ppc4xx] Change lwmon5 port to work with recent 440 exception rework

    Now CONFIG_440 has to be defined in all PPC440 board config files.

    Signed-off-by: Stefan Roese <sr@denx.de>

commit efa35cf12d914d4caba942acd5a6c45f217de302
Author: Grzegorz Bernacki <gjb@semihalf.com>
Date:	Fri Jun 15 11:19:28 2007 +0200

    ppc4xx: Clean up 440 exceptions handling

    - Introduced dedicated switches for building 440 and 405 images required
      for 440-specific machine instructions like 'rfmci' etc.

    - Exception vectors moved to the proper location (_start moved away from
      the critical exception handler space, which it occupied)

    - CriticalInput now serviced (with default handler)

    - MachineCheck properly serviced (added a dedicated handler and return
      subroutine)

    - Overall cleanup of exceptions declared with STD_EXCEPTION macro (unused,
      unhandled and those not relevant for 4xx were eliminated)

    - Eliminated Linux leftovers, removed dead code

    Signed-off-by: Grzegorz Bernacki <gjb@semihalf.com>
    Signed-off-by: Rafal Jaworowski <raj@semihalf.com>
    Signed-off-by: Stefan Roese <sr@denx.de>

commit b765ffb773f5a3cd5aa94ec76b6a05276b8cd5b2
Author: Stefan Roese <sr@denx.de>
Date:	Fri Jun 15 08:18:01 2007 +0200

    [ppc4xx] Add initial lwmon5 board support

    This patch adds initial support for the Liebherr lwmon5 board euqipped
    with an AMCC 440EPx PowerPC.

    Signed-off-by: Stefan Roese <sr@denx.de>

commit 85f737376d5ff3d5f0d45a8b657686326d175307
Author: Stefan Roese <sr@denx.de>
Date:	Fri Jun 15 07:39:43 2007 +0200

    [ppc4xx] Extend 44x GPIO setup with default output state

    The board config array CFG_440_GPIO_TABLE for the ppc440 GPIO setup
    is extended with the default GPIO output state (level).

    Signed-off-by: Stefan Roese <sr@denx.de>

commit dbca208518e5e7f01a6420588d1cd6e60db74c2b
Author: Stefan Roese <sr@denx.de>
Date:	Thu Jun 14 11:14:32 2007 +0200

    [ppc4xx] Extend program_tlb() with virtual & physical addresses

    Now program_tlb() allows to program a TLB (or multiple) with
    different virtual and physical addresses. With this change, now one
    physical region (e.g. SDRAM) can be mapped 2 times, once with caches
    diabled and once with caches enabled.

    Signed-off-by: Stefan Roese <sr@denx.de>

commit 9912121f7ed804ea58fd62f3f230b5dcfc357d88
Author: Detlev Zundel <dzu@denx.de>
Date:	Wed May 23 19:02:41 2007 +0200

    Change 'repeatable' attribute of some commands to sensible values.

    Most prominently this changes 'erase' to be non-repeatable.

    Signed-off-by: Detlev Zundel <dzu@denx.de>

commit 5afb202093f6a001797db92cf695b93a70ea9ab4
Author: Detlev Zundel <dzu@denx.de>
Date:	Wed May 23 18:47:48 2007 +0200

    Fix 'run' not to continue after interrupted command

    Signed-off-by: Detlev Zundel <dzu@denx.de>

commit 9b7464a2c88614e1061f509c48930a3d240d1a35
Author: Jason Jin <Jason.jin@freescale.com>
Date:	Mon Jun 11 15:14:24 2007 +0200

    USB: This patch fix readl in ohci swap reg access.

    Signed-off-by: Jason Jin <Jason.jin@freescale.com>

commit 8f8416fada9faf94b9a92f21fe6000643cb521d5
Author: Bartlomiej Sieka <tur@semihalf.com>
Date:	Fri Jun 8 14:52:22 2007 +0200

    TQM5200: Add Flat Device Tree support, update default env. accordingly.

    Signed-off-by: Jan Wrobel <wrr@semihalf.com>
    Acked-by: Bartlomiej Sieka <tur@semihalf.com>

commit 9045f33c023f698660a2e45d1b2194c0711abebc
Author: Wolfgang Denk <wd@denx.de>
Date:	Fri Jun 8 10:24:58 2007 +0200

    Fix config problems on SC3 board; make ide_reset_timeout work.

commit fba3fb0449b8a54542aed1e729de76e7f5a2ff1b
Author: Benoît Monin <bmonin@adeneo.eu>
Date:	Fri Jun 8 09:55:24 2007 +0200

    [PATCH] fix gpio setting when using CFG_440_GPIO_TABLE

    Set the correct value in GPIOx_TCR when configuring the gpio
    with CFG_440_GPIO_TABLE.

    Signed-off-by: Benoit Monin <bmonin@adeneo.eu>
    Signed-off-by: Stefan Roese <sr@denx.de>

commit f539edc076cfe52bff919dd512ba8d7af0e22092
Author: Vadim Bendebury <vbendeb@google.com>
Date:	Thu May 24 15:52:25 2007 -0700

    cosmetic changes to bcm570x driver

    This is a cosmetic only changes submission.
    It affects files relevant to bcm570x driver.
    the commands used to generate this change was

    cd drivers
    Lindent -pcs -l80  bcm570x.c   bcm570x_lm.h   bcm570x_mm.h	tigon3.c  tigon3.h

    The BMW target (the only one using this chip so far) builds cleanly, the
    `before and after' generated object files for drivers/bcm570x.c and
    drivers/tigon3.o are identical as reported by objdump -d

    Signed-off-by: Vadim Bendebury <vbendeb@google.com>
    Signed-off-by: Ben Warren <bwarren@qstreams.com>

commit 725671ccd2cd04c9ebc50c9e5a94dd8cbade66b7
Author: Wolfgang Denk <wd@denx.de>
Date:	Wed Jun 6 16:26:56 2007 +0200

    Coding Style cleanup; generate new CHANGELOG file.

    Signed-off-by: Wolfgang Denk <wd@denx.de>

commit 19d763c35e0b5568eaf0b8adbf7a68ccfe7fa243
Author: Markus Klotzbuecher <mk@denx.de>
Date:	Wed Jun 6 11:49:44 2007 +0200

    TRAB, USB: update trab board configuration for use of generic ohci driver

commit dace45acd1c1357daa9322099d07c9a9e08b0024
Author: Markus Klotzbuecher <mk@denx.de>
Date:	Wed Jun 6 11:49:43 2007 +0200

    USB: ohci fixes and cleanup for ppc4xx and yosemite board.

commit 72657570b61635c74fa0c3f0e9e7d0671a9d08df
Author: Markus Klotzbuecher <mk@denx.de>
Date:	Wed Jun 6 11:49:43 2007 +0200

    USB: ohci fixes and cleanup for mpc5xxx and IceCube board config

commit fc43be478f2aa37ce38acd85355038866e4162af
Author: Markus Klotzbuecher <mk@denx.de>
Date:	Wed Jun 6 11:49:35 2007 +0200

    USB/OHCI: endianness cleanup in the generic ohci driver

commit c440bfe6d6d92d66478a7e84402b31f48413617b
Author: Stefan Roese <sr@denx.de>
Date:	Wed Jun 6 11:42:13 2007 +0200

    ppc4xx: Add NAND booting support for AMCC Acadia (405EZ) eval board

    This patch adds NAND booting support for the AMCC Acadia eval board.

    Please make sure to configure jumper J7 to position 2-3 when booting
    from NOR, and to position 1-2 when booting for NAND.

    I also added a board command to configure the I2C bootstrap EEPROM
    values. Right now only 267MHz is support for booting either via NOR
    or NAND FLASH. Here the usage:

    => bootstrap 267 nor	;to configure the board for 267MHz NOR booting
    => bootstrap 267 nand	;to configure the board for 267MHz NNAND booting

    Signed-off-by: Stefan Roese <sr@denx.de>

commit 18135125f909948b85d1d6881ab4ac0efb4a1c58
Author: Rodolfo Giometti <giometti@linux.it>
Date:	Wed Jun 6 10:08:14 2007 +0200

    Files include/linux/byteorder/{big,little}_endian.h define
    __BIG_ENDIAN and __LITTLE_ENDIAN.

    Signed-off-by: Rodolfo Giometti <giometti@linux.it>

commit a81d1c0b85b13e9d45f2d87de96a51a6e0ef0f82
Author: Zhang Wei <wei.zhang@freescale.com>
Date:	Wed Jun 6 10:08:14 2007 +0200

    Add USB PCI-OHCI, USB keyboard and event poll support to the
    MPC8641HPCN board config file.

    Signed-off-by: Zhang Wei <wei.zhang@freescale.com>

commit 4dae14ce8fbdf380017dc54f172218e7d2acc889
Author: Zhang Wei <wei.zhang@freescale.com>
Date:	Wed Jun 6 10:08:14 2007 +0200

    USB PCI-OHCI, interrupt pipe and usb event poll support

    This patch added USB PCI-OHCI chips support, interrupt pipe support
    and usb event poll support. For supporting the USB interrupt pipe, the
    globe urb_priv is moved to purb in ed struct. Now, we can process
    several urbs at one time. The interrupt pipe support codes are ported
    from Linux kernel 2.4.

    Signed-off-by: Zhang Wei <wei.zhang@freescale.com>

commit fdcfaa1b02268b2899e374b35adf936c911a47eb
Author: Zhang Wei <wei.zhang@freescale.com>
Date:	Wed Jun 6 10:08:13 2007 +0200

    USB event poll support

    This patch adds USB event poll support, which could be used in usbkbd
    and other usb devices driver when the asynchronous interrupt
    processing is supported.

    Signed-off-by: Zhang Wei <wei.zhang@freescale.com

commit 9a1d00fa47c1e05e3fdb60b33213af4e18d4c18e
Author: Rodolfo Giometti <giometti@linux.it>
Date:	Wed Jun 6 10:08:12 2007 +0200

    ISP116x: delay for crappy USB keys

    Using some (very) slow USB keys cause the USB host controller buffers
    are not ready to be read by the CPU so we need an extra delay before
    reading the USB storage data.

    Signed-off-by: Rodolfo Giometti <giometti@linux.it>

commit 09444143670c9c2243cb7aba9f70b3713d33bed1
Author: Markus Klotzbuecher <mk@denx.de>
Date:	Wed Jun 6 10:08:12 2007 +0200

    Change duplicate usb_cpu_init_fail to usb_board_init_fail

    Thanks to Liew Tsi Chung <Tsi-chung.Liew@freescale.com> for pointing
    this out.

    Signed-off-by: Markus Klotzbuecher <mk@denx.de>

commit 32922cdc470fdfd39bea0c1c4f582d3fb340421e
Author: Ed Swarthout <Ed.Swarthout@freescale.com>
Date:	Tue Jun 5 12:30:52 2007 -0500

    mpc8641 image size cleanup

    e600 does not have a bootpg restriction.
    Move the version string to beginning of image at fff00000.
    Resetvec.S is not needed.
    Update flash copy instructions.
    Add tftpflash env variable

    Signed-off-by: Ed Swarthout <Ed.Swarthout@freescale.com>
    Signed-off-by: Jon Loeliger <jdl@freescale.com>

commit e3cbe1f93c5722f8ebbad468e30c069a2b511097
Author: Benoît Monin <bmonin@adeneo.eu>
Date:	Mon Jun 4 08:36:05 2007 +0200

    [PATCH] Fix ppc4xx bootstrap letter displayed on startup

    The attached patch is mainly cosmetic, allowing u-boot to
    display the correct bootstrap option letter according to the
    datasheets.

    The original patch was extended with 405EZ support by Stefan
    Roese.

    Signed-off-by: Benoit Monin <bmonin@adeneo.eu>
    Signed-off-by: Stefan Roese <sr@denx.de>

commit 5b1313fb2758ffce8b624457f777d8cc6709608d
Author: Nikita V. Youshchenko <yoush@debian.org>
Date:	Wed May 23 12:45:19 2007 +0400

    fix compilation problem for mpc8349itx CFG_RAMBOOT

    Current include/configs/MPC8349ITX.h does contain some support for building
    image that will be started from memory (without putting in into flash).
    It could be triggered by building with TEXT_BASE set to a low value.

    However, this support is incomplete: using of low TEXT_BASE causes
    defining configuration macros in inconsistent way, which later leads
    to compilation errors. In particular. flash support is being disabled,
    but then flash structures get referenced.

    This patch fixes this, making it possible to build with low TEXT_BASE.

    Signed-Off-By: Nikita Youshchenko <yoush@debian.org>

    Signed-off-by: Kim Phillips <kim.phillips@freescale.com>

commit 8a364f0970de49949d635e60accf463c6443ef8c
Author: Nikita V. Youshchenko <yoush@debian.org>
Date:	Wed May 23 12:45:25 2007 +0400

    add missing 'console' var to default mpc8349itx config

    Signed-off-by: Kim Phillips <kim.phillips@freescale.com>

commit 18d156eb37c90fadc8ec7a81a3b89176161f85b7
Author: Stefan Roese <sr@denx.de>
Date:	Fri Jun 1 16:18:17 2007 +0200

    ppc4xx: Add missing file for Bamboo NAND booting support

    Signed-off-by: Stefan Roese <sr@denx.de>

commit 155a96478a0881e6da96cbbbcf34952d6a3b1b4b
Author: Stefan Roese <sr@denx.de>
Date:	Fri Jun 1 15:58:19 2007 +0200

    ppc4xx: Undo Sequoia patch for dynamic EBC speed support of 83MHz

    This patch undoes the patch by Jeff Mann with commit-id ada4697d. As
    suggested by AMCC it is not recommended to dynamically change the EBC
    speed after bootup. So we undo this change to be on the safe side.

    Signed-off-by: Stefan Roese <sr@denx.de>

commit 9d9096043e8f713d4bf1743d32e1459e6a11644b
Author: Stefan Roese <sr@denx.de>
Date:	Fri Jun 1 15:29:04 2007 +0200

    ppc4xx: Update Sequoia NAND booting support with ECC

    Signed-off-by: Stefan Roese <sr@denx.de>

commit cf959c7d6687567c308e366e9581e1a5aff5cc5b
Author: Stefan Roese <sr@denx.de>
Date:	Fri Jun 1 15:27:11 2007 +0200

    ppc4xx: Add NAND booting support for AMCC Bamboo (440EP) eval board

    This patch adds NAND booting support for the AMCC Bamboo eval board.
    Since the NAND-SPL boot image is limited to 4kbytes, this version
    only supports the onboard 64MBytes of DDR. The DIMM modules can't be
    supported, since the setup code for I2C DIMM autodetection and
    configuration is too big for this NAND bootloader.

    Signed-off-by: Stefan Roese <sr@denx.de>

commit 42be56f53c8b107868e6125c8524ae84293e95a7
Author: Stefan Roese <sr@denx.de>
Date:	Fri Jun 1 15:23:04 2007 +0200

    NAND: Add ECC support to NAND booting support in nand_spl/nand_boot.c

    The U-Boot NAND booting support is now extended to support ECC
    upon loading of the NAND U-Boot image.

    Tested on AMCC Sequoia (440EPx) and Bamboo (440EP).

    Signed-off-by: Stefan Roese <sr@denx.de>

commit a471db07fbb65a841ffc9f4f112562b945230f98
Author: Stefan Roese <sr@denx.de>
Date:	Fri Jun 1 15:19:29 2007 +0200

    ppc4xx: Prepare Bamboo port for NAND booting support

    This patch updates the "normal" Bamboo NOR booting port, so
    that it is compatible with the coming soon NAND booting
    Bamboo port.

    It also enables the 2nd NAND flash on the Bamboo.

    Signed-off-by: Stefan Roese <sr@denx.de>

commit 53ad02103fb8be4138a9937a8ab91fcdff7b4987
Author: Stefan Roese <sr@denx.de>
Date:	Fri Jun 1 15:16:58 2007 +0200

    ppc4xx: Update in_be32() functions and friends to latest Linux version

    Signed-off-by: Stefan Roese <sr@denx.de>

commit 91da09cfbce0c1de05d6d84aa8363d666fa7ea3c
Author: Stefan Roese <sr@denx.de>
Date:	Fri Jun 1 15:15:12 2007 +0200

    NAND: Add hardware ECC support to the PPC4xx NAND driver ndfc.c

    This patch adds hardware ECC support to the NDFC driver. It also
    changes the register access from using the "simple" in32/out32
    functions to the in_be32/out_be32 functions, which make sure
    that the access is correctly synced. This is the only recommended
    access to SoC registers in the current Linux kernel.

    Signed-off-by: Stefan Roese <sr@denx.de>

commit 17b5e862287cca76f19dcf8b741e61a7d06617f2
Author: Stefan Roese <sr@denx.de>
Date:	Fri Jun 1 15:12:15 2007 +0200

    NAND: Update nand_ecc.c to latest Linux version

    This patch updates the nand_ecc code to the latest Linux version.
    The main reason for this is the more compact code. This makes
    it possible to include the ECC code into the NAND bootloader
    image (NAND_SPL) for PPC4xx.

    Signed-off-by: Stefan Roese <sr@denx.de>

commit d2d432760d2199d0e8558fdd9d1789b8131abcf7
Author: Stefan Roese <sr@denx.de>
Date:	Fri Jun 1 15:09:50 2007 +0200

    ppc4xx: 44x DDR driver code cleanup and small fix for Bamboo

    Signed-off-by: Stefan Roese <sr@denx.de>

commit e4bbed2803a2ad0521c7362f5d3e065f99abaedc
Author: Stefan Roese <sr@denx.de>
Date:	Fri Jun 1 13:45:24 2007 +0200

    ppc4xx: Change Luan config file to support ECC

    With the updated 44x DDR2 driver the Luan board now supports
    ECC generation and checking.

    Signed-off-by: Stefan Roese <sr@denx.de>

commit 7187db73491c8de0fb56efb5e5134ba5ec443089
Author: Stefan Roese <sr@denx.de>
Date:	Fri Jun 1 13:45:00 2007 +0200

    ppc4xx: Update 44x_spd_ddr2 code (440SP/440SPe)

    Add config option for 180 degree advance clock control as needed
    for the AMCC Luan eval board.

    Signed-off-by: Stefan Roese <sr@denx.de>

commit ee1529838abbfaa35f14e3ffbeaaba693159475f
Author: Wolfgang Denk <wd@denx.de>
Date:	Thu May 31 17:20:09 2007 +0200

    Add support for STX GP3SSA (stxssa) Board with 4 MiB flash.

    Signed-off-by: Wolfgang Denk <wd@denx.de>

commit 7049288fb1f16f1b317140226cdebd07bd416395
Author: Bartlomiej Sieka <tur@semihalf.com>
Date:	Sun May 27 17:26:46 2007 +0200

    Motion-PRO: Code cleanup, fix of a typo in OF_STDOUT_PATH.

    Signed-off-by: Bartlomiej Sieka <tur@semihalf.com>

commit 4520fd4d2c450da49637216aa0e53739b61c60ac
Author: Bartlomiej Sieka <tur@semihalf.com>
Date:	Sun May 27 17:06:36 2007 +0200

    Motion-PRO: Add support for redundant environment.

    Enable redundant environment, add a MTD partition for it; also add env.
    variable command for passing MTD partitions to the kernel command line.

    Signed-off-by: Piotr Kruszynski <ppk@semihalf.com>
    Acked-by: Bartlomiej Sieka <tur@semihalf.com>

commit a26eabeec31746f06d309103690892805696e344
Author: Bartlomiej Sieka <tur@semihalf.com>
Date:	Sun May 27 17:05:11 2007 +0200

    Motion-PRO: Change maximum console buffer size from 256 to 1024 bytes.

    Allow passing longer command line to the kernel - useful especially
    for passing MTD partition layout.

    Signed-off-by: Piotr Kruszynski <ppk@semihalf.com>
    Acked-by: Bartlomiej Sieka <tur@semihalf.com>

commit 9160b96f71483a116de81c68985e8ee306d36764
Author: Bartlomiej Sieka <tur@semihalf.com>
Date:	Sun May 27 17:04:18 2007 +0200

    Fix: Add missing NULL termination in strings expanded by macros parser.

    Signed-off-by: Piotr Kruszynski <ppk@semihalf.com>
    Acked-by: Bartlomiej Sieka <tur@semihalf.com>

commit 630ec84aef7228fc1dbfb38dec78541403a786cd
Author: Bartlomiej Sieka <tur@semihalf.com>
Date:	Sun May 27 17:03:37 2007 +0200

    Motion-PRO: Update EEPROM's page write bits and write delay.

    Change EEPROM configuration according to the datasheet: "The 24C01A and 24C02A
    have a page write capability of two bytes", and "This device offers fast (1ms)
    byte write". Add 3ms of extra delay.

    Signed-off-by: Piotr Kruszynski <ppk@semihalf.com>
    Acked-by: Bartlomiej Sieka <tur@semihalf.com>

commit c00125e07c1ebc125bab40e1e18bceed8be0c162
Author: Bartlomiej Sieka <tur@semihalf.com>
Date:	Sun May 27 16:58:45 2007 +0200

    MPC5XXX, Motion-PRO: Fix PHY initialization problem.

    After being reset in mpc5xxx_fec_init_phy(), PHY goes into FX mode, in which
    networking does not function. This commit switches PHY to TX mode by clearing
    the FX_SEL bit of Mode Control Register. It also reverses commit
    008861a2f3ef2c062744d733787c7e530a1b8761, i.e., a temporary workaround.

    Signed-off-by: Grzegorz Bernacki <gjb@semihalf.com>
    Acked-by: Bartlomiej Sieka <tur@semihalf.com>

commit 93b78f534a6e708b4cf1a4ffb4d8438c67a007db
Author: Bartlomiej Sieka <tur@semihalf.com>
Date:	Sun May 27 16:57:15 2007 +0200

    Motion-PRO: Add support for the temperature sensor.

    Signed-off-by: Piotr Kruszynski <ppk@semihalf.com>
    Acked-by: Bartlomiej Sieka <tur@semihalf.com>

commit c75e639630cc132dc19cd1ecda5922c0db0bfbba
Author: Bartlomiej Sieka <tur@semihalf.com>
Date:	Sun May 27 16:55:23 2007 +0200

    Motion-PRO: Add displaying of CPLD revision information during boot.

    Signed-off-by: Jan Wrobel <wrr@semihalf.com>
    Acked-by: Bartlomiej Sieka <tur@semihalf.com>

commit c99512d6bd3973f01ca2fc4896d829b46e68f150
Author: Bartlomiej Sieka <tur@semihalf.com>
Date:	Sun May 27 16:53:43 2007 +0200

    MPC5xxx: Change names of defines related to IPB and PCI clocks.

    Both CFG_PCISPEED_66 and CFG_IPBSPEED_133 are misnamed, as defining
    them does not cause PCI or IPB clocks to run at the specified speed.
    Instead, they configure divisors used to calculate said clocks. This
    patch renames the defines according to their real function.

    Signed-off-by: Grzegorz Bernacki <gjb@semihalf.com>
    Acked-by: Bartlomiej Sieka <tur@semihalf.com>

commit a11c0b85dc3664bb3c1e781137118730c8f619ab
Author: Bartlomiej Sieka <tur@semihalf.com>
Date:	Sun May 27 16:51:48 2007 +0200

    Motion-PRO: Add LED support.

    Signed-off-by: Jan Wrobel <wrr@semihalf.com>
    Signed-off-by: Marian Balakowicz <m8@semihalf.com>
    Acked-by: Bartlomiej Sieka <tur@semihalf.com>

commit 7ebb4479b07ff294eb4d76e420753a0349f7c93b
Author: Ulf Samuelsson <ulf@atmel.com>
Date:	Thu May 24 12:12:47 2007 +0200

    [PATCH][NAND] Define the Vendor Id for Micron NAND Flash

    Signed-off-by: Ulf Samuelsson <ulf@atmel.com>
    Signed-off-by: Ladislav Michl <ladis@linux-mips.org>
    Signed-off-by: Stefan Roese <sr@denx.de>

commit d756894722c888d09a9fa1df8323753772d3dcce
Author: Stefan Roese <sr@denx.de>
Date:	Thu May 24 09:49:00 2007 +0200

    ppc4xx: Fix small 405EZ OCM initilization bug in start.S

    As pointed out by Bruce Adler <bruce.adler@acm.org> this patch
    fixes a small bug in the 405EZ OCM initialization. Thanks for
    spotting.

    Signed-off-by: Stefan Roese <sr@denx.de>

commit 5d4a179013d59a76446462e1eb0a969fba63eb81
Author: Stefan Roese <sr@denx.de>
Date:	Thu May 24 08:22:09 2007 +0200

    ppc4xx: Update AMCC Acadia support for board revision 1.1

    This patch updates the Acadia (405EZ) support for the new 1.1 board
    revision. It also adds support for NAND FLASH via the 4xx NDFC.

    Please note that the jumper J7 must be in position 2-3 for this
    NAND support. Position 1-2 is for NAND booting only. NAND booting
    support will follow later.

    Signed-off-by: Stefan Roese <sr@denx.de>

commit 822d55365bb557e084d0e33625a6dedcc866110b
Author: Jon Loeliger <jdl@freescale.com>
Date:	Wed May 23 14:09:46 2007 -0500

    Add LIST_86xx MAKEALL target for PowerPC builds.

    Signed-off-by: Jon Loeliger <jdl@freescale.com>

commit 9f0077abd69f7a7c756a915b961037302be3e6f2
Author: Stefan Roese <sr@denx.de>
Date:	Tue May 22 12:48:09 2007 +0200

    ppc4xx: Use do { ... } while (0) for CPR & SDR access macros

    Signed-off-by: Stefan Roese <sr@denx.de>

commit 6f3dfc139a838b0841c151efe00ad47db2366e79
Author: Stefan Roese <sr@denx.de>
Date:	Tue May 22 12:46:10 2007 +0200

    ppc4xx: Add 405 support to 4xx NAND driver ndfc.c

    This patch adds support for 405 PPC's to the 4xx NAND driver
    ndfc.c. This is in preparation for the new AMCC 405EZ.

    Signed-off-by: Stefan Roese <sr@denx.de>

commit 10603d76767426be803dadd4fb688b97eb69481c
Author: Stefan Roese <sr@denx.de>
Date:	Mon May 21 07:41:22 2007 +0200

    ppc4xx: Fix problem in 405EZ OCM initialization

    As spotted by Bruce Adler this patch fixes an initialization problem
    for the 405EZ OCM.

    Signed-off-by: Stefan Roese <sr@denx.de>

commit 3e3b956906eba9e4ad7931581ecedaad10eccce8
Author: Peter Pearse <peter.pearse@arm.com>
Date:	Fri May 18 16:47:03 2007 +0100

    Reduce line lengths to 80 characters max.

commit 93ef45c9ddfdd9fc17c4e74bd8e2f2456580eb72
Author: Peter Pearse <peter.pearse@arm.com>
Date:	Fri May 18 14:34:07 2007 +0100

    Makefile permissions

commit 1443a31457d68f7e8f0b9403e9832ec1e79dc59d
Author: Peter Pearse <peter.pearse@arm.com>
Date:	Fri May 18 14:33:11 2007 +0100

    Makefile permissions

commit 255a3577c848706441daee0174543efe205a77f8
Author: Kim Phillips <kim.phillips@freescale.com>
Date:	Wed May 16 16:52:19 2007 -0500

    Reduce CONFIG_MPC8YXX_TSECx to CONFIG_TSECx

    For all practical u-boot purposes, TSECs don't differ throughout the
    mpc8[356]xx families; reduce CONFIG_MPC8YXX_TSECx to CONFIG_TSECx.

    Signed-off-by: Kim Phillips <kim.phillips@freescale.com>

commit 70124c2602ae2d4c5d3dba05b482d91548242de8
Author: Stefano Babic <sbabic@denx.de>
Date:	Wed May 16 14:49:12 2007 +0200

    Fix compile problem cause my Microblaze merge

    Signed-off-by: Stefano Babic <sbabic@denx.de>

commit ada4697d0230d6da552867777f98a67ec3ba2579
Author: Jeffrey Mann <mannj@embeddedplanet.com>
Date:	Wed May 16 13:23:10 2007 +0200

    [PATCH] Run new sequoia boards with an EBC speed of 83MHz

    Because the Sequoia board does not boot with an EBC faster than 66MHz,
    the clock divider are changed after the initial boot process.

    This allows for maximum clocking speeds  to be achieved on newer boards.
    Sequoia boards with 666.66 MHz processors require that the EBC divider
    be set to 3 in order to start the initial boot process at a slower EBC
    speed. After the initial boot process, the divider can be set back to 2,
    which will cause the boards to run at 83.333MHz. This is backward
    compatible with boards with 533.33 MHz processors, as these boards will
    already be set with an EBC divider of 2.

    Signed-off-by: Jeffrey Mann <mannj@embeddedplanet.com>

commit a7676ea7732f3c596805079fed7e5c9fac652cfc
Author: Wolfgang Denk <wd@denx.de>
Date:	Wed May 16 01:16:53 2007 +0200

    Minor Coding Style cleanup, update CHANGELOG.

    Signed-off-by: Wolfgang Denk <wd@denx.de>

commit d62f64cc23a940eafe712c776b3249e4160753d1
Author: Wolfgang Denk <wd@denx.de>
Date:	Wed May 16 00:13:33 2007 +0200

    Coding Style Cleanup, new CHANGELOG

commit 3162eb836903c8b247fdc7470dd39bfa6996f495
Author: Wolfgang Denk <wd@denx.de>
Date:	Tue May 15 23:38:05 2007 +0200

    Minor coding style cleanup.

commit 66d9dbec1cc27d6398ee6cf84639dbe14971251e
Author: mushtaq khan <mushtaq_k@procsys.com>
Date:	Fri Apr 20 14:23:02 2007 +0530

    Add driver for S-ATA-controller on Intel processors with South
    Bridge, ICH-5, ICH-6 and ICH-7.

    Implementation:

    1. Code is divided in to two files. All functions, which are
       controller specific are kept in "drivers/ata_piix.c" file and
       functions, which are not controller specific, are kept in
       "common/cmd_sata.c" file.

    2. Reading and Writing from the S-ATA drive is done using PIO method.

    3. Driver can be configured for 48-bit addressing by defining macro
       CONFIG_LBA48, if this macro is not defined driver uses the 28-bit
       addressing.

    4. S-ATA read function is hooked to the File system, commands like
       ext2ls and ext2load file can be used. This has been tested.

    5. U-Boot command "SATA_init" is added, which initializes the S-ATA
       controller and identifies the S-ATA drives connected to it.

    6. U-Boot command "sata" is added, which is used to read/write, print
       partition table and get info about the drives present. This I have
       implemented in same way as "ide" command is implemented in U-Boot.

    7. This driver is for S-ATA in native mode.

    8. This driver does not support the Native command queuing and
       Hot-plugging.

    Signed-off-by: Mushtaq Khan <mushtaq_k@procsys.com>

commit 644e6fb4eb8be90ea04ba34b643a8bf019d680e0
Author: mushtaq khan <mushtaq_k@procsys.com>
Date:	Mon Apr 30 15:57:22 2007 +0530

    Fixes bug clearing the bss section for i386

    Hi,
    There is a bug in the code of clearing the bss section for processor
    i386.(File: cpu/i386/start.S)
    In the code, bss_start addr (starting addr of bss section) is put into
    the register %eax, but the code which clears the bss section refers to
    the addr pointed by %edi.

    This patch fixes this bug by putting bss_start into %edi register.

    Signed-off-by: Mushtaq Khan <mushtaq_k@procsys.com>

commit c3243cf7b490057277d61acffe4ad0946f9eb4a4
Author: Joe Hamman <joe.hamman@embeddedspecialties.com>
Date:	Mon Apr 30 16:47:28 2007 -0500

    Add support for BCM5464 Quad Phy

    Added support for Broadcom's BCM5464 Quad Phy

    Signed-off-by: Joe Hamman <joe.hamman@embeddedspecialties.com>

commit 1b305bdc754c8468e1d5d858f5dcf8a7a0a4bb7a
Author: Zang Roy-r61911 <tie-fei.zang@freescale.com>
Date:	Wed May 9 08:10:57 2007 +0800

    Search the exception table with linear algorithm

    Search the exception table with linear algorithm instead of
    bisecting algorithm.
    Because the exception table might be unsorted.

    Signed-off-by: Roy Zang <tie-fei.zang@freescale.com>

commit 5dfaa50eb819686bfba1927e8c5b8a70a4d65fd3
Author: Aubrey.Li <aubrey.adi@gmail.com>
Date:	Mon May 14 11:47:35 2007 +0800

    Fix compilation issues on MACOSX

    Singed-off-by: Marc Hoffman <Marc.Hoffman@analog.com>
    Signed-off-by: Aubrey Li <aubrey.adi@gmail.com>

commit 56fd7162985c412317bbf763a225fba23c64fd31
Author: Stephen Williams <steve@icarus.com>
Date:	Tue May 15 07:55:42 2007 -0700

    Fix for compile of JSE target

    The attached patch fixes the compile of the JSE board in the
    denx git as of 14 may 2007. It is an extremely simple patch,
    it just adds the missing define of CFG_SYSTEMACE_WIDTH.

     Fix to compile JSE against 20070514 git of u-boot

commit 61936667e86a250ae12fd2dc189d3588f0a59e0b
Author: Stefan Roese <sr@denx.de>
Date:	Fri May 11 12:01:49 2007 +0200

    ppc4xx: Add mtcpr/mfcpr access macros

    Signed-off-by: Stefan Roese <sr@denx.de>

commit 343c48bd84606c4025c8a7c7263fda465d6e284c
Author: Stefan Roese <sr@denx.de>
Date:	Fri May 11 12:01:06 2007 +0200

    ppc4xx: Set bd->bi_pci_busfreq on 440EPx/GRx too

    Signed-off-by: Stefan Roese <sr@denx.de>

commit 7d98ba770a7eaefa29ce927f31a0956df85bf650
Author: Piotr Kruszynski <ppk@semihalf.com>
Date:	Thu May 10 16:55:52 2007 +0200

    [Motion-PRO] Add MTD and JFFS2 support, also add default partition
    definition.

commit 65fb6a676e821f9570a2a376dc204bf611ce5f81
Author: Peter Pearse <peter.pearse@arm.com>
Date:	Wed May 9 11:42:44 2007 +0100

    Add the board directory for SMN42

commit 160131bf965785419626df6c388729fe0b597992
Author: Peter Pearse <peter.pearse@arm.com>
Date:	Wed May 9 11:41:58 2007 +0100

    Add the files for the SMN42 board

commit 5c6d2b5a500f8c49670de8910150b78a41f781fc
Author: Peter Pearse <peter.pearse@arm.com>
Date:	Wed May 9 11:40:34 2007 +0100

    Remove the deleted files for the SMN42 patch

commit b0d8f5bf0d215adc9424cb228b2484dbf07f7761
Author: Peter Pearse <peter.pearse@arm.com>
Date:	Wed May 9 11:37:56 2007 +0100

    New board SMN42 branch

commit 29f3be0caf0799ca6b89dfd9824c15619a50000f
Author: Peter Pearse <peter.pearse@arm.com>
Date:	Wed May 9 10:24:38 2007 +0100

    Makefile permissions

commit b84289b595731e8851df46e893845cc1322c9b9b
Author: Ed Swarthout <Ed.Swarthout@freescale.com>
Date:	Tue May 8 14:17:07 2007 -0500

    8641hpcn: Fix Makefile after moving pixis to board/freescale.

    The OBJTREE != SRCTREE build scenario was broken.
    This fixes it.

    Signed-off-by: Ed Swarthout <Ed.Swarthout@freescale.com>
    Signed-off-by: Jon Loeliger <jdl@freescale.com>

commit e69f66c6ebe82bbbd1da766bc4eda40ec7ee5af1
Author: Michal Simek <monstr@monstr.eu>
Date:	Tue May 8 15:57:43 2007 +0200

    add: reading special purpose registers

commit 1a50f164beb065f360fbddb76029607d6b099698
Author: Michal Simek <monstr@monstr.eu>
Date:	Tue May 8 14:52:52 2007 +0200

    add: Microblaze V5 exception handling

commit ab874d5047e5d30dbc1e517ff26083efffa98ecb
Author: Michal Simek <monstr@monstr.eu>
Date:	Tue May 8 14:39:11 2007 +0200

    add: FSL control read and write

commit de1de02a7cbf05e6b63e0d8ffc624f12493f6ba3
Author: Piotr Kruszynski <ppk@semihalf.com>
Date:	Tue May 8 13:05:44 2007 +0200

    [Motion-PRO] Add support for I2C, EEPROM and RTC.

commit fa5c2ba123b1bf88455bfc21db5e786ca045029d
Author: Bartlomiej Sieka <tur@semihalf.com>
Date:	Tue May 8 10:23:56 2007 +0200

    [Motion-PRO] Add ATA support. Add CF-booting commands to the default
    environment.

commit 06241d50a3ab1b20a0b08baeeaffcaa23ae4b839
Author: Bartlomiej Sieka <tur@semihalf.com>
Date:	Tue May 8 09:39:12 2007 +0200

    [Motion-PRO] Change IPB clock frequency from 50MHz to 100MHz. This
    eliminates networking problems in Linux (timeouts).

commit 1f1369c34b629be94702684d41d3fddf0f6193e7
Author: Bartlomiej Sieka <tur@semihalf.com>
Date:	Tue May 8 09:21:57 2007 +0200

    [Motion-PRO] Enable Flat Device Tree support and modify default environment
    to allow booting of FDT-expecting kernels.

commit fb05f6da35ea1c15c553abe6f23f656bf18dc5db
Author: Michal Simek <monstr@monstr.eu>
Date:	Mon May 7 23:58:31 2007 +0200

    new: USE_MSR_INTR support

commit 008861a2f3ef2c062744d733787c7e530a1b8761
Author: Bartlomiej Sieka <tur@semihalf.com>
Date:	Mon May 7 22:36:15 2007 +0200

    [MPC5xxx] There are networking problems on the Motion-PRO board with
    current PHY initalization code (tftp timeouts all the time). This commit
    temporarily disables PHY initalization sequence to make the networking
    operational, until a fix is found.

commit abca901869c3760b6c5fecb825db6c1d91a78a93
Author: Wolfgang Denk <wd@denx.de>
Date:	Mon May 7 22:10:36 2007 +0200

    Get rid of duplicated file (see include/configs/sbc8560.h instead)

    Signed-off-by: Wolfgang Denk <wd@denx.de>

commit 207b7b2c9d9752e0f6478c30c29b7087f6e6cbb6
Author: Wolfgang Denk <wd@denx.de>
Date:	Mon May 7 22:07:08 2007 +0200

    Get rid of duplicated file (see doc/README.SBC8560 instead)

    Signed-off-by: Wolfgang Denk <wd@denx.de>

commit a7bac7e9b57ba948051beb19ec5be3a75ce75383
Author: Michal Simek <monstr@monstr.eu>
Date:	Mon May 7 19:43:10 2007 +0200

    fix: read and write MSR - repair number of parameters

commit 193b4a3bb3acaddf798da8de0da05d94ba8774ee
Author: Jeffrey Mann <mannj@embeddedplanet.com>
Date:	Mon May 7 19:42:49 2007 +0200

    [PATCH] ppc4xx: Fix CONFIG_SYS_CLK_FREQ definition in Sequoia config file

    A '3' got cut off in the formatting of the last patch to automatically
    change the clock speed of the system clock on sequoia board.

    Signed-off-by: Jeffrey Mann <mannj@embeddedplanet.com>
    Signed-off-by: Stefan Roese <sr@denx.de>

commit 19bf1fbad7f19d5a120be9b1daf136e052fcab39
Author: Michal Simek <monstr@monstr.eu>
Date:	Mon May 7 19:33:51 2007 +0200

    new: fsl interrupt support
    FSL_Has_data is connected to INTC.

commit 792032baa7d625e34c981ab6df521911bd8dc861
Author: Michal Simek <monstr@monstr.eu>
Date:	Mon May 7 19:30:12 2007 +0200

    fix: interrupt handler
    remove asm code

commit f3f001a341ef185d0f13841be5b5dc3395aacc31
Author: Michal Simek <monstr@monstr.eu>
Date:	Mon May 7 19:25:08 2007 +0200

    fix: remove asm code

commit fb7c2dbef02c9f6f8d7b04ec4c2bfb91418b9c01
Author: Michal Simek <monstr@monstr.eu>
Date:	Mon May 7 19:12:43 2007 +0200

    fix: clean interrupt

commit 42efed6130c8fcf7da881385b5427065d2801757
Author: Michal Simek <monstr@monstr.eu>
Date:	Mon May 7 17:22:25 2007 +0200

    fix: interrupt handler for multiple sources

commit 48fbd3a4cdabbebc1debd7eed73c00c2caf914f6
Author: Michal Simek <monstr@monstr.eu>
Date:	Mon May 7 17:11:09 2007 +0200

    new: add writing to msr register

commit 3a619dd7bed03e8b4d22a3911f90fd12af5376c2
Author: Markus Klotzbuecher <mk@denx.de>
Date:	Mon May 7 16:43:56 2007 +0200

    Fix an ancient CHANGELOG conflict

commit ac4cd59d59c9bf3f89cb7a344abf8184d678f562
Author: Timur Tabi <timur@freescale.com>
Date:	Sat May 5 08:12:30 2007 +0200

    5xxx: write MAC address to mac-address and local-mac-address

    Some device trees have a mac-address property, some have local-mac-address,
    and some have both.  To support all of these device trees, ftp_cpu_setup()
    should write the MAC address to mac-address and local-mac-address, if they
    exist.

    Signed-off-by: Timur Tabi <timur@freescale.com>
    Acked-by: Grant Likely <grant.likely@secretlab.ca>

commit a9d87e2707dcb249f6bb7f7ff7e00acd8cda9fd2
Author: Grzegorz Wianecki <grzegorz.wianecki@gmail.com>
Date:	Sun Apr 29 14:01:54 2007 +0200

    [PATCH] Use PVR to distinguish MPC5200B from MPC5200 in boot message

    MPC5200B systems are incorrectly reported as MPC5200 in U-Boot start-up
    message. Use PVR to distinguish between the two variants, and print proper CPU
    information.

    Signed-off-by: Grzegorz Wianecki <grzegorz.wianecki@gmail.com>
    Signed-off-by: Bartlomiej Sieka <tur@semihalf.com>
    Signed-off-by: Grant Likely <grant.likely@secretlab.ca>

commit 4ec5bd55ed1ffa91a774af298769621f4fbb18c1
Author: Ladislav Michl <ladis@linux-mips.org>
Date:	Wed Apr 25 16:01:26 2007 +0200

    [PATCH] simplify silent console

    Signed-off-by: Ladislav Michl <ladis@linux-mips.org>
    Acked-by: Stefan Roese <sr@denx.de>

commit b7598a43f2b421a713d8135e98a42c37d9eb9df0
Author: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Date:	Mon Apr 23 15:30:39 2007 +0200

    [PATCH] Avoid assigning PCI resources from zero address

    If a PCI IDE card happens to get a zero address assigned to it, the Linux IDE
    core complains and IDE drivers fails to work.  Also, assigning zero to a BAR
    was illegal according to PCI 2.1 (the later revisions seem to have excluded the
    sentence about "0" being considered an invalid address) -- so, use a reasonable
    starting value of 0x1000 (that's what the most Linux archs are using).

    Alternatively, one might have fixed the calls to pci_set_region() individually
    (some code even seems to have taken care of this issue) but that would have
    been a lot more work. :-)

    Signed-off-by: Sergei Shtylyov <sshtylyov@ru.mvista.com>
    Acked-by: Stefan Roese <sr@denx.de>

commit 9ffd451afeb08e5be7ddae680487ec962b2bca25
Author: Jeffrey Mann <mannj@embeddedplanet.com>
Date:	Mon Apr 23 14:00:11 2007 +0200

    [patch] setenv(...) can delete environmentalvariables

    update setenv() function so that entering a NULL value for the
    variable's value will delete the environmental variable

    Signed-off-by: Jeffrey Mann <mannj@embeddedplanet.com>
    Acked-by: Stefan Roese <sr@denx.de>

commit ebd0a0ae05a44769c4e27458ad4e9f3438250443
Author: Mike Frysinger <vapier@gentoo.org>
Date:	Mon Apr 23 13:54:24 2007 +0200

    [patch] use unsigned char in smc91111 driver for mac

    the v_mac variable in the smc91111 driver is declared as a signed char ...
    this causes problems when one of the bytes in the MAC is "signed" like 0xE0
    because when it gets printed out, you get a display like:
    0xFFFFFFE0 and that's no good

    Signed-off-by: Mike Frysinger <vapier@gentoo.org>

commit ffc50f9bb194343c6303517a517708457a5eb6b8
Author: Michal Simek <monstr@monstr.eu>
Date:	Sat May 5 18:54:42 2007 +0200

    new: FSL and MSR support #2

commit f7e2e0eb0668136305f78bb9c21be79b48a34247
Author: Michal Simek <monstr@monstr.eu>
Date:	Sat May 5 18:27:16 2007 +0200

    new: FSL and MSR support

commit 2f15278c2eb911c668b4fe562130b78cf554d139
Author: Wolfgang Denk <wd@denx.de>
Date:	Sat May 5 18:23:11 2007 +0200

    Coding stylke cleanup; update CHANGELOG.

    Signed-off-by: Wolfgang Denk <wd@denx.de>

commit 885ec89b648a899a2f32393fd3ffd9f7234c4402
Author: Wolfgang Denk <wd@denx.de>
Date:	Sat May 5 18:05:02 2007 +0200

    Add STX GP3 SSA board to MAKEALL script; update CHANGELOG.

    Signed-off-by: Wolfgang Denk <wd@denx.de>

commit 5499645b3fe17a548af9dfc479ca6e2455f179a2
Author: Wolfgang Denk <wd@denx.de>
Date:	Sat May 5 17:15:50 2007 +0200

    Make "file" command happy with some config.mk files; update CHANGELOG

commit e3b8c78bc2489c27ae020986ef0eaca684866cef
Author: Jeffrey Mann <mannj@embeddedplanet.com>
Date:	Sat May 5 08:32:14 2007 +0200

    ppc4xx: Detect if the sysclk on Sequoia is 33 or 33.333 MHz

    The AMCC Secquoia board has been changed in a new revision from using a
    33.000 MHz clock to a 33.333 MHz system clock. A bit in the CPLD
    indicates the difference. This patch reads that bit and uses the correct
    clock speed for the board. This code is backward compatable will all
    prior boards. All prior boards will be read as 33.000.

    Signed-off-by: Jeffrey Mann <mannj@embeddedplanet.com>
    Signed-off-by: Stefan Roese <sr@denx.de>

commit f544ff6656fca263ed1ebe39899b6d95da67c8b8
Author: Stefan Roese <sr@denx.de>
Date:	Sat May 5 08:29:01 2007 +0200

    ppc4xx: Sequoia: Remove cpu/ppc4xx/speed.c from NAND booting

    Using cpu/ppc4xx/speed.c to calculate the bus frequency is too big
    for the 4k NAND boot image so define bus_frequency to 133MHz here
    which is save for the refresh counter setup.

    Signed-off-by: Stefan Roese <sr@denx.de>

commit 2f550ab976405300f5b07bf2890800840d0aa05f
Author: Timur Tabi <timur@freescale.com>
Date:	Sat May 5 08:12:30 2007 +0200

    5xxx: write MAC address to mac-address and local-mac-address

    Some device trees have a mac-address property, some have local-mac-address,
    and some have both.  To support all of these device trees, ftp_cpu_setup()
    should write the MAC address to mac-address and local-mac-address, if they
    exist.

    Signed-off-by: Timur Tabi <timur@freescale.com>
    Acked-by: Grant Likely <grant.likely@secretlab.ca>

commit a79886590593ba1d667c840caa4940c61639f18f
Author: Thomas Knobloch <knobloch@siemens.com>
Date:	Sat May 5 07:04:42 2007 +0200

    NAND: Wrong calculation of page number in nand_block_bad()

    In case that there is no memory based bad block table available the
    function nand_block_checkbad() in drivers/mtd/nand/nand_base.c will call
    nand_block_bad() directly. When parameter 'getchip' is set to zero,
    nand_block_bad() will not right shift the offset to calculate the
    correct page number.

    Signed-off-by: Thomas Knobloch <knobloch@siemens.com>
    Signed-off-by: Stefan Roese <sr@denx.de>

commit 9877d7dcd1eebe61aa5d8b8ffe9c048ea426e6f6
Author: Wolfgang Denk <wd@denx.de>
Date:	Fri May 4 10:02:33 2007 +0200

    Fix initrd length corruption in bootm command.

    When using FDT Images, the length of an inital ramdisk was
    overwritten (bug introduced by commit 87a449c8, 22 Aug 2006).

    Patches by Timur Tabi & Johns Daniel.

    Signed-off-by: Wolfgang Denk <wd@denx.de>

commit 068aab660bc3912b930be5540e6b3f3fd6ad3c96
Author: Kim Phillips <kim.phillips@freescale.com>
Date:	Thu May 3 19:43:52 2007 -0500

    mpc83xx: fix trivial error in MAKEALL

    Signed-off-by: Kim Phillips <kim.phillips@freescale.com>

commit c64a89d6ce8584b9fc64f4e85da9ecac3cfc2c2a
Author: Wolfgang Denk <wd@denx.de>
Date:	Thu May 3 16:34:41 2007 +0200

    Update board configuration for STX GP3SSA board:

    Enable hush shell, environment in flash rather in EEPROM,
    more user-friendly default environment, etc.
    The simple EEPROM environment can be selected easily in the board
    config file.

    Signed-off-by: Wolfgang Denk <wd@denx.de>

commit 2c6fb199dc5756fc72f49d1f4de105e089049d65
Author: Wolfgang Denk <wd@denx.de>
Date:	Tue Apr 24 14:37:49 2007 +0200

    Cleanup STX GP3SSA code; fix build and compile problems.

commit 35171dc04e028ecacc23ad916a66295472555dbf
Author: Dan Malek <dan@embeddedalley.com>
Date:	Fri Jan 5 09:15:34 2007 +0100

    Add support for STX GP3SSA (stxssa) Board

    Signed-off-by Dan Malek, <dan@embeddedalley.com>

commit f2134f8e9eb006bdcd729e89f309c07b2fa45180
Author: Haavard Skinnemoen <hskinnemoen@atmel.com>
Date:	Wed May 2 13:31:53 2007 +0200

    macb: Don't restart autonegotiation if we already have link

    Rework macb_phy_init so that it doesn't attempt to re-negotiate if the
    link is already up.

    Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>

commit 04fcb5d38bc90779cd9a710d60702075986f0e29
Author: Haavard Skinnemoen <hskinnemoen@atmel.com>
Date:	Wed May 2 13:22:38 2007 +0200

    macb: Introduce a few barriers when dealing with DMA descriptors

    There were a few theoretical possibilities that the compiler might
    optimize away DMA descriptor reads and/or writes and thus cause
    synchronization problems with the hardware. Insert barriers where
    we depend on reads/writes actually hitting memory.

    Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>

commit ffa621a0d12a1ccd81c936c567f8917a213787a8
Author: Andy Fleming <afleming@freescale.com>
Date:	Sat Feb 24 01:08:13 2007 -0600

    Cleaned up some 85xx PCI bugs

    * Cleaned up the CDS PCI Config Tables and added NULL entries to
      the end
    * Fixed PCIe LAWBAR assignemt to use the cpu-relative address
    * Fixed 85xx PCI code to assign powar region sizes based on the
      config values (rather than hard-coding them)
    * Fixed the 8548 CDS PCI2 IO to once again have 0 as the base address

    Signed-off-by: Andy Fleming <afleming@freescale.com>

commit 6743105988fc44d5b0d30388c790607835aae7a6
Author: Andy Fleming <afleming@freescale.com>
Date:	Mon Apr 23 02:54:25 2007 -0500

    Add support for the 8568 MDS board

    This included some changes to common files:
    * Add 8568 processor SVR to various places
    * Add support for setting the qe bus-frequency value in the dts
    * Add the 8568MDS target to the Makefile

    Signed-off-by: Andy Fleming <afleming@freescale.com>

commit af1c2b84bf27c8565baddc82d1abb93700d10e2e
Author: David Updegraff <dave@cray.com>
Date:	Fri Apr 20 14:34:48 2007 -0500

    Add support for treating unknown PHYs as generic PHYs.

    When bringing up u-boot on new boards, PHY support sometimes gets
    neglected.	Most PHYs don't really need any special support,
    though.  By adding a generic entry that always matches if nothing
    else does, we can provide support for "unsupported" PHYs for the
    tsec.

    The generic PHY driver supports most PHYs, including gigabit.

    Signed-off-by: David Updegraff <dave@cray.com>
    Signed-off-by: Andy Fleming <afleming@freescale.com>

commit a75af9bfd8fff0499efdbb90601cec5a2afef117
Author: James Yang <James.Yang@freescale.com>
Date:	Wed Feb 7 15:28:04 2007 -0600

    Conditionalize 8641 Rev1.0 MCM workarounds

    Signed-off-by: James Yang <James.Yang@freescale.com>
    Signed-off-by: Jon Loeliger <jdl@freescale.com>

commit f64702b7fc8f8df39d31add770df6e372f9e9ce3
Author: Timur Tabi <timur@freescale.com>
Date:	Mon Apr 30 13:59:50 2007 -0500

    Fix memory initialization on MPC8349E-mITX

    Define CFG_DDR_SDRAM_CLK_CNTL for the MPC8349E-mITX and MPC8349E-mITX-GP.
    This allows ddr->sdram_clk_cntl to be properly initialized.  This is necessary
    on some ITX boards, notably those with a revision 3.1 CPU.

    Also change spd_sdram() in cpu/mpc83xx/spd_sdram.c to not write anything into
    ddr->sdram_clk_cntl if CFG_DDR_SDRAM_CLK_CNTL is not defined.

    Signed-off-by: Timur Tabi <timur@freescale.com>
    Acked-by: Michael Benedict <MBenedict@twacs.com>
    Signed-off-by: Kim Phillips <kim.phillips@freescale.com>

commit 54b2d434ae9d01787936f34fe1759cf3d7624ae3
Author: Kim Phillips <kim.phillips@freescale.com>
Date:	Mon Apr 30 15:26:21 2007 -0500

    mpc83xx: replace elaborate boottime verbosity with 'clocks' command

    and fix CPU: to align with Board: display text.

    Signed-off-by: Kim Phillips <kim.phillips@freescale.com>

commit c1ab82669d9525998c34e802a12cad662723f22a
Author: James Yang <James.Yang@freescale.com>
Date:	Fri Mar 16 13:02:53 2007 -0500

    Rewrote picos_to_clk() to avoid rounding errors.
    Clarified that conversion is to DRAM clocks rather than platform clocks.
    Made function static to spd_sdram.c.

    Signed-off-by: James Yang <James.Yang@freescale.com>
    Signed-off-by: Jon Loeliger <jdl@freescale.com>

commit 8b39501d28754e72726ce7fb02310e56dbdf116a
Author: Stefan Roese <sr@denx.de>
Date:	Sun Apr 29 14:13:01 2007 +0200

    ppc4xx: Bamboo: Use current NAND driver and *not* the legacy driver

    Signed-off-by: Stefan Roese <sr@denx.de>

commit 864aa6a6a466fcb92bf32b1d7dba79cd709b52c9
Author: Grzegorz Wianecki <grzegorz.wianecki@gmail.com>
Date:	Sun Apr 29 14:01:54 2007 +0200

    [PATCH] Use PVR to distinguish MPC5200B from MPC5200 in boot message

    MPC5200B systems are incorrectly reported as MPC5200 in U-Boot start-up
    message. Use PVR to distinguish between the two variants, and print proper CPU
    information.

    Signed-off-by: Grzegorz Wianecki <grzegorz.wianecki@gmail.com>
    Signed-off-by: Bartlomiej Sieka <tur@semihalf.com>
    Signed-off-by: Grant Likely <grant.likely@secretlab.ca>

commit 5c5d3242935cf3543af01142627494434834cf98
Author: Kim Phillips <kim.phillips@freescale.com>
Date:	Wed Apr 25 12:34:38 2007 -0500

    mpc83xx: minor fixups for 8313rdb introduction

commit ada4d40091f6ed4a4f0040e08d20db21967e4a67
Author: Ladislav Michl <ladis@linux-mips.org>
Date:	Wed Apr 25 16:01:26 2007 +0200

    [PATCH] simplify silent console

    Signed-off-by: Ladislav Michl <ladis@linux-mips.org>
    Acked-by: Stefan Roese <sr@denx.de>

commit 144876a380f5756f57412caf74c1d6dc201dd796
Author: Michal Simek <monstr@monstr.eu>
Date:	Tue Apr 24 23:01:02 2007 +0200

    [PATCH] MTD partition support, JFFS2 support

commit 37ed6cdd4159195bfad68d8a237f6adda8f482cb
Author: Matthias Fuchs <matthias.fuchs@esd-electronics.com>
Date:	Tue Apr 24 14:03:45 2007 +0200

    ppc4xx: setup 440EPx/GRx ZMII/RGMII bridge depending on PFC register content.

    Signed-off-by: Matthias Fuchs <matthias.fuchs@esd-electronics.com>

commit 66ed6cca3f340f7a8a06d9272ae2ef8e96f0273d
Author: Andy Fleming <afleming@freescale.com>
Date:	Mon Apr 23 02:37:47 2007 -0500

    Reworked 85xx speed detection code

    Changed the code to read the registers and calculate the clock
    rates, rather than using a "switch" statement.

    Idea from Andrew Klossner <andrew@cesa.opbu.xerox.com>

    Signed-off-by: Andy Fleming <afleming@freescale.com>

commit 81f481ca708ed6a56bf9c410e3191dbad581c565
Author: Andy Fleming <afleming@freescale.com>
Date:	Mon Apr 23 02:24:28 2007 -0500

    Enable 8544 support

    * Add support to the Makefile
    * Add 8544 configuration support to the tsec driver
    * Add 8544 SVR numbers to processor.h

    Signed-off-by: Ed Swarthout <Ed.Swarthout@freescale.com>
    Signed-off-by: Jon Loeliger <jdl@freescale.com>

commit 0d8c3a2096eaff8d7de89d45e9af4d4b0d4868fe
Author: Andy Fleming <afleming@freescale.com>
Date:	Fri Feb 23 17:12:25 2007 -0600

    Support 1G size on 8548

    e500v2 and newer cores support 1G page sizes.

    Signed-off-by: Ed Swarthout <Ed.Swarthout@freescale.com>
    Signed-off-by: Andy Fleming <afleming@freescale.com>

commit 45cef612cc601d2d1c890fbbd7cdc9609a189a46
Author: Andy Fleming <afleming@freescale.com>
Date:	Fri Feb 23 17:11:16 2007 -0600

    Changed BOOKE_PAGESZ_nGB to BOOKE_PAGESZ_nG

    The other pagesz constants use one letter to specify order of
    magnitude.	Also change the one reference to it in mpc8548cds/init.S

    Signed-off-by: Andy Fleming <afleming@freescale.com>

commit 1f9a318cea14272edd10d63739e2d326c90f430e
Author: Andy Fleming <afleming@freescale.com>
Date:	Fri Feb 23 16:28:46 2007 -0600

    Only set ddrioovcr for 8548 rev1.

    Signed-off-by: Ed Swarthout <Ed.Swarthout@freescale.com>
    Signed-off-by: Andy Fleming <afleming@freescale.com>

commit 9343dbf85bc03033f2102d8e8543567c2c1ad2d2
Author: Andy Fleming <afleming@freescale.com>
Date:	Sat Feb 24 01:16:45 2007 -0600

    Tweak DDR ECC error counter

    Enable single-bit error counter when memory was cleared by ddr controller.

    Signed-off-by: Ed Swarthout <Ed.Swarthout@freescale.com>
    Signed-off-by: Andy Fleming <afleming@freescale.com>

commit 85e7c7a45e3dd9c7ce3e722352ba60f8df1a7a4b
Author: Timur Tabi <timur@freescale.com>
Date:	Mon Feb 12 13:34:55 2007 -0600

    85xx: write MAC address to mac-address and local-mac-address

    Some device trees have a mac-address property, some have local-mac-address,
    and some have both.  To support all of these device trees, ftp_cpu_setup()
    should write the MAC address to mac-address and local-mac-address, if they
    exist.

    Signed-off-by: Timur Tabi <timur@freescale.com>

commit 03b81b48eec0ad249ec97a4ae16c36fa2e014ff4
Author: Andy Fleming <afleming@freescale.com>
Date:	Mon Apr 23 01:44:44 2007 -0500

    Some 85xx cpu cleanups

    * Cleaned up the TSR[WIS] clearing
    * Cleaned up DMA initialization

    Signed-off-by: Ed Swarthout <Ed.Swarthout@freescale.com>
    Signed-off-by: Jon Loeliger <jdl@freescale.com>
    Acked-by: Andy Fleming <afleming@freescale.com>

commit 151d5d992eab8c497b24c816c73dc1ad8bffb4eb
Author: Andy Fleming <afleming@freescale.com>
Date:	Mon Apr 23 01:32:22 2007 -0500

    Add cpu support for the 8544

    Recognize new SVR values, and add a few register definitions

    Signed-off-by: Ed Swarthout <Ed.Swarthout@freescale.com>
    Signed-off-by: Jon Loeliger <jdl@freescale.com>
    Acked-by: Andy Fleming <afleming@freescale.com>

commit 25d83d7f4ac65727182d8ddaf7ba42fa74cf65ae
Author: Jon Loeliger <jdl@freescale.com>
Date:	Wed Apr 11 16:51:02 2007 -0500

    Add MPC8544DS basic port board files.

    Add board port under new board/freescale directory
    structure and reuse existing PIXIS FPGA support there.

    Signed-off-by: Ed Swarthout <Ed.Swarthout@freescale.com>
    Signed-off-by: Jon Loeliger <jdl@freescale.com>

commit 0cde4b00fc7393b89f379d83a9d436dcb1334bfa
Author: Jon Loeliger <jdl@freescale.com>
Date:	Wed Apr 11 16:50:57 2007 -0500

    Add MPC8544DS main configuration file.

    Signed-off-by: Ed Swarthout <Ed.Swarthout@freescale.com>
    Signed-off-by: Jon Loeliger <jdl@freescale.com>

commit 362dd83077ac04c0296bca3e824ec2fb3d44d9d6
Author: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Date:	Wed Dec 27 22:07:15 2006 +0300

    Fix PCI I/O space mapping on Freescale MPC85x0ADS

    The PCI I/O space mapping for Freescale MPC8540ADS board was broken by commit
    52c7a68b8d587ebcf5a6b051b58b3d3ffa377ddc which failed to update the #define's
    describing the local address window used for the PCI I/O space accesses -- fix
    this and carry over the necessary changes into the MPC8560ADS code since the
    PCI I/O space mapping was also broken for this board (by the earlier commit
    087454609e47295443af793a282cddcd91a5f49c).	Add the comments clarifying how
    the PCI I/O space must be mapped to all the MPC85xx board config. headers.

    Signed-off-by: Sergei Shtylyov <sshtylyov@ru.mvista.com>

     board/mpc8540ads/init.S	  |    4 ++--
     board/mpc8560ads/init.S	  |    4 ++--
     include/configs/MPC8540ADS.h |    5 ++---
     include/configs/MPC8541CDS.h |    2 +-
     include/configs/MPC8548CDS.h |    2 +-
     include/configs/MPC8560ADS.h |    8 ++++----
     6 files changed, 12 insertions(+), 13 deletions(-)

commit 96629cbabdb727d4a5e62542deefc01d498db6dc
Author: Zang Roy-r61911 <tie-fei.zang@freescale.com>
Date:	Tue Dec 5 16:42:30 2006 +0800

    u-boot: Fix e500 v2 core reset bug

    The following patch fixes the e500 v2 core reset bug.
    For e500 v2 core, a new reset control register is added to reset the
    processor.

    Signed-off-by: Roy Zang <tie-fei.zang@freescale.com>

commit 63247a5acd58032e6cf33f525bc3923b467bac88
Author: Zang Roy-r61911 <tie-fei.zang@freescale.com>
Date:	Wed Dec 20 11:01:00 2006 +0800

    u-boot: v2: Remove the fixed TLB and LAW entrynubmer

    Remove the fixed TLB and LAW entry nubmer. Use actually TLB and LAW
    entry number to control the loop.  This can reduce the potential risk
    for the 85xx processor increasing its TLB adn LAW entry number.

    Signed-off-by: Swarthout Edward <swarthout@freescale.com>
    Signed-off-by: Roy Zang <tie-fei.zang@freescale.com>

commit 0b1934ba12fd408fcc3b8bd9f4b04864c42a42bf
Author: Zang Roy-r61911 <tie-fei.zang@freescale.com>
Date:	Mon Dec 18 17:01:04 2006 +0800

    u-boot: Fix the 85xxcds tsec bug

    Fix the 85xxcds tsec bug.
    When enable PCI, tsec.o should be added to u-boot.lds to make tsec work.

    Signed-off-by: Roy Zang <tie-fei.zang@freescale.com>

commit 7337b237ffc4aaf1b9467024fe472a880d852598
Author: Zang Roy-r61911 <tie-fei.zang@freescale.com>
Date:	Fri Dec 15 14:43:31 2006 +0800

    u-boot: Fix CPU2 errata on MPC8548CDS board

    This patch apply workaround of CPU2 errata on MPC8548CDS board.

    Signed-off-by:Ebony Zhu <ebony.zhu@freescale.com>

commit 39b18c4f3e0b6d0dc00f4e68bad2da3766c85f09
Author: ebony.zhu@freescale.com <ebony.zhu@freescale.com>
Date:	Mon Dec 18 16:25:15 2006 +0800

    u-boot: Disables MPC8548CDS 2T_TIMING for DDR by default

    This patch disables MPC8548CDS 2T_TIMING for DDR by default.

    Signed-off-by:Ebony Zhu <ebony.zhu@freescale.com>

commit 41fb7e0f1ec9b91bdae2565bab5f2e3ee15039c7
Author: Zang Roy-r61911 <tie-fei.zang@freescale.com>
Date:	Thu Dec 14 14:14:55 2006 +0800

    u-boot: Enable PCI function and add PEX & rapidio memory map on MPC8548CDS board

    Enable PCI function and add PEX & rapidio memory map on MPC8548CDS
    board.
    Signed-off-by: Roy Zang <tie-fei.zang@freescale.com>

commit 96b8a05432f346f36493535c85320b70ec9c7c1b
Author: Scott Wood <scottwood@freescale.com>
Date:	Mon Apr 16 14:54:15 2007 -0500

    mpc83xx: Add MPC8313ERDB support.

    Signed-off-by: Scott Wood <scottwood@freescale.com>

commit 49ea3b6eafe606285ae4d5c378026153dde53200
Author: Scott Wood <scottwood@freescale.com>
Date:	Mon Apr 16 14:34:21 2007 -0500

    mpc83xx: Add generic PCI setup code.

    Board code can now request the generic setup code rather than having to
    copy-and-paste it for themselves.  Boards should be converted to use this
    once they're tested with it.

    Signed-off-by: Scott Wood <scottwood@freescale.com>

commit 7c98e5193e93df6b9b651851d54b638a61ebb0ea
Author: Scott Wood <scottwood@freescale.com>
Date:	Mon Apr 16 14:34:19 2007 -0500

    mpc83xx: Add 831x support to speed.c.

    Signed-off-by: Scott Wood <scottwood@freescale.com>

commit 0f253283a32d91e06844d7f87f9b33f4f4fbce8f
Author: Scott Wood <scottwood@freescale.com>
Date:	Mon Apr 16 14:34:18 2007 -0500

    mpc83xx: Add 831x support to global_data.h

    Signed-off-by: Scott Wood <scottwood@freescale.com>

commit 95e7ef897e54591e615fc1b458b74c286fe1fb06
Author: Scott Wood <scottwood@freescale.com>
Date:	Mon Apr 16 14:34:16 2007 -0500

    mpc83xx: Change PVR_83xx to PVR_E300C1-3, and update checkcpu().

    Rather than misleadingly define PVR_83xx as the specific type of 83xx
    being built for, the PVR of each core revision is defined. checkcpu() now
    prints the core that it detects, rather than aborting if it doesn't find
    what it thinks it wants.

    Signed-off-by: Scott Wood <scottwood@freescale.com>

commit a35b0c4950d84cf9e3a9e32b916135956d1ac636
Author: Scott Wood <scottwood@freescale.com>
Date:	Mon Apr 16 14:34:15 2007 -0500

    mpc83xx: Recognize SPR values for MPC8311 and MPC8313.

    Signed-off-by: Scott Wood <scottwood@freescale.com>

commit d87c57b201b4572d16f1b642998faa00c9912b16
Author: Scott Wood <scottwood@freescale.com>
Date:	Mon Apr 16 14:31:55 2007 -0500

    mpc83xx: Add register definitions for MPC831x.

    Signed-off-by: Scott Wood <scottwood@freescale.com>

commit 7fc4c71a143be8666d70803fb25ae60379c95622
Author: Stefan Roese <sr@denx.de>
Date:	Mon Apr 23 15:39:59 2007 +0200

    Fix file mode

    Signed-off-by: Stefan Roese <sr@denx.de>

commit 38257988abfe74d459ca2ad748b109ca04e4efe1
Author: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Date:	Mon Apr 23 15:30:39 2007 +0200

    [PATCH] Avoid assigning PCI resources from zero address

    If a PCI IDE card happens to get a zero address assigned to it, the Linux IDE
    core complains and IDE drivers fails to work.  Also, assigning zero to a BAR
    was illegal according to PCI 2.1 (the later revisions seem to have excluded the
    sentence about "0" being considered an invalid address) -- so, use a reasonable
    starting value of 0x1000 (that's what the most Linux archs are using).

    Alternatively, one might have fixed the calls to pci_set_region() individually
    (some code even seems to have taken care of this issue) but that would have
    been a lot more work. :-)

    Signed-off-by: Sergei Shtylyov <sshtylyov@ru.mvista.com>
    Acked-by: Stefan Roese <sr@denx.de>

commit afb903a2eb9436baa9270ccc0c27082d86497d89
Author: Jeffrey Mann <mannj@embeddedplanet.com>
Date:	Mon Apr 23 14:00:11 2007 +0200

    [patch] setenv(...) can delete environmentalvariables

    update setenv() function so that entering a NULL value for the
    variable's value will delete the environmental variable

    Signed-off-by: Jeffrey Mann <mannj@embeddedplanet.com>
    Acked-by: Stefan Roese <sr@denx.de>

commit 36f104e5caa747d568eff26b369565af57c2ffa6
Author: Mike Frysinger <vapier@gentoo.org>
Date:	Mon Apr 23 13:54:24 2007 +0200

    [patch] use unsigned char in smc91111 driver for mac

    the v_mac variable in the smc91111 driver is declared as a signed char ...
    this causes problems when one of the bytes in the MAC is "signed" like 0xE0
    because when it gets printed out, you get a display like:
    0xFFFFFFE0 and that's no good

    Signed-off-by: Mike Frysinger <vapier@gentoo.org>

commit d98c0885ad617fccf21e7c26ef8cb728fbfb2459
Author: Rodolfo Giometti <giometti@enneenne.com>
Date:	Mon Apr 23 13:10:52 2007 +0200

    USB: (Another) delay for crappy USB keys.

    Some USB keys are slow in giving back an answer when the Root HUB
    enables power lines.

    Signed-off-by: Rodolfo Giometti <giometti@linux.it>

commit 323bfa8f436dc3bc57187c9b1488bc3146ff1522
Author: Stefan Roese <sr@denx.de>
Date:	Mon Apr 23 12:00:22 2007 +0200

    Remove BOARDLIBS usage completely

    Signed-off-by: Stefan Roese <sr@denx.de>

commit 32556443840f127170e4baa8bdd5b567039f6c36
Author: Michal Simek <monstr@monstr.eu>
Date:	Sat Apr 21 21:07:22 2007 +0200

    [PATCH] SystemACE support for Microblaze

commit 0643631aa1036cd746bf5d15f5a34bc7bc01ea4f
Author: Michal Simek <monstr@monstr.eu>
Date:	Sat Apr 21 21:02:40 2007 +0200

    16bit read/write little endian

commit 9d1d6a34d26c5933bc097ce73c9348f95573cdd4
Author: Michal Simek <monstr@monstr.eu>
Date:	Sat Apr 21 20:53:31 2007 +0200

    Change ML401 parameters - Xilinx BSP

commit 2e343b9a57f32e1bd08c35c9976910333fb4e13d
Author: Ed Swarthout <Ed.Swarthout@freescale.com>
Date:	Wed Feb 28 05:37:29 2007 -0600

    mpc8641hpcn: Fix LAW and TLB setup to use the IO_PHYS #defines.

    Signed-off-by: Ed Swarthout <Ed.Swarthout@freescale.com>

commit 79cb47391eebef85acadb3f6961ef6c55cace6ac
Author: Zhang Wei <wei.zhang@freescale.com>
Date:	Fri Jan 19 10:42:37 2007 +0800

    Enable LAWs for MPC8641 PCI-Ex2.

    Signed-off-by: Zhang Wei <wei.zhang@freescale.com>
    Signed-off-by: Jon Loeliger <jdl@freescale.com>

commit bd7851ce1e1f140665b520026abf1042968b1102
Author: Jon Loeliger <jdl@freescale.com>
Date:	Fri Apr 20 14:12:26 2007 -0500

    mpc86xx; Write MAC address to mac-address and local-mac-address

    Some device trees have a mac-address property, some have local-mac-address,
    and some have both.  To support all of these device trees, ftp_cpu_setup()
    should write the MAC address to mac-address and local-mac-address, if they
    exist.

    Signed-off-by: Timur Tabi <timur@freescale.com>
    Signed-off-by: Jon Loeliger <jdl@freescale.com>

commit 7dbdf28b8bd855a8530dc3292e4982575a197060
Author: Jon Loeliger <jdl@freescale.com>
Date:	Fri Apr 20 14:11:38 2007 -0500

    mpc86xx: protect memcpy to bad address if a mac-address is missing from dt

    Signed-off-by: Kim Phillips <kim.phillips@freescale.com>
    Signed-off-by: Jon Loeliger <jdl@freescale.com>

commit 14da5f7675bbb427c469e3f45006e027b6e21db9
Author: Wolfgang Denk <wd@denx.de>
Date:	Fri Apr 20 17:43:28 2007 +0200

    Cleanup compiler warnings, update CHANGELOG

    Signed-off-by: Wolfgang Denk <wd@denx.de>

commit 6923565db12af34fd5e02d354ee65a8c78ac460f
Author: Detlev Zundel <dzu@denx.de>
Date:	Fri Apr 20 12:01:47 2007 +0200

    Fix breakage of NC650 board with respect to nand support.

    Signed-off-by: Detlev Zundel <dzu@denx.de>

commit 39f23cd90947639ac278a18ff277ec786b5ac167
Author: Domen Puncer <domen.puncer@telargo.com>
Date:	Fri Apr 20 11:13:16 2007 +0200

    [RFC PATCH] icecube/lite5200b: fix OF_TBCLK (timebase-frequency) calculation

    G2 core reference manual says decrementer and time base
    are decreasing/increasing once every 4 bus clock cycles.
    Lets fix it, so time in Linux won't run twice as fast

    Signed-off-by: Domen Puncer <domen.puncer@telargo.com>
    Acked-by: Grant Likely <grant.likely@secretlab.ca>

commit 7651f8bdbba03bb0b4f241e2d2c4cb65b230bd56
Author: Gerald Van Baren <vanbaren@cideas.com>
Date:	Thu Apr 19 23:14:39 2007 -0400

    Fix serious pointer bug with bootm and reserve map.

    What was suppose to be a stack variable was declared as a pointer,
      overwriting random memory.
    Also moved the libfdt.a requirement into the main Makefile.  That is
      The U-Boot Way.

commit d21686263574e95cb3e9e9b0496f968b1b897fdb
Author: Stefan Roese <sr@denx.de>
Date:	Thu Apr 19 09:53:52 2007 +0200

    ppc4xx: Fix chip select timing for SysACE access on AMCC Katmai

    Previous versions used full wait states for the chip select #1 which
    is connected to the Xilinix SystemACE controller on the AMCC Katmai
    evaluation board. This leads to really slow access and therefore low
    performance. This patch now sets up the chip select a lot faster
    resulting in much better read/write performance of the Linux driver.

    Signed-off-by: Stefan Roese <sr@denx.de>

commit 37837828d89084879bee2f2b8c7c68d4695940df
Author: Wolfgang Denk <wd@denx.de>
Date:	Wed Apr 18 17:49:29 2007 +0200

    Clenaup, update CHANGELOG

    Signed-off-by: Wolfgang Denk <wd@denx.de>

commit fd094c6379e2ef8a4d0ceb5640b24cb0c8d04449
Author: Wolfgang Denk <wd@denx.de>
Date:	Wed Apr 18 17:20:58 2007 +0200

    Update CHANGELOG

    Signed-off-by: Wolfgang Denk <wd@denx.de>

commit 2a26ec4732efd7a308d0bbc97714c1d75ef1173b
Author: Wolfgang Denk <wd@denx.de>
Date:	Wed Apr 18 17:07:26 2007 +0200

    Cleanup, update CHANGELOG

    Sigend-off-by: Wolfgang Denk <wd@denx.de>

commit 5f6c732affea9647762d27a4617a2ae64c52dceb
Author: Wolfgang Denk <wd@denx.de>
Date:	Wed Apr 18 16:17:46 2007 +0200

    Update CHANGELOG

commit ad4eb555671d97f96dc56eab55103b1f86874b01
Author: Wolfgang Denk <wd@denx.de>
Date:	Wed Apr 18 14:30:39 2007 +0200

    MCC200 board: remove warning which is obsolete after PSoC firmware changes

    Signed-off-by: Wolfgang Denk <wd@denx.de>

commit 3747a3f010b2b1442dec3e871c69788b6017aaae
Author: Domen Puncer <domen.puncer@telargo.com>
Date:	Wed Apr 18 12:11:05 2007 +0200

    [PATCH] icecube/lite5200b: document wakeup from low-power support

    Signed-off-by: Domen Puncer <domen.puncer@telargo.com>

commit e673226ff9d6aa91b47ceac74b8c13770b06bb37
Author: Stefan Roese <sr@denx.de>
Date:	Wed Apr 18 12:07:47 2007 +0200

    ppc4xx: Update Acadia to not setup PLL when booting via bootstrap EEPROM

    Signed-off-by: Stefan Roese <sr@denx.de>

commit 90e6f41cf09fc98f6ccb510e183d53ab8546cf2f
Author: Stefan Roese <sr@denx.de>
Date:	Wed Apr 18 12:05:59 2007 +0200

    ppc4xx: Add output for bootrom location to 405EZ ports

    Now 405EZ ports also show upon bootup from which boot device
    they are configured to boot:

    U-Boot 1.2.0-gd3832e8f-dirty (Apr 18 2007 - 07:47:05)

    CPU:   AMCC PowerPC 405EZ Rev. A at 199.999 MHz (PLB=133, OPB=66, EBC=66 MHz)
	   Bootstrap Option E - Boot ROM Location EBC (32 bits)
	   16 kB I-Cache 16 kB D-Cache
    Board: Acadia - AMCC PPC405EZ Evaluation Board

    Signed-off-by: Stefan Roese <sr@denx.de>

commit 9c00dfb0bf89c8c23e8af5b5bdf49cf66d769f85
Author: Peter Pearse <peter.pearse@arm.com>
Date:	Tue Apr 17 13:30:33 2007 +0100

    Move ppearse to ARM board list
    Add Konstantin Kletschke for scb9328.
    Signed-off-by: Peter Pearse <peter.pearse@arm.com>

commit d3832e8fe1b214ec62424eac36cfda9fc56d21b3
Author: Domen Puncer <domen.puncer@telargo.com>
Date:	Mon Apr 16 14:00:13 2007 +0200

    [PATCH] icecube/lite5200b: wakeup from low-power support

    U-Boot part of Lite5200b low power mode support.
    Puts SDRAM out of self-refresh and transfers control to
    address saved at physical 0x0.

    Signed-off-by: Domen Puncer <domen.puncer@telargo.com>
    Acked-by: Grant Likely <grant.likely@secretlab.ca>

commit f35a53fc7b0c79fcfe7bdc01163c4b34aaba1460
Author: Gerald Van Baren <vanbaren@cideas.com>
Date:	Sun Apr 15 13:54:26 2007 -0400

    Fix the ft_cpu_setup() property settings.

    Use "setter" functions instead of flags, cleaner and more flexible.
    It also fixes the problem noted by Timur Tabi that the ethernet MAC
    addresses were all being set incorrectly to the same MAC address.

commit c28abb9c614f65ce2096cc4a66fc886c77d0e5a4
Author: Gerald Van Baren <vanbaren@cideas.com>
Date:	Sat Apr 14 22:51:24 2007 -0400

    Improve the bootm command for CONFIG_OF_LIBFDT

    In bootm, create the "/chosen" node only if it doesn't already exist
      (better matches the previous behavior).
    Update for proper reserved memory map handling for initrd.

commit 3f9f08cf91c8a6949a5d78a18bd3d8df7b86d888
Author: Gerald Van Baren <vanbaren@cideas.com>
Date:	Sat Apr 14 22:46:41 2007 -0400

    Add some utilities to manipulate the reserved memory map.

commit 8048cdd56f04a756eeea4951f402bf5cc33785db
Author: Wolfgang Denk <wd@denx.de>
Date:	Sat Apr 14 21:16:54 2007 +0200

    Update CHANGELOG

commit 8e6875183cdca91c134408d119d4abcd48ef6856
Author: Haavard Skinnemoen <hskinnemoen@atmel.com>
Date:	Sun Dec 17 18:56:46 2006 +0100

    AVR32: Enable MMC support

    Set up the portmux for the MMC interface and enable the MMC driver
    along with support for DOS partitions, ext2 and FAT filesystems.

    Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>

commit fc26c97bb6df41b4a95662c34054fe912387bf38
Author: Haavard Skinnemoen <hskinnemoen@atmel.com>
Date:	Fri Jan 20 10:03:53 2006 +0100

    Atmel MCI driver

    Driver for the Atmel MCI controller (MMC interface) for AT32AP CPUs.

    The AT91 ARM-based CPUs use basically the same hardware, so it should
    be possible to share this driver, but no effort has been made so far.

    Hardware documentation can be found in the AT32AP7000 data sheet,
    which can be downloaded from

    http://www.atmel.com/dyn/products/datasheets.asp?family_id=682

    Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>

commit 05fdab1ef6a10d049a50021a86f1226f444d9b9f
Author: Haavard Skinnemoen <hskinnemoen@atmel.com>
Date:	Sun Dec 17 18:55:37 2006 +0100

    AVR32: Add clk and gpio infrastructure for mmci

    Implement functions for configuring the mmci pins, as well as
    functions for getting the clock rate of the mmci controller.

    Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>

commit 7fac3f69e9f05c5e5326681976c35d129324c4de
Author: Haavard Skinnemoen <hskinnemoen@atmel.com>
Date:	Sun Dec 17 18:53:56 2006 +0100

    Enable partition support with MMC

    Include implementations of init_part() and get_partition_info() when
    CONFIG_MMC is set.

    Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>

commit 9a24f477a1ed5bb0f74377c985d754ebbfa44872
Author: Haavard Skinnemoen <hskinnemoen@atmel.com>
Date:	Sun Dec 17 17:14:30 2006 +0100

    AVR32: Enable networking

    Implement MACB initialization for AVR32 and ATSTK1000, and turn
    everything on, including the MACB driver.

    Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>

commit 5c1fe1ffffd1750a7e47e5a2e2cd600c00e4f009
Author: Haavard Skinnemoen <hskinnemoen@atmel.com>
Date:	Fri Jan 20 10:03:34 2006 +0100

    Atmel MACB ethernet driver

    Driver for the Atmel MACB on-chip ethernet controller.

    This driver has been tested on the ATSTK1000 board with a AT32AP7000
    CPU. It should probably work on AT91SAM926x as well with some minor
    modifications.

    Hardware documentation can be found in the AT32AP7000 data sheet,
    which can be downloaded from

    http://www.atmel.com/dyn/products/datasheets.asp?family_id=682

    Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>

commit b4ec9c2d43d894729bb633bfdbdfa95a962c1556
Author: Haavard Skinnemoen <hskinnemoen@atmel.com>
Date:	Sun Dec 17 16:56:14 2006 +0100

    AVR32: Add clk and gpio infrastructure for macb0 and macb1

    Implement functions for configuring the macb0 and macb1 pins, as
    well as functions for getting the clock rate of the various
    busses the macb ethernet controllers are connected to.

    Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>

commit d5acb95b16a0a74c643524342c3437e765426d05
Author: Haavard Skinnemoen <hskinnemoen@atmel.com>
Date:	Sun Dec 17 15:39:15 2006 +0100

    AVR32: Implement simple DMA memory allocator

    Implement dma_alloc_coherent() which returns cache-aligned
    uncacheable memory.

    Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>

commit 91975b0fea773c9e681fea8cf3349669f27685ee
Author: Haavard Skinnemoen <hskinnemoen@atmel.com>
Date:	Sun Dec 17 15:46:02 2006 +0100

    Import <linux/mii.h> from the Linux kernel

    Instead of creating yet another set of MII register definitions
    in the macb driver, here's a complete set of definitions for everyone
    to use.

    Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>

commit 1b804b229556a4d862da93c0ec94e79419364b2c
Author: Haavard Skinnemoen <hskinnemoen@atmel.com>
Date:	Wed Mar 21 19:47:36 2007 +0100

    AVR32: Include more commands for ATSTK1000

    Include the imi, imls and jffs commands sets by default on ATSTK1000.
    Also define CONFIG_BOOTARGS to something more useful, define
    CONFIG_BOOTCOMMAND and enable autoboot by default.

    Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>

commit 9c0deb5ae3ea0189f2e08ac29ef1316f1fb8548d
Author: Haavard Skinnemoen <hskinnemoen@atmel.com>
Date:	Wed Mar 21 19:44:48 2007 +0100

    AVR32: Provide a definition of struct stat

    Copy the definition of struct stat from the Linux kernel.

    Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>

commit 12f099c08167a7a51aeee623bc16dafd0841271c
Author: Haavard Skinnemoen <hskinnemoen@atmel.com>
Date:	Sun Dec 17 14:46:06 2006 +0100

    AVR32: Use initdram() instead of board_init_memories()

    Conform to the "standard" interface and use initdram() instead of
    board_init_memories() on AVR32. This enables us to get rid of the
    sdram_size member of the global_data struct as well.

    Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>

commit 1f4f2121c2685182eb87fa9a9b799d1917387a1c
Author: Haavard Skinnemoen <hskinnemoen@atmel.com>
Date:	Mon Nov 20 15:53:10 2006 +0100

    AVR32: Relocate u-boot to SDRAM

    Relocate the u-boot image into SDRAM like everyone else does. This
    means that we can handle much larger .data and .bss than we used to.

    Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>

commit df548d3c3e2bbc40258713167859ffc2ce99a900
Author: Haavard Skinnemoen <hskinnemoen@atmel.com>
Date:	Sun Nov 19 18:06:53 2006 +0100

    AVR32: Resource management rewrite

    Rewrite the resource management code (i.e. I/O memory, clock gating,
    gpio) so it doesn't depend on any global state. This is necessary
    because this code is heavily used before relocation to RAM, so we
    can't write to any global variables.

    As an added bonus, this makes u-boot's memory footprint a bit smaller,
    although some functionality has been left out; all clocks are enabled
    all the time, and there's no checking for gpio line conflicts.

    Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>

commit 03d1e1365796cd15d1726e8a51fd8b5be50b2fe9
Author: Haavard Skinnemoen <hskinnemoen@atmel.com>
Date:	Sat Nov 18 18:01:13 2006 +0100

    AVR32: Clean up memory-map.h for at32ap7000

    Convert spaces to tabs (must have missed this one last time around),
    sort the entries by address and group them together by bus
    connectivity.

    Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>

commit 28c699ef69f4b6cdf252e4747b7b590028a88981
Author: Haavard Skinnemoen <hskinnemoen@atmel.com>
Date:	Sat Nov 18 17:32:31 2006 +0100

    AVR32: Build position-independent u-boot

    Add -fPIC -mno-init-got to the avr32-specific CFLAGS to make u-boot
    position independent. This will make relocation a lot easier.

    -mno-init-got means that gcc shouldn't emit code to load the GOT
    address into r6 in every function prologue. We do it once and for
    all in the early startup assembly code, so enabling this option
    makes u-boot a bit faster and smaller.

    The assembly parts have always been position-independent, so no code
    changes should be necessary.

    Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>

commit 5374b36de91d006d1df9536259fa9f66b01aa3aa
Author: Haavard Skinnemoen <hskinnemoen@atmel.com>
Date:	Sat Nov 18 17:24:31 2006 +0100

    AVR32: Use avr32-linux- cross-compilation prefix by default

    It doesn't really matter which toolchain you use to compile u-boot,
    but the avr32-linux one is probably what most people have installed.

    Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>

commit c841beeddebece0039e724fb27f4d1a39ee1c6b6
Author: Haavard Skinnemoen <hskinnemoen@atmel.com>
Date:	Sat Nov 18 17:15:30 2006 +0100

    AVR32: Split start_u_boot into board_init_f and board_init_r

    Split the avr32 initialization code into a function to run before
    relocation, board_init_f and a function to run after relocation,
    board_init_r. For now, board_init_f simply calls board_init_r
    at the end.

    Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>

commit 37403005cfe6bb13964d450f6a48a0b0f2f7017e
Author: Heiko Schocher <hs@pollux.denx.de>
Date:	Sat Apr 14 05:26:48 2007 +0200

    [Fix]	Set the LED status register on the UC101 for the LXT971 PHY.
	    clear the Display after reset.

    Signed-off-by: Heiko Schocher <hs@denx.de>

commit 7882751c78b7ecabfd49b0eff8de27661c71f16c
Author: Denis Peter <d.peter@mpl.ch>
Date:	Fri Apr 13 09:13:33 2007 +0200

    [PATCH] Fix bugs in cmd_ide.c and cmd_scsi.c

    Fix bug introduced by "Fix get_partition_info() parameter error in all
    other calls" from 2005-03-04 in cmd_ide.c and cmd_scsi.c, which prevented
    to use diskboot or scsiboot form another device than 0.

    Signed-off-by: Denis Peter <d.peter@mpl.ch>

commit 0b94504d22e70f537c17a0d38c87edb6e370977d
Author: Greg Lopp <lopp@pobox.com>
Date:	Fri Apr 13 08:02:24 2007 +0200

    [PATCH] Fix use of "void *" for block dev read/write buffer pointers

    Signed-of-by: Greg Lopp <lopp@pobox.com>
    Acked-by: Grant Likely <grant.likely@secretlab.ca>

commit 6fbf261f8df294e589cfadebebe5468e3c0f29e9
Author: Xie Xiaobo <r63061@freescale.com>
Date:	Fri Mar 9 19:08:25 2007 +0800

    Fix two bugs for MPC83xx DDR2 controller SPD Init

    There are a few bugs in the cpu/mpc83xx/spd_sdram.c
    the first bug is that the picos_to_clk routine introduces a huge
    rounding error in 83xx.
    the second bug is that the mode register write recovery field is
    tWR-1, not tWR >> 1.

commit 2ad3aba01d37b72e7c957b07e102fccd64fe6d13
Author: Jeffrey Mann <mannj@embeddedplanet.com>
Date:	Thu Apr 12 14:15:59 2007 +0200

    ppc4xx: Fix i2c divisor calcularion for PPC4xx

    This patch fixes changes the i2c_init(...) function to use the function
    get_OPB_freq() rather than calculating the OPB speed by
    sysInfo.freqPLB/sysInfo.pllOpbDiv. The get_OPB_freq() function is
    specific per processor. The prior method was not and so was calculating
    the wrong speed for some PPC4xx processors.

    Signed-off-by: Jeffrey Mann <mannj@embeddedplanet.com>
    Signed-off-by: Stefan Roese <sr@denx.de>

commit 6c9ba919375db977aaad9146bf320c7afd07ae7a
Author: Wolfgang Denk <wd@denx.de>
Date:	Wed Apr 11 17:25:01 2007 +0200

    Update CHANGELOG

    Signed-off-by: Wolfgang Denk <wd@denx.de>

commit 51056dd9863e6a1bc363afbbe1775c58cd967418
Author: Wolfgang Denk <wd@denx.de>
Date:	Wed Apr 11 17:22:55 2007 +0200

    Update for SC3 board

    * Make IDE timeout configurable through ide_reset_timeout variable.
    * Use Newline as "password" string
    * Use just a single partition in NAND flash

commit 3d98b85800c80dc68227c8f10bf5c93456d6d054
Author: Haiying Wang <haiying.wang@freescale.com>
Date:	Mon Jan 22 12:37:30 2007 -0600

    Add PIXIS FPGA support for MPC8641HPCN board.

    Move the 8641HPCN's PIXIS code to the new directory
    board/freescale/common/ as it will be shared by
    future boards not in the same processor family.

    Write a "pixis_reset" command that utilizes the FPGA
    reset sequencer to support alternate soft-reset options
    such as using the "alternate" flash bank, enabling
    the watch dog, or choosing different CPU frequencies.

    Add documentation for the pixis_reset to README.mpc8641hpcn.

    Signed-off-by: Haiying Wang <haiying.wang@freescale.com>
    Signed-off-by: Jon Loeliger <jdl@freescale.com>

commit 64dbbd40c58349b64f43fd33dbb5ca0adb67d642
Author: Gerald Van Baren <vanbaren@cideas.com>
Date:	Fri Apr 6 14:19:43 2007 -0400

    Moved fdt command support code to fdt_support.c

    ...in preparation for improving the bootm command's handling of fdt blobs.
    Also cleaned up some coding sloppiness.

commit 6679f9299534e488a171a9bb8f9bb891de247aab
Author: Gerald Van Baren <vanbaren@cideas.com>
Date:	Fri Apr 6 14:17:14 2007 -0400

    libfdt: Make fdt_check_header() public

    Changed _fdt_check_header() to fdt_check_header() and made it part of
    the interface - it is a useful routine.

    Also did some asthetics cleanup to the include files (headers).

commit c0707ce65677650b5ceab0500ee50ae5168afef2
Author: Aubrey Li <aubrey.adi@gmail.com>
Date:	Thu Apr 5 18:34:06 2007 +0800

    [Blackfin][PATCH] Kill off a bunch of common local prototypes

commit 7b7e30aa64bb6657a1bfd32fdbdbfeb561e6a48d
Author: Aubrey Li <aubrey.adi@gmail.com>
Date:	Thu Apr 5 18:33:04 2007 +0800

    [Blackfin][PATCH] Fix dynamic CPLB generation issue

commit 0445e3a264251d75b1be45ef713c70726a2952f0
Author: Aubrey Li <aubrey.adi@gmail.com>
Date:	Thu Apr 5 18:31:47 2007 +0800

    [Blackfin][PATCH] minior cleanup

commit 155fd766573981090e638b493d5857562151862e
Author: Aubrey Li <aubrey.adi@gmail.com>
Date:	Thu Apr 5 18:31:18 2007 +0800

    [Blackfin][PATCH] Fix copyright and update license

commit 9fd437bbd75d282f899e1da50be20a2bf38450bc
Author: Aubrey Li <aubrey.adi@gmail.com>
Date:	Thu Apr 5 18:30:25 2007 +0800

    [Blackfin][PATCH] Add BF537 EMAC driver initialization

commit 889256e8604e0c68db1d866d720894dffede9df6
Author: Aubrey Li <aubrey.adi@gmail.com>
Date:	Thu Apr 5 18:29:55 2007 +0800

    [Blackfin][PATCH] call real the system synchronize instruction

commit e0df1c921b788289564e4c1ee7120a6a9cd3ab05
Author: Aubrey Li <aubrey.adi@gmail.com>
Date:	Thu Apr 5 18:29:17 2007 +0800

    [Blackfin][PATCH] remove asm/page.h as we do not actually use/want any of these definitions nor does any other arch include it

commit dfeeab2cd680df047e68e723b246adf6f33bb556
Author: Aubrey Li <aubrey.adi@gmail.com>
Date:	Thu Apr 5 18:28:34 2007 +0800

    [Blackfin][PATCH]: fix flash unaligned copy issue

commit 443feb740584e406efa203af909fe2926608e8d5
Author: Igor Marnat <marny@rambler.ru>
Date:	Wed Mar 21 09:55:01 2007 +0300

    Update usage of 'nc' in README.NetConsole

    Added information about usage of NetConsole on systems where the -l and -p
    switches are mutually exclusive.

    Signed-off-by: Igor Marnat <marny@rambler.ru>
    Signed-off-by: Ben Warren <bwarren@qstreams.com>

commit 31c98a88228021b314c89ebb8104fb6473da4471
Author: Wolfgang Denk <wd@denx.de>
Date:	Wed Apr 4 02:09:30 2007 +0200

    Minor coding style cleanup.

commit 94abd7c0583ebe01e799b25f451201deeaab550d
Author: Wolfgang Denk <wd@denx.de>
Date:	Wed Apr 4 01:49:15 2007 +0200

    Minor cleanup.

commit 822af351ad2babc7d99033361a5fcacd30f6bc78
Author: Rodolfo Giometti <giometti@enneenne.com>
Date:	Tue Apr 3 14:27:18 2007 +0200

    Support for the Philips ISP116x HCD (Host Controller Driver)

    Signed-off-by: Rodolfo Giometti <giometti@enneenne.com>

commit edf5851be6c17c031d4f71dd5b0a12040b7c50c8
Author: Markus Klotzbuecher <mk@denx.de>
Date:	Tue Apr 3 14:27:08 2007 +0200

    USB: cleanup monahans usb support. Remove dead code.

    Signed-off-by: Markus Klotzbuecher <mk@denx.de>

commit a65c5768e5537530bd1780af3d3fddc3113a163c
Author: Stefan Roese <sr@denx.de>
Date:	Mon Apr 2 10:09:30 2007 +0200

    ppc4xx: Change SysACE address on Katmai

    With this new base address of the Xilinx SystemACE controller
    the Linux driver will be easier to adapt, since it can now be
    mapped via the "normal" ioremap() call.

    Signed-off-by: Stefan Roese <sr@denx.de>

commit aea03c4e8c3a21ce43d3faf48a6e6d474c8bdf73
Author: Gerald Van Baren <vanbaren@cideas.com>
Date:	Sat Mar 31 14:30:53 2007 -0400

    Fix some minor whitespace violations.

commit 213bf8c822de8eecaf69860684469cdaba2e9e6a
Author: Gerald Van Baren <vanbaren@cideas.com>
Date:	Sat Mar 31 12:23:51 2007 -0400

    Add a flattened device tree (fdt) command (2 of 2)

    Modifications to the existing code to support the new fdt command.

commit 781e09ee6e3e3e392ab362c1f0ef1068adc76e3e
Author: Gerald Van Baren <vanbaren@cideas.com>
Date:	Sat Mar 31 12:22:10 2007 -0400

    Add a flattened device tree (fdt) command (1 of 2)

    The fdt command uses David Gibson's libfdt library to manipulate as well
    as print the flattened device tree.  This patch is the new command,
    the second part is the modifications to the existing code.

commit 3af0d587d93e0be5f96e1b30fa41e662f8b0803e
Author: Gerald Van Baren <vanbaren@cideas.com>
Date:	Sat Mar 31 12:13:43 2007 -0400

    libfdt: Enhanced and published fdt_next_tag()

    Enhanced the formerly private function _fdt_next_tag() to allow stepping
      through the tree, used to produce a human-readable dump, and made
      it part of the published interface.
    Also added some comments.

commit fa3a74cec73dfd06a5ae35a9a3368200273aaa71
Author: Gerald Van Baren <vanbaren@cideas.com>
Date:	Sat Mar 31 12:05:39 2007 -0400

    libfdt: Customizations for use by u-boot.

    Changes to David Gibson's original source to fit into u-boot's
    environment.  No functionality changes.

commit 35748177c64a4a83a00057e93bb33e40278a2a96
Author: Gerald Van Baren <vanbaren@cideas.com>
Date:	Sat Mar 31 12:00:56 2007 -0400

    libfdt: Import libfdt source (2 of 2)

    This adds the applicable libfdt source files (unmodified) and a README
    to explain where the source came from.

commit 7cd5da0fe877e7171a4cdd44880bce783132871a
Author: Gerald Van Baren <vanbaren@cideas.com>
Date:	Sat Mar 31 11:59:59 2007 -0400

    libfdt: Import libfdt source (1 of 2)

    This adds the applicable libfdt source files (unmodified) and a README
    to explain where the source came from.

commit da6ebc1bc082cbe3b6bbde079cafe09f7ebbad4b
Author: Stefan Roese <sr@denx.de>
Date:	Sat Mar 31 13:16:23 2007 +0200

    ppc4xx: Update Katmai bootstrap command

    Now the DDR2 frequency is also 2*PLB frequency when 166MHz PLB
    is selected.

    Signed-off-by: Stefan Roese <sr@denx.de>

commit cabee756a6532986729477c3cc1ea16ef8517ad2
Author: Stefan Roese <sr@denx.de>
Date:	Sat Mar 31 13:15:06 2007 +0200

    ppc4xx: Update 44x_spd_ddr2 code (440SP/440SPe)

    Additional RAM information is now printed upon powerup, like
    DDR2 frequency and CAS latency.

    Signed-off-by: Stefan Roese <sr@denx.de>

commit 60723803431ac75cad085690789e433d5ab9174e
Author: Stefan Roese <sr@denx.de>
Date:	Sat Mar 31 08:48:36 2007 +0200

    ppc4xx: Change Yucca config file to support ECC

    With the updated 44x DDR2 driver the Yucca board now supports
    ECC generation and checking.

    Signed-off-by: Stefan Roese <sr@denx.de>

commit 490e5730c674b20d708b783a2c5ffd7208f83873
Author: Stefan Roese <sr@denx.de>
Date:	Sat Mar 31 08:47:34 2007 +0200

    ppc4xx: Fix "bootstrap" command for Katmai board

    The board specific "bootstrap" command is now fixed and can
    be used for the AMCC Katmai board to configure different
    CPU/PLB/OPB frequencies.

    Signed-off-by: Stefan Roese <sr@denx.de>

commit 94f54703c3a776ec23e427ca2a16e0a79a5d50c1
Author: Stefan Roese <sr@denx.de>
Date:	Sat Mar 31 08:46:08 2007 +0200

    ppc4xx: Update 44x_spd_ddr2 code (440SP/440SPe)

    Fix a bug in the auto calibration routine. This driver now runs
    more reliable with the tested modules. It's also tested with
    167MHz PLB frequency (667MHz DDR2 frequency) on the Katmai.

    Signed-off-by: Stefan Roese <sr@denx.de>

commit 342cd097be1e7affe82f42ab3da220959a699e64
Author: Michal Simek <monstr@monstr.eu>
Date:	Fri Mar 30 22:52:09 2007 +0200

    [PATCH] Clean include dependence

commit 6f934210fb293fde2cfb4251c6d96fdc58b6a906
Author: Michal Simek <monstr@monstr.eu>
Date:	Fri Mar 30 22:42:45 2007 +0200

    [CLEAN] Remove inefficient Suzaku code

commit 430f1b0f9a670c2f13eaa52e66a10db96dd3647d
Author: Stefan Roese <sr@denx.de>
Date:	Wed Mar 28 15:03:16 2007 +0200

    Merge some AMCC make targets to keep the top-level Makefile smaller

    Signed-off-by: Stefan Roese <sr@denx.de>

commit 0c75c9d84307a9f1cbe1ff0c4d8937ee3a96475e
Author: Stefan Roese <sr@denx.de>
Date:	Wed Mar 28 14:52:12 2007 +0200

    i2c: Enable "old" i2c commands even when CONFIG_I2C_CMD_TREE is defined

    The "old" i2c commands (iprobe, imd...) are now compiled in again,
    even when the i2c command tree is enabled via the CONFIG_I2C_CMD_TREE
    config option.

    Signed-off-by: Stefan Roese <sr@denx.de>

commit 5da048adf44bea5e3b94080d02903c2e3fe7aa4a
Author: Michal Simek <monstr@monstr.eu>
Date:	Tue Mar 27 00:32:16 2007 +0200

    PATCH: Resolve GPL license problem

commit ae00bb4b2944dc64a485ed72a19754b11af7c223
Author: Rodolfo Giometti <giometti@enneenne.com>
Date:	Mon Mar 26 12:03:36 2007 +0200

    PXA: pxa27x USB OHCI support

    Signed-off-by: Rodolfo Giometti <giometti@linux.it>

commit ae79f60677c208326535647dcbd5c3ec40dbcb0b
Author: Markus Klotzbuecher <mk@denx.de>
Date:	Mon Mar 26 11:21:05 2007 +0200

    USB: remove the S3C24X0_merge #define, which was introduced while
    merging OHCI drivers.

    Signed-off-by: Markus Klotzbuecher <mk@denx.de>

commit 1798049522f594013aea29457d46794298c6ae15
Author: Michal Simek <root@monstr.eu>
Date:	Mon Mar 26 01:39:07 2007 +0200

    Support for XUPV2P board
    Reset support
    BSP autoconfig support

commit 0d974d5297349504a2ddfa09314be573b5df320a
Author: Stefan Roese <sr@denx.de>
Date:	Sat Mar 24 15:57:09 2007 +0100

    [PATCH] Add 4xx GPIO functions

    This patch adds some 4xx GPIO functions. It also moves some of the
    common code and defines into a common 4xx GPIO header file.

    Signed-off-by: Stefan Roese <sr@denx.de>

commit 2db633658bbf366ab0c8dad7a0727e1fb2ae6b11
Author: Stefan Roese <sr@denx.de>
Date:	Sat Mar 24 15:55:58 2007 +0100

    [PATCH] Small Sequoia cleanup

    Signed-off-by: Stefan Roese <sr@denx.de>

commit 3cb86f3e40d2a80356177434a99f75bc8baa9caf
Author: Stefan Roese <sr@denx.de>
Date:	Sat Mar 24 15:45:34 2007 +0100

    [PATCH] Clean up 40EZ/Acadia support

    This patch cleans up all the open issue of the preliminary
    Acadia support.

    Signed-off-by: Stefan Roese <sr@denx.de>

commit 6eb1df835191d8ce4b81d5af40fa8e0fbe78e997
Author: Jon Loeliger <jdl@freescale.com>
Date:	Tue Dec 12 11:02:20 2006 -0600

    Fix 8641HPCN problem with ld version 2.16

    (Dot outside sections problem).

    This fix is in the spirit of 807d5d7319330e336ab34a5623c5e0d73b87d540.

    Signed-off-by: Jon Loeliger <jdl@freescale.com>

commit 9964a4dd0d4ef5a037febaebf1aa494b1a72991c
Author: Haiying Wang <haiying.wang@freescale.com>
Date:	Thu Dec 7 10:35:55 2006 -0600

    Set Rev 2.x 86xx PIC in mixed mode.

    Prevent false interrupt from hanging Linux as MSR[EE] is set
    to enable interrupts by changing the PIC out of the default
    pass through mode into mixed mode.

    Signed-off-by: Haiying Wang <haiying.wang@freescale.com>
    Signed-off-by: Jon Loeliger <jdl@freescale.com>

commit 5a58a73ceb0a4059c42ef64cedbc1a45e0aaa00e
Author: Jason Jin <jason.jin@freescale.com>
Date:	Thu Dec 7 10:32:35 2006 -0600

    Add flash cmd function to 8641HPCN ramboot

    Also fixes some commmand for 8641 HPCN ramboot case.

    Signed-off-by: Jason Jin <jason.jin@freescale.com>
    Signed-off-by: Jon Loeliger <jdl@freescale.com>

commit 2ccceacc04b009d923afb7c26189ba2f8a2a5d46
Author: Ed Swarthout <ed.swarthout@freescale.com>
Date:	Thu Dec 7 10:34:14 2006 -0600

    Add support for 8641 Rev 2 silicon.

    Without this patch, I am unable to get to the prompt on rev 2 silicon.
    Only set ddrioovcr for rev1.

    Signed-off-by: Ed Swarthout<ed.swarthout@freescale.com>
    Signed-off-by: Jon Loeliger <jdl@freescale.com>

commit 44ba464b99001f8bd1c456a1e9d59726252f707a
Author: Wolfgang Denk <wd@denx.de>
Date:	Thu Mar 22 00:13:12 2007 +0100

    Code cleanup / re-insert previous Copyright entries.

    Signed-off-by: Wolfgang Denk <wd@denx.de>

commit 2a8dfe08359a1b663418b2faa1da1d7bce34d302
Author: Wolfgang Denk <wd@denx.de>
Date:	Wed Mar 21 23:26:15 2007 +0100

    Code cleanup. Update CHANGELOG

commit e6615ecf4eaf4dd52696934aed8f5c6474cfd286
Author: Stefan Roese <sr@denx.de>
Date:	Wed Mar 21 14:54:29 2007 +0100

    ppc4xx: Fix file mode of include/configs/acadia.h

    Signed-off-by: Stefan Roese <sr@denx.de>

commit d5f4614c9350d9333e575100fb250aab774d0258
Author: Markus Klotzbuecher <mk@denx.de>
Date:	Wed Mar 21 14:41:46 2007 +0100

    SPC1920: fix small clock routing bug

    Signed-off-by: Markus Klotzbuecher <mk@denx.de>

commit 16c0cc1c82081a493ab87c51980b28336ce1bce8
Author: Stefan Roese <sr@denx.de>
Date:	Wed Mar 21 13:39:57 2007 +0100

    [PATCH] Add AMCC Acadia (405EZ) eval board support

    This patch adds support for the new AMCC Acadia eval board.

    Please note that this Acadia/405EZ support is still in a beta stage.
    Still lot's of cleanup needed but we need a preliminary release now.

    Signed-off-by: Stefan Roese <sr@denx.de>

commit e01bd218b00af73499331a1a701625a852cd286f
Author: Stefan Roese <sr@denx.de>
Date:	Wed Mar 21 13:38:59 2007 +0100

    [PATCH] Add AMCC PPC405EZ support

    This patch adds support for the new AMCC 405EZ PPC. It is in
    preparation for the AMCC Acadia board support.

    Please note that this Acadia/405EZ support is still in a beta stage.
    Still lot's of cleanup needed but we need a preliminary release now.

    Signed-off-by: Stefan Roese <sr@denx.de>

commit 07e82cb2e284a893df6693f2a1337ab2c47bf6a1
Author: Heiko Schocher <hs@pollux.denx.de>
Date:	Wed Mar 21 08:45:17 2007 +0100

    [PATCH] TQM8272: dont change the bits given from the HRCW
		     for the SIUMCR and BCR Register.
		     Fix the calculation for the EEprom Size

    Signed-off-by: Heiko Schocher <hs@denx.de>

commit 654589873dbafcf104dff133ce0d03a4506e9cc3
Author: Aubrey Li <aubrey.adi@gmail.com>
Date:	Tue Mar 20 18:16:24 2007 +0800

    [Blackfin][PATCH] Add BF561 EZKIT board support

commit a6154fd1cfd020f6da8527e0365b1020a11a71d0
Author: Aubrey Li <aubrey.adi@gmail.com>
Date:	Mon Mar 19 22:55:58 2007 +0800

    [Blackfin][PATCH] minor cleanup

commit 389b6bb50f745bf5038ce030300d8a8512e96f79
Author: Wolfgang Denk <wd@denx.de>
Date:	Mon Mar 19 13:10:08 2007 +0100

    Remove obsoleted POST files.

    Signed-off-by: Wolfgang Denk <wd@denx.de>

commit 8e709bbb2636b5670a8f2b575e138eb1f55773f6
Author: Aubrey Li <aubrey.adi@gmail.com>
Date:	Mon Mar 19 01:26:11 2007 +0800

    [PATCH] Add flash chip M29W320ET/B support

commit 26bf7deca364a5b33f39e8f14ddd3f4081345015
Author: Aubrey Li <aubrey.adi@gmail.com>
Date:	Mon Mar 19 01:24:52 2007 +0800

    [Blackfin][PATCH] Add BF537 stamp board support

commit 8423e5e31a7235d05a482627315fb11d49c17bd7
Author: Stefan Roese <sr@denx.de>
Date:	Fri Mar 16 21:11:42 2007 +0100

    [PATCH] Use dynamic SDRAM TLB setup on AMCC Ebony eval board

    Define CONFIG_PROG_SDRAM_TLB so that the TLB entries for the
    DDR memory are dynamically programmed matching the total size
    of the equipped memory (DIMM modules).

    Signed-off-by: Stefan Roese <sr@denx.de>

commit 76d1466f918b881cda2d259254761e73885093c2
Author: Matthias Fuchs <matthias.fuchs@esd-electronics.com>
Date:	Tue Mar 13 13:38:05 2007 +0100

    [PATCH] renamed environment variable 'addcon' to 'addcons' for PCI405
	    boards in terms of unification.

    Signed-off-by: Matthias Fuchs <matthias.fuchs@esd-electronics.com>

commit a7090b993d3d4d2221ac3f33e6cb1d1b2ccc6bf0
Author: Wolfgang Denk <wd@denx.de>
Date:	Tue Mar 13 16:05:55 2007 +0100

    Make SC3 board build with 'make O='; use 'addcons' consistently
    (SC3 and Jupiter used to use 'addcon' instead).

    Signed-off-by: Wolfgang Denk wd@denx.de

commit 8502e30a28e492c756ea2d7df0ace026388fce4b
Author: Heiko Schocher <hs@pollux.denx.de>
Date:	Tue Mar 13 09:40:59 2007 +0100

    [PATCH] update board config for jupiter Board:
	    added Hush Shell,
		  CONFIG_CMDLINE_EDITING,
		  CFG_ENV_ADDR_REDUND activated

    Signed-off-by: Heiko Schocher <hs@denx.de>

commit 0d93de11449390a5984b0236c3612e50f6dbb7e8
Author: Aubrey Li <aubrey.adi@gmail.com>
Date:	Mon Mar 12 12:11:55 2007 +0800

    [Blackfin][PATCH] minor cleanup

commit bfa5754a58477ac917d21527cd0f079d87cf188e
Author: Aubrey Li <aubrey.adi@gmail.com>
Date:	Mon Mar 12 01:42:06 2007 +0800

    [Blackfin][PATCH] Fix BUILD_DIR option of MAKEALL building issue

commit 8440bb14581a294375c34b91b42512f9753d1130
Author: Aubrey Li <aubrey.adi@gmail.com>
Date:	Mon Mar 12 00:25:14 2007 +0800

    [Blackfin][PATCH] code cleanup

commit cfc67116a706fd18b8f6a9c11a16753c5626d689
Author: Michal Simek <monstr@monstr.eu>
Date:	Sun Mar 11 13:48:24 2007 +0100

    [Microblaze][PATCH] part 2
    timer support
    interrupt controller support
    flash support
    ethernet support
    cache support
    board information support
    env support
    booting image support

    adding support for Xilinx ML401

commit 76316a318de91f6184e7c22a10e02d275ade2441
Author: Michal Simek <monstr@monstr.eu>
Date:	Sun Mar 11 13:42:58 2007 +0100

    [Microblaze][PATCH]
    timer support
    interrupt controller support
    flash support
    ethernet support
    cache support
    board information support
    env support
    booting image support

    adding support for Xilinx ML401

commit 8db13d63157811c839d15a313d9f2d2f5fd10af3
Author: Aubrey Li <aubrey.adi@gmail.com>
Date:	Sat Mar 10 23:49:29 2007 +0800

    [Blackfin][PATCH] code cleanup

commit ef26a08fef928b7bc11ae2c109e638dc3a016d91
Author: Aubrey.Li <aubrey.adi@gmail.com>
Date:	Fri Mar 9 13:40:56 2007 +0800

    [Blackfin][PATCH-2/2] Common files changed to support bf533 platform

commit 3f0606ad0b5639f7f22848fe5b4574e754d0470f
Author: Aubrey.Li <aubrey.adi@gmail.com>
Date:	Fri Mar 9 13:38:44 2007 +0800

    [Blackfin]PATCH-1/2]: Remove obsolete blackfin port and add bf533 platform support

commit 992423ab43c2bcf6b704853bd00af77450915e20
Author: Stefan Roese <sr@denx.de>
Date:	Thu Mar 8 23:00:08 2007 +0100

    ppc4xx: Fix file mode of sequoia.c

    Signed-off-by: Stefan Roese <sr@denx.de>

commit eb92f613556800f7483666db09d9a237ad911d4a
Author: Wolfgang Denk <wd@pollux.denx.de>
Date:	Thu Mar 8 22:52:51 2007 +0100

    Minor cleanup.

commit 8ce16f55c7b9752af3d8bed84521aec5337e2de1
Author: John Otken john@softadvances.com <john@softadvances.com>
Date:	Thu Mar 8 09:39:48 2007 -0600

    ppc4xx: Clear Sequoia/Rainier security engine reset bits

    Signed-off-by: John Otken john@softadvances.com <john@softadvances.com>

commit 650a330dd2539130c8c324791e2f9f75aed79d4e
Author: Matthias Fuchs <matthias.fuchs@esd-electronics.com>
Date:	Thu Mar 8 16:26:52 2007 +0100

    [PATCH] I2C: add some more SPD eeprom decoding for DDR2 modules

    Signed-off-by: Matthias Fuchs <matthias.fuchs@esd-electronics.com>

commit d9fc703246840c4b268debf48c334ba55c597dc0
Author: Matthias Fuchs <matthias.fuchs@esd-electronics.com>
Date:	Thu Mar 8 16:25:47 2007 +0100

    [PATCH] I2C: disable flat i2c commands when CONFIG_I2C_CMD_TREE is defined

    Signed-off-by: Matthias Fuchs <matthias.fuchs@esd-electronics.com>

commit ced5b9029043397348cdc88e0cfcd6b1f629250b
Author: Matthias Fuchs <matthias.fuchs@esd-electronics.com>
Date:	Thu Mar 8 16:23:11 2007 +0100

    [PATCH] 4xx: allow CONFIG_I2C_CMD_TREE without CONFIG_I2C_MULTI_BUS

    Signed-off-by: Matthias Fuchs <matthias.fuchs@esd-electronics.com>

commit d8a8ea5c476d37006fc7f85b7f903142795c8b14
Author: Matthias Fuchs <matthias.fuchs@esd-electronics.com>
Date:	Thu Mar 8 16:20:32 2007 +0100

    [PATCH] I2C: Add missing default CFG_SPD_BUS_NUM

    Signed-off-by: Matthias Fuchs <matthias.fuchs@esd-electronics.com>

commit f9fc6a5852a6335840882fa2111925010eea1abe
Author: Matthias Fuchs <matthias.fuchs@esd-electronics.com>
Date:	Wed Mar 7 15:32:01 2007 +0100

    fixed ethernet phy configuration for plu405 board

    Signed-off-by: Matthias Fuchs <matthias.fuchs@esd-electronics.com>

commit 769104c9356594deb2092e204a39c05b33202d6c
Author: Wolfgang Denk <wd@pollux.denx.de>
Date:	Thu Mar 8 21:49:27 2007 +0100

    Minor cleanup

commit 00cdb4ce5e1b42248e7e6522ad0da3421b988afa
Author: Stefan Roese <sr@denx.de>
Date:	Thu Mar 8 10:13:16 2007 +0100

    [PATCH] Update AMCC Luan 440SP eval board support

    The AMCC Luan now uses the common 440SP(e) DDR SPD code for DDR
    inititializition. This includes DDR auto calibration and support
    for different DIMM modules, instead of the fixed setup used in
    the earlier version.

    This patch also enables the cache in FLASH for the startup
    phase of U-Boot (while running from FLASH). After relocating to
    SDRAM the cache is disabled again. This will speed up the boot
    process, especially the SDRAM setup, since there are some loops
    for memory testing (auto calibration).

    Signed-off-by: Stefan Roese <sr@denx.de>

commit 2f5df47351910a2936c7741cf111855829200943
Author: Stefan Roese <sr@denx.de>
Date:	Thu Mar 8 10:10:18 2007 +0100

    [PATCH] Update AMCC Yucca 440SPe eval board support

    The AMCC Yucca now uses the common 440SP(e) DDR SPD code for DDR
    inititializition. This includes DDR auto calibration and support
    for different DIMM modules, instead of the fixed setup used in
    the earlier version.

    Signed-off-by: Stefan Roese <sr@denx.de>

commit 2721a68a9ea91f1e494649ce68b2577261f578e2
Author: Stefan Roese <sr@denx.de>
Date:	Thu Mar 8 10:07:18 2007 +0100

    ppc4xx: Small AMCC Katmai 440SPe update

    Signed-off-by: Stefan Roese <sr@denx.de>

commit df294497479b1dca6dd86318b2a912f72fede0df
Author: Stefan Roese <sr@denx.de>
Date:	Thu Mar 8 10:06:09 2007 +0100

    ppc4xx: Update 440SP/440SPe DDR SPD setup code to support 440SP

    Signed-off-by: Stefan Roese <sr@denx.de>

commit 83853178bd36bca6f0f8f1331476620c84a587fc
Author: Ed Swarthout <Ed.Swarthout@freescale.com>
Date:	Wed Mar 7 12:14:50 2007 -0600

    net - Support ping reply when processing net-loop

    Add ICMP_ECHO_REQUEST packet support by responding with a ICMP_ECHO_REPLY.

    This permits the ping command to test the phy interface when the phy
    is put in loopback mode (typically by setting register 0 bit 14).

    It also allows the port to respond to an external ping when u-boot is
    processing some other net command (such as tftp).  This is useful when
    tftp appears to hang.

    Signed-off-by: Ed Swarthout <Ed.Swarthout@freescale.com>
    Signed-off-by: Ben Warren <bwarren@qstreams.com>

commit fa1aef15bcd47736687be1af544506e90fba545d
Author: Stefan Roese <sr@denx.de>
Date:	Wed Mar 7 16:43:00 2007 +0100

    [PATCH] Use dynamic SDRAM TLB setup on AMCC Ocotea eval board

    Define CONFIG_PROG_SDRAM_TLB so that the TLB entries for the
    DDR memory are dynamically programmed matching the total size
    of the equipped memory (DIMM modules).

    Signed-off-by: Stefan Roese <sr@denx.de>

commit e2ebe696818939e2b974628be9c921ea3fe9de13
Author: Stefan Roese <sr@denx.de>
Date:	Wed Mar 7 16:39:36 2007 +0100

    [PATCH] Fix AMCC 44x SPD SDRAM init code to support 2 DIMM's

    This patch fixes a problem that occurs when 2 DIMM's are
    used. This problem was first spotted and fixed by Gerald Jackson
    <gerald.jackson@reaonixsecurity.com> but this patch fixes the
    problem in a little more clever way.

    This patch also adds the nice functionality to dynamically
    create the TLB entries for the SDRAM (tlb.c). So we should
    never run into such problems with wrong (too short) TLB
    initialization again on these platforms.

    As this feature is new to the "old" 44x SPD DDR driver, it
    has to be enabled via the CONFIG_PROG_SDRAM_TLB define.

    Signed-off-by: Stefan Roese <sr@denx.de>

commit 39218433983417b9df087976a79e3f80dd5e83d6
Author: Wolfgang Denk <wd@denx.de>
Date:	Wed Mar 7 16:33:44 2007 +0100

    UC101: fix compiler warnings

commit 8d7e2732221bc2d64df14f700c64c23e0a4c3dce
Author: Wolfgang Denk <wd@pollux.denx.de>
Date:	Wed Mar 7 16:19:46 2007 +0100

    HMI1001: fix build error, cleanup compiler warnings.

commit ad5bb451ade552c44bef9119d907929ebc2c126f
Author: Wolfgang Denk <wd@pollux.denx.de>
Date:	Tue Mar 6 18:08:43 2007 +0100

    Restructure POST directory to support of other CPUs, boards, etc.

commit a5284efd125967675b2e9c6ef7b95832268ad360
Author: Wolfgang Denk <wd@pollux.denx.de>
Date:	Tue Mar 6 18:01:47 2007 +0100

    Fix HOSTARCH handling.
    Patch by Mike Frysinger, Mar 05 2007

commit 07b7b0037aac5102939917d7cbe561b5c0d5aa44
Author: Stefan Roese <sr@denx.de>
Date:	Tue Mar 6 07:47:04 2007 +0100

    [PATCH] Speed optimization of AMCC Sequoia/Rainier DDR2 setup

    As provided by the AMCC applications team, this patch optimizes the
    DDR2 setup for 166MHz bus speed. The values provided are also save
    to use on a "normal" 133MHz PLB bus system. Only the refresh counter
    setup has to be adjusted as done in this patch.

    For this the NAND booting version had to include the "speed.c" file
    from the cpu/ppc4xx directory. With this addition the NAND SPL image
    will just fit into the 4kbytes of program space. gcc version 4.x as
    provided with ELDK 4.x is needed to generate this optimized code.

    Signed-off-by: Stefan Roese <sr@denx.de>

commit 647d3c3eed0da1d1505eecabe0b0fab96f956e68
Author: Wolfgang Denk <wd@pollux.denx.de>
Date:	Sun Mar 4 01:36:05 2007 +0100

    Some code cleanup.

commit 781e026c8aa6f7e9eb5f0e72cc4d20971219b148
Author: Kim Phillips <kim.phillips@freescale.com>
Date:	Wed Feb 28 00:02:04 2007 -0600

    mpc83xx: fix implicit declaration of function 'ft_get_prop' warnings

    (cherry picked from c5bf13b02284c3204a723566a9bab700e5059659 commit)

commit 4feab4de7bfc2cb2fed36ad76f93c3a69659bbaf
Author: Kumar Gala <galak@kernel.crashing.org>
Date:	Tue Feb 27 23:51:42 2007 -0600

    mpc83xx: Fix config of Arbiter, System Priority, and Clock Mode

    The config value for:
    * CFG_ACR_PIPE_DEP
    * CFG_ACR_RPTCNT
    * CFG_SPCR_TSEC1EP
    * CFG_SPCR_TSEC2EP
    * CFG_SCCR_TSEC1CM
    * CFG_SCCR_TSEC2CM

    Were not being used when setting the appropriate register

    Added:
    * CFG_SCCR_USBMPHCM
    * CFG_SCCR_USBDRCM
    * CFG_SCCR_PCICM
    * CFG_SCCR_ENCCM

    To allow full config of the SCCR.

    Also removed random CFG_SCCR settings in MPC8349EMDS, TQM834x, and sbc8349
    that were just bogus.

    Signed-off-by: Kumar Gala <galak@kernel.crashing.org>

commit d51b3cf371cd441030460ef19d36b2924c361b1a
Author: Kim Phillips <kim.phillips@freescale.com>
Date:	Thu Feb 22 20:06:57 2007 -0600

    mpc83xx: update [local-]mac-address properties on UEC based devices

    8360 and 832x weren't updating their [local-]mac-address
    properties. This patch fixes that.

    Signed-off-by: Kim Phillips <kim.phillips@freescale.com>

commit 61f4f912acbe60776c5e00df1ec94094ce672957
Author: Timur Tabi <timur@freescale.com>
Date:	Tue Feb 13 10:41:42 2007 -0600

    mpc83xx: write MAC address to mac-address and local-mac-address

    Some device trees have a mac-address property, some have local-mac-address,
    and some have both.  To support all of these device trees, this patch
    updates ftp_cpu_setup() to write the MAC address to mac-address if it exists.
    This function already updates local-mac-address.

    Signed-off-by: Timur Tabi <timur@freescale.com>

commit 22d71a71f57fd5d38b27ac3848e50d790360a598
Author: Kim Phillips <kim.phillips@freescale.com>
Date:	Tue Feb 27 18:41:08 2007 -0600

    mpc83xx: add command line editing by default

commit 3fc0bd159103b536e1c54c6f4457a09b3aba66ca
Author: Kim Phillips <kim.phillips@freescale.com>
Date:	Wed Feb 14 19:50:53 2007 -0600

    mpc83xx: Disable G1TXCLK, G2TXCLK h/w buffers

    Disable G1TXCLK, G2TXCLK h/w buffers. This patch
    fixes a networking timeout issue with MPC8360EA (Rev.2) PBs.

    Verified on Rev. 1.1, Rev. 1.2, and Rev. 2.0 boards.

    Signed-off-by: Kim Phillips <kim.phillips@freescale.com>
    Signed-off-by: Emilian Medve <Emilian.Medve@freescale.com>

commit d61853cf2472e0b8bcbd131461a93d1c49ff0c1f
Author: Xie Xiaobo <r63061@freescale.com>
Date:	Wed Feb 14 18:27:17 2007 +0800

    mpc83xx: Add DDR2 controller fixed/SPD Init for MPC83xx

    The code supply fixed and SPD initialization for MPC83xx DDR2 Controller.
    it pass DDR/DDR2 compliance tests.

    Signed-off-by: Xie Xiaobo <X.Xie@freescale.com>

commit b110f40bd180c6b560276589beedf753e97c46ce
Author: Xie Xiaobo <r63061@freescale.com>
Date:	Wed Feb 14 18:27:06 2007 +0800

    mpc83xx: Add the cpu specific code for MPC8360E rev2.0 MDS

    MPC8360E rev2.0 have new spridr,and PVR value,
    The MDS board for MPC8360E rev2.0 has 32M bytes Flash and 256M DDR2 DIMM.

    Signed-off-by: Xie Xiaobo <X.Xie@freescale.com>

commit 8d172c0f0d85998a256a95b7459a5403a30380ed
Author: Xie Xiaobo <r63061@freescale.com>
Date:	Wed Feb 14 18:26:44 2007 +0800

    mpc83xx: Add the cpu and board specific code for MPC8349E rev3.1 MDS

    MPC8349E rev3.1 have new spridr,and PVR value,
    The MDS board for MPC8349E rev3.1 has 32M bytes Flash and 256M DDR2 DIMM.

    Signed-off-by: Xie Xiaobo<X.Xie@freescale.com>

commit f6f5f709e5c8e4564c4dfeecfdf2279244f9c83b
Author: Joakim Tjernlund <joakim.tjernlund@transmode.se>
Date:	Wed Jan 31 11:04:19 2007 +0100

    mpc83xx: Fix empty i2c reads/writes in fsl_i2c.c

    Fix empty i2c reads/writes, i2c_write(0x50, 0x00, 0, NULL, 0)
    which is used to se if an slave will ACK after receiving its address.

    Correct i2c probing to use this method as the old method could upset
    a slave as it wrote a data byte to it.

    Add a small delay in i2c_init() to let the controller
    shutdown any ongoing I2C activity.

    Signed-off-by: Joakim Tjernlund <Joakim.Tjernlund@transmode.se>

commit 7a78f148d6a7298e4fface680dc7eacd877b1aba
Author: Timur Tabi <timur@freescale.com>
Date:	Wed Jan 31 15:54:29 2007 -0600

    mpc83xx: Add support for the MPC8349E-mITX-GP

    Add support for the MPC8349E-mITX-GP, a stripped-down version of the
    MPC8349E-mITX.  Bonus features include support for low-boot (BMS bit in
    HRCW is 0) for the ITX and a README for the ITX and the ITX-GP.

    Signed-off-by: Timur Tabi <timur@freescale.com>

commit fab16807adad350f618024350c6950165c247c72
Author: Timur Tabi <timur@freescale.com>
Date:	Wed Jan 31 15:54:20 2007 -0600

    mpc83xx: Delete sdram_init() for MPC8349E-mITX

    There is no SDRAM on any of the 8349 ITX variants, so function sdram_init()
    never does anything.  This patch deletes it.

    Signed-off-by: Timur Tabi <timur@freescale.com>

commit a87c856eb411b9365937d0d4b9c21e46adbe1c14
Author: Dave Liu <daveliu@freescale.com>
Date:	Fri Jan 19 10:43:26 2007 +0800

    mpc83xx: Fix the LAW1/3 bug

    The patch solves the alignment problem of the local bus access windows to
    render accessible the memory bank and PHY registers of UPC 1 (starting at
    0xf801 0000). What we actually did was to adjust the sizes of the bus
    access windows so that the base address alignment requirement would be met.

    Signed-off-by: Chereji Marian <marian.chereji@freescale.com>
    Signed-off-by: Gridish Shlomi <gridish@freescale.com>
    Signed-off-by: Dave Liu <daveliu@freescale.com>

commit 97c4b397dce236a7318b304667bf89e59d08b17c
Author: Kim Phillips <kim.phillips@freescale.com>
Date:	Tue Jan 30 16:15:31 2007 -0600

    mpc83xx: don't hang if watchdog configured on 8360, 832x

    don't hang if watchdog configured on 8360, 832x

    The watchdog programming model is the same across all 83xx devices;
    make the code reflect that.

commit b70047478570e371ce7223be342ce98afea0f7d6
Author: Kim Phillips <kim.phillips@freescale.com>
Date:	Tue Jan 30 16:15:21 2007 -0600

    mpc83xx: protect memcpy to bad address if a local-mac-address is missing from dt

    protect memcpy to bad address if a local-mac-address is missing from dt

commit 6752ed088c75c26a89b70c46b7326a4cd6015f29
Author: Kim Phillips <kim.phillips@freescale.com>
Date:	Tue Jan 30 16:15:04 2007 -0600

    mpc83xx: make 8360 default environment fdt be 8360 (not 8349)

    make 8360 default environment fdt be 8360 (not 8349)

commit a28899c910024a0226331df07207b1038c300c93
Author: Emilian Medve <Emilian.Medve@freescale.com>
Date:	Tue Jan 30 16:14:50 2007 -0600

    mpc83xx: Fix alternating tx error / tx buffer not ready bug in QE UEC

    The problem is not gcc4 but the code itself. The BD_STATUS() macro can't
    be used for busy-waiting since it strips the 'volatile' property from
    the bd variable. gcc3 was working by pure luck.

    This is a follow on patch to "Fix the UEC driver bug of QE"

commit 3e78a31cfe3d3022f46f67eb88e1281d5cc2eb89
Author: Kumar Gala <galak@kernel.crashing.org>
Date:	Tue Jan 30 14:08:30 2007 -0600

    mpc83xx: Replace CONFIG_MPC8349 and use CONFIG_MPC834X instead

    The code that is ifdef'd with CONFIG_MPC8349 is actually applicable to all
    MPC834X class processors.  Change the protections from CONFIG_MPC8349 to
    CONFIG_MPC834X so they are more generic.

    Signed-off-by: Kumar Gala <galak@kernel.crashing.org>

commit ae246dc6c1937c291014eadd90b6d48c438c7cb0
Author: Kim Phillips <kim.phillips@freescale.com>
Date:	Thu Jan 25 13:40:55 2007 -0600

    mpc83xx: add MPC832XEMDS and sbc8349 to MAKEALL

commit 4decd84e8f04279c5cfff7f8e907465ef8d8a3fb
Author: Kim Phillips <kim.phillips@freescale.com>
Date:	Wed Jan 24 17:18:37 2007 -0600

    mpc83xx: sort Makefile targets

    reordered targets alphabetically

commit 91e25769771c1164ed63ffca0add49f934ae3343
Author: Paul Gortmaker <paul.gortmaker@windriver.com>
Date:	Tue Jan 16 11:38:14 2007 -0500

    mpc83xx: U-Boot support for Wind River SBC8349

    I've redone the SBC8349 support to match git-current, which
    incorporates all the MPC834x updates from Freescale since the 1.1.6
    release,  including the DDR changes.

    I've kept all the SBC8349 files as parallel as possible to the
    MPC8349EMDS ones for ease of maintenance and to allow for easy
    inspection of what was changed to support this board.  Hence the SBC8349
    U-Boot has FDT support and everything else that the MPC8349EMDS has.

    Fortunately the Freescale updates added support for boards using CS0,
    but I had to change spd_sdram.c to allow for board specific settings for
    the sdram_clk_cntl (it is/was hard coded to zero, and that remains the
    default if the board doesn't specify a value.)

    Hopefully this should be mergeable as-is and require no whitespace
    cleanups or similar, but if something doesn't measure up then let me
    know and I'll fix it.

    Thanks,
    Paul.

commit 05031db456ab227f3e3752f37b9b812b65bb83ad
Author: Sam Song <samsongshu@yahoo.com.cn>
Date:	Thu Dec 14 19:03:21 2006 +0800

    mpc83xx: Remove a redundant semicolon in mpc8349itx.c

    A redundant semicolon existed in mpc8349itx.c
    should be removed.

    Signed-off-by: Sam Song <samsongshu@yahoo.com.cn>

commit f35f358241c549be3f75cfe2eaa642914275b7ba
Author: Jerry Van Baren <gerald.vanbaren@comcast.net>
Date:	Wed Dec 6 21:23:55 2006 -0500

    mpc83xx: Put the version (and magic) after the HRCW.

    Put the version (and magic) after the HRCW.  This puts it in a fixed
    location in flash, not at the start of flash but as close as we can get.

    Signed-off-by: Jerry Van Baren <vanbaren@cideas.com>

commit 48aecd969171a6e99a55fae04933857787f9a5bd
Author: Dave Liu <r63238@freescale.com>
Date:	Thu Dec 7 21:14:51 2006 +0800

    mpc83xx: Add the MPC832XEMDS board readme

    Add the MPC832XEMDS board readme

    Signed-off-by: Dave Liu <daveliu@freescale.com>

commit 24c3aca3f1358b113d3215adb5433b156e99f72b
Author: Dave Liu <r63238@freescale.com>
Date:	Thu Dec 7 21:13:15 2006 +0800

    mpc83xx: Add support for the MPC832XEMDS board

    This patch supports DUART, ETH3/4 and PCI etc.

    Signed-off-by: Dave Liu <daveliu@freescale.com>

commit e080313c32322e15ab5a18eb896a252858c57284
Author: Dave Liu <r63238@freescale.com>
Date:	Thu Dec 7 21:11:58 2006 +0800

    mpc83xx: streamline the 83xx immr head file

    For better format and style, I streamlined the 83xx head files,
    including immap_83xx.h and mpc83xx.h. In the old head files, 1)
    duplicated macro definition appear in the both files; 2) the structure
    of QE immr is duplicated in the immap_83xx.h and immap_qe.h; 3) The
    macro definition put inside the each structure. So, I cleaned up the
    structure of QE immr from immap_83xx.h, deleted the duplicated stuff and
    moved the macro definition to mpc83xx.h, Just like MPC8260.

    CHANGELOG

    *streamline the 83xx immr head file

    Signed-off-by: Dave Liu <daveliu@freescale.com>

commit ddd02492f43db5408f5ab9f823b0ba5796e28ef0
Author: Dave Liu <r63238@freescale.com>
Date:	Wed Dec 6 11:38:17 2006 +0800

    mpc83xx: Fix the UEC driver bug of QE

    The patch prevents the GCC tool chain from striping useful code for
    optimization. It will make UEC ethernet driver workable, Otherwise the
    UEC will fail in tx when you are using gcc4.x. but the driver can work
    when using gcc3.4.3.

    CHANGELOG

    *Prevent the GCC from striping code for optimization, Otherwise the UEC
    will tx failed when you are using gcc4.x.

    Signed-off-by: Dave Liu <daveliu@freescale.com>

commit ba58e4c9a9a917ce795dd16d4ec8d515f9f7aa35
Author: Stefan Roese <sr@denx.de>
Date:	Thu Mar 1 21:11:36 2007 +0100

    [PATCH] Update AMCC Katmai 440SPe eval board support

    This patch updates the recently added Katmai board support. The biggest
    change is the support of ECC DIMM modules in the 440SP(e) SPD DDR2
    driver.

    Please note, that still some problems are left with some memory
    configurations. See the driver for more details.

    Signed-off-by: Stefan Roese <sr@denx.de>

commit 8c12045a3b06c5b6675d3fe02fbc9f545988129a
Author: Stefan Roese <sr@denx.de>
Date:	Thu Mar 1 07:03:25 2007 +0100

    [PATCH] I2C: Add missing default CFG_RTC_BUS_NUM & CFG_DTT_BUS_NUM

    Signed-off-by: Stefan Roese <sr@denx.de>

commit ccbc7036648e465697ca298ba51e0e76dda352a0
Author: Wolfgang Denk <wd@pollux.denx.de>
Date:	Wed Feb 28 01:28:53 2007 +0100

    SC3: fix typo in default environment

commit e344568b1b46af85ec32d815586f91bc115d6223
Author: Sergei Poselenov <sposelenov@emcraft.com>
Date:	Tue Feb 27 20:15:30 2007 +0300

    MCC200: Fixes for update procedure

    - fix logic error in image type handling
    - make sure file system images (cramfs etc.) get stored in flash
      with image header stripped so they can be mounted through MTD

commit 743571145b37182757d4e688a77860b36ee77573
Author: Wolfgang Denk <wd@pollux.denx.de>
Date:	Tue Feb 27 14:26:04 2007 +0100

    Minor code cleanup.

commit 638dd1458bbdc2a55d4b9e25c5c4e1f838a5dc72
Author: Sergei Poselenov <sposelenov@emcraft.com>
Date:	Tue Feb 27 12:40:16 2007 +0300

    MCC200 update - add LCD Progress Indicator

commit 6c7cac8c4fce0ea2bf8e15ed8658d87974155b44
Author: Stefan Roese <sr@denx.de>
Date:	Thu Feb 22 07:43:34 2007 +0100

    [PATCH] get_dev() now unconditionally uses manual relocation

    Since the relocation fix is not included yet and we're not sure how
    it will be added, this patch removes code that required relocation
    to be fixed for now.

    Signed-off-by: Stefan Roese <sr@denx.de>

commit 8274ec0bd01d2feb2c7f095eba78d42ea009798b
Author: Stefan Roese <sr@denx.de>
Date:	Thu Feb 22 07:40:23 2007 +0100

    [PATCH] Change systemace driver to select 8 & 16bit mode

    As suggested by Grant Likely this patch enables the Xilinx SystemACE
    driver to select 8 or 16bit mode upon startup.

    Signed-off-by: Stefan Roese <sr@denx.de>

commit 3a197b2fe49d6fa03978e60af2394efe9c70b527
Author: Haiying Wang <Haiying.Wang@freescale.com>
Date:	Wed Feb 21 16:52:31 2007 +0100

    [PATCH v3] Add sync to ensure flash_write_cmd is fully finished

    Some CPUs like PPC, BLACKFIN need sync() to ensure cfi flash write command
    is fully finished. The sync() is defined in each CPU's io.h file. For
    those CPUs which do not need sync for now, a dummy sync() is defined in
    their io.h as well.

    Signed-off-by: Haiying Wang <Haiying.Wang@freescale.com>

commit da04995c7dc6772013a9a0dc5c767f190c402478
Author: Stefan Roese <sr@denx.de>
Date:	Wed Feb 21 13:44:34 2007 +0100

    [PATCH] Fix problem in systemace driver (ace_writew instead of ace_write)

    Signed-off-by: Stefan Roese <sr@denx.de>

commit 751bb57107d78978ae08e697c3deba816f5be091
Author: Stefan Roese <sr@denx.de>
Date:	Tue Feb 20 13:21:57 2007 +0100

    [PATCH] Fix relocation problem with "new" get_dev() function

    This patch enables the "new" get_dev() function for block devices
    introduced by Grant Likely to be used on systems that still suffer
    from the relocation problems (manual relocation neede because of
    problems with linker script).

    Hopefully we can resolve this relocation issue soon for all platform
    so we don't need this additional code anymore.

    Signed-off-by: Stefan Roese <sr@denx.de>

commit d93e2212f962668b3dce091ff5edc33f2347fe37
Author: Stefan Roese <sr@denx.de>
Date:	Tue Feb 20 13:17:42 2007 +0100

    [PATCH] Update SystemACE driver for 16bit access

    This patch removes some problems when the Xilinx SystemACE driver
    is used with 16bit access on an big endian platform (like the
    AMCC Katmai).

    Signed-off-by: Stefan Roese <sr@denx.de>

commit 874bb7b88fe9b4648e1288a387af2e31014a72f3
Author: Stefan Roese <sr@denx.de>
Date:	Tue Feb 20 13:15:40 2007 +0100

    [PATCH] Clean up Katmai (440SPe) linker script

    Signed-off-by: Stefan Roese <sr@denx.de>

commit 4745acaa1a603b67f6b9b7970365ebadd7d6586f
Author: Stefan Roese <sr@denx.de>
Date:	Tue Feb 20 10:57:08 2007 +0100

    [PATCH] Add support for the AMCC Katmai (440SPe) eval board

    Signed-off-by: Stefan Roese <sr@denx.de>

commit 0dc018ece13effc689e47479ea9ebf1c98a507f5
Author: Stefan Roese <sr@denx.de>
Date:	Tue Feb 20 10:51:26 2007 +0100

    [PATCH] I2C: Add support for multiple I2C busses for RTC & DTT

    This patch switches to the desired I2C bus when the date/dtt
    commands are called. This can be configured using the
    CFG_RTC_BUS_NUM and/or CFG_DTT_BUS_NUM defines.

    Signed-off-by: Stefan Roese <sr@denx.de>

commit 4037ed3b63923cfcec27f784a89057c3cbabcedb
Author: Stefan Roese <sr@denx.de>
Date:	Tue Feb 20 10:43:34 2007 +0100

    [PATCH] PPC4xx: Add 440SP(e) DDR2 SPD DIMM support

    This patch adds support for the DDR2 controller used on the
    440SP and 440SPe. It is tested on the Katmai (440SPe) eval
    board and works fine with the following DIMM modules:

    - Corsair CM2X512-5400C4 (512MByte per DIMM)
    - Kingston ValueRAM KVR667D2N5/512 (512MByte per DIMM)
    - Kingston ValueRAM KVR667D2N5K2/2G (1GByte per DIMM)

    This patch also adds the nice functionality to dynamically
    create the TLB entries for the SDRAM (tlb.c). So we should
    never run into such problems with wrong (too short) TLB
    initialization again on these platforms.

    Signed-off-by: Stefan Roese <sr@denx.de>

commit 36d830c9830379045f5daa9f542ac1c990c70068
Author: Stefan Roese <sr@denx.de>
Date:	Tue Feb 20 10:35:42 2007 +0100

    [PATCH] PPC4xx: Split 4xx SPD SDRAM init routines into 2 files

    Since the existing 4xx SPD SDRAM initialization routines for the
    405 SDRAM controller and the 440 DDR controller don't have much in
    common this patch splits both drivers into different files.

    This is in preparation for the 440 DDR2 controller support (440SP/e).

    Signed-off-by: Stefan Roese <sr@denx.de>

commit 79b2d0bb2eae09602448f7a7cb56530d2f31e6c6
Author: Stefan Roese <sr@denx.de>
Date:	Tue Feb 20 10:27:08 2007 +0100

    [PATCH] PPC4xx: Add support for multiple I2C busses

    This patch adds support for multiple I2C busses on the PPC4xx
    platforms. Define CONFIG_I2C_MULTI_BUS in the board config file
    to make use of this feature.

    It also merges the 405 and 440 i2c header files into one common
    file 4xx_i2c.h.

    Also the 4xx i2c reset procedure is reworked since I experienced
    some problems with the first access on the 440SPe Katmai board.

    Signed-off-by: Stefan Roese <sr@denx.de>

commit eb867a76238fb38e952c37871b16d0d7fd61c95f
Author: Grant Likely <grant.likely@secretlab.ca>
Date:	Tue Feb 20 09:05:45 2007 +0100

    [PATCH 9_9] Use "void *" not "unsigned long *" for block dev read_write buffer pointers

    Block device read/write is anonymous data; there is no need to use a
    typed pointer.  void * is fine.  Also add a hook for block_read functions

    Signed-off-by: Grant Likely <grant.likely@secretlab.ca>

commit 53758fa20e935cc87eeb0519ed365df753a6f289
Author: Grant Likely <grant.likely@secretlab.ca>
Date:	Tue Feb 20 09:05:38 2007 +0100

    [PATCH 8_9] Add block_write hook to block_dev_desc_t

    Preparation for future patches which support block device writing

    Signed-off-by: Grant Likely <grant.likely@secretlab.ca>

commit f4852ebe6ca946a509667eb68be42026f837be76
Author: Grant Likely <grant.likely@secretlab.ca>
Date:	Tue Feb 20 09:05:31 2007 +0100

    [PATCH 7_9] Replace ace_readw_ace_writeb functions with macros

    Register read/write does not need to be wrapped in a full function.  The
    patch replaces them with macros.

    Signed-off-by: Grant Likely <grant.likely@secretlab.ca>

commit 3a8ce9af6fcb5744a7851b4440c07688acc40844
Author: Grant Likely <grant.likely@secretlab.ca>
Date:	Tue Feb 20 09:05:23 2007 +0100

    [PATCH 6_9] Move common_cmd_ace.c to drivers_systemace.c

    The code in this file is not a command; it is a device driver.  Put it in
    the correct place.	There are zero functional changes in this patch, it
    only moves the file.

    Signed-off-by: Grant Likely <grant.likely@secretlab.ca>

commit 984618f3e7794c783ec8d1511e74c6ee2d69bfe4
Author: Grant Likely <grant.likely@secretlab.ca>
Date:	Tue Feb 20 09:05:16 2007 +0100

    [PATCH 5_9] Whitespace fixup on common_cmd_ace.c (using Lindent)

    This patch is in preparation of additional changes to the sysace driver.
    May as well take this opportunity to fixup the inconsistent whitespace since
    this file is about to undergo major changes anyway.

    There are zero functional changes in this patch.  It only cleans up the
    the whitespace.

    Signed-off-by: Grant Likely <grant.likely@secretlab.ca>

commit 80ba981d940471fe7e539e64fa3d2bd80002beda
Author: Grant Likely <grant.likely@secretlab.ca>
Date:	Tue Feb 20 09:05:07 2007 +0100

    [PATCH 4_4] Remove local implementation of isprint() in ft_build.c

    isprint is already defined in ctype.c

    Signed-off-by: Grant Likely <grant.likely@secretlab.ca>

commit c95c4280d751ca078c2ff58228d2f2b44ccf0600
Author: Grant Likely <grant.likely@secretlab.ca>
Date:	Tue Feb 20 09:05:00 2007 +0100

    [PATCH 3_9] Move buffer print code from md command to common function

    Printing a buffer is a darn useful thing.  Move the buffer print code
    into print_buffer() in lib_generic/

    Signed-off-by: Grant Likely <grant.likely@secretlab.ca>

commit 99b0f0fd3fbf2572ae1a7723dd90cffc8e85130a
Author: Grant Likely <grant.likely@secretlab.ca>
Date:	Tue Feb 20 09:04:52 2007 +0100

    [PATCH 2_4] Use config.h, not xparameters.h, for xilinx targets

    Change the xilinx device drivers and board code to include config.h
    instead of xparameters.h directly.	config.h always includes the
    correct xparameters file.  This change reduces the posibility of
    including the wrong file when adding a new xilinx board port

    Signed-off-by: Grant Likely <grant.likely@secretlab.ca>

commit 735dd97b1b20e777d059c7b389fe9d70cd3f80c7
Author: Grant Likely <grant.likely@secretlab.ca>
Date:	Tue Feb 20 09:04:34 2007 +0100

    [PATCH 1_4] Merge common get_dev() routines for block devices

    Each of the filesystem drivers duplicate the get_dev routine.  This change
    merges them into a single function in part.c

    Signed-off-by: Grant Likely <grant.likely@secretlab.ca>

commit f5fcc3c20b65554e98a165542c36ee0c610a2d81
Author: Wolfgang Denk <wd@pollux.denx.de>
Date:	Mon Feb 19 23:09:51 2007 +0100

    MCC200: Software Updater: allow both "ramdisk" and "filesystem" types
    as root file system images.

commit 489c696ae7211218961d159e43e722d74c36fcbc
Author: Sergei Poselenov <sposelenov@emcraft.com>
Date:	Wed Feb 14 14:30:28 2007 +0300

    MCC200: Extensions to Software Update Mechanism

    Update / extend Software Update Mechanism for MCC200 board:

    - Add support for rootfs image added. The environment variables
      "rootfs_st" and "rootfs_nd" can be used to override the default
      values of the image start and end.
    - Remove excessive key check code.
    - Code cleanup.

commit 4be23a12f23f1372634edc3215137b09768b7949
Author: Stefan Roese <sr@denx.de>
Date:	Mon Feb 19 08:23:15 2007 +0100

    [PATCH] Update Sequoia EBC configuration (NOR FLASH)

    As spotted by Matthias Fuchs, the READY input should not be
    enabled for the NOR FLASH on the Sequoia board.

    Signed-off-by: Stefan Roese <sr@denx.de>

commit 2605e90bf676d48123afe5719a846d2b52b24aac
Author: Heiko Schocher <hs@pollux.denx.de>
Date:	Fri Feb 16 07:57:42 2007 +0100

    [PATCH] Added support for the jupiter board.

    Signed-off-by: Heiko Schocher <hs@denx.de>

commit 497d012e5be0194e1084073d0081eb1a844796b2
Author: Gary Jennejohn <garyj@pollux.denx.de>
Date:	Mon Feb 12 13:11:50 2007 +0100

    LPC2292: patch from Siemens.

commit b0b1a920aebead0d44146e73676ae9d80fffc8e2
Author: Stefan Roese <sr@denx.de>
Date:	Sat Feb 10 08:49:31 2007 +0100

    [PATCH] Add missing p3mx.h file to repository (ups)

    Signed-off-by: Stefan Roese <sr@denx.de>

commit 53d4a4983fb9b3ae5f7b2f10c599aca2b1b4034a
Author: Bartlomiej Sieka <tur@semihalf.com>
Date:	Fri Feb 9 10:45:42 2007 +0100

    [Motion-PRO] Preliminary support for the Motion-PRO board.

commit 5a753f98c6a01bd1c61a9a3f95e8329a35f62994
Author: Stefan Roese <sr@denx.de>
Date:	Wed Feb 7 16:51:08 2007 +0100

    [PATCH] Update some AMCC 4xx board config files (set initrd_high)

    Some boards that can have more than 768MBytes of SDRAM need to
    set "initrd_high", so that the initrd can be accessed by the
    Linux kernel.

    Signed-off-by: Stefan Roese <sr@denx.de>

commit 7372ca68227930d03cffa548310524cad5b96733
Author: Stefan Roese <sr@denx.de>
Date:	Fri Feb 2 12:44:22 2007 +0100

    [PATCH] Correctly display PCI arbiter en-/disabled on some 4xx boards

    Previously the strapping DCR/SDR was read to determine if the internal PCI
    arbiter is enabled or not. This strapping bit can be overridden, so now
    the current status is read from the correct DCR/SDR register.

    Signed-off-by: Stefan Roese <sr@denx.de>

commit 2aa54f651a42d198673318f07a20c89a43e4d197
Author: Stefan Roese <sr@denx.de>
Date:	Fri Feb 2 12:42:08 2007 +0100

    [PATCH] Change configuration output of Sycamore, Yellowstone & Rainier

    Signed-off-by: Stefan Roese <sr@denx.de>

commit 23744d6b5bf17592eb6a0ef4f318f6089f55993b
Author: Stefan Roese <sr@denx.de>
Date:	Thu Feb 1 13:22:41 2007 +0100

    [PATCH] Remove PCI-PNP configuration from Sequoia/Rainier config file

    When PCI PNP is enabled the pci pnp configuration routine is called
    which sets the PCI_CACHE_SIZE_LINE to 8. This seems to generate some
    problems with some PCI cards. For now disable the PCI PNP configuration.

    Signed-off-by: Stefan Roese <sr@denx.de>

commit 2902fadade3be7659467e8d074048c6b7068f5c0
Author: Stefan Roese <sr@denx.de>
Date:	Wed Jan 31 16:56:10 2007 +0100

    [PATCH] Update 440EPx/440GRx cpu detection

    Signed-off-by: Stefan Roese <sr@denx.de>

commit d5ea287b02a6945c3977410e364a879dd1a555c8
Author: Stefan Roese <sr@denx.de>
Date:	Wed Jan 31 16:38:04 2007 +0100

    [PATCH] Update esd cpci5200 files

    Signed-off-by: Reinhard Arlt <reinhard.arlt@esd-electronics.com>

commit 8b7d1f0ab7d7c4fe3160bbf74a7e9690d9f3a3ab
Author: Stefan Roese <sr@denx.de>
Date:	Wed Jan 31 16:37:34 2007 +0100

    [PATCH] Add support for esd mecp5200 board

    Signed-off-by: Reinhard Arlt <reinhard.arlt@esd-electronics.com>

commit 71a4e5fda8b60044ab9f46069fa1cfa26bdd07ff
Author: Stefan Roese <sr@denx.de>
Date:	Wed Jan 31 12:38:50 2007 +0100

    [PATCH] Remove unneccessary yellowstone board config file

    Signed-off-by: Stefan Roese <sr@denx.de>

commit e802594b6fa1b166308820c276b96dc0d7cc731c
Author: Stefan Roese <sr@denx.de>
Date:	Tue Jan 30 17:06:10 2007 +0100

    [PATCH] Update Sequoia (440EPx) config file

    The config file now handles the 2nd target, the Rainier (440GRx)
    evaluation board better. Additionally the PPC input clock was
    adjusted to match the correct value of 33.0 MHz.

    Signed-off-by: Stefan Roese <sr@denx.de>

commit 700200c67e73b83751418abe7815840dca8fd6cb
Author: Stefan Roese <sr@denx.de>
Date:	Tue Jan 30 17:04:19 2007 +0100

    [PATCH] Merge Yosemite & Yellowstone board ports

    Now the AMCC eval boards Yosemite (440EP) and Yellowstone (440GR)
    share one config file and all board specific files. This way we
    don't have to maintain two different sets of files for nearly
    identical boards.

    Signed-off-by: Stefan Roese <sr@denx.de>

commit 1bbf5eae322f5f1f6427ecc3ac13a0cb7dba8ad6
Author: Stefan Roese <sr@denx.de>
Date:	Tue Jan 30 15:01:49 2007 +0100

    [PATCH] Update Prodrive SCPU (PDNB3 variant) board

    SCPU doesn't use redundant environment in flash.

    Signed-off-by: Stefan Roese <sr@denx.de>

commit 6304430ed642ea8fa15c9e5af965ac2e033eec45
Author: Stefan Roese <sr@denx.de>
Date:	Tue Jan 30 12:51:07 2007 +0100

    [PATCH] alpr: Update alpr board config file

    Signed-off-by: Stefan Roese <sr@denx.de>

commit f8db84f132b1e335f20f96138a1f09ed97b08664
Author: Wolfgang Denk <wd@pollux.denx.de>
Date:	Tue Jan 30 00:50:40 2007 +0100

    LPC2292 SODIMM port coding style cleanup.

commit 6bd2447ee47ee23c18d2b3c7ccd5a20f7626f5b3
Author: Gary Jennejohn <garyj@pollux.denx.de>
Date:	Wed Jan 24 12:16:56 2007 +0100

    Add port for the lpc2292sodimm evaluation board from EmbeddedArtists

commit 2daf046ba627f85f44195815778140039636244e
Author: Bartlomiej Sieka <tur@semihalf.com>
Date:	Tue Jan 23 17:22:06 2007 +0100

    [iDMR] Add MTD and JFFS2 support, also add default partition definition.

commit f7db33101fbc9c8f0a10738ce87034875a17aeb9
Author: Bartlomiej Sieka <tur@semihalf.com>
Date:	Tue Jan 23 14:21:14 2007 +0100

    [iDMR] Flash driver on initialisation write-protects some sectors,
    currently sectors 0-3. Sector 3 does not need to be protected, though
    (U-boot occupies sectors 0-1 and the environment sector 2). This commit
    fixes this, i.e., only sectors 0-2 are protected.

commit 0ed47bb119cd2c4c16edb2548789148f9e6dc9de
Author: Bartlomiej Sieka <tur@semihalf.com>
Date:	Tue Jan 23 14:11:22 2007 +0100

    [iDMR] Using MII-related commands on iDRM board doesn't work now (e.g.,
    "mii device" results in "Unexpected exception"). Fixing this properly
    requires some clean-up in the FEC drivers infrastructure for ColdFire, so
    this commit disables MII commads for now.

commit 363d1d8f9c99b63daef81f5985cab3fc00edde5c
Author: Bartlomiej Sieka <tur@semihalf.com>
Date:	Tue Jan 23 13:25:22 2007 +0100

    [ColdFire MCF5271 family] Add CPU detection based on the value of Chip
    Identification Register (CIR).

commit fdef388758506765d4d6a7155c8f1584c63ff581
Author: roy zang <tie-fei.zang@freescale.com>
Date:	Mon Jan 22 13:19:21 2007 +0800

    use  CFG_WRITE_SWAPPED_DATA define instead of define CFG_FLASH_CFI_SWAP
    The patch by Heiko Schocher <hs@pollux.denx.de> on Jan, 19, 2007
    fixes cfi_driver bug for mpc7448hpc2 board. The default cfi_driver can support
    mpc7448hpc2 board.

commit a4012396645533aef218354eeba754dff0deace8
Author: Wolfgang Denk <wd@pollux.denx.de>
Date:	Fri Jan 19 23:08:39 2007 +0100

    Minor code cleanup.

commit f539b7ba7d7ef6dd187c8209609001cb1cd95e39
Author: Heiko Schocher <hs@pollux.denx.de>
Date:	Fri Jan 19 19:57:10 2007 +0100

    [PATCH] SC3 board: added CFG_CMD_AUTOSCRIPT.

    Signed-off-by: Heiko Schocher <hs@denx.de>

commit d0b6e14087ddd8789f224a48e1d33f2a5df4d167
Author: Heiko Schocher <hs@pollux.denx.de>
Date:	Fri Jan 19 18:05:26 2007 +0100

    [PATCH] CFI: define CFG_WRITE_SWAPPED_DATA for the CFI-Flash driver
		 if you must swap the bytes between reading/writing.
		 (Needed for the SC3 board)

    Signed-off-by: Heiko Schocher <hs@denx.de>

commit 9d8d5a5bfb64768f29a0cb47fc37cd6f4c40e276
Author: Stefan Roese <sr@denx.de>
Date:	Thu Jan 18 16:05:47 2007 +0100

    [PATCH] Add support for Prodrive SCPU (PDNB3 variant) board

    Signed-off-by: Stefan Roese <sr@denx.de>

commit 0057d758e3e874cbe7f24745d0cce8c1cb6c207e
Author: Stefan Roese <sr@denx.de>
Date:	Thu Jan 18 11:54:52 2007 +0100

    [PATCH] Update Prodrive P3Mx support

    Signed-off-by: Stefan Roese <sr@denx.de>

commit 34167a36c29ee946b727465db5c014746a08e978
Author: Stefan Roese <sr@denx.de>
Date:	Thu Jan 18 11:48:10 2007 +0100

    [PATCH] Add missing Taishan config file

    Signed-off-by: Stefan Roese <sr@denx.de>

commit cb4820725e9fc409c5cbc8e83054a6ed522d2111
Author: Heiko Schocher <hs@pollux.denx.de>
Date:	Thu Jan 18 11:28:51 2007 +0100

    [PATCH] Fix: Compilerwarnings for SC3 board.
		 The EBC Configuration Register is now by CFG_EBC_CFG definable
		 Added JFFS2 support for the SC3 board.

    Signed-off-by: Heiko Schocher <hs@denx.de>

commit 5fb692cae57d1710c8f52a427cf7f39a37383fcd
Author: Stefan Roese <sr@denx.de>
Date:	Thu Jan 18 10:25:34 2007 +0100

    [PATCH] Add support for AMCC Taishan PPC440GX eval board

    Signed-off-by: Stefan Roese <sr@denx.de>

commit 6d3e0107235aa0e6a6dcb77f9884497280bf85ad
Author: Wolfgang Denk <wd@pollux.denx.de>
Date:	Tue Jan 16 18:30:50 2007 +0100

    Raname solidcard3 into sc3; add redundant env for sc3

commit 1bbbbdd20fcec9933697000dcf55ff7972622596
Author: Wolfgang Denk <wd@pollux.denx.de>
Date:	Tue Jan 16 12:46:35 2007 +0100

    Update default environment for Solidcard3

commit 5a5c56986a9ccf71642c8b6374eb18487b15fecd
Author: Stefan Roese <sr@denx.de>
Date:	Mon Jan 15 09:46:29 2007 +0100

    [PATCH] Fix 440SPe rev B detection from previous patch

    Signed-off-by: Stefan Roese <sr@denx.de>

commit a443d31410c571ee8f970da819a44d698fdd6b1f
Author: Heiko Schocher <hs@pollux.denx.de>
Date:	Sun Jan 14 13:35:31 2007 +0100

	[FIX] correct I2C Writes for the LM81 Sensor.

	Signed-off-by: Heiko Schocher <hs@denx.de>

commit 0bba5452835f19a61204edcda3a58112fd8e2208
Author: Wolfgang Denk <wd@pollux.denx.de>
Date:	Sat Jan 13 11:17:10 2007 +0100

    Undo commit 3033ebb2: reset command does not take any arguments

    Haiying Wang's modification to the reset command was broken, undo it.

    Signed-off-by: Wolfgang Denk <wd@denx.de>

commit 95981778cff0038fd9941044d6a3eda810e33258
Author: Stefan Roese <sr@denx.de>
Date:	Sat Jan 13 08:01:03 2007 +0100

    [PATCH] Update 440SP(e) cpu revisions

    Also display enabled/disabled RAID 6 support for 440SP/440SPe PPC's.

    Signed-off-by: Stefan Roese <sr@denx.de>

commit 77ddc5b9afb325262fd88752ba430a1dded1f0c7
Author: Stefan Roese <sr@denx.de>
Date:	Sat Jan 13 07:59:56 2007 +0100

    [PATCH] Update Yellowstone (440GR) to display board rev and PCI bus speed

    Now the board revision and the current PCI bus speed are printed after
    the board message.

    Also the EBC initialising is now done via defines in the board config
    file.

    Signed-off-by: Stefan Roese <sr@denx.de>

commit 36adff362c2c0141ff8a810d42a7e478f779130f
Author: Stefan Roese <sr@denx.de>
Date:	Sat Jan 13 07:59:19 2007 +0100

    [PATCH] Update Yosemite (440EP) to display board rev and PCI bus speed

    Now the board revision and the current PCI bus speed are printed after
    the board message.

    Also the EBC initialising is now done via defines in the board config
    file.

    Signed-off-by: Stefan Roese <sr@denx.de>

commit e0b9ea8c8a294de6a5350ae638879d24b5b709d6
Author: Stefan Roese <sr@denx.de>
Date:	Sat Jan 13 07:57:51 2007 +0100

    [PATCH] Update Sequoia (440EPx) to display board rev and PCI bus speed

    Now the board revision and the current PCI bus speed are printed after
    the board message.

    Signed-off-by: Stefan Roese <sr@denx.de>

commit ca43ba18e910206ef8063e4b22d282630bff3fd2
Author: Heiko Schocher <hs@pollux.denx.de>
Date:	Thu Jan 11 15:44:44 2007 +0100

	Added support for the SOLIDCARD III board from Eurodesign

	Signed-off-by: Heiko Schocher <hs@denx.de>

commit 6abaee42621c07e81a2cd189ad4368b5e8c50280
Author: Reinhard Thies <Reinhard.Thies@web.de>
Date:	Wed Jan 10 14:41:14 2007 +0100

    Adjusted default environment for cam5200 board.

commit bab5a90d4ccc1a46a8127b867fa59028cc623ad9
Author: Wolfgang Denk <wd@pollux.denx.de>
Date:	Wed Jan 10 15:35:52 2007 +0100

    Update CHANGELOG

commit 787fa15860a57833e50bd30555079a9cd4e519b8
Author: Wolfgang Denk <wd@pollux.denx.de>
Date:	Wed Jan 10 01:28:39 2007 +0100

    Fix auto_update for MCC200 board.

    The invocation of do_auto_update() is moved to the end of the
    misc_init_r() function, after the flash mappings have been
    initialized. Please find attached a patch that implements that
    change.

    Also correct the decoding of the keypad status. With this update, the
    key that will trigger the update is Column 2, Row 2.

commit d9384de2f571046e71081bae22b49e3d5ca2e3d5
Author: Marian Balakowicz <m8@semihalf.com>
Date:	Wed Jan 10 00:26:15 2007 +0100

    CAM5200 flash driver modifications:
    - use CFI driver (replaces custom flash driver) for main 'cam5200' target
    - add second build target 'cam5200_niosflash' which still uses custom driver

commit 67fea022fa957f59653b5238c7496f80a6b70432
Author: Markus Klotzbuecher <mk@denx.de>
Date:	Tue Jan 9 16:02:48 2007 +0100

    SPC1920: cleanup memory contoller setup

commit 8fc2102faa23593c80381437c09f7745a14deb40
Author: Markus Klotzbuecher <mk@denx.de>
Date:	Tue Jan 9 14:57:14 2007 +0100

    Fix the cpu speed setup to work with all boards.

commit 9295acb77481cf099ef9b40e1fa2d145b3c7490c
Author: Markus Klotzbuecher <mk@denx.de>
Date:	Tue Jan 9 14:57:13 2007 +0100

    SPC1920: add support for the FM18L08 Ramtron FRAM

commit 38ccd2fdf3364a53fe80e9b365303ecdafc9e223
Author: Markus Klotzbuecher <mk@denx.de>
Date:	Tue Jan 9 14:57:13 2007 +0100

    SPC1920: update the HPI register addresses to work with the second
    generation of hardware

commit 5921e5313fc3eadd42770c2b99badd7fae5ecf1e
Author: Markus Klotzbuecher <mk@creamnet.de>
Date:	Tue Jan 9 14:57:13 2007 +0100

    Miscellanious spc1920 related cleanups

commit e4c2d37adc8bb1bf69dcf600cbc6c75f916a6120
Author: Markus Klotzbuecher <mk@denx.de>
Date:	Tue Jan 9 14:57:12 2007 +0100

    SPC1920 GO/NOGO led should be set to color red in U-Boot

commit 0be62728aac459ba268d6d752ed49ec0e2bc7348
Author: Markus Klotzbuecher <mk@creamnet.de>
Date:	Tue Jan 9 14:57:12 2007 +0100

    Add support for the DS3231 RTC

commit 8139567b60d678584b05f0718a681f2047c5e14f
Author: Markus Klotzbuecher <mk@creamnet.de>
Date:	Tue Jan 9 14:57:11 2007 +0100

    SMC1 uses external CLK4 instead of BRG on spc1920

commit d8d9de1a02fbd880b613d607143d1f57342affc7
Author: Markus Klotzbuecher <mk@creamnet.de>
Date:	Tue Jan 9 14:57:10 2007 +0100

    Update the SPC1920 CMB PLD driver

commit 3f34f869162750e5e999fd140f884f5de952bcfe
Author: Markus Klotzbuecher <mk@creamnet.de>
Date:	Tue Jan 9 14:57:10 2007 +0100

    Add / enable I2C support on the spc1920 board

commit d28707dbce1e9ac2017ad051da4133bf22b4204f
Author: Markus Klotzbuecher <mk@creamnet.de>
Date:	Tue Jan 9 14:57:10 2007 +0100

    Add support for the tms320671x host port interface (HPI)

commit f4eb54529bb3664c3a562e488b460fe075f79d67
Author: Wolfgang Denk <wd@pollux.denx.de>
Date:	Sun Jan 7 00:13:11 2007 +0100

    Prepare for release 1.2.0

commit f07ae7a9daef27a3d0213a4f3fe39d5342173c02
Author: Stefan Roese <sr@denx.de>
Date:	Sat Jan 6 15:58:09 2007 +0100

    [PATCH] 44x: Fix problem with DDR controller setup (refresh rate)

    This patch fixes a problem with an incorrect setup for the refresh
    timer of the 44x DDR controller in the file cpu/ppc4xx/sdram.c

    Signed-off-by: Stefan Roese <sr@denx.de>

commit f16c1da9577f06c5fc08651a4065537407de4635
Author: Stefan Roese <sr@denx.de>
Date:	Sat Jan 6 15:56:13 2007 +0100

    [PATCH] Update ALPR board files

    This update brings the ALPR board support to the newest version.
    It also fixes a problem with the NAND driver.

    Signed-off-by: Stefan Roese <sr@denx.de>

commit cd1d937f90250a32988c37b2b4af8364d25de8ed
Author: Stefan Roese <sr@denx.de>
Date:	Fri Jan 5 11:46:05 2007 +0100

    [PATCH] nand: Fix problem with oobsize calculation

    Here the description from Brian Brelsford <Brian_Brelsford@dell.com>:

    The Hynix part returns a 0x1d in the 4th ID byte. The Samsung part
    returns a 0x15. In the code fragment below bits [1:0] determine the
    page size, it is ANDed via "(extid & 0x3)" then shifted out. The
    next field is also ANDed with 0x3. However this is a one bit field
    as defined in the Hynix and Samsung parts in the 4th ID byte that
    determins the oobsize, not a two bit field. It works on Samsung as
    bits[3:2] are 01. However for the Hynix there is a 11 in these two
    bits, so the oob size gets messed up.

    I checked the correct linux code and the suggested fix from Brian is
    also available in the linux nand mtd driver.

    Signed-off-by: Stefan Roese <sr@denx.de>

commit a78bc443ae5a4a8ba87590587d5e35bf5a787b2e
Author: Stefan Roese <sr@denx.de>
Date:	Fri Jan 5 10:40:36 2007 +0100

    [PATCH] Clear PLB4A0_ACR[WRP] on Sequoia (440EPx)

    This fix will make the MAL burst disabling patch for the Linux
    EMAC driver obsolete.

    Signed-off-by: Stefan Roese <sr@denx.de>

commit 023889838282b6237b401664f22dd22dfba2c066
Author: Stefan Roese <sr@denx.de>
Date:	Fri Jan 5 10:38:05 2007 +0100

    [PATCH] Add DDR2 optimization code for Sequoia (440EPx) board

    This code will optimize the DDR2 controller setup on a board specific
    basis.

    Note: This code doesn't work right now on the NAND booting image for the
    Sequoia board, since it doesn't fit into the 4kBytes for the SPL image.

    Signed-off-by: Stefan Roese <sr@denx.de>

commit cce4acbb68398634b8d011ed7bb0d12269c84230
Author: Bartlomiej Sieka <tur@semihalf.com>
Date:	Thu Dec 28 19:08:21 2006 +0100

    Few V38B changes:
      - fix a typo in V38B config file
      - move watchdog initialisation earlier in the boot process
      - add "wdt=off" to default kernel command line (disables kernel watchdog)

commit 92eb729bad876725aeea908d2addba0800620840
Author: Wolfgang Denk <wd@pollux.denx.de>
Date:	Wed Dec 27 01:26:13 2006 +0100

    Fix bug in adaption of Stefano Babic's CFI driver patch.

commit 9c0f42ecfe25f7ffce8ec7a815f03864d723ffe3
Author: Wolfgang Denk <wd@pollux.denx.de>
Date:	Sun Dec 24 01:42:57 2006 +0100

    Minor code cleanup.

commit d784fdb05900ada3686d5778783e1fb328e9fb66
Author: Stefano Babic <sbabic@denx.de>
Date:	Tue Dec 12 00:22:42 2006 +0100

    Fix cfi failure with Spansion Flash (Spansion Flash Devices have a different offset to go into CFI mode)

commit 1b3c360c235dc684ec06c2d5f183f0a282ce45e2
Author: Stefan Roese <sr@denx.de>
Date:	Fri Dec 22 14:29:40 2006 +0100

    [PATCH] Fix sequoia flash autodetection (finally correct)

    Now 32MByte and 64MByte FLASH is know to work and other
    configurations should work too.

    Signed-off-by: Stefan Roese <sr@denx.de>

commit 82e5236a8b719543643fd26d5827938ab2b94818
Author: Wolfgang Denk <wd@pollux.denx.de>
Date:	Fri Dec 22 10:30:26 2006 +0100

    Minor code cleanup; update CHANGELOG.

commit fa23044564091f05d9695beb7b5b9a931e7f41a4
Author: Heiko Schocher <hs@pollux.denx.de>
Date:	Thu Dec 21 17:17:02 2006 +0100

    Added support for the TQM8272 board from TQ

    Signed-off-by: Heiko Schocher <hs@denx.de>

commit 6dedf3d49dd14c3bf541c8ecee7ffaac5f0e1d6c
Author: Heiko Schocher <hs@pollux.denx.de>
Date:	Thu Dec 21 16:14:48 2006 +0100

    [PATCH] Add support for the UC101 board from MAN.

    Signed-off-by: Heiko Schocher <hs@denx.de>

commit c84bad0ef60e7055ab0bd49b93069509cecc382a
Author: Bartlomiej Sieka <tur@semihalf.com>
Date:	Wed Dec 20 00:29:43 2006 +0100

    Fix to make the baudrate changes immediate for the MCF52x2 family.

commit daa6e418bcc0c717752e8de939c213c790286096
Author: Bartlomiej Sieka <tur@semihalf.com>
Date:	Wed Dec 20 00:27:32 2006 +0100

    Preliminary support for the iDMR board (ColdFire).

commit cdb97a6678826f85e7c69eae6a1c113d034c9b10
Author: Andrei Safronov <safronov@pollux.denx.de>
Date:	Fri Dec 8 16:23:08 2006 +0100

    automatic update mechanism

commit 9d27b3a0685ff99fc477983f315c04d49f657a8a
Author: roy zang <tie-fei.zang@freescale.com>
Date:	Mon Dec 4 17:56:59 2006 +0800

    Slight code clean up.
    Add comments, delete duplicate define and remove spaces.
    Signed-off-by: Roy Zang <tie-fei.zang@freescale.com>

commit 4dbcd69e3e2776ea334590d5768e3692c5fae5c1
Author: roy zang <tie-fei.zang@freescale.com>
Date:	Mon Dec 4 17:54:21 2006 +0800

    Introduce PLL_CFG[0:4] table for processor 7448/7447A/7455/7457. The original
    multiplier table can not refect the real PLL clock behavior of these
    processors. Please refer to the hardware specification for detailed
    information of the corresponding processors.
    Signed-off-by: Roy Zang <tie-fei.zang@freescale.com>

commit 4efe20c9579011d9987f62ed7d35ee8cdc1cf0e0
Author: roy zang <tie-fei.zang@freescale.com>
Date:	Mon Dec 4 14:46:23 2006 +0800

    Remove the static MAC address, ip address, server ip, netmask and
    gateway ip for network setting.
    Signed-off-by: Roy Zang <tie-fei.zang@freescale.com>

commit 6f12c61cf31ed73d72ddfcfc712a854a3a177aaf
Author: roy zang <tie-fei.zang@freescale.com>
Date:	Mon Dec 4 14:33:08 2006 +0800

    Remove the duplicate memory test code for mpc744ihpc2 board.
    If a memory test is needed, please use the functions in
    post/memory.c or memtest command.
    Signed-off-by: Roy Zang <tie-fei.zang@freescale.com>

commit c9c1eeed7dd193fa65fb194654132040d49d4d3a
Author: roy zang <tie-fei.zang@freescale.com>
Date:	Fri Dec 1 19:01:25 2006 +0800

    Fix the exception occuring in RAM table search issue.
    The original search_one_table() function code can only processes the search
    for the exception occurring in FLASH/ROM, because the exception and fixup
    table usually locate in FLASH. If the exception address is also in
    FLASH, it will be OK.
    If the exception occurs in RAM, after the u-boot relocation, a
    relocation offset should be added.

    clean up the code in cpu/74xx_7xx/cpu.c

    Signed-off-by: Roy Zang <tie-fei.zang@freescale.com>

commit ee311214e0d216f904feea269599d0934bf71f23
Author: roy zang <tie-fei.zang@freescale.com>
Date:	Fri Dec 1 11:47:36 2006 +0800

    Clean up the code according to codestyle:
    (1) remove some C++ comments.
    (2) remove trailing white space.
    (3) remove trailing empty line.
    (4) Indentation by table.
    (5) remove {} in one line condition.
    (6) add space before '(' in function call.
    Remove some weird printf () output.
    Add necessary comments.
    Modified Makefile to support building in a separate directory.

commit dd520bf314c7add4183c5191692180f576f96b60
Author: Wolfgang Denk <wd@pollux.denx.de>
Date:	Thu Nov 30 18:02:20 2006 +0100

    Code cleanup.

commit 8d9a8610b8256331132227e9e6585c6bd5742787
Author: Wolfgang Denk <wd@pollux.denx.de>
Date:	Thu Nov 30 01:54:07 2006 +0100

    Code cleanup. Update CHANGELOG.

commit 726e90aacf0b1ecb0e7055be574622fbe3e450ba
Author: Grant Likely <grant.likely@secretlab.ca>
Date:	Wed Nov 29 16:23:42 2006 +0100

    [PATCH] [MPC52xx] Use IPB bus frequency for SOC peripherals

    The soc node of the mpc52xx needs to be loaded with the IPB bus frequency,
    not the XLB frequency.

    This patch depends on the previous patches for MPC52xx device tree support

    Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
    Signed-off-by: Sylvain Munaut <tnt@246tNt.com>

commit 1eac2a71417b6675b11aace72102a2e7fde8f5c6
Author: Stefan Roese <sr@denx.de>
Date:	Wed Nov 29 15:42:37 2006 +0100

    [PATCH] Add support for Prodrive P3M750 & P3M7448 (P3Mx) boards

    This patch adds support for the Prodrive P3M750 (PPC750 & MV64460)
    and the P3M7448 (MPC7448 & MV64460) PMC modules. Both modules are
    quite similar and share the same board directory "prodrive/p3mx"
    and the same config file "p3mx.h".

    Signed-off-by: Stefan Roese <sr@denx.de>

commit 1bdd46832aeb569f5e04b1f20f64318525b6525a
Author: Stefan Roese <sr@denx.de>
Date:	Wed Nov 29 12:53:15 2006 +0100

    [PATCH] common/cmd_elf.c: Enable loadaddr as parameter in bootvx command

    In the bootvx command the load address was only read from the env
    variable "loadaddr" and not optionally passed as paramter as described
    in the help. This is fixed with this patch. The behaviour is now the
    same as in the bootelf command.

    Signed-off-by: Stefan Roese <sr@denx.de>

commit 4e26f1074c3ac1bd8fd094f0dc4a1c4a0b15a592
Author: Stefan Roese <sr@denx.de>
Date:	Wed Nov 29 12:03:57 2006 +0100

    [PATCH] include/ppc440.h minor error affecting interrupts

    Fixed include/ppc440.c for UIC address Bug

    Corrects bug affecting the addresses for the universal interrupt
    controller UIC2 and UIC3 on the PPC440 Epx, GRx, and SPE chips.

    Signed-off-by: Jeff Mann <mannj@embeddedplanet.com>
    Signed-off-by: Stefan Roese <sr@denx.de>

commit 1939d969443ccf316cab2bf32ab1027d4db5ba1a
Author: Joakim Tjernlund <Joakim.Tjernlund@transmode.se>
Date:	Tue Nov 28 16:17:27 2006 -0600

    Make fsl-i2c not conflict with SOFT I2C

    Signed-off-by: Timur Tabi <timur@freescale.com>

commit 14198bf768fdc958e3c1afd2404e5262208e98d7
Author: Joakim Tjernlund <Joakim.Tjernlund@transmode.se>
Date:	Tue Nov 28 16:17:18 2006 -0600

    Fix I2C master address initialization.

    Signed-off-by: Timur Tabi <timur@freescale.com>

commit cf3d045e51ca8dcc6cf759827140861d6ac25c04
Author: Kim Phillips <kim.phillips@freescale.com>
Date:	Tue Nov 28 23:31:19 2006 -0600

    Assign maintainers for mpc8349emds and mpc8360emds

    Dave for mpc8360emds, and me for mpc8349emds.

commit 1aa934c81b77f2080d3ca4b226eab67b17a33961
Author: Kim Phillips <kim.phillips@freescale.com>
Date:	Tue Nov 28 23:28:33 2006 -0600

    Eliminate gcc 4 'used uninitialized' warnings in drivers/qe/uccf.c

    give initial values for reg_num, shift, p_cmxucr in ucc_set_clk_src
    since they are passed by reference to ucc_get_cmxucr_reg and assigned.

commit e857a5bdb3954b896c0920cb9d8d2b1b9c107ce5
Author: Timur Tabi <timur@freescale.com>
Date:	Tue Nov 28 12:09:35 2006 -0600

    mpc83xx: Miscellaneous code style fixes

    Implement various code style fixes and similar changes.

    Signed-off-by: Timur Tabi <timur@freescale.com>

commit e59581c56ab5d6e0207ddac3b2c1d55cb36ec706
Author: Stefan Roese <sr@denx.de>
Date:	Tue Nov 28 17:55:49 2006 +0100

    [PATCH] Enable the IceCube/lite5200 variants to pass a device tree to Linux.

    This patch adds the code and configuration necessary to boot with an
    arch/powerpc Linux kernel.

    Signed-off-by: Grant Likely <grant.likely@gmail.com>
    Acked-by: Jon Loeliger <jdl@freescale.com>

commit e732faec95a83cb468b4850ae807c8301dde8f6a
Author: Stefan Roese <sr@denx.de>
Date:	Tue Nov 28 16:09:24 2006 +0100

    [PATCH] PPC4xx: 440SP Rev. C detection added

    Signed-off-by: Stefan Roese <sr@denx.de>

commit e7f3e9ff01fbd7fa72eb42a9675fbed6bc4736b0
Author: Stefan Roese <sr@denx.de>
Date:	Tue Nov 28 11:04:45 2006 +0100

    [PATCH] nand: Fix patch merge problem

    Signed-off-by: Stefan Roese <sr@denx.de>

commit 58e3b14c18ed3288ceef8d086946dbf3df64ccf2
Author: Stefan Roese <sr@denx.de>
Date:	Tue Nov 28 11:04:45 2006 +0100

    [PATCH] nand: Fix patch merge problem

    Signed-off-by: Stefan Roese <sr@denx.de>

commit 4f4b602ec7524a032bdf3c6d28c7f525a4a67eaa
Author: Wolfgang Denk <wd@pollux.denx.de>
Date:	Mon Nov 27 22:53:53 2006 +0100

    Update CHANGELOG

commit f6e495f54cdb8fe340b9c03deab40ad746d52fae
Author: Stefan Roese <sr@denx.de>
Date:	Mon Nov 27 17:43:25 2006 +0100

    [PATCH] 4xx_enet.c: Correct the setting of zmiifer register

    Patch below corrects the setting of the zmiifer register, it was
    overwritting the register rather than ORing the settings.

    Signed-off-by: Neil Wilson <NWilson@airspan.com>
    Signed-off-by: Stefan Roese <sr@denx.de>

commit d1a72545296800b7e219f93104ad5836f0003d66
Author: Stefan Roese <sr@denx.de>
Date:	Mon Nov 27 17:34:10 2006 +0100

    [PATCH] Select NAND embedded environment from board configuration

    The current NAND Bootloader setup forces the environment
    variables to be in line with the bootloader. This change
    enables the configuration to be made in the board include
    file instead so that it can be individually enabled.

    Signed-off-by: Nick Spence <nick.spence@freescale.com>
    Signed-off-by: Stefan Roese <sr@denx.de>

commit 15784862857c3c2214498defcfed84ff137fb81e
Author: Stefan Roese <sr@denx.de>
Date:	Mon Nov 27 17:22:19 2006 +0100

    [PATCH] nand_wait() timeout fixes

    Two fixes for the nand_wait() function in
    drivers/nand/nand_base.c:

    1. Use correct timeouts. The original timeouts in Linux
    source are 400ms and 20ms not 40s and 20s

    2. Return correct error value in case of timeout. 0 is
    interpreted as OK.

    Signed-off-by: Rui Sousa <rui.sousa@laposte.net>
    Signed-off-by: Stefan Roese <sr@denx.de>

commit da5553b095bf04f4f109ad7e565dae3aba47b230
Author: Stefan Roese <sr@denx.de>
Date:	Mon Nov 27 17:04:06 2006 +0100

    [PATCH] Allow CONFIG_OF_FLAT_TREE to boot a non-arch/powerpc kernel

    This patch allows an arch/ppc kernel to be booted by just passing 1 or 2
    arguments to bootm.  It removes the getenv("disable_of") test that used
    to be used for this purpose.

    Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
    Acked-by: Jon Loeliger <jdl@freescale.com>

commit a9398e018593782c5fa7d0741955fc1256b34c1e
Author: Wolfgang Denk <wd@pollux.denx.de>
Date:	Mon Nov 27 15:32:42 2006 +0100

    Minor code cleanup. Update CHANGELOG.

commit 1729b92cde575476684bffe819d0b7791b57bff2
Author: Stefan Roese <sr@denx.de>
Date:	Mon Nov 27 14:52:04 2006 +0100

    [PATCH] 4xx: Fix problem with board specific reset code (now for real)

    Signed-off-by: Stefan Roese <sr@denx.de>

commit cc5ee8a92a0e3ca6f727af71b8fd206460c7afd7
Author: Stefan Roese <sr@denx.de>
Date:	Mon Nov 27 14:49:51 2006 +0100

    [PATCH] alpr: remove unused board specific flash driver

    Signed-off-by: Stefan Roese <sr@denx.de>

commit 1f94d162e2b5f0edc28d9fb11482502c44d218e1
Author: Stefan Roese <sr@denx.de>
Date:	Mon Nov 27 14:48:41 2006 +0100

    [PATCH] 4xx: Fix problem with board specific reset code

    Signed-off-by: Stefan Roese <sr@denx.de>

commit ec0c2ec725aec9524a177a77ce75559e644a931a
Author: Stefan Roese <sr@denx.de>
Date:	Mon Nov 27 14:46:06 2006 +0100

    [PATCH] Remove testing 4xx enet PHY setup

    Signed-off-by: Stefan Roese <sr@denx.de>

commit 1c2ce2262069510f31c7d3fd7efd3d58b8c0c148
Author: Stefan Roese <sr@denx.de>
Date:	Mon Nov 27 14:12:17 2006 +0100

    [PATCH] Update Prodrive ALPR board support (440GX)

    Signed-off-by: Stefan Roese <sr@denx.de>

commit 58b485776698c3d71ec5a215e392123b4c15afa3
Author: Markus Klotzbuecher <mk@denx.de>
Date:	Mon Nov 27 11:51:21 2006 +0100

    Add a small README with information on the generic ohci driver.

commit ae3b770e4eae8e98b6e9e29662e18c47fdf0171f
Author: Markus Klotzbuecher <mk@denx.de>
Date:	Mon Nov 27 11:46:46 2006 +0100

    Fix some endianness issues related to the generic ohci driver

commit 7b59b3c7a8ce2e4b567abf99c1cd667bf35b9418
Author: Markus Klotzbuecher <mk@denx.de>
Date:	Mon Nov 27 11:44:58 2006 +0100

    Introduced the configuration option CONFIG_USB_OHCI_NEW in order to be able
    to choose between the old and the generic OHCI drivers.

commit 53e336e9ffc51035bdc4e5867631b3378761b4df
Author: Markus Klotzbuecher <mk@denx.de>
Date:	Mon Nov 27 11:43:09 2006 +0100

    Modified the mpc5xxx and the ppc4xx cpu to use the generic OHCI driver
    and adapted board configs TQM5200 and yosemite accordingly. This commit
    also makes the maximum number of root hub ports configurable
    (CFG_USB_OHCI_MAX_ROOT_PORTS).

commit 78d620ebb5871d252270dedfad60c6568993b780
Author: Wolfgang Denk <wd@atlas.denx.de>
Date:	Thu Nov 23 22:58:58 2006 +0100

    Updates for TQM5200 modules:
    - fix off-by-one error in board/tqm5200/cam5200_flash.c error message
    - simplify "udate" definitions

commit 2053283304eeddf250d109e6791eb6fa4cad14f7
Author: Stefan Roese <sr@denx.de>
Date:	Wed Nov 22 13:20:50 2006 +0100

    [PATCH] PPC4xx start.S: Fix for processor errata

    Fixed cpu/ppc4xx/start.S for 440EPx Errata: further corrects PPC440EPx
    errata 1.12: 440_33 by moving patch up in code.

    Signed-off-by: Jeff Mann <mannj@embeddedplanet.com>
    Signed-off-by: Stefan Roese <sr@denx.de>

commit 4ef6251403f637841000e0fef9e832aa01339822
Author: Stefan Roese <sr@denx.de>
Date:	Mon Nov 20 20:39:52 2006 +0100

    [PATCH] Update AMCC Sequoia config file to support 64MByte NOR FLASH

    Signed-off-by: Stefan Roese <sr@denx.de>

commit e4bbd8da164b976d38616bd9c69c5e86e193cdf0
Author: Wolfgang Denk <wd@pollux.denx.de>
Date:	Mon Nov 20 10:28:30 2006 +0100

    Update CHANGELOG

commit 260421a21e934a68d31fb6125b0fbd2631a8ca20
Author: Stefan Roese <sr@denx.de>
Date:	Mon Nov 13 13:55:24 2006 +0100

    [PATCH] CFI driver AMD Command Set Top boot geometry reversal, etc. [Updated]

       * Adds support for AMD command set Top Boot flash geometry reversal
       * Adds support for reading JEDEC Manufacturer ID and Device ID
       * Adds support for displaying command set, manufacturer id and
	 device ids (flinfo)
       * Makes flinfo output to be consistent when CFG_FLASH_EMPTY_INFO defined
       * Removes outdated change history (refer to git log instead)

    Signed-off-by: Tolunay Orkun <listmember@orkun.us>
    Signed-off-by: Stefan Roese <sr@denx.de>

commit b21b511d4c50408f4853f46f06b601272196223f
Author: Wolfgang Denk <wd@pollux.denx.de>
Date:	Sun Nov 12 21:13:23 2006 +0100

    Update CHANGELOG

commit ce3f1a40c507afbab06c5eb58ccdc6713eda3245
Author: Bartlomiej Sieka <tur@semihalf.com>
Date:	Sat Nov 11 22:48:22 2006 +0100

    Disable the watchdog in the default config for the V38B board.

commit 44a47e6db2694841211f1c8fdbafd36992e9cd1a
Author: Bartlomiej Sieka <tur@semihalf.com>
Date:	Sat Nov 11 22:43:00 2006 +0100

    Change the GPIO pin multiplexing configuration for V38B. The USB GPIO pin
    group is enabled for USB earlier (in cpu_init_f() instead of
    usb_lowlevel_init()).

commit 91650b3e4de688038d4f71279c44858e3e2c6870
Author: Wolfgang Denk <wd@pollux.denx.de>
Date:	Mon Nov 6 17:06:36 2006 +0100

    Sequential accesses to non-existent memory must be synchronized,
    at least on G2 cores.

    This fixes get_ram_size() problems on MPC5200 Rev. B boards.

commit be5e61815d5a1fac290ce9c0ef09cb6a8e4288fa
Author: Timur Tabi <timur@freescale.com>
Date:	Fri Nov 3 19:15:00 2006 -0600

    mpc83xx: Update 83xx to use fsl_i2c.c

    Update the 83xx tree to use I2C support in drivers/fsl_i2c.c.  Delete
    cpu/mpc83xx/i2c.c, include/asm-ppc/i2c.h, and all references to those files.
    Added multiple I2C bus support to fsl_i2c.c.

    Signed-off-by: Timur Tabi <timur@freescale.com>

commit d239d74b1c937984bc519083a8e7de373a390f06
Author: Timur Tabi <timur@freescale.com>
Date:	Fri Nov 3 12:00:28 2006 -0600

    mpc83xx: Replace CFG_IMMRBAR with CFG_IMMR

    Replace all instances of CFG_IMMRBAR with CFG_IMMR, so that the 83xx
    tree matches the other 8xxx trees.

    Signed-off-by: Timur Tabi <timur@freescale.com>

commit f7fb2e703ec9688541416962724adff70a7322cb
Author: Kim Phillips <kim.phillips@freescale.com>
Date:	Thu Nov 2 19:47:11 2006 -0600

    mpc83xx: Lindent and clean up cpu/mpc83xx/speed.c

commit 90f30a710a3c619b5405860a686c4ddfc495d4b6
Author: Dave Liu <daveliu@freescale.com>
Date:	Thu Nov 2 18:05:50 2006 -0600

    mpc83xx: Fix the incorrect dcbz operation

    The 834x rev1.x silicon has one CPU5 errata.

    The issue is when the data cache locked with
    HID0[DLOCK], the dcbz instruction looks like no-op inst.

    The right behavior of the data cache is when the data cache
    Locked with HID0[DLOCK], the dcbz instruction allocates
    new tags in cache.

    The 834x rev3.0 and later and 8360 have not this bug inside.

    So, when 834x rev3.0/8360 are working with ECC, the dcbz
    instruction will corrupt the stack in cache, the processor will
    checkstop reset.

    However, the 834x rev1.x can work with ECC with these code,
    because the sillicon has this cache bug. The dcbz will not
    corrupt the stack in cache.
    Really, it is the fault code running on fault sillicon.

    This patch fix the incorrect dcbz operation. Instead of
    CPU FP writing to initialise the ECC.

    CHANGELOG:
    * Fix the incorrect dcbz operation instead of CPU FP
    writing to initialise the ECC memory. Otherwise, it
    will corrupt the stack in cache, The processor will checkstop
    reset.

    Signed-off-by: Dave Liu <daveliu@freescale.com>

commit bf0b542d6773a5a1cbce77691f009b06d9aeb57d
Author: Kim Phillips <kim.phillips@freescale.com>
Date:	Wed Nov 1 00:10:40 2006 -0600

    mpc83xx: add OF_FLAT_TREE bits to 83xx boards

    add ft_pci_setup, OF_CPU, OF_SOC, OF_TBCLK, and
    STDOUT_PATH configuration bits to mpc8349emds,
    mpc8349itx, and mpc8360emds board code.

    redo environment to use bootm with the fdtaddr
    for booting ARCH=powerpc kernels by default,
    and provide default fdtaddr values.

commit 48041365b3420589ad464ebc7752e0053538b729
Author: Kim Phillips <kim.phillips@freescale.com>
Date:	Wed Nov 1 00:07:25 2006 -0600

    mpc83xx: change ft code to modify local-mac-address property

    Update 83xx OF code to update local-mac-address properties
    for ethernet instead of the obsolete 'address' property.

commit 9ca880a250870a7d55754291b5591d2b5fe89b54
Author: Timur Tabi <timur@freescale.com>
Date:	Tue Oct 31 21:23:16 2006 -0600

    mpc83xx: Fix dual I2C support for the MPC8349ITX, MPC8349EMDS, TQM834x, and MPC8360EMDS

    This patch also adds an improved I2C set_speed(), which handles all clock
    frequencies.

    Signed-off-by: Timur Tabi <timur@freescale.com>

commit ac4b5622ce050b5ee1e154b98df630d778661632
Author: Dave Liu <daveliu@freescale.com>
Date:	Tue Oct 31 19:54:59 2006 -0600

    mpc83xx: add the README.mpc8360emds

    add doc/README.mpc8360emds to accompany the new board support

commit 7737d5c658c606f999dfbe3e86b0fed49e5c50ef
Author: Dave Liu <daveliu@freescale.com>
Date:	Fri Nov 3 12:11:15 2006 -0600

    mpc83xx: add QE ethernet support

    this patch adds support for the QUICC Engine based UCC gigabit ethernet device.

commit 5f8204394e39bbe8cd9f08b8f8d145b6c01f7c73
Author: Dave Liu <daveliu@freescale.com>
Date:	Fri Nov 3 19:33:44 2006 -0600

    mpc83xx: Add MPC8360EMDS basic board support

    Add support for the Freescale MPC8360EMDS board.
    Includes DDR, DUART, Local Bus, PCI.

commit 23892e49352de74f7fac36ff90bb1be143d195e3
Author: Dave Liu <daveliu@freescale.com>
Date:	Tue Oct 31 19:30:40 2006 -0600

    mpc83xx: add the QUICC Engine (QE) immap file

    common QE immap file.  Also required for 8360.

commit b701652a4992bdcc62fb1a6038a85beef9e55da4
Author: Dave Liu <daveliu@freescale.com>
Date:	Tue Oct 31 19:25:38 2006 -0600

    mpc83xx: Add 8360 specifics to 83xx immap

    Mainly add QE device dependencies, with appropriate 8360 protection.
    Lindent also run.

commit 988833324a7fda482c8ac3ca23eb539f8232e404
Author: Timur Tabi <timur@freescale.com>
Date:	Tue Oct 31 19:14:41 2006 -0600

    mpc83xx: Fix PCI, USB, bootargs for MPC8349E-mITX

    PREREQUISITE PATCHES:

    * This patch can only be applied after the following patches have been applied:

      1) DNX#2006092142000015 "Add support for the MPC8349E-mITX  1/2"
      2) DNX#2006092142000024 "Add support for the MPC8349E-mITX  2/2"

    CHANGELOG:

    * For the 8349E-mITX, fix some size values in pci_init_board(), enable
      the clock for the 2nd USB board (Linux kernel will hang otherwise),
      and fix the CONFIG_BOOTARGS macro.

    Signed-off-by: Timur Tabi <timur@freescale.com>

commit 2ad6b513b31070bd0c003792ed1c3e7f5d740357
Author: Timur Tabi <timur@freescale.com>
Date:	Tue Oct 31 18:44:42 2006 -0600

    mpc83xx: Add support for the MPC8349E-mITX

    PREREQUISITE PATCHES:

    * This patch can only be applied after the following patches have been applied:

      1) DNX#2006090742000024 "Add support for multiple I2C buses"
      2) DNX#2006090742000033 "Multi-bus I2C implementation of MPC834x"
      3) DNX#2006091242000041 "Additional MPC8349 support for multibus i2c"
      4) DNX#2006091242000078 "Add support for variable flash memory sizes on 83xx systems"
      5) DNX#2006091242000069 "Add support for Errata DDR6 on MPC 834x systems"

    CHANGELOG:

    * Add support for the Freescale MPC8349E-mITX reference design platform.
      The second TSEC (Vitesse 7385 switch) is not supported at this time.

    Signed-off-by: Timur Tabi <timur@freescale.com>

commit 183da6d9b446cc12123455844ad1187e2375626f
Author: Ben Warren <bwarren@qstreams.com>
Date:	Tue Sep 12 10:15:53 2006 -0400

    Additional MPC8349 support for multibus i2c

    Hello,

    Here is a patch for a file that was accidentally left out of a previous
    attempt.

    It accompanies the patch with ticket DNX#2006090742000024

    CHANGELOG:
	    Change PCI initialization to use new multi-bus I2C API.

    regards,
    Ben

commit b24f119d672b709d153ff2ac091d4aa63ec6877d
Author: Ben Warren <bwarren@qstreams.com>
Date:	Thu Sep 7 16:51:04 2006 -0400

    Multi-bus I2C implementation of MPC834x

    Hello,

    Attached is a patch implementing multiple I2C buses on the MPC834x CPU
    family and the MPC8349EMDS board in particular.
    This patch requires Patch 1 (Add support for multiple I2C buses).
    Testing was performed on a 533MHz board.

    /*** Note: This patch replaces ticket DNX#2006083042000027 ***/

    Signed-off-by: Ben Warren <bwarren@qstreams.com>

    CHANGELOG:
	    Implemented driver-level code to support two I2C buses on the
    MPC834x CPU family and the MPC8349EMDS board.  Available I2C bus speeds
    are 50kHz, 100kHz and 400kHz on each bus.

    regards,
    Ben

commit bb99ad6d8257bf828f150d40f507b30d80a4a7ae
Author: Ben Warren <bwarren@qstreams.com>
Date:	Thu Sep 7 16:50:54 2006 -0400

    Add support for multiple I2C buses

    Hello,

    Attached is a patch providing support for multiple I2C buses at the
    command level.  The second part of the patch includes an implementation
    for the MPC834x CPU and MPC8349EMDS board.

    /*** Note: This patch replaces ticket DNX#2006083042000018 ***/

    Signed-off-by: Ben Warren <bwarren@qstreams.com>

    Overview:

    1. Include new 'i2c' command (based on USB implementation) using
    CONFIG_I2C_CMD_TREE.

    2. Allow multiple buses by defining CONFIG_I2C_MULTI_BUS.  Note that
    the commands to change bus number and speed are only available under the
    new 'i2c' command mentioned in the first bullet.

    3. The option CFG_I2C_NOPROBES has been expanded to work in multi-bus
    systems.  When CONFIG_I2C_MULTI_BUS is used, this option takes the form
    of an array of bus-device pairs.  Otherwise, it is an array of uchar.

    CHANGELOG:
	    Added new 'i2c' master command for all I2C interaction.  This is
    conditionally compiled with CONFIG_I2C_CMD_TREE.  New commands added for
    setting I2C bus speed as well as changing the active bus if the board
    has more than one (conditionally compiled with
    CONFIG_I2C_MULTI_BUS).  Updated NOPROBE logic to handle multiple buses.
    Updated README.

    regards,
    Ben

commit bed85caf872714ebf53013967a695c9d63acfc68
Author: Timur Tabi <timur@freescale.com>
Date:	Tue Oct 31 18:13:36 2006 -0600

    mpc83xx: Add support for Errata DDR6 on MPC 834x systems

    CHANGELOG:

    * Errata DDR6, which affects all current MPC 834x processors, lists changes
      required to maintain compatibility with various types of DDR memory.  This
      patch implements those changes.

    Signed-off-by: Timur Tabi <timur@freescale.com>

commit afd6e470f639883002c7c59d562690a5cb0f4865
Author: Timur Tabi <timur@freescale.com>
Date:	Wed Oct 25 18:45:23 2006 -0500

    mpc83xx: fix TQM build by defining a CFG_FLASH_SIZE for it

commit 31068b7c4abeefcb2c8fd4fbeccc8ec6c6d0475a
Author: Timur Tabi <timur@freescale.com>
Date:	Tue Aug 22 17:07:00 2006 -0500

    mpc83xx: Add support for variable flash memory sizes on 83xx systems

    CHANGELOG:

    * On 83xx systems, use the CFG_FLASH_SIZE macro to program the LBC local access
       window registers, instead of using a hard-coded value of 8MB.

    Signed-off-by: Timur Tabi <timur@freescale.com>

commit 2fc34ae66e73fa7841d1a006dc1b5dcbc1f78965
Author: Tanya Jiang <tanya.jiang@freescale.com>
Date:	Thu Aug 3 18:38:13 2006 +0800

    mpc83xx: Unified TQM834x variable names with 83xx and consolidated macros

    Unified TQM834x variable names with 83xx and consolidated macro
    in preparation for the 8360 and other upcoming 83xx devices.

    Signed-off-by: Tanya Jiang <tanya.jiang@freescale.com>

commit f6eda7f80ccc13d658020268c507d7173cf2e8aa
Author: Dave Liu <daveliu@freescale.com>
Date:	Wed Oct 25 14:41:21 2006 -0500

    mpc83xx: Changed to unified mpx83xx names and added common 83xx changes

    Incorporated the common unified variable names and the changes in preparation
    for releasing mpc8360 patches.

    Signed-off-by: Dave Liu <daveliu@freescale.com>

commit 3894c46c27c64891f93ac04edde86a9fa9758d92
Author: Tanya Jiang <tanya.jiang@freescale.com>
Date:	Thu Aug 3 18:36:02 2006 +0800

    mpc83xx: Fix missing build for mpc8349emds pci.c

    Make pci build for mpc8349emds

    Signed-off-by: Tanya Jiang <tanya.jiang@freescale.com>

commit 09a81ff740b29deea1e2ab08a3c2ac136c2e6219
Author: Tanya Jiang <tanya.jiang@freescale.com>
Date:	Thu Aug 3 18:39:49 2006 +0800

    mpc83xx: Removed unused file resetvec.S for mpc83xx cpu

    Removed unused file resetvec.S for mpc83xx cpu

    Signed-off-by: Tanya Jiang <tanya.jiang@freescale.com>

commit 04f899fc465c3e44f2b55ecc70618f5696fc0ddf
Author: Nick Spence <Nick.Spence@freescale.com>
Date:	Sat Sep 30 00:32:59 2006 -0700

    NAND Flash verify across block boundaries

    This patch addresses a problem when CONFIG_MTD_NAND_VERIFY_WRITE is
    defined
    and the write crosses a block boundary. The pointer to the verification
    buffer (bufstart) is not being updated to reflect the starting of the
    new
    block so the verification of the second block fails.

    CHANGELOG:

    * Fix NAND FLASH page verification across block boundaries

commit f484dc791a3932537213c43c654cc1295c64b84c
Author: Nick Spence <nick.spence@freescale.com>
Date:	Thu Sep 7 07:39:46 2006 -0700

    Added RGMII support to the TSECs and Marvell 881111 Phy

    Added a phy initialization to adjust the RGMII RX and TX timing
    Always set the R100 bit in 100 BaseT mode regardless of the TSEC mode

    Signed-off-by: Nick Spence <nick.spence@freescale.com>

commit 4831c8b8a97799da77923d6bbb4c260c0d45521c
Author: roy zang <tie-fei.zang@freescale.com>
Date:	Fri Nov 3 13:10:00 2006 +0800

    Remove some unused CFG define.
    undef CFG_DRAM_TEST

commit 99c09c4dec34f77c243bf51bea532e3f339410ad
Author: roy zang <tie-fei.zang@freescale.com>
Date:	Fri Nov 3 13:07:36 2006 +0800

    Change the TEXT_BASE from 0xFFF00000 to 0xFF000000.
    Both work. 0xFF000000 seems more reasonable.

commit c59200443072353044aa4bf737a5a60f9a9af231
Author: Wolfgang Denk <wd@pollux.denx.de>
Date:	Thu Nov 2 15:15:01 2006 +0100

    Release U-Boot 1.1.6

commit c1fbe4103a0d6c8957f912af902d705ba67836f2
Author: roy zang <tie-fei.zang@freescale.com>
Date:	Thu Nov 2 19:14:48 2006 +0800

    This patch comes from Yuli's posted patch on 8/8/2006
    titled "CFI Driver Little-Endian write Issue".

    http://sourceforge.net/mailarchive/message.php?msg_id=36311999

    If that patch applied, please discard this one.
    Until now , I do not see his patch is applied. So please apply this one.

    Signed-off-by: Yuli Barcohen <yuli@arabellasw.com>
    Signed-off-by: Roy Zang <tie-fei.zang@freescale.com>

commit b825f158e449e1e9cf74c08e572955e122394c96
Author: roy zang <tie-fei.zang@freescale.com>
Date:	Thu Nov 2 19:12:31 2006 +0800

    Tsi108 on chip i2c support.

    The i2c  Interface provides a master-only, serial interface that can be
    used for initializing Tsi108/Tsi109 registers from an EEPROM after a
    device reset.

    Signed-off-by: Alexandre Bounine <alexandreb@tundra.com>
    Signed-off-by: Roy Zang <tie-fei.zang@freescale.com>

commit 9226e7d6f09b9a1ac074cd918c81225a4689bba8
Author: roy zang <tie-fei.zang@freescale.com>
Date:	Thu Nov 2 19:11:06 2006 +0800

    Tsi108 on chip pci controller support.

    If there is no pci card, the tsi108/109 pci configure read will
    cause a machine check exception to the processor. PCI error should
    also be cleared after the read.

    Signed-off-by: Alexandre Bounine <alexandreb@tundra.com>
    Signed-off-by: Roy Zang <tie-fei.zang@freescale.com>

commit d1927cee977126e547ceeba23e4f978f377cfb8f
Author: roy zang <tie-fei.zang@freescale.com>
Date:	Thu Nov 2 19:08:55 2006 +0800

    Tundra tsi108 on chip Ethernet controller support.

    The following is a brief description of the Ethernet controller:
    The Tsi108/9 Ethernet Controller connects Switch Fabric to two independent
    Gigabit Ethernet ports,E0 and E1.  It uses a single Management interface
    to manage the two physical connection devices (PHYs).  Each Ethernet port
    has its own statistics monitor that tracks and reports key interface
    statistics.  Each port supports a 256-entry hash table for address
    filtering.	In addition, each port is bridged to the Switch Fabric
    through a 2-Kbyte transmit FIFO and a 4-Kbyte Receive FIFO.

    Each Ethernet port also has a pair of internal Ethernet DMA channels to
    support the transmit and receive data flows.  The Ethernet DMA channels
    use descriptors set up in memory, the memory map of the device, and
    access via the Switch Fabric.  The Ethernet Controller?s DMA arbiter
    handles arbitration for the Switch Fabric.	The Controller also
    has a register businterface for register accesses and status monitor
    control.

    The PMD (Physical Media Device) interface operates in MII, GMII, or TBI
    modes.  The MII mode is used for connecting with 10 or 100 Mbit/s PMDs.
    The GMII and TBI modes are used to connect with Gigabit PMDs.  Internal
    data flows to and from the Ethernet Controller through the Switch Fabric.

    Each Ethernet port uses its transmit and receive DMA channels to manage
    data flows through buffer descriptors that are predefined by the
    system (the descriptors can exist anywhere in the system memory map).
    These descriptors are data structures that point to buffers filled
    with data ready to transmit over Ethernet, or they point to empty
    buffers ready to receive data from Ethernet.

    Signed-off-by: Alexandre Bounine <alexandreb@tundra.com>
    Signed-off-by: Roy Zang <tie-fei.zang@freescale.com>

commit 78aa0c3427f3ecdeb34aabfbbe2dd23b6ad8f40e
Author: roy zang <tie-fei.zang@freescale.com>
Date:	Thu Nov 2 19:01:33 2006 +0800

    Tundra tsi108 header file.

    The Tundra Semiconductor Corporation (Tundra) Tsi108 is a host bridge for
    PowerPC processors that offers numerous system interconnect options for
    embedded application designers. The Tsi108 can interconnect 60x or
    MPX processors to PCI/X peripherals, DDR2-400 memory, Gigabit Ethernet,
    and Flash. Provided the macro define for tsi108 chip.

    Signed-off-by: Alexandre Bounine <alexandreb@tundra.com>
    Signed-off-by: Roy Zang <tie-fei.zang@freescale.com>

commit 87c4db09699c6b89176b31004afcb83eb1585d47
Author: roy zang <tie-fei.zang@freescale.com>
Date:	Thu Nov 2 18:59:15 2006 +0800

    Add  mpc7448hpc2  (mpc7448 + tsi108)  board associated code support.
    mpc7448hpc2 board support high level code:tsi108 init + mpc7448hpc2.

    Signed-off-by: Alexandre Bounine <alexandreb@tundra.com>
    Signed-off-by: Roy Zang <tie-fei.zang@freescale.com>

commit 27801b8ab11c61b577e45742a515bb3b23b80241
Author: roy zang <tie-fei.zang@freescale.com>
Date:	Thu Nov 2 18:57:21 2006 +0800

    Add  mpc7448hpc2  (mpc7448 + tsi108)  board associated code support.
    Make ,config.mk and link file for the mpc7448hpc2 board.

    Signed-off-by: Alexandre Bounine <alexandreb@tundra.com>
    Signed-off-by: Roy Zang <tie-fei.zang@freescale.com>

commit c6411c0c3bbc79f9ba8aef58296a42d8f9d8a0a6
Author: roy zang <tie-fei.zang@freescale.com>
Date:	Thu Nov 2 18:55:04 2006 +0800

    Add  mpc7448hpc2  (mpc7448 + tsi108)  board associated code support.
    The mpc7448hpc2 board support header file.

    Signed-off-by: Alexandre Bounine <alexandreb@tundra.com>
    Signed-off-by: Roy Zang <tie-fei.zang@freescale.com>

commit 625bb5ddb50b243f931262ca8c46956409471917
Author: roy zang <tie-fei.zang@freescale.com>
Date:	Thu Nov 2 18:52:21 2006 +0800

    Add  mpc7448hpc2  (mpc7448 + tsi108)  board associated code support.
    The mpc7448hpc2 board support low level assemble language init code.

    Signed-off-by: Alexandre Bounine <alexandreb@tundra.com>
    Signed-off-by: Roy Zang <tie-fei.zang@freescale.com>

commit 4c52783b3d024e153c4972b97332e314bc3bdc46
Author: roy zang <tie-fei.zang@freescale.com>
Date:	Thu Nov 2 18:49:51 2006 +0800

    General code modification for mpc7448hpc2 board support.
    1. Add 7447A and 7448 processor support.
    2. Add the following flags.

    CFG_CONFIG_BUS_CLK : If the 74xx bus frequency can be configured dynamically
    (such as by switch on board), this flag should be set.

    CFG_EXCEPTION_AFTER_RELOCATE: If an exception occurs after the u-boot
    relocates to RAM, this flag should be set.

    CFG_SERIAL_HANG_IN_EXCEPTION: If the print out function will cause the
    system hang in exception, this flag should be set.

    There is a design issue for tsi108/109 pci configure  read. When pci scan
    the slots, if there is no pci card, the tsi108/9 will cause a machine
    check exception for mpc7448 processor.

    Signed-off-by: Alexandre Bounine <alexandreb@tundra.com>
    Signed-off-by: Roy Zang <tie-fei.zang@freescale.com>

commit 69366bf42f22d67efce8da3f8c40a43d4a3c2695
Author: roy zang <tie-fei.zang@freescale.com>
Date:	Thu Nov 2 18:34:47 2006 +0800

    Add README file for mpc7448hpc2 board.
    Signed-off-by: Roy Zang <tie-fei.zang@freescale.com>

commit 25721b5cec2be4bce79cfade17ec8f6aa1e67526
Author: Bartlomiej Sieka <tur@semihalf.com>
Date:	Wed Nov 1 02:04:38 2006 +0100

    Finish up support for MarelV38B board
     - add watchdog support
     - enable GPIO_WKUP_7 pin for input
     - code cleanup

commit ffa150bc90c943ca265170bd1be3f293674dd5c7
Author: Bartlomiej Sieka <tur@semihalf.com>
Date:	Wed Nov 1 01:45:46 2006 +0100

    - Fix issues related to the use of ELDK 4 when compiling for MarelV38B:
	  * remove warnings when compiling ethaddr.c
	  * adjust linker script (fixes a crash resulting from incorrect
	  definition of __u_boot_cmd_start)
    - Some MarelV38B code cleanup.

commit dae80f3caf9754a6dd3ddf3cf903d0c46cbd4385
Author: Bartlomiej Sieka <tur@semihalf.com>
Date:	Wed Nov 1 01:38:16 2006 +0100

    - Add MPC5XXX register definition MPC5XXX_WU_GPIO_DATA_I and change the
      MPC5XXX_WU_GPIO_DATA macro to MPC5XXX_WU_GPIO_DATA_O (per MPC5200 User's
      Manual). Replace the uses of MPC5XXX_WU_GPIO_DATA with
      MPC5XXX_WU_GPIO_DATA_O for affected boards.

    - Add defintions for some MPC5XXX GPIO pins.

commit 82d9c9ec29a1bec1b03ba616425ebaed231072c8
Author: Bartlomiej Sieka <tur@semihalf.com>
Date:	Wed Nov 1 01:34:29 2006 +0100

    Changed MarelV38B board make target to lowercase. Config file cleanup.

commit 1954be6e9c9421b45d0a9d05b10356acc7563150
Author: Wolfgang Denk <wd@pollux.denx.de>
Date:	Sun Oct 29 01:03:51 2006 +0200

    Automatically adjust ARFLAGS so "make -s" is really silent.

commit fae684e89844856383bdf101440889557df3e6b1
Author: Stefan Roese <sr@denx.de>
Date:	Sat Oct 28 16:45:00 2006 +0200

    [PATCH] omap925.c: Remove unused functions

    Signed-off-by: Ladislav Michl <ladis@linux-mips.org>
    Signed-off-by: Stefan Roese <sr@denx.de>

commit 1265581502ab8ea8c08e8edbe9bf64fbd62fd776
Author: Stefan Roese <sr@denx.de>
Date:	Sat Oct 28 17:12:58 2006 +0200

    [PATCH] Add some missing machtypes for netstar & voiceblue boards

    Use MACH_TYPE_NETSTAR and MACH_TYPE_VOICEBLUE defines instead of
    numbers in code.

    Signed-off-by: Ladislav Michl <ladis@linux-mips.org>
    Signed-off-by: Stefan Roese <sr@denx.de>

commit 856f054410cef52d868feb330168b2a4c4091328
Author: Stefan Roese <sr@denx.de>
Date:	Sat Oct 28 15:55:52 2006 +0200

    [PATCH] NAND: Partition name support added to NAND subsystem

    chpart, nboot and NAND subsystem related commands now accept also partition
    name to specify offset.

    Signed-off-by: Ladislav Michl <ladis@linux-mips.org>
    Signed-off-by: Stefan Roese <sr@denx.de>

commit 07a69a18c2ecfda904231fdf23e2523ea7792eb6
Author: Wolfgang Denk <wd@pollux.denx.de>
Date:	Sat Oct 28 02:29:44 2006 +0200

    Update CHANGELOG.

commit 2751a95abd1b96911081c357e96a12fa97b40dee
Author: Wolfgang Denk <wd@pollux.denx.de>
Date:	Sat Oct 28 02:29:14 2006 +0200

    Enable commandline editing and hush shell on all TQM boards.

commit 8078f1a5f63a739b8533478f6c2b62fb1e2f79d7
Author: Wolfgang Denk <wd@pollux.denx.de>
Date:	Sat Oct 28 02:28:02 2006 +0200

    README says CFG_AUTO_COMPLETE, but ocde uses CONFIG_AUTO_COMPLETE

commit 471a7be7a042e95e440f5de969c9765214ae8d6e
Author: Wolfgang Denk <wd@denx.de>
Date:	Sat Oct 28 01:14:32 2006 +0200

    Check for illegal character '=' in environment variable names.

    Make sure the string passed as variable name does not contain a '='
    character. This not only prevents the common error or typing
    "setenv foo=bar" instead of "setenv foo bar", but (more importantly)
    also closes a backdoor which allowed to delete write-protected
    environment variables, for example by using "setenv ethaddr=".

commit 19973b6ad9863a56f5c5fbcfd90e20ab2490a2c2
Author: Wolfgang Denk <wd@pollux.denx.de>
Date:	Sat Oct 28 00:38:39 2006 +0200

    Minor code cleanup.

commit e11887a77d81077416a2d1c5e0354916fee8c034
Author: Haavard Skinnemoen <hskinnemoen@atmel.com>
Date:	Thu Oct 26 17:55:31 2006 +0200

    Don't pass any debug options directly to the assembler

    When passing the -g option to gcc, gcc automatically selects a
    suitable --g<format> option to pass on to the assembler.
    Thus, there's no point in forcing a specific debug option on the
    assembler using the -Wa mechanism.

    Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>

commit ea08ff6e14f9ebb8c07cfa79c51ef540eb087393
Author: Jon Loeliger <jdl@freescale.com>
Date:	Fri Oct 27 07:47:22 2006 -0500

    MPC86xx: Cleaned up unused and conditionally used local variables.

    Signed-off-by: Jon Loeliger <jdl@freescale.com>

commit d38936cdae46bfd2623ff83f6ce9b616d36ab0f9
Author: Wolfgang Denk <wd@pollux.denx.de>
Date:	Fri Oct 27 11:55:21 2006 +0200

    Fix "ar" flags in some Makefiles to allow for silent "make -s"

commit 4653f91c13ed51c21cc4c3855745d69a3fb1817f
Author: Ben Warren <bwarren@qstreams.com>
Date:	Thu Oct 26 14:38:25 2006 -0400

    Fix TSEC driver (now for real): avoid crashes if PHY is not attached
    to a TSEC (e.g. a switch is connected via RMII) or
    if the PHY is defective/incorrectly configured.

    Signed-off-by: Ben Warren <bwarren@qstreams.com>

commit b985b5d6e4fb88f508f7aa0f126c2e27ada2b999
Author: Ben Warren <bwarren@qstreams.com>
Date:	Thu Oct 26 14:38:25 2006 -0400

    Fix TSEC driver: avoid crashes if PHY is not attached
    to a TSEC (e.g. a switch is connected via RMII) or
    if the PHY is defective/incorrectly configured.

    Signed-off-by: Ben Warren <bwarren@qstreams.com>

commit 2b2a40bebbf1822506e80e631d7253e60f0e0fe6
Author: Wolfgang Denk <wd@pollux.denx.de>
Date:	Thu Oct 26 16:24:31 2006 +0200

    Code cleanup.

commit 5e3b0bc19f07ed277d85324ad0427642c8981baf
Author: Haavard Skinnemoen <hskinnemoen@atmel.com>
Date:	Wed Oct 25 15:48:59 2006 +0200

    Finish up support for the ATSTK1000/ATSTK1002 boards

    Add atstk1002_config target to Makefile and move the AVR32 section
    down below Blackfin so that it doesn't end up in the middle of
    MIPS.

    Drop the autogenerated linker script thing for now. Will have to
    revisit how to handle chips with different flash and RAM layout
    later.

    Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>

commit c76f951a747cfb87ba826ef45b5aea82d5b5dbb4
Author: Kumar Gala <galak@kernel.crashing.org>
Date:	Tue Oct 24 23:47:37 2006 -0500

    Added support for Multi-Image files that contain a device tree

    If a Multi-Image file contains a third image we try to use it as a
    device tree.  The device tree image is assumed to be uncompressed in the
    image file.  We automatically allocate space for the device tree in memory
    and provide an 8k pad to allow more than a reasonable amount of growth.

    Additionally, a device tree that was contained in flash will now automatically
    get copied to system memory as part of boot.  Previously an error was
    reported if one tried to boot a device tree that was in flash.

    Signed-off-by: Kumar Gala <galak@kernel.crashing.org>

commit 7c52c4b943ff52bbe8796a7e2d3e476ceaf3f512
Author: Wolfgang Denk <wd@denx.de>
Date:	Tue Oct 24 21:35:55 2006 +0200

    Switch to automatically generated CHANGELOG file.
    (use "make CHANGELOG" to update it from time to time)

commit 7ade0c634a979c32fa91a74e8f5775f24651fbe6
Author: Stefan Roese <sr@denx.de>
Date:	Tue Oct 24 18:06:48 2006 +0200

    Fix bug in PPC440 NAND driver cpu/ppc4xx/ndfc.c
    Patch by Stefan Roese, 24 Oct 2006

commit 8ae3b713b2286e0c3213b7802062e4c1599010de
Author: Wolfgang Denk <wd@pollux.denx.de>
Date:	Tue Oct 24 17:24:55 2006 +0200

    Merge with /home/wd/git/u-boot/master

commit 47a6989c10685d2ab3efcf95228ce50d2a496d3e
Author: Wolfgang Denk <wd@pollux.denx.de>
Date:	Tue Oct 24 15:32:57 2006 +0200

    Code cleanup

commit 3a78e3e75b633ecb6413114ffd11e2f000c4f11e
Author: Wolfgang Denk <wd@pollux.denx.de>
Date:	Tue Oct 24 14:51:36 2006 +0200

    Move atstk1000 files into vendor specific directory.
    Patch by Haavard Skinnemoen, 12 Sep 2006

commit 6ccec4492e77428fd6eafd3dfe94fbdf08e91d37
Author: Wolfgang Denk <wd@pollux.denx.de>
Date:	Tue Oct 24 14:42:37 2006 +0200

    Add ATSTK1000 and ATSTK1002 board support
    Patch by Haavard Skinnemoen, 06 Sep 2006

    This patch adds support for the ATSTK1000 with the ATSTK1002 CPU
    daughterboard.

    ATSTK1000 is a full-featured development board for AT32AP CPUs. It
    has two ethernet ports, a high quality QVGA LCD panel, a loudspeaker,
    and connectors for USART, PS/2, VGA, USB, MMC/SD cards and
    CompactFlash cards. For more information, please see this page:

    http://www.atmel.com/dyn/products/tools.asp?family_id=682

    The ATSTK1002 is a daughterboard for the ATSTK1000 supporting the
    AT32AP7000 chip.

    Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>

commit f93ae788c3640fcde5db383471d45548ff4060d0
Author: Wolfgang Denk <wd@pollux.denx.de>
Date:	Tue Oct 24 14:31:24 2006 +0200

    Add common serial driver for Atmel AT32 and AT91 chips
    Patch by Haavard Skinnemoen, 06 Sep 2006

    This is a first attempt at creating a common serial driver for Atmel
    chips. For now, it supports the AT32AP7000 AVR32 chip, but it should
    be possible to support AT91RM9200 and other ARM-based chips with some
    minor modifications.

    There's nothing fundamentally AVR32-specific in this driver, but it
    does use some features which are currently only defined for the
    AT32AP CPU port:
      * pm_get_clock_freq: Obtain the clock frequency of a given domain
      * gd->console_uart: A "struct device" containing information about
	register mappings, gpio resources and clocks associated with the
	UART device.

    For more information about these features, please see the "AT32AP
    CPU" patch.

commit 72a087e04705c26cad982879ebd06b5281bf825a
Author: Wolfgang Denk <wd@pollux.denx.de>
Date:	Tue Oct 24 14:27:35 2006 +0200

    Add AT32AP CPU and AT32AP7000 SoC support
    Patch by Haavard Skinnemoen, 06 Sep 2006

    This patch adds support for the AT32AP CPU family and the AT32AP7000
    chip, which is the first chip implementing the AVR32 architecture.

    The AT32AP CPU core is a high-performance implementation featuring a
    7-stage pipeline, separate instruction- and data caches, and a MMU.
    For more information, please see the "AVR32 AP Technical Reference":

    http://www.atmel.com/dyn/resources/prod_documents/doc32001.pdf

    In addition to this, the AT32AP7000 chip comes with a large set of
    integrated peripherals, many of which are shared with the AT91 series
    of ARM-based microcontrollers from Atmel. Full data sheet is
    available here:

    http://www.atmel.com/dyn/resources/prod_documents/doc32003.pdf

    Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>

commit 7b64fef33c66be648826c0ff9758298ef13d0604
Author: Wolfgang Denk <wd@pollux.denx.de>
Date:	Tue Oct 24 14:21:16 2006 +0200

    Add AVR32 architecture support
    Patch by Haavard Skinnemoen, 6 Sep 2006 16:23:02 +0200

    This patch adds common infrastructure code for the Atmel AVR32
    architecture. See doc/README.AVR32 for details.

    Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>

commit 2da2d9a4766063b9848f3a35ad6025499cf87265
Author: Wolfgang Denk <wd@pollux.denx.de>
Date:	Tue Oct 24 13:57:33 2006 +0200

    Use -g instead of -gstabs in AFLAGS_DEBUG
    Patch by Haavard Skinnemoen, 30 Aug 2006

    In config.mk, -Wa,-gstabs is unconditionally appended to AFLAGS no
    matter what the target's preferred debugging format is. This patch
    simply replaces -gstabs with -g, so that the default debugging format
    for the architecture is used.

commit 965829872169c2996023840d98e1d85ad148d629
Author: Wolfgang Denk <wd@pollux.denx.de>
Date:	Tue Oct 24 13:55:18 2006 +0200

    Fix/workaround broken dependency handling with make 3.81
    Based on patch by Haavard Skinnemoen, 29 Aug 2006 11:20:39 +0200

commit 8318fbf8cc30418b621ea9f39b84b4c1a08f003a
Author: Marian Balakowicz <m8@semihalf.com>
Date:	Mon Oct 23 22:17:05 2006 +0200

    Fix sequoia separate object direcory building problems.

commit 3dfa9cfdcee78b30da3432318b32821ffabe974b
Author: Jon Loeliger <jdl@freescale.com>
Date:	Fri Oct 20 17:16:35 2006 -0500

    Use generic I2C register block on 85xx and 86xx.

    Replace private IMMAP I2C structures with generic reg block
    and allow 86xx to have multiple I2C device busses.

    Signed-off-by: Jon Loeliger <jdl@freescale.com>

commit f5012827df11ca0c9be1df5f8b153e188dc2fa7c
Author: Jon Loeliger <jdl@freescale.com>
Date:	Fri Oct 20 15:54:34 2006 -0500

    Fix compilation warnings on a few 85xx boards.

    Signed-off-by: Jon Loeliger <jdl@freescale.com>

commit 2047672684cf85cb6f96a1fbc993180aaaf19a99
Author: Jon Loeliger <jdl@freescale.com>
Date:	Fri Oct 20 15:50:15 2006 -0500

    Converted all 85xx boards to use a common FSL I2C driver.
    Introduced COFIG_FSL_I2C to select the common FSL I2C driver.
    And removed hard i2c path from a few u-boot.lds scipts too.
    Minor whitespace cleanups along the way.

    Signed-off-by: Jon Loeliger <jdl@freescale.com>

commit 4d45f69e362b05892c9e92a7907e5820995612aa
Author: Jon Loeliger <jdl@freescale.com>
Date:	Thu Oct 19 12:02:24 2006 -0500

    Rewrite a series of goto statements as a sequences of
    conditional expressions instead.

    Use consistent return code 0/-1 for good/bad indicators.

    Include one fewer file if the driver isn't used at all.

    Signed-off-by: Jon Loeliger <jdl@freescale.com>

commit 7237c033b02fe295880435f1eb80819a0c987532
Author: Jon Loeliger <jdl@freescale.com>
Date:	Thu Oct 19 11:02:16 2006 -0500

    Moved i2c driver out of cpu/mpc86xx/i2c.c into drivers/fsl_i2c.c

    in an effort to begin to unify the umpteen FSL I2C drivers that
    are all otherwise very similar.

    Signed-off-by: Jon Loeliger <jdl@freescale.com>

commit 13a7fcdf37f6ea9429ae04c9df67f893364cfe4b
Author: Jon Loeliger <jdl@freescale.com>
Date:	Thu Oct 19 11:33:52 2006 -0500

    * Fix a bunch of compiler warnings for gcc 4.0

    Signed-off-by: Matthew McClintock <msm@freescale.com>

commit af9e1f5b9e6f9ce810f5e8bf2961c9542a5865c2
Author: Stefan Roese <sr@denx.de>
Date:	Tue Oct 17 06:14:31 2006 +0200

    Add monitor functions for indirect access to PPC440 DCR's
    Patch by Leonid Baryudin, 12 Oct 2006

commit 5f3249a0a168e446a4cc9669b2bce0bc456f0a09
Author: Jon Loeliger <jdl@freescale.com>
Date:	Fri Oct 13 16:47:53 2006 -0500

    Fixed leading whitespace issues.
    Removed spurious LAWAR thing.

    Signed-off-by: Jon Loeliger <jdl@freescale.com>

commit 0ee90cb77e01d6e8ccd37e1bd96678597875c391
Author: Jon Loeliger <jdl@freescale.com>
Date:	Thu Oct 12 10:42:36 2006 -0500

    Remove unneeded include files and local variable.

    Signed-off-by: Jon Loeliger <jdl@freescale.com>

commit 1eaf3a5ff4960a46f3a9063568ba2af7883f07c5
Author: Grant Likely <grant.likely@secretlab.ca>
Date:	Tue Oct 10 00:23:32 2006 -0600

    Fix possible uninitialized variable compiler warning.

    When CONFIG_OF_FLAG_TREE is set, the compiler complains that 'len' in
    do_bootm_linux() may be uninitialized.  There is no possibility in the
    current code that len will get used uninitialized, but this fix follows
    the existing convention of setting both len and data to zero at the same
    time.

    Signed-off-by: Grant Likely <grant.likely@secretlab.ca>

commit 7376eb87aaa601f728f9b8e5e9cd2711a67f529e
Author: Matthew McClintock <msm@freescale.com>
Date:	Wed Oct 11 15:13:01 2006 -0500

    * Fix a bunch of compiler warnings for gcc 4.0

    Signed-off-by: Matthew McClintock <msm@freescale.com>

commit bf651baa365e5447246aad6a633ccd667cf24a39
Author: Jon Loeliger <jdl@freescale.com>
Date:	Wed Oct 11 10:10:43 2006 -0500

    Move "ar" flags to config.mk to allow for silent "make -s"

commit 1fd5699a4a24f5c1dab1b32f480bace1ebb9fc3e
Author: Jon Loeliger <jdl@freescale.com>
Date:	Tue Oct 10 17:19:03 2006 -0500

    Coding style changes to remove local varible blocks
    and reformat a bit nicer.

commit 8b283dbb3a08d1b8d406bc15f119e081b3e2606a
Author: Jon Loeliger <jdl@freescale.com>
Date:	Tue Oct 10 17:16:04 2006 -0500

    Fix whitespace issues.

commit 7b382b7125f2397cce63253df62f183e3dfa2770
Author: Jon Loeliger <jdl@freescale.com>
Date:	Tue Oct 10 17:14:45 2006 -0500

    Fix whitespace issues.

commit e10390ddd736b0dad1528eec4b0fe35c0827139a
Author: Jon Loeliger <jdl@freescale.com>
Date:	Tue Oct 10 17:06:53 2006 -0500

    Fix whitespace issues.

commit 89875e96ba3f023157bf50d5f8e33bf254964a76
Author: Jon Loeliger <jdl@freescale.com>
Date:	Tue Oct 10 17:03:43 2006 -0500

    Ran lindent and cleaned up whitespace issues.
    Format for 80-columns too.

commit 333961ae7095fc66d8a041fce1ac9ee873b09d86
Author: Jon Loeliger <jdl@freescale.com>
Date:	Tue Oct 10 17:02:22 2006 -0500

    Fix whitespace and 80-col issues.

commit 5c912cb1c31266c66ca59b36f9b6f87296421d75
Author: Stefan Roese <sr@denx.de>
Date:	Sat Oct 7 11:36:51 2006 +0200

    CFG_NAND_QUIET_TEST added to not warn upon missing NAND device
    Patch by Stefan Roese, 07 Oct 2006

commit 5bc528fa4da751d472397b308137238a6465afd2
Author: Stefan Roese <sr@denx.de>
Date:	Sat Oct 7 11:35:25 2006 +0200

    Update ALPR code (NAND support working now)
    Patch by Stefan Roese, 07 Oct 2006

commit 77d5034847d328753b80c46b83f960a14a26f40e
Author: Stefan Roese <sr@denx.de>
Date:	Sat Oct 7 11:33:03 2006 +0200

    Remove compile warnings in fpga code
    Patch by Stefan Roese, 07 Oct 2006

commit f3443867e90d2979a7dd1c65b0d537777e1f9850
Author: Stefan Roese <sr@denx.de>
Date:	Sat Oct 7 11:30:52 2006 +0200

    Add CONFIG_BOARD_RESET to configure board specific reset function
    Patch by Stefan Roese, 07 Oct 2006

commit f55df18187e7a45cb73fec4370d12135e6691ae1
Author: John Traill <john.traill@freescale.com>
Date:	Fri Sep 29 08:23:12 2006 +0100

    Fix missing tCycle/modfreq calculation.

    Signed-off-by: John Traill <john.traill@freescale.com>

commit 8272dc2f58f2473d8995fcc9b916440cfba080f0
Author: Andy Fleming <afleming@freescale.com>
Date:	Wed Sep 13 10:33:35 2006 -0500

    Updated config headers to add default FDT-based booting

commit 09f3e09e9ebcfa7919ca8931a4b5504fadd1f1d3
Author: Andy Fleming <afleming@freescale.com>
Date:	Wed Sep 13 10:34:18 2006 -0500

    Add support for eTSEC 3 & 4 on 8548 CDS

    * Added support for using eTSEC 3 and eTSEC 4 on the 8548 CDS.
      This will only work on rev 1.3 boards (but doesn't break older boards)
    * Cleaned up some comments to reflect the expanded role of tsec
      in other systems

commit 084d648b109c8984f83674043c1a7fa3885ef801
Author: Andy Fleming <afleming@freescale.com>
Date:	Wed Sep 13 10:33:56 2006 -0500

    Added code to support 2.6.18 PCI changes in u-boot

    * Added code to swizzle the IRQ map for the PCI

commit afbdc649f8751e4f4f1a6f527edfe139773f2c15
Author: Jon Loeliger <jdl@freescale.com>
Date:	Tue Sep 19 09:34:10 2006 -0500

    Modified makefile for new build mechanism.

    Signed-off-by: Jon Loeliger <jdl@freescale.com>

commit d14ba6a798beb753e7a864500414fcc2d198b8bc
Author: Jon Loeliger <jdl@freescale.com>
Date:	Thu Sep 14 08:40:36 2006 -0500

    Handle 86xx SVR values according to the new Reference Manual.
    Both 8641 and 8641D have SVR == 0x8090, and are distinguished
    by the byte in bits 16-23 instead.
    Thanks to Jason Jin for noticing.

    Signed-off-by: Jon Loeliger <jdl@freescale.com>

commit 88c8f4921fc47fb0eb2384b16586f1bd7f275be7
Author: Zhang Wei <wei.zhang@freescale.com>
Date:	Mon Aug 28 14:25:31 2006 +0800

    Fixed an OF-tree off-by-one bug when adding a new property name.
    This bug will cause the kernel booting to pause a long time.

    Signed-off-by: Zhang Wei <wei.zhang@freescale.com>
    (cherry picked from 2f15776ccc6dc32377d8ba9652b8f58059c27c6d commit)

commit 9bff7a69a885adebbd2bd45990494ec4cf998a30
Author: Jon Loeliger <jdl@freescale.com>
Date:	Tue Aug 29 11:05:09 2006 -0500

    Remove trailing empty lines.

commit cd6d73d5b895a5935ac4fde0a356288142a584e0
Author: Jon Loeliger <jdl@freescale.com>
Date:	Tue Aug 29 09:48:49 2006 -0500

    Remove bogus msync and use volatile asm.

commit 778d45049ce5927b65b3ff1d8e6692b654bdd49e
Author: Jon Loeliger <jdl@freescale.com>
Date:	Tue Aug 29 08:17:14 2006 -0500

    Add myself as maintainer for MPC8641HPCN.

commit 2f15776ccc6dc32377d8ba9652b8f58059c27c6d
Author: Zhang Wei <wei.zhang@freescale.com>
Date:	Mon Aug 28 14:25:31 2006 +0800

    Fixed an OF-tree off-by-one bug when adding a new property name.
    This bug will cause the kernel booting to pause a long time.

    Signed-off-by: Zhang Wei <wei.zhang@freescale.com>

commit 5567806b67d0ae83493aa8823ad3b6c914f581d7
Author: Haiying Wang <haiying.wang@freescale.com>
Date:	Fri Aug 25 14:38:34 2006 -0400

    Change ramdiskaddr and dtbaddr
    Remove PEX fluff commands.

    Signed-off-by: Haiying Wang <haiying.wang@freescale.com>
    Signed-off-by: Jon Loeliger <jdl@freescale.com>

commit b2b78421d9db49c21a821af8a19c21c1f7dfb29e
Author: Matthew McClintock <msm@freescale.com>
Date:	Wed Aug 23 13:32:45 2006 -0500

    * Another small fix for booting with disable_of

    Signed-off-by: Matthew McClintock <msm@freescale.com>

commit 4a7cc0f21918e6ecf07ed57075d67df2c4a1299c
Author: Jon Loeliger <jdl@freescale.com>
Date:	Wed Aug 23 11:04:43 2006 -0500

    Cleanup and lindent new AHCI driver.

commit dabf9ef8c10b4dead5ef2106ef742b1c06b542de
Author: Jin Zhengxiong <jason@bus.ap.freescale.net>
Date:	Wed Aug 23 19:15:12 2006 +0800

    Add AHCI define and sata support for MPC8641HPCN board.

    Signed-off-by:Jason Jin<jason.jin@freescale.com>

commit 4782ac80b02f0d01afd309e2200dd3c7037f2ba4
Author: Jin Zhengxiong <jason@bus.ap.freescale.net>
Date:	Wed Aug 23 19:10:44 2006 +0800

    Add AHCI support to u-boot

    Add AHCI support in u-boot, enable the sata disk controllers which
    following the AHCI protocol.

    Signed-off-by:Jason Jin<jason.jin@freescale.com>

commit d8ea2acf5f137cae99417df4f573d036ee384668
Author: Zhang Wei <wei.zhang@freescale.com>
Date:	Wed Aug 23 17:54:32 2006 +0800

    Add dtb boot-up parameter to default boot commands.

    Signed-off-by: Zhang Wei <wei.zhang@freescale.com>

commit b93775c2036b99baa390ea425c4771895bbc63c4
Author: Jon Loeliger <jdl@freescale.com>
Date:	Tue Aug 22 18:26:08 2006 -0500

    Cleanup even more poorly introduced whitespace.

commit ae6241685cbcf0c79a3636530d2ceab1fb291a94
Author: Jon Loeliger <jdl@freescale.com>
Date:	Tue Aug 22 18:07:00 2006 -0500

    Cleanup more poorly introduced whitespace.

commit 2c33e8a1c535b3ae91cf0b284480600bf3f57c57
Author: Jon Loeliger <jdl@freescale.com>
Date:	Tue Aug 22 17:54:05 2006 -0500

    Cleanup poorly introduced whitespace.

commit 80e955c7dd98f4b4fd23c2113caf75ed2b77b5b3
Author: Jon Loeliger <jdl@freescale.com>
Date:	Tue Aug 22 12:25:27 2006 -0500

    General indent and whitespace cleanups.

commit ffff3ae56f5842ca3679e4ce7922b819a87aad9f
Author: Jon Loeliger <jdl@freescale.com>
Date:	Tue Aug 22 12:06:18 2006 -0500

    General indent and whitespace cleanups.

commit 41a0e8b304d3ff55fe27a230507aac79684016ac
Author: Jon Loeliger <jdl@freescale.com>
Date:	Tue Aug 22 10:42:21 2006 -0500

    Cleanup compiler warnings.

commit 5de62c47a8628b3da4d73f7c07027f32a3342d40
Author: Matthew McClintock <msm@freescale.com>
Date:	Tue Aug 22 09:31:59 2006 -0500

    Fix disable_of booting

    Signed-off-by: Matthew McClintock <msm@freescale.com>

commit 87a449c8ac396420cb24260f717ea9e6faa82047
Author: Matthew McClintock <msm@freescale.com>
Date:	Tue Aug 22 09:23:55 2006 -0500

    Support for FDT in uImage format, error when using FDT from flash

    Signed-off-by: Matthew McClintock <msm@freescale.com>

commit 75c299c38369d01addd5e054b8a16217b70f4a86
Author: Haiying Wang <haiying.wang@freescale.com>
Date:	Tue Aug 15 15:12:55 2006 -0400

    Unlock cache before kernel starts up for MPC86xx

commit 67256678f00c09b0a7f19e862e5c1847553d31bc
Author: Haiying Wang <haiying.wang@freescale.com>
Date:	Tue Aug 15 15:13:15 2006 -0400

    Copy Global Data Pointer to r29 for DECLARE_GLOBAL_DATA_PTR

commit 1c8f6d8fb028f156094d05f2d14298e6479364ac
Author: Haiying Wang <haiying.wang@freescale.com>
Date:	Tue Aug 15 15:12:55 2006 -0400

    Unlock cache before kernel starts up for MPC86xx

commit 0d9ccc55edf9a7f3c5b2b6263580a6ea8d702a04
Author: Haiying Wang <haiying.wang@freescale.com>
Date:	Tue Aug 15 15:13:15 2006 -0400

    Copy Global Data Pointer to r29 for DECLARE_GLOBAL_DATA_PTR

commit 86c8e17f25e972a7e272950a0735fad84e082b88
Author: Matthew McClintock <msm@freescale.com>
Date:	Wed Aug 16 13:59:47 2006 -0500

    * Fix disable_of booting

    Signed-off-by: Matthew McClintock <msm@freescale.com>

commit 25c751e9adc86e22fe3b5b47cf2806379b575db7
Author: Matthew McClintock <msm@freescale.com>
Date:	Wed Aug 16 10:54:09 2006 -0500

    * Support for FDT in uImage format, error when using FDT from flash

    Signed-off-by: Matthew McClintock <msm@freescale.com>

commit 899620c2d66d4eef3b2a0034d062e71d45d886c9
Author: Stefan Roese <sr@denx.de>
Date:	Tue Aug 15 14:22:35 2006 +0200

    Add initial support for the ALPR board from Prodrive
    NAND needs some additional testing
    Patch by Heiko Schocher, 15 Aug 2006

commit f0ff4692ff3372dec55074a8eb444943ab095abb
Author: Stefan Roese <sr@denx.de>
Date:	Tue Aug 15 14:15:51 2006 +0200

    Add FPGA Altera Cyclone 2 support
    Patch by Heiko Schocher, 15 Aug 2006

commit fecf1c7e4de1b2779edc18742b91c22bdc32b68b
Author: Jon Loeliger <jdl@freescale.com>
Date:	Mon Aug 14 15:33:38 2006 -0500

    Fix BAT0 to actually be cacheable, non-guarded as documented.

    Signed-off-by: Jon Loeliger <jdl@freescale.com>

commit 40bc83559db5745681909fd7382ae509567e116d
Author: Jon Loeliger <jdl@freescale.com>
Date:	Wed Aug 9 15:32:16 2006 -0500

    Removed MPC8641HPCN DTS source file from build.
    It is no longer linked into U-Boot; its sources are
    now located in the kernel tree.

    Signed-off-by: Jon Loeliger <jdl@freescale.com>

commit 34c3c0e01dbf1f8cc2bd08de92f2b89ba84921eb
Author: Matthew McClintock <msm@freescale.com>
Date:	Wed Jun 28 10:47:03 2006 -0500

    * Switched default PCI speed for 8540 ADS back to 33MHz

    * Added comments and a printf to warn that PCI-X won't
      work at 33MHz
      Patch by Andy Fleming 17-Mar-2006

    Signed-off-by: Andy Fleming <afleming@freescale.com>

commit b6c5e1373b6ea0bb37a18e4aeecec00613d1cd39
Author: Matthew McClintock <msm@freescale.com>
Date:	Wed Jun 28 10:46:35 2006 -0500

    * Fixed a bug where 8555 PCI code used the old variable and function names Patch by Andy Fleming 17-Mar-2006

    Signed-off-by: Andy Fleming <afleming@freescale.com>

commit bf1dfffd8c26f8ecdd630a0ae4c834e751e4e452
Author: Matthew McClintock <msm@freescale.com>
Date:	Wed Jun 28 10:46:13 2006 -0500

    * Added VIA configuration table

    * Added support for PCI2 on CDS
      Patch by Andy Fleming 17-Mar-2006

    Signed-off-by: Andy Fleming <afleming@freescale.com>

commit c88f9fe66b64247e5b6a38410ba315ca25596d16
Author: Matthew McClintock <msm@freescale.com>
Date:	Wed Jun 28 10:45:41 2006 -0500

    * Fixed PCI memory definitions Patch by Andy Fleming 17-Mar-2006

    Signed-off-by: Andy Fleming <afleming@freescale.com>

commit 97074ed9655309b64231bc2cee69fe85399f8055
Author: Matthew McClintock <msm@freescale.com>
Date:	Wed Jun 28 10:45:17 2006 -0500

    * Added support for initializing second PCI bus on 85xx Patch by Andy Fleming 17-Mar-2006

    Signed-off-by: Andy Fleming <afleming@freescale.com>

commit f0e6f57f71b3c4fdd13028eb03c3f3e91926dda2
Author: Matthew McClintock <msm@freescale.com>
Date:	Wed Jun 28 10:44:49 2006 -0500

    * Added PCI-X #defines for PCI-X initialization Patch by Andy Fleming on 17-Mar-2006

    Signed-off-by: Andy Fleming <afleming@freescale.com>

commit a4e11558b810ef2cddffdf7b9d86bc1130441960
Author: Matthew McClintock <msm@freescale.com>
Date:	Wed Jun 28 10:44:23 2006 -0500

    * Made sure the code which disables prefetch for PCI devices sets the size of the prefetch region to 0 Patch by Andy Fleming on 17-Mar-2006

    Signed-off-by: Andy Fleming <afleming@freescale.com>

commit 0e16387db1d4aacd5bf35cb6d7c1942765c0347b
Author: Matthew McClintock <msm@freescale.com>
Date:	Wed Jun 28 10:43:36 2006 -0500

    * Add Flat Dev Tree construction for MPC85xx ADS and CDS boards Patch by Jon Loeliger 17-Jan-2006

    Signed-off-by: Jon Loeliger <jdl@freescale.com>

commit 855e6fb073f9d04fe4a7f06c107ecbac6344ddd4
Author: Matthew McClintock <msm@freescale.com>
Date:	Wed Jun 28 10:43:00 2006 -0500

    * Removed the oftree.dts for stxxtx in light of the changes to the flat device tree handling code Patch by Matthew McClintock 26-June-2006

commit 5498d90312aad9f6bdbf047986027c35b03cd163
Author: Matthew McClintock <msm@freescale.com>
Date:	Wed Jun 28 10:42:24 2006 -0500

    * Patch to modify ft_build.c to update flat device trees in place Patch by Matthew McClintock 26-June-2006

commit 0267768eddc5ca7bc1865bc40c866829ac5efbfe
Author: Matthew McClintock <msm@freescale.com>
Date:	Wed Jun 28 10:41:37 2006 -0500

    * Modify bootm command to support booting with flat device trees Patch by Matthew McClintock 26-June-2006

commit 8fc8bd2cc479b6cd188fdede4010e0e052970b8a
Author: John Traill <john.traill@freescale.com>
Date:	Wed Aug 9 14:33:50 2006 +0100

    Add Rapidio support for the MPC8641HPCN

    Signed-off-by: John Traill <john.traill@freescale.com>

commit 91a414c7d1fb0eac912592cd995b30c9f23045c9
Author: John Traill <john.traill@freescale.com>
Date:	Tue Aug 8 11:32:43 2006 +0100

    Fix caslat calculation

    Signed-off-by: John Traill <john.traill@freescale.com>

commit 709d3073e74153278e7904a70819bbef7df50e1a
Author: Jon Loeliger <jdl@freescale.com>
Date:	Thu Aug 3 16:17:56 2006 -0500

    Convert to mac-address in ethernet nodes.

commit 71748af833ca1017edf1415be376366ff2937d17
Author: Haiying Wang <haiying.wang@freescale.com>
Date:	Fri Jul 28 12:41:35 2006 -0400

    Correct the irq value of DUART2

commit 9cb3e8816ae4d854e7dc22128c3eea3d70bb982c
Author: Haiying Wang <haiying.wang@freescale.com>
Date:	Fri Jul 28 12:41:41 2006 -0400

    Change the space size of PEX IO in README

commit 239db37c94f7a92941c4465feceb867c609241c5
Author: Haiying Wang <haiying.wang@freescale.com>
Date:	Fri Jul 28 12:41:18 2006 -0400

    Move get_board_sys_clk to board directory

commit 492900b985439fbce1a118afde1e35def870db03
Author: John Traill <john.traill@freescale.com>
Date:	Fri Jul 28 09:03:54 2006 +0100

    Fix 8641HPCN pollution

commit 515ab8a62e8574e2babc6e8dcc43544ad221c5b2
Author: John Traill <john.traill@freescale.com>
Date:	Fri Jul 28 08:16:06 2006 +0100

    Fix 8641HPCN timebase

commit c86360b830f1eecd7a72208575dde4f57879faea
Author: Zhang Wei <wei.zhang@freescale.com>
Date:	Fri Jul 28 00:01:34 2006 +0800

    Fixed OF device tree of mpc86xxhpcn board.

    The changes works in with kernel irq mapping rework.

    Signed-off-by: Zhang Wei <wei.zhang@freescale.com>

commit bea3f28d285942bf3f7ab339ce85178ded544225
Author: Haiying Wang <haiying.wang@freescale.com>
Date:	Wed Jul 12 10:48:05 2006 -0400

    Add support for reading and writing mac addresses to or from ID EEPROM.

    Added code for reading and writing Mac addresses to/from ID EEPROM(0x57).
    With attached patch, we can use command "mac/mac read/mac save/"
    to read and write EEPROM under u-boot prompt.

    U-boot will calculate the checksum of EEPROM while bootup,
    if it is right, then u-boot will check whether the mac address
    of eTSEC0/1/2/3 is availalbe (non-zero).

    If there is mac address availabe in EEPROM, u-boot will use it,
    otherewise, u-boot will use the mac address defined in
    MPC8641HPCN.h. This matches the requirement to set unique mac address
    for each TSEC port.

    Signed-off-by: Haiying Wang <haiying.wang@freescale.com>
    Signed-off-by: York Sun <yorksun@freescale.com>

commit fcb28e763415e0e4e66b0f45842d1557ae198e5e
Author: Jin Zhengxiong <Jason.Jin@freescale.com>
Date:	Thu Jul 13 10:35:10 2006 -0500

    Fixed initrd issue by define big RAM

    Signed-off-by:Jason Jin <Jason.jin@freescale.com>

commit e6cd2a1785d74ec3d30a86f1cb360be8de478151
Author: Jason Jin <Jason.jin@freescale.com>
Date:	Fri Jul 7 10:01:45 2006 -0500

    We made a u-boot patch to fix the hang up issue
    when booting filesystem from ramdisk.

    Signed-off-by:Jason Jin <Jason.jin@freescale.com>

commit 38433ccc5850ee70549af0b2bc5b920355ef5388
Author: Matthew McClintock <msm@freescale.com>
Date:	Wed Jun 28 10:47:03 2006 -0500

    * Switched default PCI speed for 8540 ADS back to 33MHz
    * Added comments and a printf to warn that PCI-X won't
      work at 33MHz
      Patch by Andy Fleming 17-Mar-2006

    Signed-off-by: Andy Fleming <afleming@freescale.com>

commit e4c2a0eb0c3e3ffbf824800184ee42bdc99d5b19
Author: Matthew McClintock <msm@freescale.com>
Date:	Wed Jun 28 10:46:35 2006 -0500

    * Fixed a bug where 8555 PCI code used the old variable and
      function names
      Patch by Andy Fleming 17-Mar-2006

    Signed-off-by: Andy Fleming <afleming@freescale.com>

commit cbfc7ce756b88eb26e5537bc7b625c445c6dcfac
Author: Matthew McClintock <msm@freescale.com>
Date:	Wed Jun 28 10:46:13 2006 -0500

    * Added VIA configuration table
    * Added support for PCI2 on CDS
      Patch by Andy Fleming 17-Mar-2006

    Signed-off-by: Andy Fleming <afleming@freescale.com>

commit 52c7a68b8d587ebcf5a6b051b58b3d3ffa377ddc
Author: Matthew McClintock <msm@freescale.com>
Date:	Wed Jun 28 10:45:41 2006 -0500

    * Fixed PCI memory definitions
      Patch by Andy Fleming 17-Mar-2006

    Signed-off-by: Andy Fleming <afleming@freescale.com>

commit 087454609e47295443af793a282cddcd91a5f49c
Author: Matthew McClintock <msm@freescale.com>
Date:	Wed Jun 28 10:45:17 2006 -0500

    * Added support for initializing second PCI bus on 85xx
      Patch by Andy Fleming 17-Mar-2006

    Signed-off-by: Andy Fleming <afleming@freescale.com>

commit b636aaeb6fd516a442fb611bbeeddf3077a687fb
Author: Matthew McClintock <msm@freescale.com>
Date:	Wed Jun 28 10:44:49 2006 -0500

    * Added PCI-X #defines for PCI-X initialization
      Patch by Andy Fleming on 17-Mar-2006

    Signed-off-by: Andy Fleming <afleming@freescale.com>

commit 20abbc6fffa115690107cc942c7abf84bdc03a1b
Author: Matthew McClintock <msm@freescale.com>
Date:	Wed Jun 28 10:44:23 2006 -0500

    * Made sure the code which disables prefetch for PCI devices
      sets the size of the prefetch region to 0
      Patch by Andy Fleming on 17-Mar-2006

    Signed-off-by: Andy Fleming <afleming@freescale.com>

commit 40d5fa35d02df22580593bf0039ab173367e8ef0
Author: Matthew McClintock <msm@freescale.com>
Date:	Wed Jun 28 10:43:36 2006 -0500

    * Add Flat Dev Tree construction for MPC85xx ADS and CDS boards
      Patch by Jon Loeliger 17-Jan-2006

    Signed-off-by: Jon Loeliger <jdl@freescale.com>

commit be7e8b0cb5a0c49dc180075b96df296a893bf146
Author: Matthew McClintock <msm@freescale.com>
Date:	Wed Jun 28 10:43:00 2006 -0500

    * Removed the oftree.dts for stxxtx in light of the changes
      to the flat device tree handling code
      Patch by Matthew McClintock 26-June-2006

commit 1b380ec225665e73959677f3893dc658c5925e05
Author: Matthew McClintock <msm@freescale.com>
Date:	Wed Jun 28 10:42:24 2006 -0500

    * Patch to modify ft_build.c to update flat device trees in place
      Patch by Matthew McClintock 26-June-2006

commit 98a9c4d468a942a09ebe8979bec508017f3e4462
Author: Matthew McClintock <msm@freescale.com>
Date:	Wed Jun 28 10:41:37 2006 -0500

    * Modify bootm command to support booting with flat device trees
      Patch by Matthew McClintock 26-June-2006

commit da012ab661fd4ab169dd7b9b32201a4df62cf34a
Author: Jin Zhengxiong <Jason.Jin@freescale.com>
Date:	Wed Jun 28 08:43:56 2006 -0500

    Change Id to symbolic name for RTL8139

    Signed-off-by: Jason Jin <Jason.jin@freescale.com>

commit bc09cf3c2bfb8d54c659cbb332f79d0950982fd0
Author: Jin Zhengxiong-R64188 <Jason.Jin@freescale.com>
Date:	Tue Jun 27 18:12:10 2006 +0800

    Fix RTL8139 in big endian

    signed-off-by: Jason Jin <Jason.Jin@freescale.com>
    signed-off-by: Wei Zhang <wei.zhang@freescale.com>

commit fcfb9a57947fc203b99fe81ab0578f7286261f9f
Author: Jin Zhengxiong-R64188 <Jason.Jin@freescale.com>
Date:	Tue Jun 27 18:12:23 2006 +0800

    Fix Tsec bug when no link

     When tftp a non-exist file from the tftp server, u-boot will check
     the link of all eth port. The original file will return wrong link
     state on the no link ports.

    signed-off-by: Jason Jin <Jason.Jin@freescale.com>

commit bd22c2b97514fbfb0e03bd9c72b3445e4dbd57e2
Author: Jin Zhengxiong-R64188 <Jason.Jin@freescale.com>
Date:	Tue Jun 27 18:12:02 2006 +0800

    Fix bug for io_bar size during pci scan

    During the pci scan process, Some devices return bar_reponse with the
    highest bytes 0, such as the pci bridge in uli1575 return bar_response
    with 0xffffff, So the bar_size should be manually set under 64K.

    Signed-off-by: Jason Jin <jason.jin@freescale.com>

commit fa7db9c377bc2353a17bf1d381d65a6c418728f0
Author: Jin Zhengxiong-R64188 <Jason.Jin@freescale.com>
Date:	Tue Jun 27 18:11:54 2006 +0800

    Enable PCIE1 for MPC8641HPCN board

    Signed-off-by: Jason Jin <Jason.jin@freescale.com>

commit 99d70e3a47affb9bae041a2caece7cd516e213b3
Author: Wolfgang Denk <wd@pollux.denx.de>
Date:	Mon Jun 26 11:06:00 2006 +0200

    More code cleanup

commit 684623ce92c5fd32e7db2d6e016945a67c5ffaba
Author: Jon Loeliger <jdl@freescale.com>
Date:	Thu Jun 22 08:51:46 2006 -0500

    Fix bug in 8641hpcn reset command with no args.

    Signed-off-by: Haiying Wang <haiying.wang@freescale.com>
    Acked-by: Jon Loeliger <jdl@freescale.com>

commit 8be429a5ddbf0ebe2d94174ba58fcfc7a24285dc
Author: Zhang Wei <wei.zhang@freescale.com>
Date:	Tue Jun 20 17:47:15 2006 +0800

    Reworked IRQ mapping in OF-tree.

commit 0e4c2a17ca34001ed36d259f13cb88ada4611a8c
Author: Jon Loeliger <jdl@freescale.com>
Date:	Thu Jun 15 21:33:37 2006 -0500

    Do not enable address translation on secondary CPUs.
    Do not set up BATs on secondary CPUs.  Let Linux do the nasty.

    Signed-off-by: Jon Loeliger <jdl@freescale.com>

commit 386eda022473394ad8f36b86f2bdc9b4cb816291
Author: Wolfgang Denk <wd@pollux.denx.de>
Date:	Wed Jun 14 18:14:56 2006 +0200

    Code cleanup

commit 16c8d5e76ae0f78f39a60608574adfe0feb9cc70
Author: Wolfgang Denk <wd@pollux.denx.de>
Date:	Wed Jun 14 17:45:53 2006 +0200

    Various USB related patches
    - Add support for mpc8xx USB device.
    - Add support for Common Device Class - Abstract Control Model USB console.
    - Add support for flow control in USB slave devices.
    - Add support for switching between gserial and cdc_acm using environment.
    - Minor changes to usbdcore_omap1510.c usbdcore_omap1510.h
    - Update usbcore slightly to ease host enumeration.
    - Fix non-portable endian problems in usbdcore and usbdcore_ep0.
    - Add AdderUSB_config as a defconfig to enable usage of the USB console
      by default with the Adder87x U-Boot port.
    Patches by Bryan O'Donoghue <bodonoghue@codehermit.ie>, 29 May 2006

commit 8ecc971618f56029ad99d3516f8b297a6ed58971
Author: Jon Loeliger <jdl@jdl.com>
Date:	Wed Jun 7 10:53:55 2006 -0500

    Fix a get_board_sys_clk() use-before-def warning.

    Signed-off-by: Jon Loeliger <jdl@jdl.com>

commit d9bf4858fca5aa4d651b283270f77da72ebadfd5
Author: Jon Loeliger <jdl@jdl.com>
Date:	Wed Jun 7 10:52:49 2006 -0500

    Allow DTC path to be passed in.

    Signed-off-by: Jon Loeliger <jdl@jdl.com>

commit c83ae9ea6d93abbe751bf8a3396236a084e56f87
Author: Haiying Wang <haiying.wang@freescale.com>
Date:	Tue Jun 6 16:54:29 2006 -0400

    Modify the IRQ of DUART2

commit c934f655f9aeca70a5c5f88b465d9e9d57a8d22e
Author: Jon Loeliger <jdl@jdl.com>
Date:	Wed May 31 13:55:35 2006 -0500

    Review cleanups.

    Signed-off-by: Jon Loeliger <jdl@freescale.com>

commit cb5965fb95b77a49f4e6af95248e0c849f4af03e
Author: Jon Loeliger <jdl@jdl.com>
Date:	Wed May 31 12:44:44 2006 -0500

    White space cleanup.
    Some 80-column cleanups.
    Convert printf() to puts() where possible.
    Use #include "spd_sdram.h" as needed.
    Enhanced reset command usage message a bit.

    Signed-off-by: Jon Loeliger <jdl@freescale.com>

commit 3d5c5be547445dd3bd2eb7368d80df03ea437970
Author: Jon Loeliger <jdl@jdl.com>
Date:	Wed May 31 11:39:34 2006 -0500

    Removed unneeded local_bus_init() from 8641HPCN board.

    Signed-off-by: Jon Loeliger <jdl@freescale.com>

commit 4d3d729c16c392d2982d3266b659d333c927697d
Author: Jon Loeliger <jdl@jdl.com>
Date:	Wed May 31 11:24:28 2006 -0500

    Moved mpc8641hpcn_board_reset() out of cpu/ into board/.

    Signed-off-by: Jon Loeliger <jdl@freescale.com>

commit b2a941de060350ad15878d8219825f4950e9bb8e
Author: Jon Loeliger <jdl@jdl.com>
Date:	Wed May 31 10:07:28 2006 -0500

    Remove dead debug code.

    Signed-off-by: Jon Loeliger <jdl@jdl.com>

commit 126aa70f10ba3d20e0a6f4d32328250513b77770
Author: Jon Loeliger <jdl@freescale.com>
Date:	Tue May 30 17:47:00 2006 -0500

    Move mpc86xx PIXIS code to board directory

    First cut at moving the PIXIS platform code out of
    the 86xx cpu directory and into board/mpc8641hpcn
    where it belongs.

    Signed-off-by: Jon Loeliger <jdl@freescale.com>

commit ddf83a2fcef1a670c45fc585119dcc1fe062c4a9
Author: Markus Klotzbuecher <mk@denx.de>
Date:	Tue May 30 16:56:14 2006 +0200

    Support generic OHCI support for the s3c24x0 cpu.

commit 38cee12dcfcc257371c901c7e13e58ecab0a35d8
Author: Haiying Wang <Haiying.Wang@freescale.com>
Date:	Tue May 30 09:10:32 2006 -0500

    Improve "reset" command's interaction with watchdog.

	"reset altbank" will reset another bank WITHOUT watch dog timer enabled
	"reset altbank wd" will reset another bank WITH watch dog enabled
	"diswd" will disable watch dog after u-boot boots up successfully

    Signed-off-by: Haiying Wang <Haiying.Wang@freescale.com>

commit 70205e5a6ddc8528b11db9eb4d3fa0209d9fce2a
Author: Haiying Wang <Haiying.Wang@freescale.com>
Date:	Tue May 30 08:51:19 2006 -0500

    Fix two SDRAM setup bugs.

	Fix ECC setup bug.
	Enable 1T/2T based on number of DIMMs present.

    Signed-off-by: Haiying Wang <Haiying.Wang@freescale.com>

commit d11fec5015334deb2010e36ce00bb118cc5429a5
Author: Haiying Wang <Haiying.Wang@freescale.com>
Date:	Fri May 26 10:24:48 2006 -0500

    Add first draft of the MPC8641HPCN doc/README.

    Signed-off-by: Jon Loeliger <jdl@jdl.com>

commit ed45d6c930b5939718a87ee12e25cf9a05978d4a
Author: Haiying Wang <Haiying.Wang@freescale.com>
Date:	Fri May 26 10:13:04 2006 -0500

    Added pci@8000 block.
    Updated ethernet interrupt mappings (moved up 48).
    Cleaned up a few comments.

    Signed-off-by: Jon Loeliger <jdl@jdl.com>

commit 3033ebb20fd7c372c7bca3c9955a4692bb2240b7
Author: Haiying Wang <Haiying.Wang@freescale.com>
Date:	Fri May 26 10:01:16 2006 -0500

    Allow args on reset command.

    Signed-off-by: Jon Loeliger <jdl@jdl.com>

commit 301f1aa384d0edcae6a22fd9adb933ad71695ecc
Author: Markus Klotzbuecher <mk@denx.de>
Date:	Tue May 23 13:38:35 2006 +0200

    Changed the mp2usb (at91rm9200) board to use the generic OHCI driver. Some
    fixes to the latter.

commit 24e37645e7378b20fa8f20e2996c8fb8e90c70c9
Author: Markus Klotzbuecher <mk@denx.de>
Date:	Tue May 23 10:33:11 2006 +0200

    More cleanup for the delta board and the generic usb_ohci driver. Added
    CFG_USB_BOARD_INIT and CFG_USB_CPU_INIT for enabling board and cpu specific
    initialization and cleanup hooks respectively.

commit 3e326ece9eba8184f5d48aa4fb87760a8f6f0f10
Author: Markus Klotzbuecher <mk@denx.de>
Date:	Mon May 22 16:33:54 2006 +0200

    This patch adds USB storage support for the delta board. This is the first
    board to make use of a generic OHCI driver, that calls hooks for board
    dependant initialization.

commit 14e37081ff3cac7ebe6e93836523429853b6b292
Author: Jon Loeliger <jdl@jdl.com>
Date:	Fri May 19 13:28:39 2006 -0500

    Change arbitration to round-robin for SMP linux.

commit 9a655876e5995be80f49054e2509500e871e4d3a
Author: Jon Loeliger <jdl@jdl.com>
Date:	Fri May 19 13:26:34 2006 -0500

    Enable dual DDR controllers and interleaving.

commit 586d1d5abd3e525f1e1d9b81e5a61a4da6b2fa3c
Author: Jon Loeliger <jdl@jdl.com>
Date:	Fri May 19 13:22:44 2006 -0500

    Update 86xx address map and LAWBARs.

commit cccce5d0581bb0ba4602799a4b5112e58d1579cb
Author: Jon Loeliger <jdl@jdl.com>
Date:	Fri May 19 13:14:15 2006 -0500

    Remove L2 Cache invalidate polling.

commit f35ec68fb066cec0e36294bfe07dec2d4e8ad3a8
Author: Jon Loeliger <jdl@jdl.com>
Date:	Fri May 19 12:33:09 2006 -0500

    Enable 2nd CPU and I2C.

commit bf690dcb512d34c4fceec0eb1e5c0e88a9db5d54
Author: Jon Loeliger <jdl@freescale.com>
Date:	Mon May 15 07:26:56 2006 -0500

    Update interrupt mapping.

commit 6cfea33477b04b63ed47386ed1629529484c33ba
Author: Haiying Wang <Haiying.Wang@freescale.com>
Date:	Wed May 10 09:38:06 2006 -0500

    Remove unneeded INIT_RAM_LOCK cache twiddling.
    Correctly tracks r29 as global data pointer now.

    Signed-off-by: Haiying Wang <Haiying.Wang@freescale.com>

commit d4dd317b58c126a2a7e73f4764ecc1a7c97f876c
Author: Jon Loeliger <jdl@freescale.com>
Date:	Wed May 10 09:33:07 2006 -0500

    Remove unnecessary flash.c file.

commit 18b6c8cd8af6cc7f35180cedc4adb3236cc1a1b8
Author: Jon Loeliger <jdl@freescale.com>
Date:	Tue May 9 08:23:49 2006 -0500

    Get MPC8641HPCN flash images working.

	Enable the CFI driver.
	Remove bogus LAWBAR7 cruft.
	Use correct TEXT_BASE, Fixup load script.
	Enable SPD EEPROM during DDR setup.
	Use generic RFC 1918 IP addresses by default.

commit 5c9efb36a6b5431423f52888a0e3b4b515fe7eca
Author: Jon Loeliger <jdl@freescale.com>
Date:	Thu Apr 27 10:15:16 2006 -0500

    Cleanup whitespaces and style issues.
    Removed //-style comments.
    Use 80-column lines.
    Remove trailing whitespace.
    Remove dead code and debug cruft.

commit a2320a6bf8113a09544c42d160d10ac69d049a03
Author: Jon Loeliger <jdl@freescale.com>
Date:	Thu Apr 27 08:22:39 2006 -0500

    Revert bad PCI prefetch limit change.

commit debb7354d1ea4f694154818df5e5b523f5c1cc1d
Author: Jon Loeliger <jdl@freescale.com>
Date:	Wed Apr 26 17:58:56 2006 -0500

    Initial support for MPC8641 HPCN board.
