Larry Johnson [Thu, 27 Dec 2007 15:54:48 +0000 (10:54 -0500)]
Add 440EPx DDR2 SPD DIMM support
This patch adds SPD DDR2 support for the 440EPx ("Denali") SDRAM
controller. It should also work on the 440GRx. It is based on the DDR2
SPD code for the 440EP/440EPx, but makes no provision for DDR1 support.
This code has been tested on prototype Korat boards with three Kingston
DIMMS: 512 MiB ECC (one rank), 512 MiB non-ECC (one rank) and 1 GiB ECC
(two ranks). The Korat board has a single DIMM socket, but support has
been provided (though not tested) for boards with two DIMM sockets.
Larry Johnson [Sat, 22 Dec 2007 20:15:30 +0000 (15:15 -0500)]
Copy 440EPx/GRx SDRAM data-eye search to common directory
This patch creates a non-board-specific file for performing the SDRAM
data-eye search. It also adds ECC error checking to the test of valid
data on readback when ECC is enabled.
Larry Johnson [Sat, 22 Dec 2007 20:15:13 +0000 (15:15 -0500)]
Add definitions for 440EPx/GRx SDRAM controller to ppc440.h
This patch adds the Denali SDRAM controller definitions to "ppc440.h".
It also fixes two typos in the definitions, so the board-specific
"sdram.h" files containing these definitions are also fixed to avoid
compiler warnings.
Larry Johnson [Thu, 27 Dec 2007 15:50:55 +0000 (10:50 -0500)]
Add Ethernet 1000BASE-X support for PPC4xx
This patch adds a new switch: "CONFIG_PHY_DYNAMIC_ANEG". When this symbol
is defined, the PHY will advertise it's capabilities for autonegotiation
based on the capabilities shown in the PHY's status registers, including
1000BASE-X. When "CONFIG_PHY_DYNAMIC_ANEG" is not defined, the PHY will
advertise hard-coded capabilities, as before.
Larry Johnson [Sat, 22 Dec 2007 20:14:00 +0000 (15:14 -0500)]
Add driver for STMicroelectronics M41T60 RTC
This driver is based on the driver for the M41T11. In the intended
application, the RTC will be powered by a large capacitor, rather than a
battery. The driver therefore checks to see whether the RTC has lost
power. The chip's OUT bit is normally reset from its power-up state. If
the OUT bit is read as set, or if the date and time are not valid, then the
RTC is assumed to have lost power, and its date and time are reset to
1900-01-01 00:00:00.
Support for adjusting the speed of the clock to improve accuracy is
provided through an environment variable.
Stefan Roese [Sat, 22 Dec 2007 11:18:26 +0000 (12:18 +0100)]
ppc4xx: Fix problem in 44x cache POST routine
As repoted by Larry Johnson, running "diag run cache" caused a crash
in U-Boot. This problem was introduced by a patch that removed the
TLB entry for the cache test after the test has completed. Since this
TLB was only setup once, a 2nd attempt to run this cache test
failed with a crash. Now this TLB entry is created every time the
routine is called.
Stefan Roese [Tue, 18 Dec 2007 07:44:51 +0000 (08:44 +0100)]
ppc4xx: fdt: Cleanup setup of cpu node setup
Now the cpu node setup ("timebase-frequency" and "clock-frequency") is
without using the absolute path to the cpu node. This makes it possible
to use this U-Boot version with both versions of cpu-node naming
"cpu@0" and the former "PowerPC,440EPx@0".
ppc4xx: Add CONFIG_BOOTP_SUBNETMASK to Sequoia board config
When using dhcp/bootp the "netmask" environment variable is not
set because CONFIG_BOOTP_SUBNETMASK is not defined. But usually this is
desireable, so the following patch adds this this option to the board
config.
Signed-off-by: Markus Klotzbuecher <mk@denx.de> Signed-off-by: Stefan Roese <sr@denx.de>
Larry Johnson [Sat, 27 Oct 2007 16:48:15 +0000 (12:48 -0400)]
Fix/enhance ECC POST for 440EPx/GRx
This patch allows the ECC POST to be used for different boards with the
PPC440 Denali SDRAM controller. Modifications include skipping the test
if ECC is not enabled (as for non-ECC DIMMs) and adding synchronization
to prevent timing errors.
Stefan Roese [Sat, 8 Dec 2007 13:47:34 +0000 (14:47 +0100)]
ppc4xx: 405EX: Correctly enable USB pins
This patch selects the USB data pins in the 405EX GPIO and MFC (multi
function control) registers. This is done for the AMCC Kilauea and
Makalu eval boards.
Stefan Roese [Thu, 6 Dec 2007 04:58:43 +0000 (05:58 +0100)]
ppc4xx: Enable hardware-fix for PCI/DMA errata on AMCC 440SP/SPe boards
This patch enables the hardware-fix for the PCI/DMA errata's 19+22 by
setting the FIXD bit in the SDR0_MFR register. Here a description of the
symptoms:
Problem Description
------------------------------
If a DMA is performed between memory and PCI with the DMA 1 Controller
using prefetch, and as a result uses a special purpose buffer selected by
the PCIXn Bridge Options 1 Register (PCIXn_BRDGOPT1[RBP7] - bits 31-29),
the first part of the transfer sequence is performed twice. The
PPC440SPe PCI Controller requests more data than was needed such that in
the case of enforce memory protection, a host CPU exception can occur.
No data is corrupted, because data transfer is stopped in the PCI
Controller. Prefetch enable is specified by setting DMA Configuration
Register (I2O0_DMAx_CFG[DXEPD] - bit 31) to 0.
Behavior that may be observed in a running system
---------------------------------------------------------------------------
1. DMA performance is decreased because of the double access on the PCI bus
interface.
2. If an illegal access to some address on the PCI bus is detected at the
system level, a machine check or similar system error may occur.
Workarounds Available
----------------------------------
1. Do not program prefetch. Note that a prefetch command cannot be programmed
without selecting a special purpose buffer.
2. To avoid crossing a physical boundary of the PCI slave device, add 512
bytes of address to the PCI address range.
This patch was originally provided by Pravin M. Bathija <pbathija@amcc.com>
from AMCC and slighly changed.
Signed-off-by: Pravin M. Bathija <pbathija@amcc.com> Signed-off-by: Stefan Roese <sr@denx.de>
Stefan Roese [Fri, 30 Nov 2007 06:15:41 +0000 (07:15 +0100)]
ppc4xx: Kilauea: Add PCIe reset assertion upon power-up
This manual PCIe reset triggering solves the problem seen with the
Intel EPRO/1000 card, which was not detected (link not established)
upon power-up reset.
Kumar Gala [Wed, 21 Nov 2007 20:07:46 +0000 (14:07 -0600)]
Fix warnings from import of libfdt
cmd_fdt.c: In function fdt_print:
cmd_fdt.c:586: warning: assignment discards qualifiers from pointer target type
cmd_fdt.c:613: warning: assignment discards qualifiers from pointer target type
cmd_fdt.c:635: warning: assignment discards qualifiers from pointer target type
cmd_fdt.c:636: warning: assignment discards qualifiers from pointer target type
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
Grant Likely [Wed, 21 Nov 2007 16:19:37 +0000 (09:19 -0700)]
[BUILD] Remove libraries when updating autoconf.mk
Fix library problems caused by conditional compilation. Using
autoconf.mk to decide which files to compile has caused a problem when
changing configuration from one board to another without clearing out
the library (*.a) files.
It used to be that the linker was always passed the same list of .o
files when building the .a files. However, that is not longer true
with conditional compilation. Now, a different board config will have
a different file list passed to the linker. The problem occurs when
a library has already been built and the board config is changed.
Since the linker will update instead of replace a preexisting library,
then if the file list changes to remove some object files the old
objects will still exist in the library.
The solution is to remove all old library files when autoconf.mk is
made.
Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
Grant Likely [Mon, 24 Sep 2007 15:05:31 +0000 (09:05 -0600)]
[BUILD] Generate include/autoconf.mk from board config files
Use cpp and sed to postprocess config.h and import the defined values
into include/autoconf.mk. autoconf.mk is then included by config.mk to
give 'make' access to the board configuration.
Doing this enables conditional compilation at the Makefile level instead
of by wrapping every .c file with #ifdef/#endif wrappers.
Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
[MIPS] board/gth2/lowlevel_init.S: Fix a build warning
lowlevel_init.S: Assembler messages:
lowlevel_init.S:413: Warning: Pretending global symbol used as branch target is local.
Looking at codes, the `memtest' and `clearmem' are intentional mixed
use of `global symbols' and `label' for debugging purpose. To make it
build, just disable global-symbols-use for now. As a result `memtest'
still remains as unused, but leave it be...
[MIPS] cpu/mips/config.mk: Fix GNU assembler minor version picker
Current trick to pick up GNU assembler minor version does not work with the
latest binutils (2007-03-01 or later) due to ${PKGVERSION} now default to
"(GNU Binutils) ".
au1x00_eth.c: In function 'au1x00_enet_initialize':
au1x00_eth.c:246: error: 'au1x00_miiphy_read' undeclared (first use in this function)
au1x00_eth.c:246: error: (Each undeclared identifier is reported only once
au1x00_eth.c:246: error: for each function it appears in.)
au1x00_eth.c:246: error: 'au1x00_miiphy_write' undeclared (first use in this function)
au1x00_eth.c: In function 'au1x00_miiphy_write':
au1x00_eth.c:298: warning: 'return' with no value, in function returning non-void
make[1]: *** [au1x00_eth.o] Error 1