From patchwork Tue Mar 7 15:50:20 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: nl6720 via arch-releng X-Patchwork-Id: 60 Return-Path: Delivered-To: patchwork@archlinux.org Received: from nymeria.archlinux.org by nymeria.archlinux.org (Dovecot) with LMTP id xO4eIsjWvljQFQAAtiB/HQ for ; Tue, 07 Mar 2017 16:50:32 +0100 Received: from nymeria.archlinux.org (localhost.localdomain [127.0.0.1]) by nymeria.archlinux.org (Postfix) with ESMTP id A58AF40159; Tue, 7 Mar 2017 16:50:30 +0100 (CET) X-Spam-Checker-Version: SpamAssassin 3.4.1 (2015-04-28) on nymeria.archlinux.org X-Spam-Level: X-Spam-Status: No, score=-4.3 required=2.5 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,RCVD_IN_DNSWL_MED shortcircuit=no autolearn=unavailable autolearn_force=no version=3.4.1 Received: from luna.archlinux.org (luna.archlinux.org [IPv6:2a01:4f8:160:3033::2]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by nymeria.archlinux.org (Postfix) with ESMTPS; Tue, 7 Mar 2017 16:50:30 +0100 (CET) Received: from luna.archlinux.org (luna.archlinux.org [127.0.0.1]) by luna.archlinux.org (Postfix) with ESMTP id 6A5D92B4DB; Tue, 7 Mar 2017 15:50:30 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=archlinux.org; s=luna2; t=1488901830; bh=Xka2tXp9QLJLqr+7l5TGUhjci46dxr9HPtPHXagq5Oo=; h=To:Date:Subject:List-Id:List-Unsubscribe:List-Archive:List-Post: List-Help:List-Subscribe:From:Reply-To:Cc; b=H5x2SqDD9sf6bmQ8hrMio2de32hweUvdFg9pSTob8PbZ9XFVXAMRmUzhWDKWPJDhE 0hW4u9KL/xqsDeMHQqs+sYO7h9xmQfsGi7mDY84P2uaxOyewGfDmTtJl2FvsHplNRL z2H+s6O1uYUaGM+Ip9NMCbN5kwCOTYQfNLIta+eLZBkMxANMb+JFb974gS3EQXESGW 8V2nAGqgNDYUwV/OXxTZWOtw3TYkmR2y8YADjwQIU3PBoqAwZ9GoPK04YbzzEDanag GX6Gp3VX7oIH62AQETMO3As3SkT6Z2E2Kk2HFH/5yZe0F6ICfTDQRU81Ek7dtJmEBo bhf/qKktiJ2an78v+eir5oBUBYToWbDdnUUVCc/jEd+DQaAus2yea1Bo192wZcHa8/ fyqOd8XUkX+CeATxyaHr+6w86mu5qc+XJy/BsP29IBt+BrPWAh6vBNrbDtMEb3B9bu KOUzoQUkrIEVBcQrKqILFkQtuFMsYIywpUGm0MP8fulAnj759ZCmf9yHRcswfw4oio 6gzrYbB1P9lK2iNKGj/8Z/UNQ5xal70QTW0y0aPWDvh/xgZ+jH7yEv0CBvD9L6YwFk hS+BggR5mxN69wgTzkw3Lq/f6hsjHaqbbGP/GsBj3Xfon/VQ6JjYcQg+eOzOfnK00x bTsxwJGlRUp5pAnFfgTpbmV0= Received: from luna.archlinux.org (luna.archlinux.org [127.0.0.1]) by luna.archlinux.org (Postfix) with ESMTP id B19602B246 for ; Tue, 7 Mar 2017 15:50:28 +0000 (UTC) Received: from nymeria.archlinux.org (nymeria.archlinux.org [89.238.67.251]) by luna.archlinux.org (Postfix) with ESMTPS for ; Tue, 7 Mar 2017 15:50:28 +0000 (UTC) Received: from nymeria.archlinux.org (localhost.localdomain [127.0.0.1]) by nymeria.archlinux.org (Postfix) with ESMTP id 9AD5340159 for ; Tue, 7 Mar 2017 16:50:25 +0100 (CET) Received: from mail-qk0-x242.google.com (mail-qk0-x242.google.com [IPv6:2607:f8b0:400d:c09::242]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by nymeria.archlinux.org (Postfix) with ESMTPS for ; Tue, 7 Mar 2017 16:50:25 +0100 (CET) Received: by mail-qk0-x242.google.com with SMTP id v125so1889034qkh.1 for ; Tue, 07 Mar 2017 07:50:25 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=y5bTU1ixHCYWfLPqIW/JdE91oRkbvwhUDFayVmkYHtY=; b=lXTgdUp6guy8Xu48clIAEiUeVPczEN3PTqk05TSejzEDGoWO0XiwO1GLtB97lKMEG8 AgGWq0Un3RRGHO0UUTyvDEEQ532JrdQmGk8I4ZjonP5FtU06gZ6MSG3D95HkXhU8Ak00 GUSWEPJyh7l5PtZpNeRcJB1cVpy6rH67Gbtmj6VA/qztWwEtQ9uHxk/l5JJf37C39UvQ 72+rqAqxifw/Mh0XapHHZ6ecrWmKnws8OatyDVcgznfIMj6x5+j6R2IHJdFOyZ+uiiyW T5WcuCc1gzt0lGsvBhGmykAwDe2WAwaUiRAjgH42IPoWpwFN9suFgMMbt5mAkQnAhz/x Od1g== X-Gm-Message-State: AFeK/H1EMFB2/zulyEXXg2L2tV7bGRRoe4PeJ5+8QA+UAk/XEjKknG/QQf3ulkTqBBFZ+Q== X-Received: by 10.55.131.2 with SMTP id f2mr1202728qkd.227.1488901823951; Tue, 07 Mar 2017 07:50:23 -0800 (PST) Received: from localhost (host154.190-138-217.telecom.net.ar. [190.138.217.154]) by smtp.gmail.com with ESMTPSA id z196sm256143qkb.11.2017.03.07.07.50.22 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Tue, 07 Mar 2017 07:50:23 -0800 (PST) To: arch-releng@archlinux.org Date: Tue, 7 Mar 2017 12:50:20 -0300 Message-Id: <20170307155020.2204-1-vmlinuz386@gmail.com> X-Mailer: git-send-email 2.12.0 Subject: [arch-releng] [RFC][PATCH][v2] [configs/releng] Add 32-bit EFI support X-BeenThere: arch-releng@archlinux.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Arch Linux Release Engineering List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , From: Gerardo Exequiel Pozzi via arch-releng Reply-To: Arch Linux Release Engineering Cc: Gerardo Exequiel Pozzi Errors-To: arch-releng-bounces@archlinux.org Sender: "arch-releng" X-UID: 152 Status: X-Keywords: Content-Length: 4313 Support booting 64-bit Linux, from 32-bit EFI firmware. Only tested on qemu with ovmf, does not work at all. cdrom mode: qemu stop with bad instruction address hybrid mode: qemu just freeze at tianocore logo with a upper pixed dot. --- configs/releng/build.sh | 24 ++++++++++++++++++++++++ configs/releng/efiboot/syslinux/archiso-cd.cfg | 7 +++++++ configs/releng/efiboot/syslinux/archiso-usb.cfg | 7 +++++++ configs/releng/efiboot/syslinux/syslinux.cfg | 6 ++++++ 4 files changed, 44 insertions(+) create mode 100644 configs/releng/efiboot/syslinux/archiso-cd.cfg create mode 100644 configs/releng/efiboot/syslinux/archiso-usb.cfg create mode 100644 configs/releng/efiboot/syslinux/syslinux.cfg diff --git a/configs/releng/build.sh b/configs/releng/build.sh index 72b1e3f..17b929a 100755 --- a/configs/releng/build.sh +++ b/configs/releng/build.sh @@ -164,6 +164,18 @@ make_efi() { curl -o ${work_dir}/iso/EFI/shellx64_v2.efi https://raw.githubusercontent.com/tianocore/edk2/master/ShellBinPkg/UefiShell/X64/Shell.efi # EFI Shell 1.0 for non UEFI 2.3+ curl -o ${work_dir}/iso/EFI/shellx64_v1.efi https://raw.githubusercontent.com/tianocore/edk2/master/EdkShellBinPkg/FullShell/X64/Shell_Full.efi + + cp ${work_dir}/x86_64/airootfs/usr/lib/syslinux/efi32/syslinux.efi ${work_dir}/iso/EFI/boot/bootia32.efi + cp ${work_dir}/x86_64/airootfs/usr/lib/syslinux/efi32/ldlinux.e32 ${work_dir}/iso/EFI/boot/ + cp ${script_path}/efiboot/syslinux/syslinux.cfg ${work_dir}/iso/EFI/boot/ + + mkdir ${work_dir}/iso/EFI/syslinux + cp ${work_dir}/x86_64/airootfs/usr/lib/syslinux/efi32/libutil.c32 ${work_dir}/iso/EFI/syslinux/ + cp ${work_dir}/x86_64/airootfs/usr/lib/syslinux/efi32/menu.c32 ${work_dir}/iso/EFI/syslinux/ + + sed "s|%ARCHISO_LABEL%|${iso_label}|g; + s|%INSTALL_DIR%|${install_dir}|g" \ + ${script_path}/efiboot/syslinux/archiso-usb.cfg > ${work_dir}/iso/EFI/syslinux/archiso.cfg } # Prepare efiboot.img::/EFI for "El Torito" EFI boot mode @@ -199,6 +211,18 @@ make_efiboot() { cp ${work_dir}/iso/EFI/shellx64_v2.efi ${work_dir}/efiboot/EFI/ cp ${work_dir}/iso/EFI/shellx64_v1.efi ${work_dir}/efiboot/EFI/ + cp ${work_dir}/x86_64/airootfs/usr/lib/syslinux/efi32/syslinux.efi ${work_dir}/efiboot/EFI/boot/bootia32.efi + cp ${work_dir}/x86_64/airootfs/usr/lib/syslinux/efi32/ldlinux.e32 ${work_dir}/efiboot/EFI/boot/ + cp ${script_path}/efiboot/syslinux/syslinux.cfg ${work_dir}/efiboot/EFI/boot/ + + mkdir ${work_dir}/efiboot/EFI/syslinux + cp ${work_dir}/x86_64/airootfs/usr/lib/syslinux/efi32/libutil.c32 ${work_dir}/efiboot/EFI/syslinux/ + cp ${work_dir}/x86_64/airootfs/usr/lib/syslinux/efi32/menu.c32 ${work_dir}/efiboot/EFI/syslinux/ + + sed "s|%ARCHISO_LABEL%|${iso_label}|g; + s|%INSTALL_DIR%|${install_dir}|g" \ + ${script_path}/efiboot/syslinux/archiso-cd.cfg > ${work_dir}/efiboot/EFI/syslinux/archiso.cfg + umount -d ${work_dir}/efiboot } diff --git a/configs/releng/efiboot/syslinux/archiso-cd.cfg b/configs/releng/efiboot/syslinux/archiso-cd.cfg new file mode 100644 index 0000000..aebe289 --- /dev/null +++ b/configs/releng/efiboot/syslinux/archiso-cd.cfg @@ -0,0 +1,7 @@ +UI menu.c32 + +LABEL arch64 +MENU LABEL Boot Arch Linux (x86_64) +LINUX /EFI/archiso/vmlinuz +INITRD /EFI/archiso/intel_ucode.img,/EFI/archiso/archiso.img +APPEND archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL% diff --git a/configs/releng/efiboot/syslinux/archiso-usb.cfg b/configs/releng/efiboot/syslinux/archiso-usb.cfg new file mode 100644 index 0000000..03df5ca --- /dev/null +++ b/configs/releng/efiboot/syslinux/archiso-usb.cfg @@ -0,0 +1,7 @@ +UI menu.c32 + +LABEL arch64 +MENU LABEL Boot Arch Linux (x86_64) +LINUX /%INSTALL_DIR%/boot/x86_64/vmlinuz +INITRD /%INSTALL_DIR%/boot/intel_ucode.img,/%INSTALL_DIR%/boot/x86_64/archiso.img +APPEND archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL% diff --git a/configs/releng/efiboot/syslinux/syslinux.cfg b/configs/releng/efiboot/syslinux/syslinux.cfg new file mode 100644 index 0000000..77b6407 --- /dev/null +++ b/configs/releng/efiboot/syslinux/syslinux.cfg @@ -0,0 +1,6 @@ +PATH /EFI/syslinux/ +DEFAULT loadconfig + +LABEL loadconfig + CONFIG /EFI/syslinux/archiso.cfg + APPEND /EFI/