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 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 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 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 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 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 c59200443072353044aa4bf737a5a60f9a9af231
Author: Wolfgang Denk <wd@pollux.denx.de>
Date:	Thu Nov 2 15:15:01 2006 +0100

    Release U-Boot 1.1.6

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 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 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 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 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.
