Re: Funny 2.1.123 - PATCH

Matthew G. Marsh (mgm@paktronix.com)
Mon, 28 Sep 1998 13:59:46 -0500 (CDT)


On Mon, 28 Sep 1998 tmuller@agora.rdrop.com wrote:

> Hi all,
>
> When 2.1.122 came out, I sent a message out that I was getting the following
> error on boot:
> stuck on smp_invalidate_needed IPI wait CPU#0
>
> This lead to lockup at the time the system went to check the file system on the
> root partition.
>
> Well, that one is gone. Now on to another problem. 2.1.123 doesn't boot
> completely. Well, let me rephrase that, it boots if I pass it the 'no-hlt'
> parameter at the lilo prompt.
>
> Booting the kernel without it and it locks hard (no c-a-d or c-a-sys) and a
> reset to bring it back. From what I remember, It locks hard at the Real Time
> Clock Driver and won't go an inch further.
>
> Now here is the kicker. Even with the 'no-hlt' command, if I pass *ANY* other
> command line arguments, it will lock exactly like I had NO command line
> parameters at all. I can only get the machine to boot properly with the
> 'no-hlt' command line parameter by itself. Any ideas? pre-2.1.123-x wouldn't
> boot either.

Yep - I whipped up the following patch (have yet to diff it). Try it on
your system and let me know if it works.

In /usr/src/linux/arch/i386/kernel/io_apic.c

@ Line 1214
#define PIC_IRQS ((1<<2)|(1<<13))

change to
#define PIC_IRQS ((1<<2)|(1<<9)|(1<<13))


> I'm available till Wed. for testing anything you'd like.
>
> Machine:
>
> DK440LX MB Dual 233Mhz Pentium II
> 128Megs RAM
> aic7xxx pre12 driver
>
> --
> Thanks,
> Troy
>
> ----------------------------------------------------------------
> email: tmuller@agora.rdrop.com
> PGP 5.0 key: hkp://pgp.ai.mit.edu
> web: http://www.eecs.wsu.edu/~tmuller
> helpful suggestion:
> perl -e 'print $i=pack(c5,(41*2),sqrt(7056),(unpack(c,H)-2),oct(115),10);'
> ----------------------------------------------------------------

Ingo - I noticed the whitelist / blacklist stuff inside io_apic.c and
tried adding in a routine to the setup_IO_APIC routine to define the
io_apic_irqs but that does not seem to work. I went off the whitelist
section where io_apic_irqs = ~PIC_IRQS and tried to setup a different
variable ie: io_apic_irqs = ~DKPIC_IRQS where DKPIC_IRQS =
((1<<2)|(1<<9)|(1<<13)).

Is there a way to make the change depending upon the Product_ID ??

So there would be a:

if (Product_ID == "DK400LX")
io_apic_irqs = ~DKPIC_IRQS;
else
io_apic_irqs = ~PIC_IRQS;

Or is this impossible to do at runtime. I guess that at runtime is the
only way to determine which Product_ID we are running on.

Thanks!

--------------------------------------------------
Matthew G. Marsh, President
Paktronix Systems, LLC
1506 North 59th Street
Omaha NE 68104
Phone: (402) 932-7250
Email: mgm@paktronix.com
WWW: http://www.paktronix.com
--------------------------------------------------

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/