PowerPC: Fix 'c' key booting of CD on Apple hardware

* It seems like not all NewWorld OpenFirmware
  versions support booting from CHRP scripts.
* Move Haiku elf bootloader into bootloader.b
  type tbxi. As it is in the blessed directory
  it is picked up by cd:,\\:tbxi
* Adjust bootinfo.txt to point to bootloader
  &device; ensures that the image can be started
  regardless of source media
* Adjust bootinfo.txt to use \\ as base. \\ is an
  alias for the blessed folder on the boot media
* Rename ofboot.b to ofboot.chrp to avoid confusion
* Add .txt, .html to hfs.map to identify them properly
* The haiku-boot-cd-ppc.iso now boots on my G3 PowerBook
  by holding the 'c' key at startup. The boot menu colors
  are incorrect (white background) but it is a step in
  the right direction.
* New chrp script. Blank icon for the moment, if someone
  could figure out how to make a chrp icon that would be
  neat.
* Tested working on qemu and real hardware. Need to test
  on a more modern PowerPC Mac however.
This commit is contained in:
Alexander von Gluck IV
2013-06-04 22:08:25 -05:00
parent 35a2e0e615
commit 1072a5e777
5 changed files with 197 additions and 37 deletions
+14 -19
View File
@@ -1477,30 +1477,25 @@ actions BuildCDBootPPCImage1 bind MAPS
{
$(RM) $(<)
mkdir -p $(HAIKU_OUTPUT_DIR)/cd/ppc
cp $(>) $(HAIKU_OUTPUT_DIR)/cd/ppc/
mkdir -p $(HAIKU_OUTPUT_DIR)/cd/boot
# CHRP Boot script
cp $(>[3]) $(HAIKU_OUTPUT_DIR)/cd/ppc/bootinfo.txt
cp $(>[1]) $(HAIKU_OUTPUT_DIR)/cd/ofwboot.elf
# Haiku Bootloaders (Old World Mac + PReP partition)
cp $(>[2]) $(HAIKU_OUTPUT_DIR)/cd/ofwboot.xcf
#mkisofs -r -U -chrp-boot -V bootimg -o $(<) $(>[1]) $(>[2-])
#mkisofs -hfs -r -U -chrp-boot -part -map $(MAPS) -no-desktop \
# -hfs-volid bootimg -V bootimg -prep-boot $(>[1]:D=) -o $(<) $(>[1])
# - $(>[2-])
#mkisofs -v -hfs -part -map $(MAPS) -no-desktop -hfs-volid bootimg \
# -V bootimg -hfs-bless $(HAIKU_OUTPUT_DIR)/cd/ppc -r -o $(<) $(>[1]) \
# $(>[2-]) $(HAIKU_OUTPUT_DIR)/cd
#mkisofs -r -U -chrp-boot -V bootimg -prep-boot $(>[1]:D=) -o $(<) $(>[1]) \
# $(>[2-])
#mkisofs -r -U -V bootimg -prep-boot $(>[1]:D=) -o $(<) $(>[1]) $(>[2-])
# $(HAIKU_OUTPUT_DIR)/cd
# -hfs -hfs-bless .
# Haiku Bootloader (New World)
cp $(>[1]) $(HAIKU_OUTPUT_DIR)/cd/ofwboot.elf
cp $(>[1]) $(HAIKU_OUTPUT_DIR)/cd/boot/bootloader.b
# Extras (readme files, etc)
cp $(>[4]) $(HAIKU_OUTPUT_DIR)/cd/
mkisofs -v -hfs -part -map $(MAPS) -no-desktop -hfs-volid bootimg \
-V bootimg -hfs-bless $(HAIKU_OUTPUT_DIR)/cd/ppc -prep-boot \
ppc/$(>[2]:D=) -r -o $(<) $(HAIKU_OUTPUT_DIR)/cd \
-V bootimg -hfs-bless $(HAIKU_OUTPUT_DIR)/cd/boot -prep-boot \
ofwboot.xcf -r -o $(<) $(HAIKU_OUTPUT_DIR)/cd \
|| \
genisoimage -v -hfs -part -map $(MAPS) -no-desktop -hfs-volid bootimg \
-V bootimg -hfs-bless $(HAIKU_OUTPUT_DIR)/cd/ppc -prep-boot \
ppc/$(>[2]:D=) -r -o $(<) $(HAIKU_OUTPUT_DIR)/cd
#$(RM) -R $(HAIKU_OUTPUT_DIR)/cd
-V bootimg -hfs-bless $(HAIKU_OUTPUT_DIR)/cd/boot -prep-boot \
ofwboot.xcf -r -o $(<) $(HAIKU_OUTPUT_DIR)/cd
$(RM) -R $(HAIKU_OUTPUT_DIR)/cd
}