x86 kernel with bios assumptions - Embedded

This is a discussion on x86 kernel with bios assumptions - Embedded ; Can anyone point me to a kernel for x86 arch that doesn't make any assumptions about a bios being present? My embedded platform has an x86 processor but no std bios so the kernel dies right away during boot on ...

+ Reply to Thread
Results 1 to 4 of 4

Thread: x86 kernel with bios assumptions

  1. x86 kernel with bios assumptions

    Can anyone point me to a kernel for x86 arch that doesn't make any
    assumptions about a bios being present? My embedded platform has an x86
    processor but no std bios so the kernel dies right away during boot on the
    first int 13 call. I know the arm arch makes no bios assumptions. I've
    looked for similar functionality for x86 but haven't found anything yet.
    Porting a bios / bios emulation to the platform isn't a desired activity.
    This is a headless / diskless system but does have I/O and other capability
    - just not std bios functionality.
    Thanks for pointers.

  2. Re: x86 kernel with bios assumptions

    me wrote:

    > Can anyone point me to a kernel for x86 arch that doesn't make any
    > assumptions about a bios being present? My embedded platform has an x86
    > processor but no std bios so the kernel dies right away during boot on the
    > first int 13 call. I know the arm arch makes no bios assumptions. I've
    > looked for similar functionality for x86 but haven't found anything yet.
    > Porting a bios / bios emulation to the platform isn't a desired activity.
    > This is a headless / diskless system but does have I/O and other
    > capability - just not std bios functionality.
    > Thanks for pointers.


    Every x86 kernel comes with a small 16 bit realmode part to copy the kernel
    to the correct physical address (0x100000 and above), collecting some
    information about the system (its the part you see: The int calls),
    switches to protected mode and jumps to the final kernel. Replace this
    realmode part by your own one that does the same, except the int calls. I
    did it 7 years ago in the linux-2.2/2.4 age, also for a non BIOS
    environment.
    Maybe you could reuse some code from the mkelfimage project. They also omit
    the 16 bit realmode part.

    JB

  3. Re: x86 kernel with bios assumptions

    Juergen Beisert wrote:
    > me wrote:
    >
    >
    >>Can anyone point me to a kernel for x86 arch that doesn't make any
    >>assumptions about a bios being present? My embedded platform has an x86
    >>processor but no std bios so the kernel dies right away during boot on the
    >>first int 13 call. I know the arm arch makes no bios assumptions. I've
    >>looked for similar functionality for x86 but haven't found anything yet.
    >>Porting a bios / bios emulation to the platform isn't a desired activity.
    >>This is a headless / diskless system but does have I/O and other
    >>capability - just not std bios functionality.
    >>Thanks for pointers.

    >
    >
    > Every x86 kernel comes with a small 16 bit realmode part to copy the kernel
    > to the correct physical address (0x100000 and above), collecting some
    > information about the system (its the part you see: The int calls),
    > switches to protected mode and jumps to the final kernel. Replace this
    > realmode part by your own one that does the same, except the int calls. I
    > did it 7 years ago in the linux-2.2/2.4 age, also for a non BIOS
    > environment.
    > Maybe you could reuse some code from the mkelfimage project. They also omit
    > the 16 bit realmode part.
    >
    > JB

    The Linux Kernels 2.2 & 2.4 have a small boot loader. The Kernels 2.6
    have made the boot loader brain-dead and require a third-party boot
    loader. But it is possible to design your own bootloader based on
    Kernel 2.4 code and splice it into the i86 architecture. I've done this
    exercise, but it is not trivial.
    - Steve.

  4. Re: x86 kernel with bios assumptions

    > The Linux Kernels 2.2 & 2.4 have a small boot loader. The Kernels 2.6
    > have made the boot loader brain-dead and require a third-party boot
    > loader.


    This is not an x86 thing, but the 2.6 Kernel can be configured to
    contain a root file system that automatically is extracted from a
    compresses image that sits in the compressed Kernel image.

    Thus in many systems it's enough that the boot loader starts the
    (compressed, self extracting) Kernel image (maybe after copying it from
    somewhere into RAM). More complex boot loaders that extract the root
    file system here are not necessary any more.

    -Michael

+ Reply to Thread