Signed-off-by: John Paul Adrian Glaubitz <[email protected]>
---
 build/config/ppc64.cfg                       | 97 ++++++++++++++++++++++++++++
 build/config/ppc64/powerpc64.cfg             | 18 ++++++
 build/config/ppc64/powerpc64/cdrom.cfg       |  9 +++
 build/config/ppc64/powerpc64/monolithic.cfg  |  8 +++
 build/config/ppc64/powerpc64/netboot-gtk.cfg | 16 +++++
 build/config/ppc64/powerpc64/netboot.cfg     |  9 +++
 debian/changelog                             |  1 +
 7 files changed, 158 insertions(+)
 create mode 100644 build/config/ppc64.cfg
 create mode 100644 build/config/ppc64/powerpc64.cfg
 create mode 100644 build/config/ppc64/powerpc64/cdrom.cfg
 create mode 100644 build/config/ppc64/powerpc64/monolithic.cfg
 create mode 100644 build/config/ppc64/powerpc64/netboot-gtk.cfg
 create mode 100644 build/config/ppc64/powerpc64/netboot.cfg

diff --git a/build/config/ppc64.cfg b/build/config/ppc64.cfg
new file mode 100644
index 000000000..0637b87dd
--- /dev/null
+++ b/build/config/ppc64.cfg
@@ -0,0 +1,97 @@
+SUBARCH_SUPPORTED = powerpc64
+
+KERNELMAJOR = 2.6
+BASEVERSION = $(LINUX_KERNEL_ABI)
+
+# create the kernels with builtin initrd.
+builtin_initrd: $(TEMP_KERNEL) $(TEMP_INITRD)
+       # temporary hack
+       case $(KERNELMAJOR) in \
+               2.6)    \
+                       for subarch in $(SUBARCHES); do \
+                               rm -f $(DEST)/vmlinuz-$$subarch.initrd; \
+                               mkvmlinuz -v                            \
+                                       -a $$subarch                    \
+                                       -r $(KERNELVERSION)             \
+                                       -k $(TEMP_KERNEL)               \
+                                       -z -i $(TEMP_INITRD)            \
+                                       -d $(TEMP)/lib                  \
+                                       -o $(DEST)/vmlinuz-$$subarch.initrd;    
\
+                       done    \
+                       ;;      \
+               *)      \
+                       echo "Kernel $(KERNELMAJOR) not supported"      \
+                       ;;\
+       esac
+
+# cd content for ppc64, includes yaboot for booting
+# apple ppc64 (newworld) computers
+cd_content_common:
+       mkdir -p $(TEMP_CD_TREE)/$(dir install/$(TYPE))
+
+       cp $(TEMP_KERNEL) $(TEMP_CD_TREE)/install/$(TYPE)-linux
+       ln -f $(TEMP_INITRD) $(TEMP_CD_TREE)/install/$(TYPE)-initrd.gz
+
+       # New-world bootability
+       cp -f boot/ppc64/ofboot.b $(TEMP_CD_TREE)/install/
+       cp -f /usr/lib/yaboot/yaboot $(TEMP_CD_TREE)/install/
+       bootvars-subst MEDIA_TYPE "${MEDIA_TYPE}" \
+               DEBIAN_VERSION "${DEBIAN_VERSION}" \
+               BUILD_DATE "${BUILD_DATE}" \
+               < boot/ppc64/boot.msg > $(TEMP_CD_TREE)/install/boot.msg
+       ramdisk-size-subst $(TEMP_INITRD) \
+               < boot/ppc64/yaboot.conf \
+               | sed 's,\$${TYPE},$(TYPE),g' \
+               > $(TEMP_CD_TREE)/install/yaboot.conf
+       # CHRP bootability
+       mkdir -p $(TEMP_CD_TREE)/etc
+       mkdir -p $(TEMP_CD_TREE)/ppc/chrp
+       cp -f $(TEMP_CD_TREE)/install/yaboot.conf $(TEMP_CD_TREE)/etc
+       cp -f boot/ppc64/bootinfo.txt $(TEMP_CD_TREE)/ppc
+
+# Adds yaboot to netboot dirs.
+netboot_content_common:
+       cp -f /usr/lib/yaboot/yaboot $(DEST)
+       bootvars-subst MEDIA_TYPE "${MEDIA_TYPE}" \
+               DEBIAN_VERSION "${DEBIAN_VERSION}" \
+               BUILD_DATE "${BUILD_DATE}" \
+               < boot/ppc64/boot.msg > $(DEST)/boot.msg
+       ramdisk-size-subst $(TEMP_INITRD) \
+       < boot/ppc64/yaboot.conf.netboot \
+       | sed 's,\$${TYPE},$(TYPE),g' \
+       > $(DEST)/yaboot.conf
+
+# creates a bootable cd image for ppc64
+arch_miniiso_common: cd_content_common
+       genisoimage -r -T --netatalk -chrp-boot -hfs -probe -map 
boot/ppc64/hfs.map -part -no-desktop -hfs-bless $(TEMP_CD_TREE)/install 
-hfs-volid Debian-Installer/PPC64 -o $(TEMP_MINIISO) $(TEMP_CD_TREE)
+
+# creates a bootable HFS filesystem, used for USB sticks
+hd_media_common: $(TEMP_KERNEL) $(TEMP_INITRD)
+       mkdir -p $(dir $(TEMP_BOOT))
+       : | dd of=$(TEMP_BOOT) bs=1024 seek=$(FLOPPY_SIZE)
+       HOME=$(TEMP) hformat -l $(DISK_LABEL) $(TEMP_BOOT)
+       HOME=$(TEMP) hmount $(TEMP_BOOT)
+       HOME=$(TEMP) hcopy -r $(TEMP_KERNEL) :vmlinux
+       HOME=$(TEMP) hcopy -r $(TEMP_INITRD) :initrd.gz
+       cp -a /usr/lib/yaboot/yaboot $(TEMP)/yaboot # used later
+       HOME=$(TEMP) hcopy -r $(TEMP)/yaboot :yaboot
+       HOME=$(TEMP) hattrib -c UNIX -t tbxi :yaboot
+
+       bootvars-subst MEDIA_TYPE "${MEDIA_TYPE}" \
+               DEBIAN_VERSION "${DEBIAN_VERSION}" \
+               BUILD_DATE "${BUILD_DATE}" \
+               < boot/ppc64/boot.msg > $(TEMP)/boot.msg
+       ramdisk-size-subst $(TEMP_INITRD) \
+               < boot/ppc64/yaboot.conf.hd-media \
+               > $(TEMP)/yaboot.conf
+       HOME=$(TEMP) hcopy -r $(TEMP)/boot.msg :boot.msg
+       HOME=$(TEMP) hcopy -r $(TEMP)/yaboot.conf :yaboot.conf
+
+       HOME=$(TEMP) hattrib -b :
+       HOME=$(TEMP) humount
+       rm -f $(TEMP)/.hcwd # clean up after hfsutils
+
+       $(if $(GZIPPED),gzip -v9f $(TEMP_BOOT))
+
+
+arch_tree:
diff --git a/build/config/ppc64/powerpc64.cfg b/build/config/ppc64/powerpc64.cfg
new file mode 100644
index 000000000..05428a139
--- /dev/null
+++ b/build/config/ppc64/powerpc64.cfg
@@ -0,0 +1,18 @@
+MEDIUM_SUPPORTED = cdrom netboot netboot-gtk
+MEDIUM_SUPPORTED_EXTRA = monolithic
+
+# The version of the kernel to use.
+KERNELVERSION = $(BASEVERSION)-powerpc64
+KERNELNAME = vmlinux
+
+SUBARCHES = chrp
+
+cd_content: cd_content_common
+
+netboot_content: netboot_content_common
+
+arch_miniiso: arch_miniiso_common
+
+arch_boot_screens:
+
+arch_boot: arch_boot_initrd
diff --git a/build/config/ppc64/powerpc64/cdrom.cfg 
b/build/config/ppc64/powerpc64/cdrom.cfg
new file mode 100644
index 000000000..886b0af76
--- /dev/null
+++ b/build/config/ppc64/powerpc64/cdrom.cfg
@@ -0,0 +1,9 @@
+MEDIA_TYPE = CD-ROM
+
+# cd booting does not need floppy images on powerpc
+TARGET = $(INITRD) $(KERNEL) builtin_initrd
+EXTRANAME = $(MEDIUM)/
+
+MANIFEST-BOOT = "CDROM image for 64bit Power and PowerPC cpus (except 
pre-power5 iSeries)"
+MANIFEST-INITRD = "initrd for use with 64bit Power and PowerPC cpus (except 
pre-power5 iSeries)"
+MANIFEST-KERNEL = "kernel for use with 64bit Power and PowerPC cpus (except 
pre-power5 iSeries)"
diff --git a/build/config/ppc64/powerpc64/monolithic.cfg 
b/build/config/ppc64/powerpc64/monolithic.cfg
new file mode 100644
index 000000000..727e191a0
--- /dev/null
+++ b/build/config/ppc64/powerpc64/monolithic.cfg
@@ -0,0 +1,8 @@
+MEDIA_TYPE = boot image
+
+TARGET = pkg-lists/standard-udebs pkg-lists/kernel-module-udebs $(INITRD) 
$(KERNEL) $(MINIISO)
+EXTRANAME = $(MEDIUM)/
+
+MANIFEST-INITRD = "initrd for 64bit Power and PowerPC cpus (except pre-power5 
iSeries)"
+MANIFEST-KERNEL = "kernel image for use with 64bit Power and PowerPC cpus 
(except pre-power5 iSeries)"
+MANIFEST-MINIISO = "small bootable CD image for network install on 64bit Power 
and PowerPC machines (except pre-power5 iSeries)"
diff --git a/build/config/ppc64/powerpc64/netboot-gtk.cfg 
b/build/config/ppc64/powerpc64/netboot-gtk.cfg
new file mode 100644
index 000000000..d263cef0b
--- /dev/null
+++ b/build/config/ppc64/powerpc64/netboot-gtk.cfg
@@ -0,0 +1,16 @@
+MEDIA_TYPE = netboot image
+
+TYPE = netboot/gtk
+
+TARGET = $(INITRD) $(KERNEL) $(MINIISO) builtin_initrd
+EXTRANAME = netboot/gtk/
+
+MANIFEST-BOOT = "tftp boot image for 64bit Power and PowerPC cpus (except 
pre-power5 iSeries)"
+MANIFEST-INITRD = "initrd for use with 64bit Power and PowerPC cpus (except 
pre-power5 iSeries)"
+MANIFEST-KERNEL = "kernel for use with 64bit Power and PowerPC cpus (except 
pre-power5 iSeries)"
+
+KEEP_GI_LANGS = 1
+
+# All images that include cdebconf should include symbols needed by these
+# plugins.
+EXTRAUDEBS += cdebconf-gtk-entropy
diff --git a/build/config/ppc64/powerpc64/netboot.cfg 
b/build/config/ppc64/powerpc64/netboot.cfg
new file mode 100644
index 000000000..2d65a9c8d
--- /dev/null
+++ b/build/config/ppc64/powerpc64/netboot.cfg
@@ -0,0 +1,9 @@
+MEDIA_TYPE = netboot image
+
+TARGET = $(INITRD) $(KERNEL) $(MINIISO) builtin_initrd netboot_content
+EXTRANAME = $(MEDIUM)/
+
+MANIFEST-BOOT = "tftp boot image for 64bit Power and PowerPC cpus (except 
pre-power5 iSeries)"
+MANIFEST-INITRD = "initrd for 64bit Power and PowerPC cpus (except pre-power5 
iSeries)"
+MANIFEST-KERNEL = "kernel for 64bit Power and PowerPC cpus (except pre-power5 
iSeries)"
+MANIFEST-MINIISO = "small bootable CD image for powerpc64 netboot"
diff --git a/debian/changelog b/debian/changelog
index afb6d3c13..07c0b11c8 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -38,6 +38,7 @@ debian-installer (20170128) UNRELEASED; urgency=medium
 
   [ John Paul Adrian Glaubitz ]
   * Clone boot configuration files from powerpc for ppc64.
+  * Add ppc64 support based on powerpc configuration.
 
  -- Samuel Thibault <[email protected]>  Sat, 11 Feb 2017 14:20:14 +0100
 
-- 
2.11.0

Reply via email to