Add initial 64-bit ARM (aarch64) support (#1034432)

Signed-off-by: Brian C. Lane <bcl@redhat.com>

Resolves: rhbz#1034432
This commit is contained in:
d.marlin 2013-12-12 16:15:13 -06:00 committed by Brian C. Lane
parent 0d74373fd0
commit 3a5e515d4f
7 changed files with 90 additions and 1 deletions

49
share/aarch64.tmpl Normal file
View File

@ -0,0 +1,49 @@
<%page args="kernels, runtime_img, basearch, outroot, product, isolabel"/>
<%
configdir="tmp/config_files/aarch64"
PXEBOOTDIR="images/pxeboot"
BOOTDIR="boot"
KERNELDIR=PXEBOOTDIR
LIVEDIR="LiveOS"
%>
mkdir ${LIVEDIR}
install ${runtime_img} ${LIVEDIR}/squashfs.img
treeinfo stage2 mainimage ${LIVEDIR}/squashfs.img
## install bootloader and config files
mkdir ${BOOTDIR}
install ${configdir}/boot.msg ${BOOTDIR}
install ${configdir}/grub2-efi.cfg ${BOOTDIR}
## configure bootloader
replace @VERSION@ ${product.version} ${BOOTDIR}/grub2-efi.cfg ${BOOTDIR}/*.msg
replace @PRODUCT@ '${product.name}' ${BOOTDIR}/grub2-efi.cfg ${BOOTDIR}/*.msg
## install kernels
mkdir ${KERNELDIR}
%for kernel in kernels:
## normal aarch64
installkernel images-${basearch} ${kernel.path} ${KERNELDIR}/vmlinuz
installinitrd images-${basearch} ${kernel.initrd.path} ${KERNELDIR}/initrd.img
%if doupgrade:
installupgradeinitrd images-${basearch} ${kernel.upgrade.path} ${KERNELDIR}/upgrade.img
%endif
%endfor
#FIXME: this will need adjusted when we have a real bootloader.
## WHeeeeeeee, EFI.
## We could remove the basearch restriction someday..
<% efiargs=""; efigraft="" %>
%if exists("boot/efi/EFI/*/gcdaa64.efi"):
<%
efiarch = 'AARCH64'
efigraft="EFI/BOOT={0}/EFI/BOOT".format(outroot)
images = ["images/efiboot.img"]
for img in images:
efiargs += " -eltorito-alt-boot -e {0} -no-emul-boot".format(img)
efigraft += " {0}={1}/{0}".format(img,outroot)
%>
<%include file="efi.tmpl" args="configdir=configdir, KERNELDIR=KERNELDIR, efiarch=efiarch, isolabel=isolabel"/>
%endif

View File

@ -0,0 +1,5 @@
splash.lss
- Press the 01<ENTER>07 key to begin the installation process.

View File

@ -0,0 +1,13 @@
#debug --graphics
default=0
splashimage=@SPLASHPATH@
timeout 5
hiddenmenu
title Install @PRODUCT@ @VERSION@
findiso
kernel @KERNELPATH@ @ROOT@ quiet
initrd @INITRDPATH@
title Test this media & install @PRODUCT@ @VERSION@
findiso
kernel @KERNELPATH@ @ROOT@ rd.live.check quiet
initrd @INITRDPATH@

View File

@ -0,0 +1,18 @@
set default="0"
insmod gzio
insmod part_gpt
insmod ext2
insmod gzio
set timeout=5
### END /etc/grub.d/00_header ###
### BEGIN /etc/grub.d/10_linux ###
menuentry 'Install @PRODUCT@ @VERSION@' --class fedora --class gnu-linux --class gnu --class os {
set root='hd0,gpt2'
devicetree @KERNELPATH@/../foundation-v8.dtb
linuxefi @KERNELPATH@ @ROOT@ mem=2G console=ttyAMA0 earlyprintk=pl011,0x1c090000 debug uefi_debug rw
initrdefi @INITRDPATH@
}

View File

@ -21,6 +21,9 @@ installpkg kernel
%endif
## arch-specific packages (bootloaders etc.)
%if basearch == "aarch64":
installpkg grub2-efi grubby
%endif
%if basearch in ("arm", "armhfp"):
installpkg kernel-lpae kernel-tegra
installpkg uboot-tools

View File

@ -50,7 +50,7 @@ from discinfo import DiscInfo
from executils import runcmd, runcmd_output
class ArchData(DataHolder):
lib64_arches = ("x86_64", "ppc64", "s390x", "ia64")
lib64_arches = ("x86_64", "ppc64", "s390x", "ia64", "aarch64")
bcj_arch = dict(i386="x86", x86_64="x86",
ppc="powerpc", ppc64="powerpc",
arm="arm", armhfp="arm")

View File

@ -37,6 +37,7 @@ templatemap = {
'ppc64': 'ppc.tmpl',
's390': 's390.tmpl',
's390x': 's390.tmpl',
'aarch64': 'aarch64.tmpl',
'arm': 'arm.tmpl',
'armhfp': 'arm.tmpl',
}