* [PATCH] Initial i386-ieee1275 support
@ 2008-01-15 17:59 Robert Millan
2008-01-15 18:08 ` Pavel Roskin
2008-01-15 18:17 ` Robert Millan
0 siblings, 2 replies; 6+ messages in thread
From: Robert Millan @ 2008-01-15 17:59 UTC (permalink / raw)
To: grub-devel
[-- Attachment #1: Type: text/plain, Size: 192 bytes --]
This patch adds initial i386-ieee1275 support.
--
Robert Millan
<GPLv2> I know my rights; I want my phone call!
<DRM> What use is a phone call, if you are unable to speak?
(as seen on /.)
[-- Attachment #2: i386-ieee1275.diff --]
[-- Type: text/x-diff, Size: 10029 bytes --]
* configure.ac: Add `i386-ieee1275' to the list of supported targets.
* conf/i386-ieee1275.rmk: New file.
* include/grub/i386/ieee1275/console.h: Likewise.
* include/grub/i386/ieee1275/ieee1275.h: Likewise.
* include/grub/i386/ieee1275/kernel.h: Likewise.
* include/grub/i386/ieee1275/time.h: Likewise.
* kern/i386/ieee1275/init.c: Likewise.
* kern/i386/ieee1275/startup.S: Likewise.
diff -Nurp grub2/conf/i386-ieee1275.rmk i386-ofw/conf/i386-ieee1275.rmk
--- grub2/conf/i386-ieee1275.rmk 1970-01-01 01:00:00.000000000 +0100
+++ i386-ofw/conf/i386-ieee1275.rmk 2008-01-15 18:56:44.000000000 +0100
@@ -0,0 +1,117 @@
+# -*- makefile -*-
+
+COMMON_ASFLAGS = -m32 -nostdinc -fno-builtin
+COMMON_CFLAGS = -ffreestanding -mrtd -mregparm=3
+COMMON_LDFLAGS = -nostdlib -static -lgcc
+
+# Images.
+pkglib_PROGRAMS = kernel.elf
+
+# For kernel.elf.
+kernel_elf_SOURCES = kern/i386/ieee1275/startup.S kern/i386/ieee1275/init.c \
+ kern/powerpc/ieee1275/init.c \
+ kern/powerpc/ieee1275/cmain.c kern/powerpc/ieee1275/openfw.c \
+ kern/main.c kern/device.c \
+ kern/disk.c kern/dl.c kern/file.c kern/fs.c kern/err.c \
+ kern/misc.c kern/mm.c kern/loader.c kern/rescue.c kern/term.c \
+ kern/i386/dl.c kern/parser.c kern/partition.c \
+ kern/env.c \
+ kern/ieee1275/ieee1275.c \
+ term/ieee1275/ofconsole.c disk/ieee1275/ofdisk.c \
+ symlist.c
+kernel_elf_HEADERS = arg.h cache.h device.h disk.h dl.h elf.h elfload.h \
+ env.h err.h file.h fs.h kernel.h loader.h misc.h mm.h net.h parser.h \
+ partition.h pc_partition.h rescue.h symbol.h term.h time.h types.h \
+ ieee1275/ieee1275.h
+kernel_elf_CFLAGS = $(COMMON_CFLAGS)
+kernel_elf_LDFLAGS = $(COMMON_LDFLAGS) -Wl,-N,-S,-Ttext,0x10000,-Bstatic
+
+MOSTLYCLEANFILES += symlist.c kernel_syms.lst
+DEFSYMFILES += kernel_syms.lst
+
+symlist.c: $(addprefix include/grub/,$(kernel_elf_HEADERS)) config.h gensymlist.sh
+ /bin/sh gensymlist.sh $(filter %.h,$^) > $@ || (rm -f $@; exit 1)
+
+kernel_syms.lst: $(addprefix include/grub/,$(kernel_elf_HEADERS)) config.h genkernsyms.sh
+ /bin/sh genkernsyms.sh $(filter %.h,$^) > $@ || (rm -f $@; exit 1)
+
+# Utilities.
+bin_UTILITIES = grub-mkimage
+sbin_UTILITIES = grub-mkdevicemap grub-probe
+ifeq ($(enable_grub_emu), yes)
+sbin_UTILITIES += grub-emu
+endif
+
+# For grub-mkimage.
+grub_mkimage_SOURCES = util/elf/grub-mkimage.c util/misc.c \
+ util/resolve.c
+grub_mkimage_LDFLAGS = $(LIBLZO)
+
+# For grub-mkdevicemap.
+grub_mkdevicemap_SOURCES = util/grub-mkdevicemap.c util/misc.c \
+ util/i386/get_disk_name.c
+
+# For grub-probe.
+util/grub-probe.c_DEPENDENCIES = grub_probe_init.h
+grub_probe_SOURCES = util/grub-probe.c \
+ util/biosdisk.c util/misc.c util/getroot.c \
+ kern/device.c kern/disk.c kern/err.c kern/misc.c fs/fat.c \
+ fs/ext2.c kern/parser.c kern/partition.c \
+ partmap/pc.c partmap/apple.c partmap/gpt.c \
+ fs/ufs.c fs/minix.c fs/hfs.c fs/jfs.c fs/ntfs.c fs/ntfscomp.c \
+ fs/xfs.c fs/affs.c fs/sfs.c fs/hfsplus.c \
+ kern/fs.c \
+ kern/env.c fs/fshelp.c \
+ disk/lvm.c disk/raid.c grub_probe_init.c
+
+# For grub-emu.
+grub_emu_DEPENDENCIES = grub_script.tab.c grub_script.tab.h \
+ grub_emu_init.h
+grub_emu_SOURCES = commands/boot.c commands/cat.c commands/cmp.c \
+ commands/configfile.c commands/echo.c commands/help.c \
+ commands/terminal.c commands/ls.c commands/test.c \
+ commands/search.c commands/blocklist.c commands/hexdump.c \
+ commands/ieee1275/halt.c commands/ieee1275/reboot.c \
+ commands/i386/cpuid.c \
+ disk/host.c disk/loopback.c disk/raid.c disk/lvm.c \
+ fs/affs.c fs/ext2.c fs/fat.c fs/fshelp.c fs/hfs.c fs/iso9660.c \
+ fs/jfs.c fs/minix.c fs/sfs.c fs/ufs.c fs/xfs.c fs/hfsplus.c \
+ fs/ntfs.c fs/ntfscomp.c fs/cpio.c \
+ io/gzio.c \
+ kern/device.c kern/disk.c kern/dl.c kern/elf.c kern/env.c \
+ kern/err.c \
+ normal/execute.c kern/file.c kern/fs.c normal/lexer.c \
+ kern/loader.c kern/main.c kern/misc.c kern/parser.c \
+ grub_script.tab.c kern/partition.c kern/rescue.c kern/term.c \
+ normal/arg.c normal/cmdline.c normal/command.c normal/function.c\
+ normal/completion.c normal/main.c \
+ normal/menu.c normal/menu_entry.c normal/misc.c normal/script.c \
+ normal/color.c \
+ partmap/amiga.c partmap/apple.c partmap/pc.c partmap/sun.c \
+ partmap/acorn.c partmap/gpt.c \
+ util/console.c util/hostfs.c util/grub-emu.c util/misc.c \
+ util/biosdisk.c util/getroot.c \
+ util/i386/pc/misc.c grub_emu_init.c
+
+grub_emu_LDFLAGS = $(LIBCURSES)
+
+# Modules.
+pkglib_MODULES = normal.mod cpuid.mod
+
+# For normal.mod.
+normal_mod_DEPENDENCIES = grub_script.tab.c grub_script.tab.h
+normal_mod_SOURCES = normal/arg.c normal/cmdline.c normal/command.c \
+ normal/completion.c normal/execute.c \
+ normal/function.c normal/lexer.c normal/main.c normal/menu.c \
+ normal/menu_entry.c normal/misc.c grub_script.tab.c \
+ normal/script.c normal/i386/setjmp.S normal/color.c
+normal_mod_CFLAGS = $(COMMON_CFLAGS)
+normal_mod_ASFLAGS = $(COMMON_ASFLAGS)
+normal_mod_LDFLAGS = $(COMMON_LDFLAGS)
+
+# For cpuid.mod.
+cpuid_mod_SOURCES = commands/i386/cpuid.c
+cpuid_mod_CFLAGS = $(COMMON_CFLAGS)
+cpuid_mod_LDFLAGS = $(COMMON_LDFLAGS)
+
+include $(srcdir)/conf/common.mk
diff -Nurp grub2/configure.ac i386-ofw/configure.ac
--- grub2/configure.ac 2007-12-25 10:09:42.000000000 +0100
+++ i386-ofw/configure.ac 2008-01-15 18:56:44.000000000 +0100
@@ -1,6 +1,6 @@
# Process this file with autoconf to produce a configure script.
-# Copyright (C) 2002,2003,2004,2005,2006,2007 Free Software Foundation, Inc.
+# Copyright (C) 2002,2003,2004,2005,2006,2007,2008 Free Software Foundation, Inc.
#
# This configure.ac is free software; the author
# gives unlimited permission to copy and/or distribute it,
@@ -79,6 +79,7 @@ case "$target_cpu"-"$platform" in
i386-efi) ;;
i386-pc) ;;
i386-linuxbios) ;;
+ i386-ieee1275) ;;
powerpc-ieee1275) ;;
sparc64-ieee1275) ;;
*) AC_MSG_ERROR([unsupported machine type]) ;;
diff -Nurp grub2/include/grub/i386/ieee1275/console.h i386-ofw/include/grub/i386/ieee1275/console.h
--- grub2/include/grub/i386/ieee1275/console.h 1970-01-01 01:00:00.000000000 +0100
+++ i386-ofw/include/grub/i386/ieee1275/console.h 2008-01-15 18:56:44.000000000 +0100
@@ -0,0 +1 @@
+#include <grub/powerpc/ieee1275/console.h>
diff -Nurp grub2/include/grub/i386/ieee1275/ieee1275.h i386-ofw/include/grub/i386/ieee1275/ieee1275.h
--- grub2/include/grub/i386/ieee1275/ieee1275.h 1970-01-01 01:00:00.000000000 +0100
+++ i386-ofw/include/grub/i386/ieee1275/ieee1275.h 2008-01-15 18:56:44.000000000 +0100
@@ -0,0 +1 @@
+#include <grub/powerpc/ieee1275/ieee1275.h>
diff -Nurp grub2/include/grub/i386/ieee1275/kernel.h i386-ofw/include/grub/i386/ieee1275/kernel.h
--- grub2/include/grub/i386/ieee1275/kernel.h 1970-01-01 01:00:00.000000000 +0100
+++ i386-ofw/include/grub/i386/ieee1275/kernel.h 2008-01-15 18:56:44.000000000 +0100
@@ -0,0 +1 @@
+#include <grub/powerpc/ieee1275/kernel.h>
diff -Nurp grub2/include/grub/i386/ieee1275/time.h i386-ofw/include/grub/i386/ieee1275/time.h
--- grub2/include/grub/i386/ieee1275/time.h 1970-01-01 01:00:00.000000000 +0100
+++ i386-ofw/include/grub/i386/ieee1275/time.h 2008-01-15 18:56:44.000000000 +0100
@@ -0,0 +1 @@
+#include <grub/powerpc/ieee1275/time.h>
diff -Nurp grub2/kern/i386/ieee1275/init.c i386-ofw/kern/i386/ieee1275/init.c
--- grub2/kern/i386/ieee1275/init.c 1970-01-01 01:00:00.000000000 +0100
+++ i386-ofw/kern/i386/ieee1275/init.c 2008-01-15 18:56:44.000000000 +0100
@@ -0,0 +1,26 @@
+/* init.c -- Initialize GRUB on Open Firmware. */
+/*
+ * GRUB -- GRand Unified Bootloader
+ * Copyright (C) 2003,2004,2005,2007,2008 Free Software Foundation, Inc.
+ *
+ * GRUB is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * GRUB is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with GRUB. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include <grub/types.h>
+
+void
+grub_arch_sync_caches (void *address __attribute__ ((unused)),
+ grub_size_t len __attribute__ ((unused)))
+{
+}
diff -Nurp grub2/kern/i386/ieee1275/startup.S i386-ofw/kern/i386/ieee1275/startup.S
--- grub2/kern/i386/ieee1275/startup.S 1970-01-01 01:00:00.000000000 +0100
+++ i386-ofw/kern/i386/ieee1275/startup.S 2008-01-15 18:56:44.000000000 +0100
@@ -0,0 +1,38 @@
+/*
+ * GRUB -- GRand Unified Bootloader
+ * Copyright (C) 1999,2000,2001,2002,2003,2005,2006,2007,2008 Free Software Foundation, Inc.
+ *
+ * GRUB is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * GRUB is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with GRUB. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#define ASM_FILE 1
+
+#include <grub/symbol.h>
+
+/*
+ * Note: GRUB is compiled with the options -mrtd and -mregparm=3.
+ * So the first three arguments are passed in %eax, %edx, and %ecx,
+ * respectively, and if a function has a fixed number of arguments
+ * and the number if greater than three, the function must return
+ * with "ret $N" where N is ((the number of arguments) - 3) * 4.
+ */
+
+ .file "startup.S"
+ .text
+ .globl start, _start
+
+start:
+_start:
+ movl %eax, %ecx
+ jmp EXT_C(cmain)
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] Initial i386-ieee1275 support
2008-01-15 17:59 [PATCH] Initial i386-ieee1275 support Robert Millan
@ 2008-01-15 18:08 ` Pavel Roskin
2008-01-15 18:20 ` Robert Millan
2008-01-15 18:17 ` Robert Millan
1 sibling, 1 reply; 6+ messages in thread
From: Pavel Roskin @ 2008-01-15 18:08 UTC (permalink / raw)
To: The development of GRUB 2
On Tue, 2008-01-15 at 18:59 +0100, Robert Millan wrote:
> This patch adds initial i386-ieee1275 support.
Just a few (almost) stupid questions.
What hardware is it for? XO?
How is it different from i386-linuxbios? Doesn't LinuxBIOS imply
OpenBIOS, which is (or strives to be) ieee1275 compliant?
--
Regards,
Pavel Roskin
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] Initial i386-ieee1275 support
2008-01-15 17:59 [PATCH] Initial i386-ieee1275 support Robert Millan
2008-01-15 18:08 ` Pavel Roskin
@ 2008-01-15 18:17 ` Robert Millan
2008-01-15 20:04 ` Robert Millan
1 sibling, 1 reply; 6+ messages in thread
From: Robert Millan @ 2008-01-15 18:17 UTC (permalink / raw)
To: grub-devel
[-- Attachment #1: Type: text/plain, Size: 217 bytes --]
New patch. Same thing, but includes halt, reboot and suspend commands.
--
Robert Millan
<GPLv2> I know my rights; I want my phone call!
<DRM> What use is a phone call, if you are unable to speak?
(as seen on /.)
[-- Attachment #2: i386-ieee1275.diff --]
[-- Type: text/x-diff, Size: 10514 bytes --]
* configure.ac: Add `i386-ieee1275' to the list of supported targets.
* conf/i386-ieee1275.rmk: New file.
* include/grub/i386/ieee1275/console.h: Likewise.
* include/grub/i386/ieee1275/ieee1275.h: Likewise.
* include/grub/i386/ieee1275/kernel.h: Likewise.
* include/grub/i386/ieee1275/time.h: Likewise.
* kern/i386/ieee1275/init.c: Likewise.
* kern/i386/ieee1275/startup.S: Likewise.
diff -Nurp grub2/conf/i386-ieee1275.rmk i386-ofw/conf/i386-ieee1275.rmk
--- grub2/conf/i386-ieee1275.rmk 1970-01-01 01:00:00.000000000 +0100
+++ i386-ofw/conf/i386-ieee1275.rmk 2008-01-15 19:16:14.000000000 +0100
@@ -0,0 +1,132 @@
+# -*- makefile -*-
+
+COMMON_ASFLAGS = -m32 -nostdinc -fno-builtin
+COMMON_CFLAGS = -ffreestanding -mrtd -mregparm=3
+COMMON_LDFLAGS = -nostdlib -static -lgcc
+
+# Images.
+pkglib_PROGRAMS = kernel.elf
+
+# For kernel.elf.
+kernel_elf_SOURCES = kern/i386/ieee1275/startup.S kern/i386/ieee1275/init.c \
+ kern/powerpc/ieee1275/init.c \
+ kern/powerpc/ieee1275/cmain.c kern/powerpc/ieee1275/openfw.c \
+ kern/main.c kern/device.c \
+ kern/disk.c kern/dl.c kern/file.c kern/fs.c kern/err.c \
+ kern/misc.c kern/mm.c kern/loader.c kern/rescue.c kern/term.c \
+ kern/i386/dl.c kern/parser.c kern/partition.c \
+ kern/env.c \
+ kern/ieee1275/ieee1275.c \
+ term/ieee1275/ofconsole.c disk/ieee1275/ofdisk.c \
+ symlist.c
+kernel_elf_HEADERS = arg.h cache.h device.h disk.h dl.h elf.h elfload.h \
+ env.h err.h file.h fs.h kernel.h loader.h misc.h mm.h net.h parser.h \
+ partition.h pc_partition.h rescue.h symbol.h term.h time.h types.h \
+ ieee1275/ieee1275.h machine/kernel.h
+kernel_elf_CFLAGS = $(COMMON_CFLAGS)
+kernel_elf_LDFLAGS = $(COMMON_LDFLAGS) -Wl,-N,-S,-Ttext,0x10000,-Bstatic
+
+MOSTLYCLEANFILES += symlist.c kernel_syms.lst
+DEFSYMFILES += kernel_syms.lst
+
+symlist.c: $(addprefix include/grub/,$(kernel_elf_HEADERS)) config.h gensymlist.sh
+ /bin/sh gensymlist.sh $(filter %.h,$^) > $@ || (rm -f $@; exit 1)
+
+kernel_syms.lst: $(addprefix include/grub/,$(kernel_elf_HEADERS)) config.h genkernsyms.sh
+ /bin/sh genkernsyms.sh $(filter %.h,$^) > $@ || (rm -f $@; exit 1)
+
+# Utilities.
+bin_UTILITIES = grub-mkimage
+sbin_UTILITIES = grub-mkdevicemap grub-probe
+ifeq ($(enable_grub_emu), yes)
+sbin_UTILITIES += grub-emu
+endif
+
+# For grub-mkimage.
+grub_mkimage_SOURCES = util/elf/grub-mkimage.c util/misc.c \
+ util/resolve.c
+grub_mkimage_LDFLAGS = $(LIBLZO)
+
+# For grub-mkdevicemap.
+grub_mkdevicemap_SOURCES = util/grub-mkdevicemap.c util/misc.c \
+ util/i386/get_disk_name.c
+
+# For grub-probe.
+util/grub-probe.c_DEPENDENCIES = grub_probe_init.h
+grub_probe_SOURCES = util/grub-probe.c \
+ util/biosdisk.c util/misc.c util/getroot.c \
+ kern/device.c kern/disk.c kern/err.c kern/misc.c fs/fat.c \
+ fs/ext2.c kern/parser.c kern/partition.c \
+ partmap/pc.c partmap/apple.c partmap/gpt.c \
+ fs/ufs.c fs/minix.c fs/hfs.c fs/jfs.c fs/ntfs.c fs/ntfscomp.c \
+ fs/xfs.c fs/affs.c fs/sfs.c fs/hfsplus.c \
+ kern/fs.c \
+ kern/env.c fs/fshelp.c \
+ disk/lvm.c disk/raid.c grub_probe_init.c
+
+# For grub-emu.
+grub_emu_DEPENDENCIES = grub_script.tab.c grub_script.tab.h \
+ grub_emu_init.h
+grub_emu_SOURCES = commands/boot.c commands/cat.c commands/cmp.c \
+ commands/configfile.c commands/echo.c commands/help.c \
+ commands/terminal.c commands/ls.c commands/test.c \
+ commands/search.c commands/blocklist.c commands/hexdump.c \
+ commands/ieee1275/halt.c commands/ieee1275/reboot.c \
+ commands/i386/cpuid.c \
+ disk/host.c disk/loopback.c disk/raid.c disk/lvm.c \
+ fs/affs.c fs/ext2.c fs/fat.c fs/fshelp.c fs/hfs.c fs/iso9660.c \
+ fs/jfs.c fs/minix.c fs/sfs.c fs/ufs.c fs/xfs.c fs/hfsplus.c \
+ fs/ntfs.c fs/ntfscomp.c fs/cpio.c \
+ io/gzio.c \
+ kern/device.c kern/disk.c kern/dl.c kern/elf.c kern/env.c \
+ kern/err.c \
+ normal/execute.c kern/file.c kern/fs.c normal/lexer.c \
+ kern/loader.c kern/main.c kern/misc.c kern/parser.c \
+ grub_script.tab.c kern/partition.c kern/rescue.c kern/term.c \
+ normal/arg.c normal/cmdline.c normal/command.c normal/function.c\
+ normal/completion.c normal/main.c \
+ normal/menu.c normal/menu_entry.c normal/misc.c normal/script.c \
+ normal/color.c \
+ partmap/amiga.c partmap/apple.c partmap/pc.c partmap/sun.c \
+ partmap/acorn.c partmap/gpt.c \
+ util/console.c util/hostfs.c util/grub-emu.c util/misc.c \
+ util/biosdisk.c util/getroot.c \
+ util/i386/pc/misc.c grub_emu_init.c
+
+grub_emu_LDFLAGS = $(LIBCURSES)
+
+# Modules.
+pkglib_MODULES = normal.mod halt.mod reboot.mod suspend.mod cpuid.mod
+
+# For normal.mod.
+normal_mod_DEPENDENCIES = grub_script.tab.c grub_script.tab.h
+normal_mod_SOURCES = normal/arg.c normal/cmdline.c normal/command.c \
+ normal/completion.c normal/execute.c \
+ normal/function.c normal/lexer.c normal/main.c normal/menu.c \
+ normal/menu_entry.c normal/misc.c grub_script.tab.c \
+ normal/script.c normal/i386/setjmp.S normal/color.c
+normal_mod_CFLAGS = $(COMMON_CFLAGS)
+normal_mod_ASFLAGS = $(COMMON_ASFLAGS)
+normal_mod_LDFLAGS = $(COMMON_LDFLAGS)
+
+# For suspend.mod
+suspend_mod_SOURCES = commands/ieee1275/suspend.c
+suspend_mod_CFLAGS = $(COMMON_CFLAGS)
+suspend_mod_LDFLAGS = $(COMMON_LDFLAGS)
+
+# For reboot.mod
+reboot_mod_SOURCES = commands/ieee1275/reboot.c
+reboot_mod_CFLAGS = $(COMMON_CFLAGS)
+reboot_mod_LDFLAGS = $(COMMON_LDFLAGS)
+
+# For halt.mod
+halt_mod_SOURCES = commands/ieee1275/halt.c
+halt_mod_CFLAGS = $(COMMON_CFLAGS)
+halt_mod_LDFLAGS = $(COMMON_LDFLAGS)
+
+# For cpuid.mod.
+cpuid_mod_SOURCES = commands/i386/cpuid.c
+cpuid_mod_CFLAGS = $(COMMON_CFLAGS)
+cpuid_mod_LDFLAGS = $(COMMON_LDFLAGS)
+
+include $(srcdir)/conf/common.mk
diff -Nurp grub2/configure.ac i386-ofw/configure.ac
--- grub2/configure.ac 2007-12-25 10:09:42.000000000 +0100
+++ i386-ofw/configure.ac 2008-01-15 19:16:14.000000000 +0100
@@ -1,6 +1,6 @@
# Process this file with autoconf to produce a configure script.
-# Copyright (C) 2002,2003,2004,2005,2006,2007 Free Software Foundation, Inc.
+# Copyright (C) 2002,2003,2004,2005,2006,2007,2008 Free Software Foundation, Inc.
#
# This configure.ac is free software; the author
# gives unlimited permission to copy and/or distribute it,
@@ -79,6 +79,7 @@ case "$target_cpu"-"$platform" in
i386-efi) ;;
i386-pc) ;;
i386-linuxbios) ;;
+ i386-ieee1275) ;;
powerpc-ieee1275) ;;
sparc64-ieee1275) ;;
*) AC_MSG_ERROR([unsupported machine type]) ;;
diff -Nurp grub2/include/grub/i386/ieee1275/console.h i386-ofw/include/grub/i386/ieee1275/console.h
--- grub2/include/grub/i386/ieee1275/console.h 1970-01-01 01:00:00.000000000 +0100
+++ i386-ofw/include/grub/i386/ieee1275/console.h 2008-01-15 19:16:14.000000000 +0100
@@ -0,0 +1 @@
+#include <grub/powerpc/ieee1275/console.h>
diff -Nurp grub2/include/grub/i386/ieee1275/ieee1275.h i386-ofw/include/grub/i386/ieee1275/ieee1275.h
--- grub2/include/grub/i386/ieee1275/ieee1275.h 1970-01-01 01:00:00.000000000 +0100
+++ i386-ofw/include/grub/i386/ieee1275/ieee1275.h 2008-01-15 19:16:14.000000000 +0100
@@ -0,0 +1 @@
+#include <grub/powerpc/ieee1275/ieee1275.h>
diff -Nurp grub2/include/grub/i386/ieee1275/kernel.h i386-ofw/include/grub/i386/ieee1275/kernel.h
--- grub2/include/grub/i386/ieee1275/kernel.h 1970-01-01 01:00:00.000000000 +0100
+++ i386-ofw/include/grub/i386/ieee1275/kernel.h 2008-01-15 19:16:14.000000000 +0100
@@ -0,0 +1 @@
+#include <grub/powerpc/ieee1275/kernel.h>
diff -Nurp grub2/include/grub/i386/ieee1275/time.h i386-ofw/include/grub/i386/ieee1275/time.h
--- grub2/include/grub/i386/ieee1275/time.h 1970-01-01 01:00:00.000000000 +0100
+++ i386-ofw/include/grub/i386/ieee1275/time.h 2008-01-15 19:16:14.000000000 +0100
@@ -0,0 +1 @@
+#include <grub/powerpc/ieee1275/time.h>
diff -Nurp grub2/kern/i386/ieee1275/init.c i386-ofw/kern/i386/ieee1275/init.c
--- grub2/kern/i386/ieee1275/init.c 1970-01-01 01:00:00.000000000 +0100
+++ i386-ofw/kern/i386/ieee1275/init.c 2008-01-15 19:16:14.000000000 +0100
@@ -0,0 +1,26 @@
+/* init.c -- Initialize GRUB on Open Firmware. */
+/*
+ * GRUB -- GRand Unified Bootloader
+ * Copyright (C) 2003,2004,2005,2007,2008 Free Software Foundation, Inc.
+ *
+ * GRUB is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * GRUB is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with GRUB. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include <grub/types.h>
+
+void
+grub_arch_sync_caches (void *address __attribute__ ((unused)),
+ grub_size_t len __attribute__ ((unused)))
+{
+}
diff -Nurp grub2/kern/i386/ieee1275/startup.S i386-ofw/kern/i386/ieee1275/startup.S
--- grub2/kern/i386/ieee1275/startup.S 1970-01-01 01:00:00.000000000 +0100
+++ i386-ofw/kern/i386/ieee1275/startup.S 2008-01-15 19:16:14.000000000 +0100
@@ -0,0 +1,38 @@
+/*
+ * GRUB -- GRand Unified Bootloader
+ * Copyright (C) 1999,2000,2001,2002,2003,2005,2006,2007,2008 Free Software Foundation, Inc.
+ *
+ * GRUB is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * GRUB is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with GRUB. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#define ASM_FILE 1
+
+#include <grub/symbol.h>
+
+/*
+ * Note: GRUB is compiled with the options -mrtd and -mregparm=3.
+ * So the first three arguments are passed in %eax, %edx, and %ecx,
+ * respectively, and if a function has a fixed number of arguments
+ * and the number if greater than three, the function must return
+ * with "ret $N" where N is ((the number of arguments) - 3) * 4.
+ */
+
+ .file "startup.S"
+ .text
+ .globl start, _start
+
+start:
+_start:
+ movl %eax, %ecx
+ jmp EXT_C(cmain)
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] Initial i386-ieee1275 support
2008-01-15 18:08 ` Pavel Roskin
@ 2008-01-15 18:20 ` Robert Millan
2008-01-16 0:16 ` Pavel Roskin
0 siblings, 1 reply; 6+ messages in thread
From: Robert Millan @ 2008-01-15 18:20 UTC (permalink / raw)
To: The development of GRUB 2
On Tue, Jan 15, 2008 at 01:08:51PM -0500, Pavel Roskin wrote:
>
> What hardware is it for? XO?
Yes. Although I did the port on qemu (but it's known to work on XO).
> How is it different from i386-linuxbios? Doesn't LinuxBIOS imply
> OpenBIOS, which is (or strives to be) ieee1275 compliant?
LinuxBIOS (now CoreBoot) is just the low level initialization. OpenBIOS
is an implementation of IEEE-1275 that can be run on top of CoreBoot as
payload.
Our i386-linuxbios port makes GRUB run as payload directly, where it has
to access hardware by itself, etc.
--
Robert Millan
<GPLv2> I know my rights; I want my phone call!
<DRM> What use is a phone call, if you are unable to speak?
(as seen on /.)
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] Initial i386-ieee1275 support
2008-01-15 18:17 ` Robert Millan
@ 2008-01-15 20:04 ` Robert Millan
0 siblings, 0 replies; 6+ messages in thread
From: Robert Millan @ 2008-01-15 20:04 UTC (permalink / raw)
To: grub-devel
Committed.
--
Robert Millan
<GPLv2> I know my rights; I want my phone call!
<DRM> What use is a phone call, if you are unable to speak?
(as seen on /.)
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] Initial i386-ieee1275 support
2008-01-15 18:20 ` Robert Millan
@ 2008-01-16 0:16 ` Pavel Roskin
0 siblings, 0 replies; 6+ messages in thread
From: Pavel Roskin @ 2008-01-16 0:16 UTC (permalink / raw)
To: The development of GRUB 2
On Tue, 2008-01-15 at 19:20 +0100, Robert Millan wrote:
> On Tue, Jan 15, 2008 at 01:08:51PM -0500, Pavel Roskin wrote:
> >
> > What hardware is it for? XO?
>
> Yes. Although I did the port on qemu (but it's known to work on XO).
That's great!
> > How is it different from i386-linuxbios? Doesn't LinuxBIOS imply
> > OpenBIOS, which is (or strives to be) ieee1275 compliant?
>
> LinuxBIOS (now CoreBoot) is just the low level initialization. OpenBIOS
> is an implementation of IEEE-1275 that can be run on top of CoreBoot as
> payload.
>
> Our i386-linuxbios port makes GRUB run as payload directly, where it has
> to access hardware by itself, etc.
I see. Thanks!
--
Regards,
Pavel Roskin
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2008-01-16 0:16 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-01-15 17:59 [PATCH] Initial i386-ieee1275 support Robert Millan
2008-01-15 18:08 ` Pavel Roskin
2008-01-15 18:20 ` Robert Millan
2008-01-16 0:16 ` Pavel Roskin
2008-01-15 18:17 ` Robert Millan
2008-01-15 20:04 ` Robert Millan
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.