Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 26 May 1997 23:11:19 -0600
From:      Steve Passe <smp@csn.net>
To:        Glenn Johnson <gljohnsn@iamerica.net>
Cc:        freebsd-current@FreeBSD.ORG, smp@FreeBSD.ORG
Subject:   Re: errors on startup 
Message-ID:  <199705270511.XAA07097@Ilsa.StevesCafe.com>
In-Reply-To: Your message of "Mon, 26 May 1997 23:25:05 CDT." <199705270425.XAA00218@Gforce.iamerica.net> 

next in thread | previous in thread | raw e-mail | index | archive | help
Hi,

> I am getting the following messages at the end of my startup:
> 
> 	sb0 at 0x220-0x22f irq 5 drq 1 on isa
> 	sb0: <SoundBlaster 16 4.13>
> ...
> 	opl0: <Yamaha OPL-3 FM>
> 	create_intr: requested irq31 too high, limit is 15
> 	sio0: 65 events for device with no tp
> 	sio1: 65 events for device with no tp
> 
> I did a 'make world' on May 26. I know the sio errors have been reported but 
> this is the first time I have seen the create_intr and the sound card errors.
> Particularly disconcerting is that the opl device is requesting IRQ 31.
> Is anyone else seeing this?

The new pci code that was committed the last 24 hours broke several things.
Stefan got most of them fixed a few hours ago.  I just got SMP working about
30 minutes ago.  For those behind slow mirrors here's the fix for the SMP
problem:

------------------------------------- cut -------------------------------------
*** sys/pci/pci.c.ORIG  Mon May 26 21:28:45 1997
--- sys/pci/pci.c       Mon May 26 22:09:01 1997
***************
*** 332,337 ****
--- 330,353 ----
                cfg->lattimer           = pci_cfgread(cfg, PCIR_LATTIMER, 1);
                cfg->intpin             = pci_cfgread(cfg, PCIR_INTPIN, 1);
                cfg->intline            = pci_cfgread(cfg, PCIR_INTLINE, 1);
+ 
+ #ifdef APIC_IO
+               if (cfg->intline && (cfg->intline != 0xff)) {
+                       u_char airq = 0xff;
+                       u_char rirq = 0xff;
+ 
+                       airq = get_pci_apic_irq(cfg->bus,
+                                               cfg->slot, cfg->intpin);
+ 
+                       if (airq != 0xff) {             /* APIC IRQ exists */
+                               rirq = cfg->intline;    /* 're-directed' IRQ */
+                               cfg->intline = airq;    /* use APIC IRQ */
+                               pci_cfgwrite(cfg, PCIR_INTLINE, airq, 1);
+                               undirect_pci_irq(rirq);
+                       }
+               }
+ #endif  /* APIC_IO */
+ 
                cfg->mingnt             = pci_cfgread(cfg, PCIR_MINGNT, 1);
                cfg->maxlat             = pci_cfgread(cfg, PCIR_MAXLAT, 1);
------------------------------------- cut -------------------------------------

  I don't have a sound card available for testing, it may or may not be
fixed by now.  you will need to resup and try again.

--
Steve Passe	| powered by 
smp@csn.net	|            Symmetric MultiProcessor FreeBSD





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