No description
Find a file
okuji c04da07444 2003-01-17 Yoshinori K. Okuji <okuji@enbug.org>
* include/pupa/i386/pc/linux.h: New file.
	* loader/i386/pc/linux.c: Likewise.

	* loader/i386/pc/chainloader.c (pupa_chainloader_boot_sector):
	Removed.
	(pupa_chainloader_unload): Return PUPA_ERR_NONE.
	(pupa_rescue_cmd_chainloader): Read the image to 0x7C00 instead
	of PUPA_CHAINLOADER_BOOT_SECTOR.

	* kern/i386/pc/startup.S: Include pupa/machine/linux.h.
	(pupa_linux_prot_size): New variable.
	(pupa_linux_tmp_addr): Likewise.
	(pupa_linux_real_addr): Likewise.
	(pupa_linux_boot_zimage): New function.
	(pupa_linux_boot_bzimage): Likewise.

	* kern/i386/pc/init.c (struct mem_region): New structure.
	(MAX_REGIONS): New macro.
	(mem_regions): New variable.
	(num_regions): Likewise.
	(pupa_os_area_addr): Likewise.
	(pupa_os_area_size): Likewise.
	(pupa_lower_mem): Likewise.
	(pupa_upper_mem): Likewise.
	(add_mem_region): New function.
	(compact_mem_regions): Likewise.
	(pupa_machine_init): Set PUPA_LOWER_MEM and PUPA_UPPER_MEM to
	the size of the conventional memory and that of so-called upper
	memory (before the first memory hole).
	Instead of adding each found region to free memory, use
	add_mem_region and add them after removing overlaps.
	Also, add only 1/4 of the upper memory to free memory. The rest
	is used for loading OS images. Maybe this is ad hoc, but this
	makes it much easier to relocate OS images when booting.

	* kern/rescue.c (pupa_rescue_cmd_module): Removed.
	(pupa_enter_rescue_mode): Don't register initrd and module.

	* kern/mm.c: Include pupa/dl.h.

	* kern/main.c: Include pupa/file.h and pupa/device.h.

	* kern/loader.c (pupa_loader_load_module_func): Removed.
	(pupa_loader_load_module): Likewise.

	* kern/dl.c (pupa_dl_load): Use the suffix ``.mod'' instead of
	``.o''.

	* include/pupa/i386/pc/loader.h (pupa_linux_prot_size): Declared.
	(pupa_linux_tmp_addr): Likewise.
	(pupa_linux_real_addr): Likewise.
	(pupa_linux_boot_zimage): Likewise.
	(pupa_linux_boot_bzimage): Likewise.

	* include/pupa/i386/pc/init.h (pupa_lower_mem): Declared.
	(pupa_upper_mem): Likewise.
	(pupa_gate_a20): Don't export, because turning off Gate A20 in a
	module is too dangerous.

	* include/pupa/loader.h (pupa_os_area_addr): Declared.
	(pupa_os_area_size): Likewise.
	(pupa_loader_set): Remove the first argument. Loader doesn't
	manage modules or initrd any longer.
	(pupa_loader_load_module): Removed.

	* conf/i386-pc.rmk (pkgdata_MODULES): Added linux.mod.
	(linux_mod_SOURCES): New variable.
	(linux_mod_CFLAGS): Likewise.
2003-01-17 02:52:05 +00:00
boot/i386/pc 2003-01-03 Yoshinori K. Okuji <okuji@enbug.org> 2003-01-02 20:12:33 +00:00
conf 2003-01-17 Yoshinori K. Okuji <okuji@enbug.org> 2003-01-17 02:52:05 +00:00
disk/i386/pc 2003-01-03 Yoshinori K. Okuji <okuji@enbug.org> 2003-01-02 20:12:33 +00:00
fs 2003-01-06 Yoshinori K. Okuji <okuji@enbug.org> 2003-01-06 00:01:35 +00:00
include/grub 2003-01-17 Yoshinori K. Okuji <okuji@enbug.org> 2003-01-17 02:52:05 +00:00
kern 2003-01-17 Yoshinori K. Okuji <okuji@enbug.org> 2003-01-17 02:52:05 +00:00
loader/i386/pc 2003-01-17 Yoshinori K. Okuji <okuji@enbug.org> 2003-01-17 02:52:05 +00:00
term/i386/pc Initial revision 2002-12-27 08:53:07 +00:00
util 2003-01-07 Yoshinori K. Okuji <okuji@enbug.org> 2003-01-07 07:54:07 +00:00
.cvsignore Initial revision 2002-12-27 08:53:07 +00:00
aclocal.m4 Initial revision 2002-12-27 08:53:07 +00:00
AUTHORS Initial revision 2002-12-27 08:53:07 +00:00
autogen.sh Initial revision 2002-12-27 08:53:07 +00:00
ChangeLog 2003-01-17 Yoshinori K. Okuji <okuji@enbug.org> 2003-01-17 02:52:05 +00:00
config.guess Initial revision 2002-12-27 08:53:07 +00:00
config.h.in Initial revision 2002-12-27 08:53:07 +00:00
config.sub Initial revision 2002-12-27 08:53:07 +00:00
configure 2003-01-06 Yoshinori K. Okuji <okuji@enbug.org> 2003-01-06 00:01:35 +00:00
configure.ac 2003-01-06 Yoshinori K. Okuji <okuji@enbug.org> 2003-01-06 00:01:35 +00:00
COPYING Initial revision 2002-12-27 08:53:07 +00:00
genkernsyms.sh Initial revision 2002-12-27 08:53:07 +00:00
genmk.rb 2003-01-03 Yoshinori K. Okuji <okuji@enbug.org> 2003-01-02 20:12:33 +00:00
genmodsrc.sh Initial revision 2002-12-27 08:53:07 +00:00
gensymlist.sh Initial revision 2002-12-27 08:53:07 +00:00
INSTALL Initial revision 2002-12-27 08:53:07 +00:00
install-sh Initial revision 2002-12-27 08:53:07 +00:00
Makefile.in 2003-01-03 Yoshinori K. Okuji <okuji@enbug.org> 2003-01-02 20:12:33 +00:00
mkinstalldirs Initial revision 2002-12-27 08:53:07 +00:00
NEWS 2003-01-17 Yoshinori K. Okuji <okuji@enbug.org> 2003-01-17 02:52:05 +00:00
README Initial revision 2002-12-27 08:53:07 +00:00
stamp-h.in Initial revision 2002-12-27 08:53:07 +00:00
THANKS Initial revision 2002-12-27 08:53:07 +00:00
TODO Initial revision 2002-12-27 08:53:07 +00:00

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This is PUPA, the Preliminary Universal Programming Architecture for
GRUB.  PUPA is a research project for the next generation of GNU GRUB.
The most important goal is to make GNU GRUB cleaner, safer, more robust,
more powerful, and more portable.

See the file NEWS for a description of recent changes to PUPA.

See the file INSTALL for instructions on how to build and install the
PUPA data and program files.

Please visit the official web page of PUPA, for more information.
The URL is <http://www.nongnu.org/pupa/>.



Because PUPA is still in developmental stage, PUPA is not for general
use (yet). For now, you can install PUPA into a floppy by these
instructions:

$ configure && make
$ ./pupa-mkimage -v -d . -o core.img chain fat
$ dd if=boot.img of=/dev/fd0 bs=512 count=1
$ dd if=core.img of=/dev/fd0 bs=512 seek=1

It would be easier to use Bochs <http://bochs.sf.net/> than a real
machine.