2000-11-26 21:59:02

by Gianluca Anzolin

[permalink] [raw]
Subject: KERNEL BUG: console not working in linux

Hello
sorry if I'm mailing this twice, but there is a kernel bug in
linux 2.2 and linux 2.4. Linux 2.0 is not affected. I tested also
FreeBSD, OpenBSD, Windows 95 and DOS and they all work.

The problem is that linux doesn't find the video card: after
lilo has loaded the kernel the screen becomes black. The system boots
regularily but the screen stays black forever.

In this PC I haven't configured any framebuffer and there isn't
X Window. The video card is a TRIDENT 9660 and it is integrated on the
mainboard.

I tried to access the system via ssh and I tried to issue the
lspci -xvv command. You can find the output (along with the output of
pciconf -l from FreeBSD) on http://www.gest.unipd.it/~iig0573/lspci.txt
lspci can't find the video card; FreeBSD finds it on 0:9.0

I tried then to boot with pci=direct, bios & conf1 (as somebody
told me) but anything changed. I tried also vga framebuffer and to pass
the vga=ask argument to the kernel. Nothing changed.

With vga=ask the system asks to choose a video mode. The system
can also scan all the video modes of the card. But if I choose any of
them the screen becomes black. After some investigation I think the
problem is in arch/i386/boot/video.S but I haven't the skills to debug &
solve.

Please, help me, I really hope to use linux on this PC...
otherwise I must use something else.

Thank you,

Gianluca


2000-11-27 14:36:01

by Gianluca Anzolin

[permalink] [raw]
Subject: Re: KERNEL BUG: console not working in linux

Problem solved

I had to bypass the following instructions in arch/i386/boot/setup.S

#
# You must preserve the other bits here. Otherwise embarrasing
# things
# like laptops powering off on boot happen. Corrected version by
# Kira
# Brown from Linux 2.2
#
inb $0x92, %al #
orb $02, %al # "fast A20" version
outb %al, $0x92 # some chips have only this

Then my system worked without problems.

Now what I ask is:
1) Why did they disable my videocard ?
2) Whate are they supposed to do?
3) Would you answer me this time ?

Many thanks to Rasmus, Albert & Jo Geraerts, the only three who answered
me. I would have expected more response from the list, but it seems the
old gold days are over

Bye

Gianluca

2000-11-27 15:20:46

by Alan

[permalink] [raw]
Subject: Re: KERNEL BUG: console not working in linux

> inb $0x92, %al #
> orb $02, %al # "fast A20" version
> outb %al, $0x92 # some chips have only this
>
> Then my system worked without problems.
>
> Now what I ask is:
> 1) Why did they disable my videocard ?

Because your machine is not properly PC compatible

> 2) Whate are they supposed to do?

They switch on the A20 line


2000-11-27 19:20:12

by Albert D. Cahalan

[permalink] [raw]
Subject: Re: KERNEL BUG: console not working in linux

>> 1) Why did they disable my videocard ?
>
> Because your machine is not properly PC compatible

The same can be said of systems that don't support the
standard keyboard controller for A20 control.

2000-11-27 19:38:47

by H. Peter Anvin

[permalink] [raw]
Subject: Re: KERNEL BUG: console not working in linux

Followup to: <[email protected]>
By author: "Albert D. Cahalan" <[email protected]>
In newsgroup: linux.dev.kernel
>
> >> 1) Why did they disable my videocard ?
> >
> > Because your machine is not properly PC compatible
>
> The same can be said of systems that don't support the
> standard keyboard controller for A20 control.
>

Yes, it can. Unfortunately, some "legacy-free" PCs apparently are
starting to take the tack that the KBC is legacy. Therefore, the use
of port 92h is mandatory on those systems.

Port 92h dates back to at the very least the IBM PS/2.

Either way, the video card of the original poster is broken in more
ways than that. Ports 0x00-0xFF are reserved for the motherboard
chipset and have been since the original IBM PC.

It would have been somewhat different if there had been a standard
BIOS function for enabling A20, but there isn't one.

Sometimes, in the PC world, you just have to draw a line and say "this
is too broken to use". I think the original posters' video card falls
in that category. Get a new video card, they're cheap these days.

-hpa

--
<[email protected]> at work, <[email protected]> in private!
"Unix gives you enough rope to shoot yourself in the foot."
http://www.zytor.com/~hpa/puzzle.txt

2000-11-27 19:58:07

by Petr Vandrovec

[permalink] [raw]
Subject: Re: KERNEL BUG: console not working in linux

On Mon, Nov 27, 2000 at 11:08:10AM -0800, H. Peter Anvin wrote:

> It would have been somewhat different if there had been a standard
> BIOS function for enabling A20, but there isn't one.
>
> Sometimes, in the PC world, you just have to draw a line and say "this
> is too broken to use". I think the original posters' video card falls
> in that category. Get a new video card, they're cheap these days.

Hi,
could original complainer (and peoples with AMD SC*) test following
patch? It just does nothing in case that A20 enabled bit is already
set - such as in case when there is nobody listening on 0x92 and
so inb returns 0xFF... (patch is for 2.4.0-test11)
Thanks,
Petr Vandrovec
[email protected]


--- linux/arch/i386/boot/setup.S.orig Mon Oct 30 23:44:29 2000
+++ linux/arch/i386/boot/setup.S Mon Nov 27 20:22:04 2000
@@ -647,8 +647,11 @@
# Brown from Linux 2.2
#
inb $0x92, %al #
+ testb $02, %al
+ jnz no92
orb $02, %al # "fast A20" version
outb %al, $0x92 # some chips have only this
+no92:

# wait until a20 really *is* enabled; it can take a fair amount of
# time on certain systems; Toshiba Tecras are known to have this

2000-11-27 20:23:33

by Albert D. Cahalan

[permalink] [raw]
Subject: Re: KERNEL BUG: console not working in linux

H. Peter Anvin writes:
> [Albert Cahalan]
>> [Alan Cox]

>>>> 1) Why did they disable my videocard ?
>>>
>>> Because your machine is not properly PC compatible
>>
>> The same can be said of systems that don't support the
>> standard keyboard controller for A20 control.
>
> Yes, it can. Unfortunately, some "legacy-free" PCs apparently
> are starting to take the tack that the KBC is legacy. Therefore,
> the use of port 92h is mandatory on those systems.

Not just embedded systems?

> Port 92h dates back to at the very least the IBM PS/2.
>
> Either way, the video card of the original poster is broken in more
> ways than that. Ports 0x00-0xFF are reserved for the motherboard
> chipset and have been since the original IBM PC.

His video card is the motherboard. He has built-in video.
So the port is being used by his motherboard chipset.

2000-11-27 20:30:33

by H. Peter Anvin

[permalink] [raw]
Subject: Re: KERNEL BUG: console not working in linux

"Albert D. Cahalan" wrote:
> >
> > Yes, it can. Unfortunately, some "legacy-free" PCs apparently
> > are starting to take the tack that the KBC is legacy. Therefore,
> > the use of port 92h is mandatory on those systems.
>
> Not just embedded systems?
>

Nope. I was rather surprised to find this out, but I got a bug report
about a recent IBM Aptiva not working with SYSLINUX because it lacked
KBC. It really could use the adaptive-A20 patch; Linus hasn't taken it
yet, though.

> > Port 92h dates back to at the very least the IBM PS/2.
> >
> > Either way, the video card of the original poster is broken in more
> > ways than that. Ports 0x00-0xFF are reserved for the motherboard
> > chipset and have been since the original IBM PC.
>
> His video card is the motherboard. He has built-in video.
> So the port is being used by his motherboard chipset.

I see. Still an incredibly bad choice.

-hpa

--
<[email protected]> at work, <[email protected]> in private!
"Unix gives you enough rope to shoot yourself in the foot."
http://www.zytor.com/~hpa/puzzle.txt

2000-11-27 23:45:36

by Gianluca Anzolin

[permalink] [raw]
Subject: Re: KERNEL BUG: console not working in linux

Il giorno Mon, Nov 27, 2000 at 11:08:10AM -0800, H. Peter Anvin scrisse:
|Yes, it can. Unfortunately, some "legacy-free" PCs apparently are
|starting to take the tack that the KBC is legacy. Therefore, the use
|of port 92h is mandatory on those systems.
|
|Port 92h dates back to at the very least the IBM PS/2.
|
|Either way, the video card of the original poster is broken in more
|ways than that. Ports 0x00-0xFF are reserved for the motherboard
|chipset and have been since the original IBM PC.

I'd like to add only that the video card is integrated on the mainboard.
Maybe that register disables the integrated video card. I don't know.
Anyway I must also point out that on FreeBSD that register is used only
for IBM_L40 PC.
That said now I know how to make linux work again on this PC.
Let's see what will happen when 2.2.18 will come out as the new stable kernel.

Bye
Gianluca

NB: the video card works without problems now. it's even found by lspci
(which couldn't find it before). I can also use any extended vga mode.
So the problem wasn't probably the video chipset.

2000-11-27 23:48:07

by Jorge Nerin

[permalink] [raw]
Subject: Re: KERNEL BUG: console not working in linux

Gianluca Anzolin wrote:
>
> Hello
> sorry if I'm mailing this twice, but there is a kernel bug in
> linux 2.2 and linux 2.4. Linux 2.0 is not affected. I tested also
> FreeBSD, OpenBSD, Windows 95 and DOS and they all work.
>
> The problem is that linux doesn't find the video card: after
> lilo has loaded the kernel the screen becomes black. The system boots
> regularily but the screen stays black forever.
>
> In this PC I haven't configured any framebuffer and there isn't
> X Window. The video card is a TRIDENT 9660 and it is integrated on the
> mainboard.
>
> I tried to access the system via ssh and I tried to issue the
> lspci -xvv command. You can find the output (along with the output of
> pciconf -l from FreeBSD) on http://www.gest.unipd.it/~iig0573/lspci.txt
> lspci can't find the video card; FreeBSD finds it on 0:9.0
>
> I tried then to boot with pci=direct, bios & conf1 (as somebody
> told me) but anything changed. I tried also vga framebuffer and to pass
> the vga=ask argument to the kernel. Nothing changed.
>
> With vga=ask the system asks to choose a video mode. The system
> can also scan all the video modes of the card. But if I choose any of
> them the screen becomes black. After some investigation I think the
> problem is in arch/i386/boot/video.S but I haven't the skills to debug &
> solve.
>
> Please, help me, I really hope to use linux on this PC...
> otherwise I must use something else.
>
> Thank you,
>
> Gianluca
> -
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to [email protected]
> Please read the FAQ at http://www.tux.org/lkml/

Are you sure you have enabled virtual terminal and console support in
character devices, and vga text console in console drivers?

--
Jorge Nerin
<[email protected]>

2000-11-28 02:07:27

by Andries Brouwer

[permalink] [raw]
Subject: Re: KERNEL BUG: console not working in linux

On Mon, Nov 27, 2000 at 08:27:38PM +0100, Petr Vandrovec wrote:

> could original complainer (and peoples with AMD SC*) test following
> patch? It just does nothing in case that A20 enabled bit is already
> set - such as in case when there is nobody listening on 0x92 and
> so inb returns 0xFF... (patch is for 2.4.0-test11)
>
> --- linux/arch/i386/boot/setup.S.orig Mon Oct 30 23:44:29 2000
> +++ linux/arch/i386/boot/setup.S Mon Nov 27 20:22:04 2000
> @@ -647,8 +647,11 @@
> # Brown from Linux 2.2
> #
> inb $0x92, %al #
> + testb $02, %al
> + jnz no92
> orb $02, %al # "fast A20" version
> outb %al, $0x92 # some chips have only this
> +no92:
>

What about adding an additional

andb $0xfe, %al

in front of the outb?
If I understand things correctly, bit 0 of 0x92 is write-only
on some hardware, and writing 1 to it causes a reset, so we
never want that.

Andries

2000-11-28 02:11:37

by H. Peter Anvin

[permalink] [raw]
Subject: Re: KERNEL BUG: console not working in linux

Followup to: <[email protected]>
By author: Andries Brouwer <[email protected]>
In newsgroup: linux.dev.kernel
>
> What about adding an additional
>
> andb $0xfe, %al
>
> in front of the outb?
> If I understand things correctly, bit 0 of 0x92 is write-only
> on some hardware, and writing 1 to it causes a reset, so we
> never want that.
>

Already in test12-pre1. Admittedly, this bit is defined to always
read back as 0, but this is the PC architecture (using the term *very*
loosely here!!!) we're talking about.

-hpa
--
<[email protected]> at work, <[email protected]> in private!
"Unix gives you enough rope to shoot yourself in the foot."
http://www.zytor.com/~hpa/puzzle.txt

2000-11-28 03:44:24

by Andries Brouwer

[permalink] [raw]
Subject: Re: KERNEL BUG: console not working in linux

On Mon, Nov 27, 2000 at 05:40:58PM -0800, H. Peter Anvin wrote:

> > What about adding an additional
> >
> > andb $0xfe, %al
> >
> > in front of the outb?

> Already in test12-pre1.

Ach, I see I am too slow - had not even seen -pre1 and now Linus
already announces -pre2.

Anyway, I considered that this A20 stuff belonged to my docs on
the keyboard controller, so added a page

http://www.win.tue.nl/~aeb/linux/kbd/A20.html

(written half an hour ago). Comments are welcome.

Andries

2000-11-28 03:53:48

by H. Peter Anvin

[permalink] [raw]
Subject: Re: KERNEL BUG: console not working in linux

Followup to: <[email protected]>
By author: Andries Brouwer <[email protected]>
In newsgroup: linux.dev.kernel
>
> On Mon, Nov 27, 2000 at 05:40:58PM -0800, H. Peter Anvin wrote:
>
> > > What about adding an additional
> > >
> > > andb $0xfe, %al
> > >
> > > in front of the outb?
>
> > Already in test12-pre1.
>
> Ach, I see I am too slow - had not even seen -pre1 and now Linus
> already announces -pre2.
>
> Anyway, I considered that this A20 stuff belonged to my docs on
> the keyboard controller, so added a page
>
> http://www.win.tue.nl/~aeb/linux/kbd/A20.html
>
> (written half an hour ago). Comments are welcome.
>

One thing... the "thwarted by cache" comment probably isn't very
useful. As far as I know the only machines which have the cache
problem are i386 boxen, but the i386 doesn't have WBINVD. The i486
has a pin on the CPU for A20, which takes effect inside the L1 cache,
and so it shouldn't have any A20 cache issues.

-hpa

--
<[email protected]> at work, <[email protected]> in private!
"Unix gives you enough rope to shoot yourself in the foot."
http://www.zytor.com/~hpa/puzzle.txt

2000-11-28 04:39:49

by Dunlap, Randy

[permalink] [raw]
Subject: RE: KERNEL BUG: console not working in linux

Hi,

I've been taking some holidays and haven't followed
all of this thread closely, but:

> From: Albert D. Cahalan [mailto:[email protected]]
>
> H. Peter Anvin writes:
> > [Albert Cahalan]
> >> [Alan Cox]
>
> >>>> 1) Why did they disable my videocard ?
> >>>
> >>> Because your machine is not properly PC compatible
> >>
> >> The same can be said of systems that don't support the
> >> standard keyboard controller for A20 control.

Just curious: Are you (Alan?) saying this ("standard") based on the
unpublished IBM PC specs (well, it was when I needed it around
1990; don't know about now ???). Or do you have a copy
of it? They were mighty hard to come by, and I was working
on a contract for IBM at the time (not at Intel).

> > Yes, it can. Unfortunately, some "legacy-free" PCs apparently
> > are starting to take the tack that the KBC is legacy. Therefore,
> > the use of port 92h is mandatory on those systems.
>
> Not just embedded systems?

Right. Not just embedded systems.

> > Port 92h dates back to at the very least the IBM PS/2.
> >
> > Either way, the video card of the original poster is broken in more
> > ways than that. Ports 0x00-0xFF are reserved for the motherboard
> > chipset and have been since the original IBM PC.
>
> His video card is the motherboard. He has built-in video.
> So the port is being used by his motherboard chipset.
> -

~Randy

2000-11-28 05:23:06

by H. Peter Anvin

[permalink] [raw]
Subject: Re: A20 gate (was: KERNEL BUG: console not working in linux)

Followup to: <[email protected]>
By author: "Dunlap, Randy" <[email protected]>
In newsgroup: linux.dev.kernel
>
> Just curious: Are you (Alan?) saying this ("standard") based on the
> unpublished IBM PC specs (well, it was when I needed it around
> 1990; don't know about now ???). Or do you have a copy
> of it? They were mighty hard to come by, and I was working
> on a contract for IBM at the time (not at Intel).
>

There is nothing unpublished about them. They are old, but definitely
published. As far as System Control Port A, they were published in
the PS/2 reference manuals.

-hpa
--
<[email protected]> at work, <[email protected]> in private!
"Unix gives you enough rope to shoot yourself in the foot."
http://www.zytor.com/~hpa/puzzle.txt

2000-11-28 09:01:08

by Gianluca Anzolin

[permalink] [raw]
Subject: Re: KERNEL BUG: console not working in linux

|No, the problem is the utterly braindamaged way the motherboard chose to
|enable/disable it (*especially* if it's PCI... sheech, port 92h isn't
|exactly something new in that timeframe.)
|
|What PC/motherboard is this, anyway?

It's an olivetti, but maybe they bought the mainboard elsewhere I don't
know. Anyway you can find the lspci -xvv in
http://www.gest.unipd.it/~iig0573/lspci.txt

2000-11-28 18:44:42

by H. Peter Anvin

[permalink] [raw]
Subject: Re: KERNEL BUG: console not working in linux

Followup to: <[email protected]>
By author: Gianluca Anzolin <[email protected]>
In newsgroup: linux.dev.kernel
>
> |No, the problem is the utterly braindamaged way the motherboard chose to
> |enable/disable it (*especially* if it's PCI... sheech, port 92h isn't
> |exactly something new in that timeframe.)
> |
> |What PC/motherboard is this, anyway?
>
> It's an olivetti, but maybe they bought the mainboard elsewhere I don't
> know. Anyway you can find the lspci -xvv in
> http://www.gest.unipd.it/~iig0573/lspci.txt
>

It's not "an Olivetti", it has a model number and God Knows What.
>From the looks of it they are using a 440FX chipset, which definitely
does not have this problem inherently (and almost certainly handles
port 92h correctly), so whomever wired up this motherboard was even
more of an idiot that I first thought.

If I were you I would take it back and demand a refund. It isn't a PC
you have there.

-hpa

--
<[email protected]> at work, <[email protected]> in private!
"Unix gives you enough rope to shoot yourself in the foot."
http://www.zytor.com/~hpa/puzzle.txt