]> git.ipfire.org Git - thirdparty/grub.git/commitdiff
Support i386-ieee1275 grub-mkrescue and make check on it.
authorVladimir 'phcoder' Serbinenko <phcoder@gmail.com>
Thu, 11 Apr 2013 23:29:45 +0000 (01:29 +0200)
committerVladimir 'phcoder' Serbinenko <phcoder@gmail.com>
Thu, 11 Apr 2013 23:29:45 +0000 (01:29 +0200)
ChangeLog
Makefile.util.def
grub-core/tests/boot/qemu-shutdown-x86.S
tests/grub_script_expansion.in
tests/partmap_test.in
tests/util/grub-shell.in
util/grub-mkrescue.in

index 0d62509d10ed1985a7220bb7ee80144e031ee0a0..c137b5f06f688267233b217526389ccefbc33bb4 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2013-04-11  Vladimir Serbinenko  <phcoder@gmail.com>
+
+       Support i386-ieee1275 grub-mkrescue and make check on it.
+
 2013-04-11  Vladimir Serbinenko  <phcoder@gmail.com>
 
        Merge powerpc grub-mkrescue flavour with common. Use xorriso HFS+
index bd286fc550c91c866ea45b9ff1db922c05cdb771..373c25b8bb84125cc41ccca0f2a4ebc71ff0421b 100644 (file)
@@ -470,6 +470,7 @@ script = {
   enable = i386_qemu;
   enable = i386_multiboot;
   enable = i386_coreboot;
+  enable = i386_ieee1275;
   enable = mips_qemu_mips;
   enable = mips_loongson;
   enable = ia64_efi;
index 8f794fc4b20a684fc4c0b653e500a9f50b8d43c3..9f8bc40515c548e8d85f1e142eaf6e3ba0e96b04 100644 (file)
@@ -1,3 +1,12 @@
+       movl $0x80000b80, %eax
+       movw $0xcf8, %dx
+       outl  %eax, %dx
+       movl $0x1001, %eax
+       movw $0xcfc, %dx
+       inb  %al, %dx
+       orb  $1, %al
+       outb  %al, %dx
+
        movl $0x80000b40, %eax
        movw $0xcf8, %dx
        outl  %eax, %dx
index c4763907c7536a369f2b004a437fa13b86ef0fe6..03dc510a2a58f44206852c5deec19f2be3fb09d2 100644 (file)
@@ -35,7 +35,7 @@ done
 
 other=`echo insmod regexp\; echo '(*)' | @builddir@/grub-shell`
 for d in $disks; do
-    if ! echo "$other" | grep "$d" >/dev/null; then
+    if ! echo "$other" | grep -F "$d" >/dev/null; then
        echo "$d missing from (*) expansion" >&2
        exit 1
     fi
index 15072202606429c8c840dd9efb6927278927d88f..a0beb2a4ca0689374304a3fa4f23f5b0a38993af 100644 (file)
@@ -49,7 +49,7 @@ list_parts () {
     outfile="$1"
     shift
 
-    echo ls | "${grubshell}" --qemu-opts="-hda ${imgfile}" \
+    echo ls | "${grubshell}" --qemu-opts="-$qemudisk ${imgfile}" \
        --modules=$mod | tr -d "\n\r" > "${outfile}"
     cat "${outfile}"
     echo
@@ -58,12 +58,18 @@ list_parts () {
 case "${grub_modinfo_target_cpu}-${grub_modinfo_platform}" in
     mips-qemu_mips | mipsel-qemu_mips | i386-qemu | i386-multiboot | i386-coreboot | mipsel-loongson)
        disk=ata0
+       qemudisk=hda
        ;;
     powerpc-ieee1275)
        disk=ieee1275//pci@80000000/mac-io@4/ata-3@20000/disk@0
+       qemudisk=hda
        # QEMU firmware has bugs which prevent it from accessing hard disk.
        exit 0
        ;;
+    i386-ieee1275)
+       disk=ieee1275/d
+       qemudisk=hdb
+       ;;
     *)
        disk=hd0
        ;;
index 04e64daa003db66c6ea07c13b7a867f732947c02..c6d1cd783eda579ea4a217c0eadbf39e73e5cf97 100644 (file)
@@ -100,10 +100,11 @@ case "${grub_modinfo_target_cpu}-${grub_modinfo_platform}" in
        console=vga_text;;
 
     i386-ieee1275)
-       boot=cd
+       boot=hd
        qemu=qemu-system-i386
-       console=console;;
-
+       console=console
+       trim=1
+       ;;
     i386-qemu)
        boot=qemu
        qemu=qemu-system-i386
index a6e4de6762d8e02980e3db1cbd5481ce8f89d610..510d95fb7ee8283875ca8f12183f5dd534dc1695 100644 (file)
@@ -40,6 +40,7 @@ mipsel_qemu_dir="${libdir}/@PACKAGE@/mipsel-qemu_mips"
 loongson_dir="${libdir}/@PACKAGE@/mipsel-loongson"
 mips_qemu_dir="${libdir}/@PACKAGE@/mips-qemu_mips"
 pc_dir="${libdir}/@PACKAGE@/i386-pc"
+i386_ieee1275_dir="${libdir}/@PACKAGE@/i386-ieee1275"
 efi32_dir="${libdir}/@PACKAGE@/i386-efi"
 efi64_dir="${libdir}/@PACKAGE@/x86_64-efi"
 ia64_dir="${libdir}/@PACKAGE@/ia64-efi"
@@ -256,6 +257,9 @@ if [ "${override_dir}" = "" ] ; then
     if test -e "${pc_dir}" ; then
         process_input_dir "${pc_dir}" i386-pc
     fi
+    if test -e "${i386_ieee1275_dir}" ; then
+       process_input_dir "${i386_ieee1275_dir}" i386-ieee1275
+    fi
     if test -e "${efi32_dir}" ; then
         process_input_dir "${efi32_dir}" i386-efi
     fi
@@ -291,6 +295,7 @@ else
     mips_qemu_dir=
     loongson_dir=
     ppc_dir=
+    i386_ieee1275_dir=
     case "${grub_modinfo_target_cpu}-${grub_modinfo_platform}" in
         i386-multiboot) multiboot_dir="${override_dir}" ;;
         i386-coreboot) coreboot_dir="${override_dir}" ;;
@@ -303,6 +308,7 @@ else
        mipsel-loongson) loongson_dir="${override_dir}" ;;
        mips-qemu_mips) mips_qemu_dir="${override_dir}" ;;
        powerpc-ieee1275) ppc_dir="${override_dir}" ;;
+       i386-ieee1275) i386_ieee1275_dir="${override_dir}" ;;
     esac
 fi
 
@@ -336,6 +342,8 @@ fi
 # build multiboot core.img
 make_image "${multiboot_dir}" i386-multiboot "${iso9660_dir}/boot/multiboot.img" "pata ahci at_keyboard"
 
+make_image "${i386_ieee1275_dir}" i386-ieee1275 "${iso9660_dir}/boot/ofwx86.elf" ""
+
 if test -e "${efi64_dir}" || test -e "${efi32_dir}" || test -e "${ia64_dir}"; then
     efi_dir=`mktemp -d "${TMPDIR:-/tmp}/tmp.XXXXXXXXXX"` || exit 1
     mkdir -p "${efi_dir}/efi/boot"