diff options
author | Yuri Tikhonov <yur@pollux.denx.de> | 2008-03-18 13:33:30 +0100 |
---|---|---|
committer | Wolfgang Denk <wd@denx.de> | 2008-03-18 22:24:49 +0100 |
commit | 23e20aa6488e6c0622496549861bfdc74108debe (patch) | |
tree | 41fc4ce7354be79ca1744958cad75fcacc3821b2 | |
parent | 46bc0a938779aa1d664b847d36b08aa00f22e539 (diff) | |
download | bootable_bootloader_goldelico_gta04-23e20aa6488e6c0622496549861bfdc74108debe.zip bootable_bootloader_goldelico_gta04-23e20aa6488e6c0622496549861bfdc74108debe.tar.gz bootable_bootloader_goldelico_gta04-23e20aa6488e6c0622496549861bfdc74108debe.tar.bz2 |
lwmon5: Fix register test logic to match the specific GDC h/w.
Signed-off-by: Dmitry Rakhchev <rda@emcraft.com>
Signed-off-by: Yuri Tikhonov <yur@emcraft.com>
-rw-r--r-- | post/board/lwmon5/gdc.c | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/post/board/lwmon5/gdc.c b/post/board/lwmon5/gdc.c index 73d5935..4af6a7a 100644 --- a/post/board/lwmon5/gdc.c +++ b/post/board/lwmon5/gdc.c @@ -35,7 +35,7 @@ DECLARE_GLOBAL_DATA_PTR; -#define GDC_SCRATCH_REG 0xC1FF8008 +#define GDC_SCRATCH_REG 0xC1FF8044 #define GDC_VERSION_REG 0xC1FF8084 #define GDC_RAM_START 0xC0000000 #define GDC_RAM_END 0xC2000000 @@ -44,7 +44,7 @@ DECLARE_GLOBAL_DATA_PTR; static int gdc_test_reg_one(uint value) { - int ret = 0; + int ret; uint read_value; /* write test pattern */ @@ -56,10 +56,9 @@ static int gdc_test_reg_one(uint value) if (read_value != value) { post_log("GDC SCRATCH test failed write %08X, read %08X\n", value, read_value); - ret = 1; } - return ret; + return (read_value != value); } /* Verify GDC, get memory size */ @@ -71,9 +70,16 @@ int gdc_post_test(int flags) post_log("\n"); old_value = in_be32((void *)GDC_SCRATCH_REG); - if (gdc_test_reg_one(0x55555555)) + /* + * GPIOC2 register behaviour: the LIME graphics processor has a + * maximum of 5 GPIO ports that can be used in this hardware + * configuration. Thus only the bits for these 5 GPIOs can be + * activated in the GPIOC2 register. All other bits will always be + * read as zero. + */ + if (gdc_test_reg_one(0x00150015)) ret = 1; - if (gdc_test_reg_one(0xAAAAAAAA)) + if (gdc_test_reg_one(0x000A000A)) ret = 1; out_be32((void *)GDC_SCRATCH_REG, old_value); |