X-Git-Url: https://git.kernelconcepts.de/?a=blobdiff_plain;f=common%2Fcmd_universe.c;h=c9310363f10edb53ea1b81e910fd41dc7b0ba513;hb=332532c7ce93b79621bc5b96df3a790827e5b2fe;hp=a8febff02aad29ae0ebaaf39282e609ab7faf13b;hpb=e2ffd59b4d93c9149de1caaa087371b0cfc512c9;p=karo-tx-uboot.git diff --git a/common/cmd_universe.c b/common/cmd_universe.c index a8febff02a..c9310363f1 100644 --- a/common/cmd_universe.c +++ b/common/cmd_universe.c @@ -1,23 +1,7 @@ /* * (C) Copyright 2003 Stefan Roese, stefan.roese@esd-electronics.com * - * See file CREDITS for list of people who contributed to this - * project. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of - * the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, - * MA 02111-1307 USA + * SPDX-License-Identifier: GPL-2.0+ */ #include @@ -28,8 +12,6 @@ #include -#if (CONFIG_COMMANDS & CFG_CMD_UNIVERSE) - #define PCI_VENDOR PCI_VENDOR_ID_TUNDRA #define PCI_DEVICE PCI_DEVICE_ID_TUNDRA_CA91C042 @@ -48,7 +30,7 @@ static UNI_DEV *dev; int universe_init(void) { - int j, result, lastError = 0; + int j, result; pci_dev_t busdevfn; unsigned int val; @@ -72,6 +54,9 @@ 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; @@ -102,7 +87,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 @@ -114,12 +105,12 @@ 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; } @@ -193,13 +184,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; } @@ -278,13 +269,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; } @@ -308,7 +299,7 @@ int universe_vme_slave_window(unsigned int vmeAddr, unsigned int pciAddr, int si /* * Tundra Universe configuration */ -int do_universe(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) +int do_universe(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) { ulong addr1 = 0, addr2 = 0, size = 0, vam = 0, pms = 0, vdw = 0; char cmd = 'x'; @@ -355,7 +346,7 @@ int do_universe(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) U_BOOT_CMD( universe, 8, 1, do_universe, - "universe- initialize and configure Turndra Universe\n", + "initialize and configure Turndra Universe", "init\n" " - initialize universe\n" "universe vme [vme_addr] [pci_addr] [size] [vam] [pms]\n" @@ -373,7 +364,5 @@ U_BOOT_CMD( " 03 -> Configuration Space\n" " [vdw] = VMEbus Maximum Datawidth: 01 -> D8 Data Width\n" " 02 -> D16 Data Width\n" - " 03 -> D32 Data Width\n" + " 03 -> D32 Data Width" ); - -#endif /* (CONFIG_COMMANDS & CFG_CMD_UNIVERSE) */