Fix compiler warnings
[platform/kernel/u-boot.git] / common / cmd_universe.c
index 6388546..8d7b6fe 100644 (file)
 
 #include <universe.h>
 
-
 #if (CONFIG_COMMANDS & CFG_CMD_UNIVERSE)
 
-#undef DBG
-
-#ifdef DBG
-# define UNI_DBG(fmt)          printf fmt
-#else
-# define UNI_DBG(fmt)
-#endif
-
-#define UNI_PRINT(fmt)         printf fmt
-
-
 #define PCI_VENDOR PCI_VENDOR_ID_TUNDRA
 #define PCI_DEVICE PCI_DEVICE_ID_TUNDRA_CA91C042
 
@@ -84,21 +72,24 @@ int universe_init(void)
        dev->busdevfn = busdevfn;
 
        pci_read_config_dword(busdevfn, PCI_BASE_ADDRESS_1, &val);
+       if (val & 1) {
+               pci_read_config_dword(busdevfn, PCI_BASE_ADDRESS_0, &val);
+       }
        val &= ~0xf;
        dev->uregs = (UNIVERSE *)val;
 
-       UNI_DBG(("UNIVERSE-Base    : %p\n", dev->uregs));
+       debug ("UNIVERSE-Base    : %p\n", dev->uregs);
 
        /* check mapping  */
-       UNI_DBG((" Read via mapping, PCI_ID = %08X\n", readl(&dev->uregs->pci_id)));
+       debug (" Read via mapping, PCI_ID = %08X\n", readl(&dev->uregs->pci_id));
        if (((PCI_DEVICE <<16) | PCI_VENDOR) !=  readl(&dev->uregs->pci_id)) {
-               UNI_PRINT(("UNIVERSE: Cannot read PCI-ID via Mapping: %08x\n",
-                          readl(&dev->uregs->pci_id)));
+               printf ("UNIVERSE: Cannot read PCI-ID via Mapping: %08x\n",
+                       readl(&dev->uregs->pci_id));
                result = -1;
                goto break_30;
        }
 
-       UNI_DBG(("PCI_BS = %08X\n", readl(&dev->uregs->pci_bs)));
+       debug ("PCI_BS = %08X\n", readl(&dev->uregs->pci_bs));
 
        dev->pci_bs = readl(&dev->uregs->pci_bs);
 
@@ -114,7 +105,13 @@ int universe_init(void)
         *   Arbitration Mode
         *   DTACK Enable
         */
-       writel(0x15060000, &dev->uregs->misc_ctl);
+       writel(0x15040000 | (readl(&dev->uregs->misc_ctl) & 0x00020000), &dev->uregs->misc_ctl);
+
+       if (readl(&dev->uregs->misc_ctl) & 0x00020000) {
+               debug ("System Controller!\n"); /* test-only */
+       } else {
+               debug ("Not System Controller!\n"); /* test-only */
+       }
 
        /*
         * Lets turn off interrupts
@@ -126,12 +123,14 @@ int universe_init(void)
        writel(0x0000, &dev->uregs->lint_map1);  /* Map all ints to 0 */
        eieio();
 
+       return 0;
+
  break_30:
        free(dev);
  break_20:
        lastError = result;
 
-       return 0;
+       return result;
 }
 
 
@@ -154,12 +153,12 @@ int universe_pci_slave_window(unsigned int pciAddr, unsigned int vmeAddr, int si
        }
 
        if (i == 4) {
-               UNI_PRINT(("universe: No Image available\n"));
+               printf ("universe: No Image available\n");
                result = -1;
                goto exit_10;
        }
 
-       UNI_DBG(("universe: Using image %d\n", i));
+       debug ("universe: Using image %d\n", i);
 
        writel(pciAddr , &dev->uregs->lsi[i].bs);
        writel((pciAddr + size), &dev->uregs->lsi[i].bd);
@@ -205,13 +204,13 @@ int universe_pci_slave_window(unsigned int pciAddr, unsigned int vmeAddr, int si
 
        switch (pms & PCI_MS_Mxx) {
        case PCI_MS_MEM:
-               ctl = 0x00000000;
+               ctl |= 0x00000000;
                break;
        case PCI_MS_IO:
-               ctl = 0x00000001;
+               ctl |= 0x00000001;
                break;
        case PCI_MS_CONFIG:
-               ctl = 0x00000002;
+               ctl |= 0x00000002;
                break;
        }
 
@@ -219,11 +218,11 @@ int universe_pci_slave_window(unsigned int pciAddr, unsigned int vmeAddr, int si
 
        writel(ctl, &dev->uregs->lsi[i].ctl);
 
-       UNI_DBG(("universe: window-addr=%p\n", &dev->uregs->lsi[i].ctl));
-       UNI_DBG(("universe: pci slave window[%d] ctl=%08x\n", i, readl(&dev->uregs->lsi[i].ctl)));
-       UNI_DBG(("universe: pci slave window[%d] bs=%08x\n", i, readl(&dev->uregs->lsi[i].bs)));
-       UNI_DBG(("universe: pci slave window[%d] bd=%08x\n", i, readl(&dev->uregs->lsi[i].bd)));
-       UNI_DBG(("universe: pci slave window[%d] to=%08x\n", i, readl(&dev->uregs->lsi[i].to)));
+       debug ("universe: window-addr=%p\n", &dev->uregs->lsi[i].ctl);
+       debug ("universe: pci slave window[%d] ctl=%08x\n", i, readl(&dev->uregs->lsi[i].ctl));
+       debug ("universe: pci slave window[%d] bs=%08x\n", i, readl(&dev->uregs->lsi[i].bs));
+       debug ("universe: pci slave window[%d] bd=%08x\n", i, readl(&dev->uregs->lsi[i].bd));
+       debug ("universe: pci slave window[%d] to=%08x\n", i, readl(&dev->uregs->lsi[i].to));
 
        return 0;
 
@@ -251,12 +250,12 @@ int universe_vme_slave_window(unsigned int vmeAddr, unsigned int pciAddr, int si
        }
 
        if (i == 4) {
-               UNI_PRINT(("universe: No Image available\n"));
+               printf ("universe: No Image available\n");
                result = -1;
                goto exit_10;
        }
 
-       UNI_DBG(("universe: Using image %d\n", i));
+       debug ("universe: Using image %d\n", i);
 
        writel(vmeAddr , &dev->uregs->vsi[i].bs);
        writel((vmeAddr + size), &dev->uregs->vsi[i].bd);
@@ -290,13 +289,13 @@ int universe_vme_slave_window(unsigned int vmeAddr, unsigned int pciAddr, int si
 
        switch (pms & PCI_MS_Mxx) {
        case PCI_MS_MEM:
-               ctl = 0x00000000;
+               ctl |= 0x00000000;
                break;
        case PCI_MS_IO:
-               ctl = 0x00000001;
+               ctl |= 0x00000001;
                break;
        case PCI_MS_CONFIG:
-               ctl = 0x00000002;
+               ctl |= 0x00000002;
                break;
        }
 
@@ -304,11 +303,11 @@ int universe_vme_slave_window(unsigned int vmeAddr, unsigned int pciAddr, int si
 
        writel(ctl, &dev->uregs->vsi[i].ctl);
 
-       UNI_DBG(("universe: window-addr=%p\n", &dev->uregs->vsi[i].ctl));
-       UNI_DBG(("universe: vme slave window[%d] ctl=%08x\n", i, readl(&dev->uregs->vsi[i].ctl)));
-       UNI_DBG(("universe: vme slave window[%d] bs=%08x\n", i, readl(&dev->uregs->vsi[i].bs)));
-       UNI_DBG(("universe: vme slave window[%d] bd=%08x\n", i, readl(&dev->uregs->vsi[i].bd)));
-       UNI_DBG(("universe: vme slave window[%d] to=%08x\n", i, readl(&dev->uregs->vsi[i].to)));
+       debug ("universe: window-addr=%p\n", &dev->uregs->vsi[i].ctl);
+       debug ("universe: vme slave window[%d] ctl=%08x\n", i, readl(&dev->uregs->vsi[i].ctl));
+       debug ("universe: vme slave window[%d] bs=%08x\n", i, readl(&dev->uregs->vsi[i].bs));
+       debug ("universe: vme slave window[%d] bd=%08x\n", i, readl(&dev->uregs->vsi[i].bd));
+       debug ("universe: vme slave window[%d] to=%08x\n", i, readl(&dev->uregs->vsi[i].to));
 
        return 0;