Subject: PCI_NETBSD_CONFIGURE
To: None <tsutsui@ceres.dti.ne.jp>
From: KIYOHARA Takashi <kiyohara@kk.iij4u.or.jp>
List: port-cobalt
Date: 01/25/2004 03:14:44
Hi! tsutsui-san
I tested PCI_NETBSD_CONFIGURE by the following device further.
esiop, ahc, rtk, tlp(PCI card)
esiop, ahc and rtk(use mem space) fail in the address error.
Only tlp worked.
# It seems that it will become an error if vr uses a memory space
# now.
Furthermore, when it was in the usual state, it checked that
those devices worked.
If this difference was investigated, one will have noticed
COMMAND_STATUS Register being different. It seems that it will
fail if both of "Parity error checking" and "System error (SERR)"
of COMMAND Register are specifically on.
I turn OFF "System error" (SERR) and took care to have not fail.
thanks.
Index: pciconf.c
===================================================================
RCS file: /cvsroot/src/sys/dev/pci/pciconf.c,v
retrieving revision 1.22
diff -c -r1.22 pciconf.c
*** pciconf.c 2003/12/02 16:31:06 1.22
--- pciconf.c 2004/01/24 16:57:30
***************
*** 1002,1008 ****
--- 1002,1011 ----
class = pci_conf_read(pd->pc, pd->tag, PCI_CLASS_REG);
misc = pci_conf_read(pd->pc, pd->tag, PCI_BHLC_REG);
cmd = pci_conf_read(pd->pc, pd->tag, PCI_COMMAND_STATUS_REG);
+ /*
cmd |= PCI_COMMAND_SERR_ENABLE | PCI_COMMAND_PARITY_ENABLE;
+ */
+ cmd |= PCI_COMMAND_PARITY_ENABLE;
if (pb->fast_b2b)
cmd |= PCI_COMMAND_BACKTOBACK_ENABLE;
if (PCI_CLASS(class) != PCI_CLASS_BRIDGE ||
--
kiyohara