2.6.3-bk7 i8042 does not work on a genuine i386 ibm ps/2 model 70.

From: Eric W. Biederman (ebiederm_at_xmission.com)
Date: 02/29/04

  • Next message: viro_at_parcelfarce.linux.theplanet.co.uk: "Re: 2.6.4-rc1 oops on HPFS filesystem file rename"
    To: <linux-kernel@vger.kernel.org>, Vojtech Pavlik <vojtech@suse.cz>
    Date:	29 Feb 2004 07:32:19 -0700
    
    

    The i8042 driver attempts to detect if IBM PC compatiblity mode i.e.
    I8042_CTR_XLATE is enabled. Unfortunately on a genuine IBM PS/2, (a pc
    incompatible :) this does not work.

    In i8042_controller_init if I disable the detection of the keyboard
    not being in XLATE mode everything works fine.

    /*
     * If the chip is configured into nontranslated mode by the BIOS, don't
     * bother enabling translating and be happy.
     */
    #if 0

            if (~i8042_ctr & I8042_CTR_XLATE)
                    i8042_direct = 1;
    #endif

    The value of i8042_initial_ctr is 0x25 in case that helps.

    I am not certain where to proceed from here.

    The piece I am certain about is that the keyboard controller has
    traditionally been a tiny microcontroller on PCs so that there is a
    wide variance in the commands and the exact format that they support.
    And so far every data *** I have looked at the documentation is
    slightly different. The only real intel data*** I could find was
    for the i8741A. And it does not document the traditional interface
    implemented but the i8042, because that was done in firmware.

    This machine is primarily a test machine to make certain my code
    works on older hardware. So I am willing try any interesting or
    likely patches.

    My primary problem is that the code does not do the conservative
    thing and assume the BIOS setup the machine in PC compatible mode,
    and only when certain XLATE mode is implemented by the i8042 act on
    that information. Instead the code is assumes it knows how the
    hardware works when in fact it does not.

    One solution might be check to assume XLATE mode is always enabled
    unless the underlying hardware matches a known list of superio chips.

    It is extremely evil to try and use a machine when the scancodes are
    misinterpreted.

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


  • Next message: viro_at_parcelfarce.linux.theplanet.co.uk: "Re: 2.6.4-rc1 oops on HPFS filesystem file rename"