[EMAIL PROTECTED] (Eric W. Biederman) writes:

> Adam Agnew <[EMAIL PROTECTED]> writes:
> 
> > Hrm, so it should at least make a little post card action and verify that
> > it's working. I'll take a stab at it later today and let you know.
> > In your earlier version of a multiboot patch, you had a config field for
> > the command line. Is there any problem with doing it the same way?
> 
> I still do.  That field is just stored in the 16bit real mode part of
> the Linux kernel.  vmlinux does not include that, and given the
> massive bugginess with version of binutils after 2.10.x for this kind
> of application I don't know that I even want to include that.
> 
> I'd rather just slap an ELF header onto bzImage.

O.k. done.  Do to popular demand, and plain common sense.

The new build targets are bzElf and zElf.  You should get
everything except having an initial ramdisk attached.

Adam I guess this should make your signing project easier.

The plan is to send these diffs in to Linus as soon as he gets
back from vacation in the next couple of days.

Again at:
ftp://download.lnxi.com/pub/src/linux-kernel-patches/boot/
ftp://download.lnxi.com/pub/src/linux-kernel-patches/boot/linux-2.5.7.boot.diff
http://www.xmission.com/~ebiederm/files/boot/linux-2.5.7.boot.diff

Eric
  

This is a log of a series of patches that cleans up and enhances the
x86 boot process.

#9  2.5.7.boot.elf
============================================================
Add support for generating an ELF executable kernel.  External
tools are only needed now to manipulate the command line,
and to add a ramdisk.  For netbooting this is very handy.

#8  2.5.7.boot.linuxbios
============================================================
Support for reading information from the linuxbios table.
For now I just get the memory size more to come as things
evolve.

#7  2.5.7.boot.proto
============================================================
Update the boot protocol to include:
   - A compiled in command line
   - A 32bit entry point
   - File and memory usage information enabling a 1 to 1 
     conversion between the bzImage format and the static ELF
     executable file format.

   - In setup.c split the parameters between those that
     are compiled in and those that are

#6  2.5.7.boot.build
============================================================
Rework the actual build/link step for kernel images.  
- remove the need for objcopy
- Kill the ROOT_DEV Makefile variable, the implementation
  was only half correct and there are much better ways
  to specify your root device than modifying the kernel.
- Don't loose information when the executable is built

Except for a few extra fields in setup.S the binary image
is unchanged.

#5  2.5.7.boot.heap
============================================================
Modify video.S so that mode_list is also allocated from
the boot time heap.  This probably saves a little memory,
and makes a compiled in command line a sane thing to implement.

- Made certain we don't overwrite code with the E820_MAP

- Changed the lables around the setup.S to _setup && _esetup


#4  2.5.7.boot.pic16
============================================================
  All changes are syntactic the generate code should not
  be affected at all.

- Modify the 16 bit code files bootsect.S video.S setup.S so they may
  linked with any virtual address, not just 0.  The code is already
  PIC this just makes the build process the same.

- e820.h Add define E820ENTRY_SIZE

- Add define KERNEL_START in setup.S so if I need this
  value more than once it is easy to get at.

#3  2.5.7.boot.32bit_entry
============================================================
- trampoline.S fix comments, and enter the kernel at
  secondary_startup_32 instead of startup_32
- trampoline.S fix gdt_48 to have the correct gdt limit
- Save all of the registers we get from any 32bit entry point,
  and don't assume they have any particular value.
- head.S split up startup_32
  - secondary_startup_32 handles the SMP case
  - move finding the command line to startup.c
  - Don't copy the kernel parameters to the initial_zero_page,
    instead just pass setup.c where they are located.
  All of these are what it takes to remove the assumptions
  of what register values we get on entry.  And let's us
  handle those assumptions up in C code.
- Seperate the segments used by setup.S from the rest of the kernel.
  This way bootloader can continue to make assumptions about
  which segments setup.S uses while the rest of the kernel
  can do whatever is convinient.
- Move boot specific defines into boot.h

#2  2.5.7.boot.vmlinuxlds
============================================================
- i386/Makefile remove bogus linker command line of -e stext
- Fix vmlinux.lds so vmlinux knows it loads at 0x100000 (1MB)
- Fix vmlinux.lds so we correctly use startup_32 for our entry point

#1  2.5.7.boot.boot_params
============================================================
- Introduce asm-i386/boot_param.h and struct boot_params
- Implement struct boot_params in misc.c & setup.c

This removes a lot of magic macros and by keeping all of the
boot parameters in a structure it becomes much easier to track
which boot_paramters we have and where they live.  Additionally
this keeps the names more uniform making grepping easier.

Reply via email to