Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 15 Sep 1995 16:02:02 -0400 (EDT)
From:      Mark Hittinger <bugs@ns1.win.net>
To:        current@freebsd.org
Subject:   re: more EISA pci probe hang info
Message-ID:  <199509152002.QAA13126@ns1.win.net>

next in thread | raw e-mail | index | archive | help
More info on pci probe hang on pure EISA box:

It doesn't do it every time.  Starting out with a powered off/then on 
sequence seems to increase the probability of a hang.  If you reboot
without powering off the hang doesn't occur as often.  This is with
several iterations.  I have an ep0 at 0x2000 and an ahc1 at 0x4000.
I've seen the ep0 device act weird with FreeBSD probes before.

I put in printfs and got "past probe 2" every time but on a hang did
not see the "past conf1_enable_res2" printf.  So the hang is somewhere
in the code below.

Strangely enough when I put printf's between the inl/outl instructions
I cannot cause a hang.  I have run out of time today to fool with this
but I wanted to pass the information along in case it narrows the scope
of the problem down.  I will be able to play with this more tommorrow.

Stefan sent me some patches I will try those tommorrow also.

pcibus.c:

        printf("Past probe 2\n") ;
        /*-----------------------------------------------------
	**      Well, is it Configuration mode 1, after all ?
	**-----------------------------------------------------
	*/
	oldval = inl (CONF1_ADDR_PORT);
	outl (CONF1_ADDR_PORT, CONF1_ENABLE_CHK2);
	result = inl (CONF1_ADDR_PORT);
	outl (CONF1_ADDR_PORT, oldval);

	if (result == CONF1_ENABLE_RES2) {
		pci_mechanism = 1;
		pci_maxdevice = 32;
		if (pcibus_check()) 
                {
			return;
                }
	}
	printf("Past CONF1_ENABLE_RES2\n") ;

Regards,

Mark Hittinger
Internet Manager
WinNET Communications, Inc.
bugs@win.net



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199509152002.QAA13126>