Lines Matching +full:ras +full:- +full:to +full:- +full:cas

1 // SPDX-License-Identifier: GPL-2.0
55 #define SABRE_UECE_AFAR_ALIAS 0x0048UL /* Aliases to 0x0038 */
115 #define SABRE_PCICTRL_ARBPARK 0x0000000000200000UL /* Bus Parking 0=Ultra-IIi 1=prev-bus-owner */
116 #define SABRE_PCICTRL_CPUPRIO 0x0000000000100000UL /* Ultra-IIi granted every other bus cycle */
119 #define SABRE_PCICTRL_RTRYWE 0x0000000000000080UL /* DMA Flow Control 0=wait-if-possible 1=retry …
138 #define SABRE_PCIDIAG_ELPBK 0x0000000000000001UL /* Loopback Enable - not supported */
140 #define SABRE_PCITASR_EF 0x0000000000000080UL /* Respond to 0xe0000000-0xffffffff */
141 #define SABRE_PCITASR_CD 0x0000000000000040UL /* Respond to 0xc0000000-0xdfffffff */
142 #define SABRE_PCITASR_AB 0x0000000000000020UL /* Respond to 0xa0000000-0xbfffffff */
143 #define SABRE_PCITASR_89 0x0000000000000010UL /* Respond to 0x80000000-0x9fffffff */
144 #define SABRE_PCITASR_67 0x0000000000000008UL /* Respond to 0x60000000-0x7fffffff */
145 #define SABRE_PCITASR_45 0x0000000000000004UL /* Respond to 0x40000000-0x5fffffff */
146 #define SABRE_PCITASR_23 0x0000000000000002UL /* Respond to 0x20000000-0x3fffffff */
147 #define SABRE_PCITASR_01 0x0000000000000001UL /* Respond to 0x00000000-0x1fffffff */
151 #define SABRE_IMAP_GFX_ALIAS 0x6000UL /* Aliases to 0x1098 */
152 #define SABRE_IMAP_EUPA_ALIAS 0x8000UL /* Aliases to 0x10a0 */
159 #define SABRE_IOMMUTAG_STREAM 0x0000000000100000UL /* Streamable bit - unused */
175 #define SABRE_MCCTRL0_11BIT 0x0000000000001000 /* Enable 11-bit column addressing */
181 #define SABRE_MCCTRL1_CSR 0x0000000000e00000 /* CAS to RAS delay for CBR refresh */
182 #define SABRE_MCCTRL1_CASRW 0x00000000001c0000 /* CAS length for read/write */
183 #define SABRE_MCCTRL1_RCD 0x0000000000038000 /* RAS to CAS delay */
184 #define SABRE_MCCTRL1_CP 0x0000000000007000 /* CAS Precharge */
185 #define SABRE_MCCTRL1_RP 0x0000000000000e00 /* RAS Precharge */
186 #define SABRE_MCCTRL1_RAS 0x00000000000001c0 /* Length of RAS for refresh */
188 #define SABRE_MCCTRL1_RSC 0x0000000000000007 /* RAS after CAS hold time */
203 unsigned long afsr_reg = pbm->controller_regs + SABRE_UE_AFSR; in sabre_ue_intr()
204 unsigned long afar_reg = pbm->controller_regs + SABRE_UECE_AFAR; in sabre_ue_intr()
223 pbm->name, in sabre_ue_intr()
231 pbm->name, in sabre_ue_intr()
235 printk("%s: UE AFAR [%016lx]\n", pbm->name, afar); in sabre_ue_intr()
236 printk("%s: UE Secondary errors [", pbm->name); in sabre_ue_intr()
263 unsigned long afsr_reg = pbm->controller_regs + SABRE_CE_AFSR; in sabre_ce_intr()
264 unsigned long afar_reg = pbm->controller_regs + SABRE_UECE_AFAR; in sabre_ce_intr()
282 pbm->name, in sabre_ce_intr()
288 /* XXX Use syndrome and afar to print out module string just like in sabre_ce_intr()
289 * XXX UDB CE trap handler does... -DaveM in sabre_ce_intr()
293 pbm->name, in sabre_ce_intr()
298 printk("%s: CE AFAR [%016lx]\n", pbm->name, afar); in sabre_ce_intr()
299 printk("%s: CE Secondary errors [", pbm->name); in sabre_ce_intr()
318 struct device_node *dp = pbm->op->dev.of_node; in sabre_register_error_handlers()
320 unsigned long base = pbm->controller_regs; in sabre_register_error_handlers()
324 if (pbm->chip_type == PBM_CHIP_TYPE_SABRE) in sabre_register_error_handlers()
325 dp = dp->parent; in sabre_register_error_handlers()
337 if (op->archdata.num_irqs < 4) in sabre_register_error_handlers()
349 err = request_irq(op->archdata.irqs[1], sabre_ue_intr, 0, "SABRE_UE", pbm); in sabre_register_error_handlers()
352 pbm->name, err); in sabre_register_error_handlers()
359 err = request_irq(op->archdata.irqs[2], sabre_ce_intr, 0, "SABRE_CE", pbm); in sabre_register_error_handlers()
362 pbm->name, err); in sabre_register_error_handlers()
363 err = request_irq(op->archdata.irqs[0], psycho_pcierr_intr, 0, in sabre_register_error_handlers()
367 pbm->name, err); in sabre_register_error_handlers()
378 list_for_each_entry(pdev, &sabre_bus->devices, bus_list) { in apb_init()
379 if (pdev->vendor == PCI_VENDOR_ID_SUN && in apb_init()
380 pdev->device == PCI_DEVICE_ID_SUN_SIMBA) { in apb_init()
389 /* Status register bits are "write 1 to clear". */ in apb_init()
414 /* The APB bridge speaks to the Sabre host PCI bridge in sabre_scan_bus()
422 pbm->is_66mhz_capable = 1; in sabre_scan_bus()
424 pbm->is_66mhz_capable = 0; in sabre_scan_bus()
426 /* This driver has not been verified to handle in sabre_scan_bus()
430 * to live at bus 0. in sabre_scan_bus()
438 pbm->pci_bus = pci_scan_one_pbm(pbm, parent); in sabre_scan_bus()
439 if (!pbm->pci_bus) in sabre_scan_bus()
442 sabre_root_bus = pbm->pci_bus; in sabre_scan_bus()
444 apb_init(pbm->pci_bus); in sabre_scan_bus()
453 pbm->pci_afsr = pbm->controller_regs + SABRE_PIOAFSR; in sabre_pbm_init()
454 pbm->pci_afar = pbm->controller_regs + SABRE_PIOAFAR; in sabre_pbm_init()
455 pbm->pci_csr = pbm->controller_regs + SABRE_PCICTRL; in sabre_pbm_init()
456 sabre_scan_bus(pbm, &op->dev); in sabre_pbm_init()
463 struct device_node *dp = op->dev.of_node; in sabre_probe()
471 hummingbird_p = (uintptr_t)device_get_match_data(&op->dev); in sabre_probe()
475 /* Of course, Sun has to encode things a thousand in sabre_probe()
479 if (of_node_name_eq(cpu_dp, "SUNW,UltraSPARC-IIe")) in sabre_probe()
484 err = -ENOMEM; in sabre_probe()
497 pbm->iommu = iommu; in sabre_probe()
499 upa_portid = of_getintprop_default(dp, "upa-portid", 0xff); in sabre_probe()
501 pbm->portid = upa_portid; in sabre_probe()
508 err = -ENODEV; in sabre_probe()
517 pbm->controller_regs = pr_regs[0].phys_addr; in sabre_probe()
523 upa_writeq(0x0UL, pbm->controller_regs + clear_irq); in sabre_probe()
527 upa_writeq(0x0UL, pbm->controller_regs + clear_irq); in sabre_probe()
532 pbm->controller_regs + SABRE_PCICTRL); in sabre_probe()
535 pbm->config_space = pbm->controller_regs + SABRE_CONFIGSPACE; in sabre_probe()
537 vdma = of_get_property(dp, "virtual-dma", NULL); in sabre_probe()
539 printk(KERN_ERR PFX "No virtual-dma property\n"); in sabre_probe()
559 printk(KERN_ERR PFX "Strange virtual-dma size.\n"); in sabre_probe()
572 pbm->next = pci_pbm_root; in sabre_probe()
575 dev_set_drvdata(&op->dev, pbm); in sabre_probe()
580 kfree(pbm->iommu); in sabre_probe()