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>
