X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=board%2Ffads%2Ffads.c;h=7b04af56c9f7afa9afb6192be1f47bcf956624a5;hb=4bbd4537835f72b5c46ca6efb38143e431b3dbd5;hp=308374045244758d10d8ee3f94fbaca5b98127d9;hpb=180d3f74e4738ee107e269cbb949481075dd789a;p=oweals%2Fu-boot.git diff --git a/board/fads/fads.c b/board/fads/fads.c index 3083740452..7b04af56c9 100644 --- a/board/fads/fads.c +++ b/board/fads/fads.c @@ -26,12 +26,13 @@ #include #include #include +#include #define _NOT_USED_ 0xFFFFFFFF /* ========================================================================= */ -#ifndef CONFIG_DUET_ADS /* No old DRAM on Duet */ +#ifndef CONFIG_MPC885ADS /* No old DRAM on MPC885ADS */ #if defined(CONFIG_DRAM_50MHZ) /* 50MHz tables */ @@ -186,45 +187,6 @@ static const uint edo_70ns[] = #error dram not correctly defined - use CONFIG_DRAM_25MHZ or CONFIG_DRAM_50MHZ #endif -/* ------------------------------------------------------------------------- */ -static long int dram_size (long int *base, long int maxsize) -{ - volatile long int *addr=base; - ulong cnt, val; - ulong save[32]; /* to make test non-destructive */ - unsigned char i = 0; - - for (cnt = maxsize / sizeof (long); cnt > 0; cnt >>= 1) { - addr = base + cnt; /* pointer arith! */ - - save[i++] = *addr; - *addr = ~cnt; - } - - /* write 0 to base address */ - addr = base; - save[i] = *addr; - *addr = 0; - - /* check at base address */ - if ((val = *addr) != 0) { - *addr = save[i]; - return (0); - } - - for (cnt = 1; cnt <= maxsize / sizeof (long); cnt <<= 1) { - addr = base + cnt; /* pointer arith! */ - - val = *addr; - *addr = save[--i]; - - if (val != (~cnt)) { - return (cnt * sizeof (long)); - } - } - return (maxsize); -} - /* ------------------------------------------------------------------------- */ static int _draminit (uint base, uint noMbytes, uint edo, uint delay) { @@ -306,10 +268,10 @@ static int _draminit (uint base, uint noMbytes, uint edo, uint delay) /* if no dimm is inserted, noMbytes is still detected as 8m, so * sanity check top and bottom of memory */ - /* check bytes / 2 because dram_size tests at base+bytes, which + /* check bytes / 2 because get_ram_size tests at base+bytes, which * is not mapped */ if (noMbytes == 8) - if (dram_size ((long *) base, noMbytes << 19) != noMbytes << 19) { + if (get_ram_size ((long *) base, noMbytes << 19) != noMbytes << 19) { *((uint *) BCSR1) |= BCSR1_DRAM_EN; /* disable dram */ return -1; } @@ -329,7 +291,7 @@ static void _dramdisable(void) /* maybe we should turn off upma here or something */ } -#endif /* !CONFIG_DUET_ADS */ +#endif /* !CONFIG_MPC885ADS */ /* ========================================================================= */ @@ -643,7 +605,7 @@ long int initdram (int board_type) uint sdramsz = 0; /* size of sdram in Mbytes */ uint base = 0; /* base of dram in bytes */ uint m = 0; /* size of dram in Mbytes */ -#ifndef CONFIG_DUET_ADS +#ifndef CONFIG_MPC885ADS uint k, s; #endif @@ -653,7 +615,7 @@ long int initdram (int board_type) printf ("(%u MB SDRAM) ", sdramsz); } #endif -#ifndef CONFIG_DUET_ADS /* No old DRAM on Duet */ +#ifndef CONFIG_MPC885ADS /* No old DRAM on MPC885ADS */ k = (*((uint *) BCSR2) >> 23) & 0x0f; switch (k & 0x3) { @@ -704,7 +666,7 @@ long int initdram (int board_type) _dramdisable (); m = 0; } -#endif /* !CONFIG_DUET_ADS */ +#endif /* !CONFIG_MPC885ADS */ m += sdramsz; /* add sdram size to total */ return (m << 20); @@ -764,24 +726,23 @@ static void checkdboard(void) int checkboard (void) { - /* get revision from BCSR 3 */ +#if defined(CONFIG_MPC86xADS) + puts ("Board: MPC86xADS\n"); +#elif defined(CONFIG_MPC885ADS) + puts ("Board: MPC885ADS\n"); +#else /* Only old ADS/FADS have got revision ID in BCSR3 */ uint r = (((*((uint *) BCSR3) >> 23) & 1) << 3) | (((*((uint *) BCSR3) >> 19) & 1) << 2) | (((*((uint *) BCSR3) >> 16) & 3)); puts ("Board: "); - -#if defined(CONFIG_MPC86xADS) - puts ("MPC86xADS"); -#elif defined(CONFIG_DUET_ADS) - puts ("DUET ADS"); - r = 0; /* I've got NR (No Revision) board */ -#elif defined(CONFIG_FADS) +#if defined(CONFIG_FADS) puts ("FADS"); checkdboard (); #else puts ("ADS"); #endif + puts (" rev "); switch (r) { @@ -796,13 +757,9 @@ int checkboard (void) puts ("A - warning, read errata \n"); break; case 0x03: - puts ("B \n"); + puts ("B\n"); break; -#elif defined(CONFIG_DUET_ADS) - case 0x00: - puts ("NR\n"); - break; -#else /* FADS and newer */ +#else /* FADS */ case 0x00: puts ("ENG\n"); break; @@ -814,6 +771,7 @@ int checkboard (void) printf ("unknown (0x%x)\n", r); return -1; } +#endif /* CONFIG_MPC86xADS */ return 0; } @@ -829,7 +787,7 @@ volatile unsigned char *pcmcia_mem = (unsigned char*)CFG_PCMCIA_MEM_ADDR; int pcmcia_init(void) { volatile pcmconf8xx_t *pcmp; - uint v, slota, slotb; + uint v, slota = 0, slotb = 0; /* ** Enable the PCMCIA for a Flash card. @@ -844,10 +802,10 @@ int pcmcia_init(void) /* Set all slots to zero by default. */ pcmp->pcmc_pgcra = 0; pcmp->pcmc_pgcrb = 0; -#ifdef PCMCIA_SLOT_A +#ifdef CONFIG_PCMCIA_SLOT_A pcmp->pcmc_pgcra = 0x40; #endif -#ifdef PCMCIA_SLOT_B +#ifdef CONFIG_PCMCIA_SLOT_B pcmp->pcmc_pgcrb = 0x40; #endif @@ -856,17 +814,17 @@ int pcmcia_init(void) /* Check if any PCMCIA card is plugged in. */ +#ifdef CONFIG_PCMCIA_SLOT_A slota = (pcmp->pcmc_pipr & 0x18000000) == 0 ; +#endif +#ifdef CONFIG_PCMCIA_SLOT_B slotb = (pcmp->pcmc_pipr & 0x00001800) == 0 ; +#endif if (!(slota || slotb)) { printf("No card present\n"); -#ifdef PCMCIA_SLOT_A pcmp->pcmc_pgcra = 0; -#endif -#ifdef PCMCIA_SLOT_B pcmp->pcmc_pgcrb = 0; -#endif return -1; } else @@ -886,7 +844,7 @@ int pcmcia_init(void) switch ((pcmp->pcmc_pipr >> 14) & 3) #endif { - case 0x00 : + case 0x03 : printf("5V"); v = 5; break; @@ -898,7 +856,7 @@ int pcmcia_init(void) v = 5; #endif break; - case 0x03 : + case 0x00 : printf("5V, 3V and x.xV"); #ifdef CONFIG_FADS v = 3; /* User lower voltage if supported! */ @@ -947,9 +905,10 @@ int pcmcia_init(void) udelay(20); -#ifdef PCMCIA_SLOT_A +#ifdef CONFIG_PCMCIA_SLOT_A pcmp->pcmc_pgcra = 0; -#elif PCMCIA_SLOT_B +#endif +#ifdef CONFIG_PCMCIA_SLOT_B pcmp->pcmc_pgcrb = 0; #endif