diff options
| author | Sascha Laue <sascha.laue@liebherr.com> | 2010-08-19 09:38:56 +0200 | 
|---|---|---|
| committer | Stefan Roese <sr@denx.de> | 2010-10-04 11:19:35 +0200 | 
| commit | f14ae4180a37cf05c6bcfa5d55cc2955e920e1e2 (patch) | |
| tree | de40c143117aae93ab9d01ee179bed48bd6db4b7 /post/board/lwmon5/dsp.c | |
| parent | d0e6665a24c2c2a3d333db169fcd1261a0903146 (diff) | |
| download | olio-uboot-2014.01-f14ae4180a37cf05c6bcfa5d55cc2955e920e1e2.tar.xz olio-uboot-2014.01-f14ae4180a37cf05c6bcfa5d55cc2955e920e1e2.zip | |
ppc4xx: Big lwmon5 board support rework/update
This patch brings the lwmon5 board support up-to-date. Here a
summary of the changes:
lwmon5 board port related:
- GPIO's changed to control the LSB transmitter
- Reset USB PHY's upon power-up
- Enable CAN upon power-up
- USB init error workaround (errata CHIP_6)
- EBC: Enable burstmode and modify the timings for the GDC memory
- EBC: Speed up NOR flash timings
lwmon5 board POST related:
- Add FPGA memory test
- Add GDC memory test
- DSP POST reworked
- SYSMON POST: Fix handling of negative temperatures
- Add output for sysmon1 POST
- HW-watchdog min. time test reworked
Additionally some coding-style changes were done.
Signed-off-by: Sascha Laue <sascha.laue@liebherr.com>
Signed-off-by: Stefan Roese <sr@denx.de>
Diffstat (limited to 'post/board/lwmon5/dsp.c')
| -rw-r--r-- | post/board/lwmon5/dsp.c | 21 | 
1 files changed, 19 insertions, 2 deletions
| diff --git a/post/board/lwmon5/dsp.c b/post/board/lwmon5/dsp.c index 0e6d9084a..913cd9759 100644 --- a/post/board/lwmon5/dsp.c +++ b/post/board/lwmon5/dsp.c @@ -33,20 +33,37 @@  DECLARE_GLOBAL_DATA_PTR; -#define DSP_STATUS_REG 0xC4000008 +#define DSP_STATUS_REG		0xC4000008 +#define FPGA_STATUS_REG		0xC400000C  int dsp_post_test(int flags)  { +	uint   old_value;  	uint   read_value;  	int    ret; +	/* momorize fpga status */ +	old_value = in_be32((void *)FPGA_STATUS_REG); +	/* enable outputs */ +	out_be32((void *)FPGA_STATUS_REG, 0x30); + +	/* generate sync signal */ +	out_be32((void *)DSP_STATUS_REG, 0x300); +	udelay(5); +	out_be32((void *)DSP_STATUS_REG, 0); +	udelay(500); + +	/* read status */  	ret = 0;  	read_value = in_be32((void *)DSP_STATUS_REG) & 0x3; -	if (read_value != 0x3) { +	if (read_value != 0x03) {  		post_log("\nDSP status read %08X\n", read_value);  		ret = 1;  	} +	/* restore fpga status */ +	out_be32((void *)FPGA_STATUS_REG, old_value); +  	return ret;  } |