From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from list by lists.gnu.org with archive (Exim 4.71) id 1WIjH0-0001Dw-6X for mharc-grub-devel@gnu.org; Wed, 26 Feb 2014 13:32:02 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:42677) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WIjGr-00010Y-MI for grub-devel@gnu.org; Wed, 26 Feb 2014 13:32:00 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1WIjGi-00014P-4Z for grub-devel@gnu.org; Wed, 26 Feb 2014 13:31:51 -0500 Received: from e35.co.us.ibm.com ([32.97.110.153]:57133) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WIjGh-00014J-Sg for grub-devel@gnu.org; Wed, 26 Feb 2014 13:31:44 -0500 Received: from /spool/local by e35.co.us.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Wed, 26 Feb 2014 11:31:43 -0700 Received: from d03dlp03.boulder.ibm.com (9.17.202.179) by e35.co.us.ibm.com (192.168.1.135) with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted; Wed, 26 Feb 2014 11:31:41 -0700 Received: from b03cxnp08025.gho.boulder.ibm.com (b03cxnp08025.gho.boulder.ibm.com [9.17.130.17]) by d03dlp03.boulder.ibm.com (Postfix) with ESMTP id 48C0919D8041 for ; Wed, 26 Feb 2014 11:31:39 -0700 (MST) Received: from d03av02.boulder.ibm.com (d03av02.boulder.ibm.com [9.17.195.168]) by b03cxnp08025.gho.boulder.ibm.com (8.13.8/8.13.8/NCO v10.0) with ESMTP id s1QIVeTQ8651206 for ; Wed, 26 Feb 2014 19:31:40 +0100 Received: from d03av02.boulder.ibm.com (localhost [127.0.0.1]) by d03av02.boulder.ibm.com (8.14.4/8.14.4/NCO v10.0 AVout) with ESMTP id s1QIVeSs015060 for ; Wed, 26 Feb 2014 11:31:40 -0700 Received: from ram.oc3035372033.ibm.com.com (sig-9-65-83-23.mts.ibm.com [9.65.83.23]) by d03av02.boulder.ibm.com (8.14.4/8.14.4/NCO v10.0 AVin) with ESMTP id s1QIVZLQ014663; Wed, 26 Feb 2014 11:31:38 -0700 From: Ram Pai To: grub-devel@gnu.org Subject: [RFC PATCH 01/23] Add a new architecture to the build process Date: Wed, 26 Feb 2014 10:31:00 -0800 Message-Id: <1393439482-20341-2-git-send-email-linuxram@us.ibm.com> X-Mailer: git-send-email 1.7.1 In-Reply-To: <1393439482-20341-1-git-send-email-linuxram@us.ibm.com> References: <1393439482-20341-1-git-send-email-linuxram@us.ibm.com> X-TM-AS-MML: disable X-Content-Scanned: Fidelis XPS MAILER x-cbid: 14022618-6688-0000-0000-000007007D94 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.4.x-2.6.x [generic] X-Received-From: 32.97.110.153 Cc: tonyb@au1.ibm.com, anton@au1.ibm.com, linuxram@us.ibm.com, tlfalcon@linux.vnet.ibm.com, tbberry@us.ibm.com X-BeenThere: grub-devel@gnu.org X-Mailman-Version: 2.1.14 Precedence: list Reply-To: The development of GNU GRUB List-Id: The development of GNU GRUB List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 26 Feb 2014 18:32:00 -0000 Add a new architecture to the build process Signed-off-by: Ram Pai Signed-off-by: Tomohiro B Berry Signed-off-by: Thomas Falcon --- Makefile.am | 4 ++++ config.h.in | 4 ++++ configure.ac | 10 +++++++--- gentpl.py | 7 ++++--- grub-core/Makefile.am | 7 +++++++ grub-core/Makefile.core.def | 18 ++++++++++++++++++ include/grub/powerpc64le | 1 + 7 files changed, 45 insertions(+), 6 deletions(-) create mode 120000 include/grub/powerpc64le diff --git a/Makefile.am b/Makefile.am index f02ae0a..8aad803 100644 --- a/Makefile.am +++ b/Makefile.am @@ -383,6 +383,10 @@ if COND_powerpc_ieee1275 BOOTCHECKS = bootcheck-linux-ppc endif +if COND_powerpc64le_ieee1275 +BOOTCHECKS = bootcheck-linux-ppc +endif + EXTRA_DIST += grub-core/tests/boot/kbsd.init-i386.S grub-core/tests/boot/kbsd.init-x86_64.S grub-core/tests/boot/kbsd.spec.txt grub-core/tests/boot/kernel-8086.S grub-core/tests/boot/kernel-i386.S grub-core/tests/boot/kfreebsd-aout.cfg grub-core/tests/boot/kfreebsd.cfg grub-core/tests/boot/kfreebsd.init-i386.S grub-core/tests/boot/kfreebsd.init-x86_64.S grub-core/tests/boot/knetbsd.cfg grub-core/tests/boot/kopenbsd.cfg grub-core/tests/boot/kopenbsdlabel.txt grub-core/tests/boot/linux16.cfg grub-core/tests/boot/linux.cfg grub-core/tests/boot/linux.init-i386.S grub-core/tests/boot/linux.init-mips.S grub-core/tests/boot/linux.init-ppc.S grub-core/tests/boot/linux.init-x86_64.S grub-core/tests/boot/linux-ppc.cfg grub-core/tests/boot/multiboot2.cfg grub-core/tests/boot/multiboot.cfg grub-core/tests/boot/ntldr.cfg grub-core/tests/boot/pc-chainloader.cfg grub-core/tests/boot/qemu-shutdown-x86.S .PHONY: bootcheck-linux-i386 bootcheck-linux-x86_64 \ diff --git a/config.h.in b/config.h.in index 4b63014..1d71e35 100644 --- a/config.h.in +++ b/config.h.in @@ -6,6 +6,10 @@ #define __powerpc__ 1 #endif +#if defined(__PPC64__) && defined(__LITTLE_ENDIAN__) +#define __powerpc64le__ 1 +#endif + #define GCRYPT_NO_DEPRECATED 1 /* Define to 1 to enable disk cache statistics. */ diff --git a/configure.ac b/configure.ac index 8888c2f..09e9dfb 100644 --- a/configure.ac +++ b/configure.ac @@ -119,6 +119,7 @@ if test "x$with_platform" = x; then x86_64-*) platform=pc ;; powerpc-*) platform=ieee1275 ;; powerpc64-*) platform=ieee1275 ;; + powerpc64le-*) platform=ieee1275 ;; sparc64-*) platform=ieee1275 ;; mipsel-*) platform=loongson ;; mips-*) platform=arc ;; @@ -137,6 +138,7 @@ case "$target_cpu"-"$platform" in x86_64-xen) ;; x86_64-*) target_cpu=i386 ;; powerpc64-ieee1275) target_cpu=powerpc ;; + powerpc64le-ieee1275) target_cpu=powerpc64le ;; esac # Check if the platform is supported, make final adjustments. @@ -152,6 +154,7 @@ case "$target_cpu"-"$platform" in i386-ieee1275) ;; i386-qemu) ;; powerpc-ieee1275) ;; + powerpc64le-ieee1275) ;; sparc64-ieee1275) ;; ia64-efi) ;; mips-qemu_mips) ;; @@ -173,7 +176,7 @@ esac if test x$platform != xemu ; then case "$target_cpu" in i386 | powerpc) target_m32=1 ;; - x86_64 | sparc64) target_m64=1 ;; + x86_64 | sparc64 | powerpc64le) target_m64=1 ;; esac fi @@ -557,7 +560,7 @@ if test "x$grub_cv_cc_target_clang" = xyes && ( test "x$target_cpu" = xi386 \ TARGET_CCASFLAGS="$TARGET_CCASFLAGS -no-integrated-as" fi -if test "x$grub_cv_cc_target_clang" = xyes && test "x$target_cpu" = xpowerpc; then +if test "x$grub_cv_cc_target_clang" = xyes && (test "x$target_cpu" = xpowerpc || test "x$target_cpu" = xpowerpc64le ); then AC_CACHE_CHECK([if clang can handle ame instruction], [grub_cv_cc_target_clang_ame] [ CFLAGS="$TARGET_CFLAGS" @@ -1428,7 +1431,7 @@ if test x"$enable_build_grub_mkfont" = xno ; then FONT_SOURCE= fi -if test "x$FONT_SOURCE" = x && ( test "x$platform" = xqemu || test "x$platform" = xloongson || test "x$platform" = xqemu_mips || test "x$target_cpu"-"$platform" = xpowerpc-ieee1275 || test "x$platform" = xcoreboot ); then +if test "x$FONT_SOURCE" = x && ( test "x$platform" = xqemu || test "x$platform" = xloongson || test "x$platform" = xqemu_mips || test "x$target_cpu"-"$platform" = xpowerpc-ieee1275 || test "x$target_cpu"-"$platform" = xpowerpc64le-ieee1275 || test "x$platform" = xcoreboot ); then if test x"$grub_build_mkfont_excuse" = x ; then AC_MSG_ERROR([qemu, powerpc-ieee1275, coreboot and loongson ports need unifont]) else @@ -1671,6 +1674,7 @@ AM_CONDITIONAL([COND_mips_arc], [test "(" x$target_cpu = xmips -o x$target_cpu = AM_CONDITIONAL([COND_sparc64_ieee1275], [test x$target_cpu = xsparc64 -a x$platform = xieee1275]) AM_CONDITIONAL([COND_sparc64_emu], [test x$target_cpu = xsparc64 -a x$platform = xemu]) AM_CONDITIONAL([COND_powerpc_ieee1275], [test x$target_cpu = xpowerpc -a x$platform = xieee1275]) +AM_CONDITIONAL([COND_powerpc64le_ieee1275], [test x$target_cpu = xpowerpc64le -a x$platform = xieee1275]) AM_CONDITIONAL([COND_mips], [test x$target_cpu = xmips -o x$target_cpu = xmipsel]) AM_CONDITIONAL([COND_mipsel], [test x$target_cpu = xmipsel]) AM_CONDITIONAL([COND_mipseb], [test x$target_cpu = xmips]) diff --git a/gentpl.py b/gentpl.py index bdcae1a..744bed0 100644 --- a/gentpl.py +++ b/gentpl.py @@ -30,7 +30,7 @@ GRUB_PLATFORMS = [ "emu", "i386_pc", "i386_efi", "i386_qemu", "i386_coreboot", "i386_multiboot", "i386_ieee1275", "x86_64_efi", "i386_xen", "x86_64_xen", "mips_loongson", "sparc64_ieee1275", - "powerpc_ieee1275", "mips_arc", "ia64_efi", + "powerpc_ieee1275", "powerpc64le_ieee1275", "mips_arc", "ia64_efi", "mips_qemu_mips", "arm_uboot", "arm_efi", "arm64_efi" ] GROUPS = {} @@ -44,12 +44,13 @@ GROUPS["x86"] = GROUPS["i386"] + GROUPS["x86_64"] GROUPS["mips"] = [ "mips_loongson", "mips_qemu_mips", "mips_arc" ] GROUPS["sparc64"] = [ "sparc64_ieee1275" ] GROUPS["powerpc"] = [ "powerpc_ieee1275" ] +GROUPS["powerpc64le"] = [ "powerpc64le_ieee1275" ] GROUPS["arm"] = [ "arm_uboot", "arm_efi" ] GROUPS["arm64"] = [ "arm64_efi" ] # Groups based on firmware GROUPS["efi"] = [ "i386_efi", "x86_64_efi", "ia64_efi", "arm_efi", "arm64_efi" ] -GROUPS["ieee1275"] = [ "i386_ieee1275", "sparc64_ieee1275", "powerpc_ieee1275" ] +GROUPS["ieee1275"] = [ "i386_ieee1275", "sparc64_ieee1275", "powerpc_ieee1275", "powerpc64le_ieee1275" ] GROUPS["uboot"] = [ "arm_uboot" ] GROUPS["xen"] = [ "i386_xen", "x86_64_xen" ] @@ -58,7 +59,7 @@ GROUPS["noemu"] = GRUB_PLATFORMS[:]; GROUPS["noemu"].remove("emu") # Groups based on hardware features GROUPS["cmos"] = GROUPS["x86"][:] + ["mips_loongson", "mips_qemu_mips", - "sparc64_ieee1275", "powerpc_ieee1275"] + "sparc64_ieee1275", "powerpc_ieee1275", "powerpc64le_ieee1275" ] GROUPS["cmos"].remove("i386_efi"); GROUPS["cmos"].remove("x86_64_efi"); GROUPS["pci"] = GROUPS["x86"] + ["mips_loongson"] GROUPS["usb"] = GROUPS["pci"] diff --git a/grub-core/Makefile.am b/grub-core/Makefile.am index 5c087c8..d9034c1 100644 --- a/grub-core/Makefile.am +++ b/grub-core/Makefile.am @@ -210,6 +210,13 @@ KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/extcmd.h KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/lib/arg.h endif +if COND_powerpc64le_ieee1275 +KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/ieee1275/ieee1275.h +KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/terminfo.h +KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/extcmd.h +KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/lib/arg.h +endif + if COND_sparc64_ieee1275 KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/ieee1275/ieee1275.h KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/sparc64/ieee1275/ieee1275.h diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def index 42443bc..c6e70bb 100644 --- a/grub-core/Makefile.core.def +++ b/grub-core/Makefile.core.def @@ -35,6 +35,7 @@ script = { name = grub.chrp; common = boot/powerpc/grub.chrp.in; enable = powerpc_ieee1275; + enable = powerpc64le_ieee1275; }; script = { @@ -42,6 +43,7 @@ script = { name = bootinfo.txt; common = boot/powerpc/bootinfo.txt.in; enable = powerpc_ieee1275; + enable = powerpc64le_ieee1275; }; kernel = { @@ -87,6 +89,7 @@ kernel = { mips_loongson_ldflags = '-Wl,-Ttext,0x80200000'; powerpc_ieee1275_ldflags = '-Wl,-Ttext,0x200000'; + powerpc64le_ieee1275_ldflags = '-Wl,-Ttext,0x200000'; sparc64_ieee1275_ldflags = '-Wl,-Ttext,0x4400'; mips_arc_ldflags = '-Wl,-Ttext,$(TARGET_LINK_ADDR)'; mips_qemu_mips_ldflags = '-Wl,-Ttext,0x80200000'; @@ -110,6 +113,7 @@ kernel = { mips_startup = kern/mips/startup.S; sparc64_ieee1275_startup = kern/sparc64/ieee1275/crt0.S; powerpc_ieee1275_startup = kern/powerpc/ieee1275/startup.S; + powerpc64le_ieee1275_startup = kern/powerpc/ieee1275/startup.S; arm_uboot_startup = kern/arm/uboot/startup.S; arm_efi_startup = kern/arm/efi/startup.S; arm64_efi_startup = kern/arm64/efi/startup.S; @@ -253,6 +257,9 @@ kernel = { powerpc_ieee1275 = kern/powerpc/cache.S; powerpc_ieee1275 = kern/powerpc/dl.c; + powerpc64le_ieee1275 = kern/powerpc/cache.S; + powerpc64le_ieee1275 = kern/powerpc/dl.c; + sparc64_ieee1275 = kern/sparc64/cache.S; sparc64_ieee1275 = kern/sparc64/dl.c; sparc64_ieee1275 = kern/sparc64/ieee1275/ieee1275.c; @@ -754,6 +761,7 @@ module = { enable = emu; enable = sparc64_ieee1275; enable = powerpc_ieee1275; + enable = powerpc64le_ieee1275; enable = mips_arc; enable = ia64_efi; enable = arm_efi; @@ -855,6 +863,7 @@ module = { arm_efi = lib/efi/reboot.c; arm64_efi = lib/efi/reboot.c; powerpc_ieee1275 = lib/ieee1275/reboot.c; + powerpc64le_ieee1275 = lib/ieee1275/reboot.c; sparc64_ieee1275 = lib/ieee1275/reboot.c; mips_arc = lib/mips/arc/reboot.c; mips_loongson = lib/mips/loongson/reboot.c; @@ -1027,12 +1036,14 @@ module = { ieee1275 = commands/ieee1275/suspend.c; enable = i386_ieee1275; enable = powerpc_ieee1275; + enable = powerpc64le_ieee1275; }; module = { name = escc; ieee1275 = term/ieee1275/escc.c; enable = powerpc_ieee1275; + enable = powerpc64le_ieee1275; }; module = { @@ -1537,6 +1548,8 @@ module = { mips = lib/mips/relocator.c; powerpc = lib/powerpc/relocator_asm.S; powerpc = lib/powerpc/relocator.c; + powerpc64le = lib/powerpc/relocator_asm.S; + powerpc64le = lib/powerpc/relocator.c; xen = lib/xen/relocator.c; i386_xen = lib/i386/xen/relocator.S; x86_64_xen = lib/x86_64/xen/relocator.S; @@ -1548,6 +1561,7 @@ module = { enable = mips; enable = powerpc; + enable = powerpc64le; enable = x86; enable = xen; }; @@ -1559,8 +1573,10 @@ module = { uboot = lib/uboot/datetime.c; sparc64_ieee1275 = lib/ieee1275/datetime.c; powerpc_ieee1275 = lib/ieee1275/datetime.c; + powerpc64le_ieee1275 = lib/ieee1275/datetime.c; sparc64_ieee1275 = lib/ieee1275/cmos.c; powerpc_ieee1275 = lib/ieee1275/cmos.c; + powerpc64le_ieee1275 = lib/ieee1275/cmos.c; xen = lib/xen/datetime.c; xen_cppflags = '$(CPPFLAGS_XEN)'; @@ -1669,6 +1685,7 @@ module = { i386_pc = lib/i386/pc/vesa_modes_table.c; mips = loader/mips/linux.c; powerpc_ieee1275 = loader/powerpc/ieee1275/linux.c; + powerpc64le_ieee1275 = loader/powerpc/ieee1275/linux.c; sparc64_ieee1275 = loader/sparc64/ieee1275/linux.c; ia64_efi = loader/ia64/efi/linux.c; arm = loader/arm/linux.c; @@ -2057,6 +2074,7 @@ module = { name = ieee1275_fb; ieee1275 = video/ieee1275.c; enable = powerpc_ieee1275; + enable = powerpc64le_ieee1275; }; module = { diff --git a/include/grub/powerpc64le b/include/grub/powerpc64le new file mode 120000 index 0000000..9a47ca9 --- /dev/null +++ b/include/grub/powerpc64le @@ -0,0 +1 @@ +powerpc \ No newline at end of file -- 1.8.5.3