(16.27.24) wwx: When you comment out some initialization parts in a20.c, then 2.6.23 boots.
(16.27.58) wwx: In later kernels, a20.c changed some more, so simply commenting out some lines won't help anymore.
(16.30.02) wwx: Look at the a20.c file, in function int enable_a20(void).
int enable_a20(void)
{
<------>int loops = A20_ENABLE_LOOPS;
#if defined(CONFIG_X86_ELAN)
<------>/* Elan croaks if we try to touch the KBC */
<------>enable_a20_fast();
<------>while (!a20_test_long())
<------><------>;
<------>return 0;
#elif defined(CONFIG_X86_VOYAGER)
<------>/* On Voyager, a20_test() is unsafe? */
<------>enable_a20_kbc();
<------>return 0;
#else
<------>while (loops--) {
<------><------>/* First, check to see if A20 is already enabled
<------><------> (legacy free, etc.) */
//<----><------>if (a20_test_short())
//<----><------><------>return 0;
(16.27.24) wwx: When you comment out some initialization parts in a20.c, then 2.6.23 boots.
(16.27.58) wwx: In later kernels, a20.c changed some more, so simply commenting out some lines won't help anymore.
(16.30.02) wwx: Look at the a20.c file, in function int enable_a20(void).
int enable_a20(void)
{
<------>int loops = A20_ENABLE_LOOPS;
#if defined( CONFIG_ X86_ELAN) >enable_ a20_fast( ); CONFIG_ X86_VOYAGER) >enable_ a20_kbc( ); ><----- -><---- -->return 0;
<------>/* Elan croaks if we try to touch the KBC */
<------
<------>while (!a20_test_long())
<------><------>;
<------>return 0;
#elif defined(
<------>/* On Voyager, a20_test() is unsafe? */
<------
<------>return 0;
#else
<------>while (loops--) {
<------><------>/* First, check to see if A20 is already enabled
<------><------> (legacy free, etc.) */
//<----><------>if (a20_test_short())
//<----
<------><------>/* Next, try the BIOS (INT 0x15, AX=0x2401) */ ><----- ->enable_ a20_bios( ); ><----- -><---- -->return 0;
<------
<------><------>if (a20_test_short())
<------
<------><------>/* Try enabling A20 through the keyboard controller */ ><----- ->empty_ 8042(); ><----- -><---- -->return 0; /* BIOS worked, but with delayed reaction */
//<----
//OK//<><------>if (a20_test_short())
//OK//<
//<---- ><----- ->enable_ a20_kbc( ); ><----- -><---- -->return 0;
//<----><------>if (a20_test_long())
//<----
<------>}
<------>return -1;
#endif
}