Date: Mon, 28 Aug 2000 18:14:44 +0900 (JST) From: hiramoto@phys.chs.nihon-u.ac.jp To: FreeBSD-gnats-submit@freebsd.org Subject: kern/20895: sym driver doesn't work for SYM53C895A Message-ID: <200008280914.e7S9Ei401248@grape.phys.chs.nihon-u.ac.jp>
next in thread | raw e-mail | index | archive | help
>Number: 20895 >Category: kern >Synopsis: sym driver doesn't work for SYM53C895A >Confidential: no >Severity: critical >Priority: high >Responsible: freebsd-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Mon Aug 28 02:20:03 PDT 2000 >Closed-Date: >Last-Modified: >Originator: Hisashi Hiramoto >Release: FreeBSD 4.1-STABLE i386 >Organization: >Environment: 4.1-stable and 5.0-current (x86) Compaq Prliant ML 330 (on-board chips sym53c895a ultra2 scsi, no ide disk) >Description: sym0: <895a> port 0x1000-0x10ff mem 0xb1100000-0xb1101fff,0xb1400000-0xb14003ff irq 15 at device 4.0 on pci1 sym0: failed to allocate RAM resouces Fatal trap 12: page fault while in kernel mode ..... The legacy(?) ncr driver works, so the generic kernel of 4.1 is OK, but it works as ultra, not as ultra-2. >How-To-Repeat: In my system (Compaq Prliant ML 330), 5.0 generic kernel and 4.1-stable kernel with sym (without ncr) reliably reproduce this problem. I have no idea whether this is generic for any sytems having Symbios 53c895a or not, because I have no other system with 53c895a. >Fix: The following patch works at least for me, although I don't know this is the right fix. (Non-FreeBSD_Bus_Io_Abstraction part is untested) *** sym_hipd.c.orig Mon Jul 3 15:21:53 2000 --- sym_hipd.c Mon Aug 28 02:39:07 2000 *************** *** 9057,9066 **** (command & PCIM_CMD_MEMEN) != 0) { #ifdef FreeBSD_Bus_Io_Abstraction int regs_id = SYM_PCI_RAM; ! if (np->features & FE_64BIT) regs_id = SYM_PCI_RAM64; ! np->ram_res = bus_alloc_resource(dev, SYS_RES_MEMORY, ®s_id, ! 0, ~0, 1, RF_ACTIVE); if (!np->ram_res) { device_printf(dev,"failed to allocate RAM resources\n"); goto attach_failed; --- 9057,9072 ---- (command & PCIM_CMD_MEMEN) != 0) { #ifdef FreeBSD_Bus_Io_Abstraction int regs_id = SYM_PCI_RAM; ! if (np->features & FE_64BIT) { regs_id = SYM_PCI_RAM64; ! np->ram_res = bus_alloc_resource(dev, SYS_RES_MEMORY, ! ®s_id, 0, ~0, 1, RF_ACTIVE); ! if (!np->ram_res) ! regs_id = SYM_PCI_RAM; ! } ! if (regs_id == SYM_PCI_RAM) ! np->ram_res = bus_alloc_resource(dev, SYS_RES_MEMORY, ! ®s_id, 0, ~0, 1, RF_ACTIVE); if (!np->ram_res) { device_printf(dev,"failed to allocate RAM resources\n"); goto attach_failed; *************** *** 9074,9082 **** #else vm_offset_t vaddr, paddr; int regs_id = SYM_PCI_RAM; ! if (np->features & FE_64BIT) regs_id = SYM_PCI_RAM64; ! if (!pci_map_mem(pci_tag, regs_id, &vaddr, &paddr)) { printf("%s: failed to map RAM window\n", sym_name(np)); goto attach_failed; } --- 9080,9092 ---- #else vm_offset_t vaddr, paddr; int regs_id = SYM_PCI_RAM; ! if (np->features & FE_64BIT) { regs_id = SYM_PCI_RAM64; ! if (!pci_map_mem(pci_tag, regs_id, &vaddr, &paddr)) ! regs_id = SYM_PCI_RAM; ! } ! if (regs_id == SYM_PCI_RAM && ! !pci_map_mem(pci_tag, regs_id, &vaddr, &paddr)) { printf("%s: failed to map RAM window\n", sym_name(np)); goto attach_failed; } >Release-Note: >Audit-Trail: >Unformatted: To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-bugs" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200008280914.e7S9Ei401248>