grub-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] a.out support for multiboot and freebsd


From: Bean
Subject: Re: [PATCH] a.out support for multiboot and freebsd
Date: Wed, 13 Feb 2008 02:47:30 +0800

Hi,

The new version adds NetBSD support and data file loading in FreeBSD.
You can't load kernel modules, because they have relocation and symbol
issue which is too much to handle, however, you can load data files
like splashimage or memdisk. Examples:

1. Load freebsd loader

set root=(hd0,1,a)
freebsd /boot/loader
boot

2. Load freebsd kernel directly
set root=(hd0,1,a)
freebsd /boot/kernel/kernel
freebsd_loadenv /boot/device.hints
freebsd_module /boot/splash.bmp type=splash_image_data
set FreeBSD.vfs.root.mountfrom=ufs:ad0s1a
boot

Note that in order to show the splashimage, you need to add splash_bmp
module to the kernel.

3. Load OpenBSD kernel
set root=(hd0,2,a)
openbsd /bsd

4. Load NetBSD kernel
set root=(hd0,3,a)
netbsd /netbsd


2008-02-12  Bean  <address@hidden>

        * conf/i386-pc.rmk (pkglib_MODULES): Add aout.mod _bsd.mod and bsd.mod.
        (aout_mod_SOURCES): New variable.
        (aout_mod_CFLAGS): Likewise.
        (aout_mod_LDFLAGS): Likewise.
        (_bsd_mod_SOURCES): New variable.
        (_bsd_mod_CFLAGS): Likewise.
        (_bsd_mod_LDFLAGS): Likewise.
        (bsd_mod_SOURCES): New variable.
        (bsd_mod_CFLAGS): Likewise.
        (bsd_mod_LDFLAGS): Likewise.

        * include/grub/aout.h: New file.

        * include/grub/i386/loader.h (grub_unix_real_boot): New function.

        * include/grub/i386/bsd.h: New file.

        * include/grub/i386/pc/init.h (grub_get_mmap_entry): Use EXPORT_FUNC
        to make it public.

        * kern/elf.c (grub_elf32_load): Get the physical address after the hook
        function is called, so that it's possible to change it inside the hook.
        (grub_elf64_load): Likewise.

        * kern/i386/loader.S (grub_unix_real_boot): New function.

        * loader/aout.c: New file.

        * loader/i386/bsd.c: New file.

        * loader/i386/bsd_normal.c: New file.

        * loader/i386/pc/multiboot.c (grub_multiboot): Handle a.out format.

-- 
Bean

Attachment: bsd.diff
Description: Text document


reply via email to

[Prev in Thread] Current Thread [Next in Thread]