NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: port-amd64/48142: i8254 timer stop working during boot - system lockup during boot



Hi,

I've enabled it to see if it will be found or not.
This is the only way known to me to detect "all" suported ISA-hardware (sensors in most cases) of a motherboard. Even the HW-manuals for many motherboards don't say anything about the available hardware and the addresses where they are located.

Of cause, the problem will go away if finsio is disabled.
And of case it is no good idea to have useless parts configured in a kernel - especialy parts, without any type indication that need to be accessed in order to find out if they are present or not. (ISA, VMEbus-devices, ...)

But I think it would be very nice to either have a workaround if the timer has died or at least run into a panic.
It is no good idea that the system silently lock up during boot.
I can't see any warnings about potential problems in the finsio man page too.

I've just tested "the problem" on an Intel S3000 board and it will also lockup if finsio is enabled. So either the 8257 has 16 or more register, or it is common to have access on multiple addresses for the chip - some adress lines not decoded to keep the HW tiny... (No manual for 8257 available to me at the moment to check this ...)

If it would be possible for the finsio-driver to test for this situation first, it would be a very good idea - and perhaps a warning message during boot if the mapping problem is detected.

Also a warning/comment in the kernel config file, that the finsio-driver may blow up something would be nice. This may warn "normal" users that there are potential problems and they should try deactivating the driver again if the system runs into problems.

If the problem is (or will be fixed) in next update and/or next release of finsio-driver, I think you can close this PR.

best regards

W. Stukenbrock

David Laight wrote:

The following reply was made to PR port-amd64/48142; it has been noted by GNATS.

From: David Laight <david%l8s.co.uk@localhost>
To: gnats-bugs%NetBSD.org@localhost
Cc: Subject: Re: port-amd64/48142: i8254 timer stop working during boot - system lockup during boot
Date: Thu, 22 Aug 2013 08:30:04 +0100

 On Wed, Aug 21, 2013 at 01:00:01PM +0000, 
Wolfgang.Stukenbrock%nagler-company.com@localhost wrote:
 > >Number:         48142
 > >Category:       port-amd64
 > >Synopsis:       i8254 timer stop working during boot - system lockup during 
boot
 ...
 >   The problem is triggered by the finsio driver on port 0x4e,
 >       but I'm not shure if it is the fault of this driver or
 >   if the timer registers are visible on other ports than 0x40 and
 >       0x43 on this board too.
Why are you enabling the finsio driver?
 Enabling 'random' ISA drivers will always cause grief, the 'grope'
 code can easily destroy other hardware.
 The finsio grope is very nasty - it does io-writes - so you really shouldn't
 enable it unless you really need it and expect the grope to succeed.
 Restoring the origanl value might help.
I'd certainly add some debug to read the 8254 timer ports during the
 finsio grop code - so work out exactly when they are clobbered.
 IIRC reads from the timer registers are always ok.
 Might be worth doing byte reads of ports 0x40 through 0x4f just to
 see it the timer registers are aliased.
David -- David Laight: david%l8s.co.uk@localhost





Home | Main Index | Thread Index | Old Index