Date: Wed, 20 Dec 2000 23:48:10 -0600 From: seebs@plethora.net (Peter Seebach) To: freebsd-hackers@freebsd.org Subject: Supporting VirtualPC... Message-ID: <200012210548.XAA23830@guild.plethora.net>
next in thread | raw e-mail | index | archive | help
Quick summary: VirtualPC has a PCI configuration quirk. Specifically, in isa/pcibus.c, after mode1res = inl(CONF1_ADDR_PORT); we have if (mode1res) { if (pci_cfgcheck(32)) return (cfgmech); } If I change this to "if (1)", VirtualPC works. Otherwise, the PCI bus is never found. There's also a quirk in the DEC 21041 emulation. I am wondering what would be considered a "good" way to encode the knowledge that machines with "ConnectixCPU" in the mode string need specific special treatment in two widely disparate places. In NetBSD, I just added a variable "cpu_is_vpc", which is declared only if you have options VPC_CPU, and then I test for it only in the modules that need to know. (There are more of them, since I also did support for VPC 3.) I am too lazy to duplicate all of the VPC 3 workarounds, so I really only need to check this in two places. Is there an easy way to check the CPU mode string later on in the life of the kernel? Ideally, it would be cheap, and I'd also want to #ifdef it with an option specific to VirtualPC, so people don't have to waste cycles on the test. (The if_de quirk, BTW, is that they always send the abnormal interrupt for "transmit process stopped" after a transmit completes normally. Oops!) -s To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-hackers" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200012210548.XAA23830>