Return to BSD News archive
Path: sserve!newshost.anu.edu.au!munnari.oz.au!news.Hawaii.Edu!ames!elroy.jpl.nasa.gov!swrinde!cs.utexas.edu!uunet!destroyer!mudos.pc.cc.cmu.edu!mudos.pc.cc.cmu.edu!not-for-mail From: mju@mudos.pc.cc.cmu.edu (Marc Unangst) Newsgroups: comp.os.386bsd.questions Subject: AST 4-port with NetBSD 0.9? Date: 16 Sep 1993 20:51:37 -0400 Organization: The Programmers' Pit Stop, Pittsburgh, PA Lines: 36 Message-ID: <27b1n7$bgb@mudos.pc.cc.cmu.edu> NNTP-Posting-Host: localhost.pc.cc.cmu.edu According to the 386BSD FAQ, 386BSD/NetBSD/FreeBSD all support the AST 4-port serial card. However, I can't seem to get mine to work correctly under NetBSD 0.9. I tried cribbing the config entries from the SUN_LAMP configuration, but that didn't work. Here are the config lines that I'm currently using: device com2 at isa? port 0x2a0 tty irq 5 flags 0x401 vector comintr device com3 at isa? port 0x2a8 tty irq 5 flags 0x401 vector comintr device com4 at isa? port 0x2b0 tty irq 5 flags 0x401 vector comintr device com5 at isa? port 0x2b8 tty irq 5 flags 0x401 vector comintr When I boot the machine, the com driver correctly recognizes the 16550 on each port, so the I/O address is correct and it at least sees the card. However, when I try to talk to a device connected to one of the ports, I don't get anything. In fact, "cu" hangs the port when I try to disconnect, and I have to reboot the machine to free it. The same device with the same cable works fine on tty01 (regular DOS COM2: port), and worked fine on the AST 4-port card under SVR4 with the SAS driver. In fact, the whole card worked fine under SVR4. I have a feeling that something is wrong with the interrupt configuration, since missed interrupts would explain the problems I'm having. I also looked through com.c and didn't see any code to handle shared interrupts, or any code to interpret the "flags 0x401" entry. If I understand the operation of the 4-port card correctly, when the CPU receives an interrupt from the card, it needs to read the interrupt vector I/O port to find out which port generated the interrupt, and then service that port. However, com.c doesn't seem to have anything to do this. Does the com driver really not support shared interrupts, or have I simply misconfigured something? -- Marc Unangst, N8VRH | "Free software is NOT the same thing as mju@mudos.pc.cc.cmu.edu | free beer." | -Philip Knapp in comp.os.linux