]> git.kernelconcepts.de Git - karo-tx-uboot.git/blobdiff - board/esd/cms700/cms700.c
Merge branch 'master' of /home/wd/git/u-boot/master
[karo-tx-uboot.git] / board / esd / cms700 / cms700.c
index 2cdd7be360c824a9fc1fbc942077d238ea8f2ed5..dcd49d4faaa30b5cfef727065998f88fadd48017 100644 (file)
@@ -31,14 +31,6 @@ DECLARE_GLOBAL_DATA_PTR;
 
 extern void lxt971_no_sleep(void);
 
-/* fpga configuration data - not compressed, generated by bin2c */
-const unsigned char fpgadata[] =
-{
-#include "fpgadata.c"
-};
-int filesize = sizeof(fpgadata);
-
-
 int board_early_init_f (void)
 {
        /*
@@ -53,49 +45,40 @@ int board_early_init_f (void)
         * IRQ 30 (EXT IRQ 5) PCI INTA; active low; level sensitive
         * IRQ 31 (EXT IRQ 6) COMPACT FLASH; active high; level sensitive
         */
-       mtdcr(uicsr, 0xFFFFFFFF);       /* clear all ints */
-       mtdcr(uicer, 0x00000000);       /* disable all ints */
-       mtdcr(uiccr, 0x00000000);       /* set all to be non-critical*/
-       mtdcr(uicpr, 0xFFFFFF80);       /* set int polarities */
-       mtdcr(uictr, 0x10000000);       /* set int trigger levels */
-       mtdcr(uicvcr, 0x00000001);      /* set vect base=0,INT0 highest priority*/
-       mtdcr(uicsr, 0xFFFFFFFF);       /* clear all ints */
+       mtdcr(UIC0SR, 0xFFFFFFFF);       /* clear all ints */
+       mtdcr(UIC0ER, 0x00000000);       /* disable all ints */
+       mtdcr(UIC0CR, 0x00000000);       /* set all to be non-critical*/
+       mtdcr(UIC0PR, 0xFFFFFF80);       /* set int polarities */
+       mtdcr(UIC0TR, 0x10000000);       /* set int trigger levels */
+       mtdcr(UIC0VCR, 0x00000001);      /* set vect base=0,INT0 highest priority*/
+       mtdcr(UIC0SR, 0xFFFFFFFF);       /* clear all ints */
 
        /*
         * EBC Configuration Register: set ready timeout to 512 ebc-clks -> ca. 15 us
         */
-       mtebc (epcr, 0xa8400000); /* ebc always driven */
+       mtebc (EBC0_CFG, 0xa8400000); /* ebc always driven */
 
        /*
         * Reset CPLD via GPIO12 (CS3) pin
         */
-       out_be32((void *)GPIO0_OR, in_be32((void *)GPIO0_OR) & ~CFG_PLD_RESET);
+       out_be32((void *)GPIO0_OR, in_be32((void *)GPIO0_OR) & ~CONFIG_SYS_PLD_RESET);
        udelay(1000); /* wait 1ms */
-       out_be32((void *)GPIO0_OR, in_be32((void *)GPIO0_OR) | CFG_PLD_RESET);
+       out_be32((void *)GPIO0_OR, in_be32((void *)GPIO0_OR) | CONFIG_SYS_PLD_RESET);
        udelay(1000); /* wait 1ms */
 
        return 0;
 }
 
-
-/* ------------------------------------------------------------------------- */
-
-int misc_init_f (void)
-{
-       return 0;  /* dummy implementation */
-}
-
-
 int misc_init_r (void)
 {
        /* adjust flash start and offset */
        gd->bd->bi_flashstart = 0 - gd->bd->bi_flashsize;
        gd->bd->bi_flashoffset = 0;
 
-       /*
+       /*
         * Setup and enable EEPROM write protection
         */
-       out_be32((void *)GPIO0_OR, in_be32((void *)GPIO0_OR) | CFG_EEPROM_WP);
+       out_be32((void *)GPIO0_OR, in_be32((void *)GPIO0_OR) | CONFIG_SYS_EEPROM_WP);
 
        return (0);
 }
@@ -104,56 +87,43 @@ int misc_init_r (void)
 /*
  * Check Board Identity:
  */
-
+#define LED_REG (CONFIG_SYS_PLD_BASE + 0x1000)
 int checkboard (void)
 {
        char str[64];
        int flashcnt;
        int delay;
-       volatile unsigned char *led_reg = (unsigned char *)((ulong)CFG_PLD_BASE + 0x1000);
-       volatile unsigned char *ver_reg = (unsigned char *)((ulong)CFG_PLD_BASE + 0x1001);
 
        puts ("Board: ");
 
-       if (getenv_r("serial#", str, sizeof(str))  == -1) {
+       if (getenv_f("serial#", str, sizeof(str))  == -1) {
                puts ("### No HW ID - assuming CMS700");
        } else {
                puts(str);
        }
 
-       printf(" (PLD-Version=%02d)\n", *ver_reg);
+       printf(" (PLD-Version=%02d)\n",
+              in_8((void *)(CONFIG_SYS_PLD_BASE + 0x1001)));
 
        /*
         * Flash LEDs
         */
        for (flashcnt = 0; flashcnt < 3; flashcnt++) {
-               *led_reg = 0x00;        /* LEDs off */
+               out_8((void *)LED_REG, 0x00); /* LEDs off */
                for (delay = 0; delay < 100; delay++)
                        udelay(1000);
-               *led_reg = 0x0f;        /* LEDs on */
+               out_8((void *)LED_REG, 0x0f); /* LEDs on */
                for (delay = 0; delay < 50; delay++)
                        udelay(1000);
        }
-       *led_reg = 0x70;
+       out_8((void *)LED_REG, 0x70);
 
        return 0;
 }
 
 /* ------------------------------------------------------------------------- */
 
-long int initdram (int board_type)
-{
-       unsigned long val;
-
-       mtdcr(memcfga, mem_mb0cf);
-       val = mfdcr(memcfgd);
-
-       return (4*1024*1024 << ((val & 0x000e0000) >> 17));
-}
-
-/* ------------------------------------------------------------------------- */
-
-#if defined(CFG_EEPROM_WREN)
+#if defined(CONFIG_SYS_EEPROM_WREN)
 /* Input: <dev_addr>  I2C address of EEPROM device to enable.
  *         <state>     -1: deliver current state
  *                    0: disable write
@@ -164,51 +134,51 @@ long int initdram (int board_type)
  */
 int eeprom_write_enable (unsigned dev_addr, int state)
 {
-       if (CFG_I2C_EEPROM_ADDR != dev_addr) {
+       if (CONFIG_SYS_I2C_EEPROM_ADDR != dev_addr) {
                return -1;
        } else {
                switch (state) {
                case 1:
                        /* Enable write access, clear bit GPIO_SINT2. */
-                       out_be32((void *)GPIO0_OR, in_be32((void *)GPIO0_OR) & ~CFG_EEPROM_WP);
+                       out_be32((void *)GPIO0_OR, in_be32((void *)GPIO0_OR) & ~CONFIG_SYS_EEPROM_WP);
                        state = 0;
                        break;
                case 0:
                        /* Disable write access, set bit GPIO_SINT2. */
-                       out_be32((void *)GPIO0_OR, in_be32((void *)GPIO0_OR) | CFG_EEPROM_WP);
+                       out_be32((void *)GPIO0_OR, in_be32((void *)GPIO0_OR) | CONFIG_SYS_EEPROM_WP);
                        state = 0;
                        break;
                default:
                        /* Read current status back. */
-                       state = (0 == (in_be32((void *)GPIO0_OR) & CFG_EEPROM_WP));
+                       state = (0 == (in_be32((void *)GPIO0_OR) & CONFIG_SYS_EEPROM_WP));
                        break;
                }
        }
        return state;
 }
 
-int do_eep_wren (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
+int do_eep_wren (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
 {
        int query = argc == 1;
        int state = 0;
 
        if (query) {
                /* Query write access state. */
-               state = eeprom_write_enable (CFG_I2C_EEPROM_ADDR, -1);
+               state = eeprom_write_enable (CONFIG_SYS_I2C_EEPROM_ADDR, -1);
                if (state < 0) {
                        puts ("Query of write access state failed.\n");
                } else {
                        printf ("Write access for device 0x%0x is %sabled.\n",
-                               CFG_I2C_EEPROM_ADDR, state ? "en" : "dis");
+                               CONFIG_SYS_I2C_EEPROM_ADDR, state ? "en" : "dis");
                        state = 0;
                }
        } else {
                if ('0' == argv[1][0]) {
                        /* Disable write access. */
-                       state = eeprom_write_enable (CFG_I2C_EEPROM_ADDR, 0);
+                       state = eeprom_write_enable (CONFIG_SYS_I2C_EEPROM_ADDR, 0);
                } else {
                        /* Enable write access. */
-                       state = eeprom_write_enable (CFG_I2C_EEPROM_ADDR, 1);
+                       state = eeprom_write_enable (CONFIG_SYS_I2C_EEPROM_ADDR, 1);
                }
                if (state < 0) {
                        puts ("Setup of write access state failed.\n");
@@ -219,9 +189,10 @@ int do_eep_wren (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
 }
 
 U_BOOT_CMD(eepwren,    2,      0,      do_eep_wren,
-          "eepwren - Enable / disable / query EEPROM write access\n",
-          NULL);
-#endif /* #if defined(CFG_EEPROM_WREN) */
+       "Enable / disable / query EEPROM write access",
+       ""
+);
+#endif /* #if defined(CONFIG_SYS_EEPROM_WREN) */
 
 /* ------------------------------------------------------------------------- */