lkml.org 
[lkml]   [2000]   [Dec]   [21]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Subject[PATCH] Re: e820 memory detection fix for ThinkPad
    From
    Date


    David Weinhall wrote:

    > On Tue, Dec 19, 2000 at 07:16:40PM -0500, Marc Joosen wrote:
    > >
    > > This is a tiny patch to make the int15/e820 memory mapping work on
    IBM
    > > ThinkPads. Until now, I have had to give lilo a mem= option with one
    meg
    >
    > If this simple patch solves your problem, great! But in that case,
    > PLEASE add a note telling WHY the assignment is done for every
    > iteration; else some smarthead will probably submit a patch someday
    > in the future along the lines of "assigning this only once makes the
    > loop faster"...
    >
    > Anyhow, good spotting!

    Thanks for the tip, David. I hope that whoever wants to move that line
    out of the loop is aware that it is only executed ~10 times :) So I
    hereby submit a second version of the patch, that includes a link to
    the documentation and #defines the word SMAP (thanks to David Parsons
    for that):


    --- linux/arch/i386/boot/setup.S.orig Mon Oct 30 17:44:29 2000
    +++ linux/arch/i386/boot/setup.S Thu Dec 21 19:37:12 2000
    @@ -289,10 +289,11 @@
    # a whole bunch of different types, and allows memory holes and
    # everything. We scan through this memory map and build a list
    # of the first 32 memory areas, which we return at [E820MAP].
    -#
    +# This is documented at http://www.teleport.com/~acpi/acpihtml/topic245.htm
    +
    +#define SMAP 0x534d4150

    meme820:
    - movl $0x534d4150, %edx # ascii `SMAP'
    xorl %ebx, %ebx # continuation counter
    movw $E820MAP, %di # point into the whitelist
    # so we can have the bios
    @@ -300,13 +301,15 @@

    jmpe820:
    movl $0x0000e820, %eax # e820, upper word zeroed
    + movl $SMAP, %edx # do this every time, some
    + # bioses are forgetful
    movl $20, %ecx # size of the e820rec
    pushw %ds # data record.
    popw %es
    int $0x15 # make the call
    jc bail820 # fall to e801 if it fails

    - cmpl $0x534d4150, %eax # check the return is `SMAP'
    + cmpl $SMAP, %eax # check the return is `SMAP'
    jne bail820 # fall to e801 if it fails

    # cmpl $1, 16(%di) # is this usable memory?

    Again, please copy any comments to me (mjoosen@us.ibm.com), since
    I'm not subscribed to linux-kernel.


    --
    Marc Joosen
    Communication Link Design
    IBM T.J. Watson Research Center
    Yorktown Heights, NY


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

    \
     
     \ /
      Last update: 2005-03-22 12:52    [W:0.025 / U:0.292 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site