lkml.org 
[lkml]   [2007]   [May]   [17]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH] Further update of the i386 boot documentation
    H. Peter Anvin wrote:
    > +Field name: boot_flag
    > +Type: read
    > +Offset/size: 0x1fe/2
    > +Protocol: ALL
    > +
    > + Contains 0xAA55. This is the closest thing old Linux kernels have
    > + to a magic number.
    >

    Endianess? I guess a blanket statement saying that all constants are
    stored little-endian enough (which is obvious, but its always good to be
    explicit).

    > +
    > +Field name: jump
    > +Type: read
    > +Offset/size: 0x200/2
    > +Protocol: 2.00+
    > +
    > + Contains an x86 jump instruction, 0xEB followed by a signed offset
    > + relative to byte 0x202. This can be used to determine the size of
    > + the header.
    > +
    > +Field name: header
    > +Type: read
    > +Offset/size: 0x202/4
    > +Protocol: 2.00+
    > +
    > + Contains the magic number "HdrS" (0x53726448).
    >

    This is a bit confusing from an endian perspective. Does the "HdrS"
    notation mean that it is a byte array containing 'H', 'd', 'r', 'S', as
    the string syntax suggests? Or is that the ascii interpretation of each
    byte of a 4-byte value read as a little-endian encoding from that location?

    > +
    > +Field name: version
    > +Type: read
    > +Offset/size: 0x206/2
    > +Protocol: 2.00+
    > +
    > + Contains the boot protocol version, e.g. 0x0204 for version 2.04.
    >

    So the version is in BCD?

    > +
    > +Field name: readmode_swtch
    > +Type: modify (optional)
    > +Offset/size: 0x208/4
    > +Protocol: 2.00+
    > +
    > + Boot loader hook (see separate chapter.)
    >

    Chapter? Is there a more specific reference you could make?

    > +
    > +Field name: start_sys
    > +Type: read
    > +Offset/size: 0x20c/4
    > +Protocol: 2.00+
    > +
    > + The load low segment (0x1000). Obsolete.
    > +
    > +Field name: kernel_version
    > +Type: read
    > +Offset/size: 0x20e/2
    > +Protocol: 2.00+
    > +
    > + If set to a nonzero value, contains a pointer to a null-terminated
    >

    "nil-terminated"? "\0-terminated"?

    > + human-readable kernel version number string, less 0x200. This can
    > + be used to display the kernel version to the user. This value
    > + should be less than (0x200*setup_sects). For example, if this value
    > + is set to 0x1c00, the kernel version number string can be found at
    > + offset 0x1e00 in the kernel file. This is a valid value if and only
    > + if the "setup_sects" field contains the value 14 or higher.
    >
    How about something like:

    This example is only valid if "setup_sects" is greater than

    ((0x1e00 - 0x200) / 0x200) = 14.

    Just to make the calculation explicit.

    J
    -
    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: 2007-05-18 01:13    [W:0.026 / U:3.712 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site