lkml.org 
[lkml]   [2004]   [Aug]   [5]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: 2.6 kernel won't reboot on AMD system - 8042 problem?
    [ Please CC replies to me. ]

    David N. Welton wrote:

    > Before you hit reply or erase, no, I'm not talking about the machine not
    > getting past the BIOS check complaining that there is no keyboard present.
    >
    > Kernel 2.6.7
    >
    > model name : AMD Athlon(tm) XP 2400+
    >
    > motherboard: http://www.ecsusa.com/products/km400-m2.html
    >
    > ... not sure what else might be useful... apci=off added to boot
    > options. Preemptive kernel.
    >
    > In any case, the machine in question does not reboot. I traced the
    > problem down to the mach_reboot but it doesn't get past those assembly
    > instructions. Things do seem to work alright if a keyboard is
    > installed. Otherwise, the machine just sits there, no longer responsive
    > to pings or anything else.

    ....

    > any ideas on what parts of the kernel to look at in order to determine
    > what is causing this? I need to fix it, and I don't know where to start
    > looking.

    By putting a series of 'crashme/reboot' calls into the kernel, I
    narrowed a possibl cause of it down to this bit of code in
    drivers/input/serio.c:753

    /*
    * Write CTR back.
    */

    if (i8042_command(&i8042_ctr, I8042_CMD_CTL_WCTR)) {
    printk(KERN_ERR "i8042.c: Can't write CTR while initializing i8042.\n");
    return -1;
    }

    If I do the reboot instructions before this, it reboots fine.
    Afterwards, and it just sits there, no reboot.

    Any ideas what to think/look for/do?

    Sascha, to see if your problem is the same as mine, you might try
    putting this bit of code before the above call:

    {
    static struct
    {
    unsigned short size __attribute__ ((packed));
    unsigned long long * base __attribute__ ((packed));
    } no_idt = { 0, 0 };

    /* That didn't work - force a triple fault.. */
    __asm__ __volatile__("lidt %0": :"m" (no_idt));
    __asm__ __volatile__("int3");
    }

    It will cause your machine to reboot before it's even finished booting,
    so don't do it with your only available kernel!

    Thanks,
    --
    David N. Welton
    davidw@eidetix.com
    -
    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/

    \
     
     \ /
      Last update: 2005-03-22 14:04    [W:0.029 / U:29.792 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site