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