setup.S: A20 enable sequence (once again)
Quoted 2 lines
This doesn't really work. Neither the fast A20 gate nor the KBC is guaranteed to have immediate effect (on most systems they won't.)
In that case, maybe I should do repeated calls to a20_check with a (not too big) retry count after the port 92 write ?
Problem is, it happens to work this way on all hardware I have access to, so I can't really reproduce such timing problems. Anyone ?
Quoted 2 lines
What's worse, once you have done an "out" to the KBC you need to finish the sequence. I need to think about this for a bit.
??? I'm not touching the KBC if the port 92 access was successful at enableing A20. If, however, A20 is still disabled, I'm doing the same KBC sequence as the original code, so there shouldn't be any incomplete KBC interactions (unless I mistyped something...).
Quoted 3 lines
(Arguably, what you're doing is running on completely nonstandard hardware, which may need a
CONFIG_option. However, if we can avoid it I guess it's better.)
That was exactly my intention :-)
----------------------------------------------------------------
Robert Kaiser email: [email protected]
SYSGO RTS GmbH
Am Pfaffenstein 14 phone: (49) 6136 9948-762
D-55270 Klein-Winternheim / Germany fax: (49) 6136 9948-10
-
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/
Followup to: <00110620483000.11673@rob> By author: Robert Kaiser <[email protected]> In newsgroup: linux.dev.kernel
Quoted 10 lines
Quoted 3 lines
This doesn't really work. Neither the fast A20 gate nor the KBC is guaranteed to have immediate effect (on most systems they won't.)
In that case, maybe I should do repeated calls to
a20_checkwith a (not too big) retry count after the port 92 write ?Problem is, it happens to work this way on all hardware I have access to, so I can't really reproduce such timing problems. Anyone ?
Quoted 8 lines
Quoted 2 lines
What's worse, once you have done an "out" to the KBC you need to finish the sequence. I need to think about this for a bit.
??? I'm not touching the KBC if the port 92 access was successful at enableing A20. If, however, A20 is still disabled, I'm doing the same KBC sequence as the original code, so there shouldn't be any incomplete KBC interactions (unless I mistyped something...).
The problem is that your test for A20 is faulty. Severely so. Anyway, I just sent you a patch which will terminate the first empty_8042 loop (while it's still safe) if it finds A20 now enabled.
-hpa
Signature · 7 lines
<[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 - 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/