From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=2607:f8b0:4001:c06::243; helo=mail-io0-x243.google.com; envelope-from=ard.biesheuvel@linaro.org; receiver=edk2-devel@lists.01.org Received: from mail-io0-x243.google.com (mail-io0-x243.google.com [IPv6:2607:f8b0:4001:c06::243]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id F31202222C23D for ; Fri, 26 Jan 2018 07:14:31 -0800 (PST) Received: by mail-io0-x243.google.com with SMTP id 72so756281iom.10 for ; Fri, 26 Jan 2018 07:20:02 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=3S848xV5k7CbW79BMXrhtqYPRQikNQ7USJuarHZHojA=; b=Y/BgnMshfXqmM24DxCmEk94oVj02hR7VGZ2bq3heL9P5r9mzpW0dZVqWNem6hBdaPX Z3HnRTyyuFYX9DRnfd22o0PZtD/EG+MRkJXVk21nFA/SskJB398d4c4bx0wJB6h4W6sl vT3VcU/RKHk31i5TKU87YRMwCEVfT4xa/X6HQ= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=3S848xV5k7CbW79BMXrhtqYPRQikNQ7USJuarHZHojA=; b=qWXWO2HRhL4JDQURma1XL0sv52Hs7hXeH3S40ZtGCHi9HQREER12buLS52bw+EugF+ 4FTOunaM3vgQQHcpSgiG0UhEBCGS2tBsbaojh5Cf2eoqlppGCSS3D7Y6+rWtNYyl/vTq w3OGWqBi6GMnbP8le+Gx/TNpm0vYnukQDtBg2EGaiYaZgzrVw6a8Lm5zZH0kTCF3dkBq 6vjVDC49fTh0+QlYh3+bB2Kf5t/FPcO5L0x53Rkp486q7LaipTLt7M8OvN4oedQbBPgk z6+lNKIv23NIxg0B8HU2Oa7Cmn36iCsAMcYqktuWzVokCeCmwAUi6NDmXXq1guhwrmw9 QbvA== X-Gm-Message-State: AKwxytdzaoi6xQGlqtirFfjchtp5vZgqo7+dL7QQHl+wK/kN3JiHGA6a jApIByeoZchQQ382KJjxqDTKvHq8gSy4v2jHaHj/bQ== X-Google-Smtp-Source: AH8x227FOEEi6sV4ghGOkel9vsMpWd/H2DvogzXlIWFwloKx2fkpXVDlw8rP9DrkCrmR3qZG3peoGWrFv5xxvVHT5jQ= X-Received: by 10.107.25.195 with SMTP id 186mr2518511ioz.200.1516980001337; Fri, 26 Jan 2018 07:20:01 -0800 (PST) MIME-Version: 1.0 Received: by 10.107.112.13 with HTTP; Fri, 26 Jan 2018 07:20:00 -0800 (PST) In-Reply-To: <4A89E2EF3DFEDB4C8BFDE51014F606A14E1B8017@SHSMSX104.ccr.corp.intel.com> References: <20180112133331.7776-1-pete@akeo.ie> <4A89E2EF3DFEDB4C8BFDE51014F606A14E1AC788@SHSMSX104.ccr.corp.intel.com> <281c2328-6bba-fd80-0ae8-b4de0ce668b2@akeo.ie> <4A89E2EF3DFEDB4C8BFDE51014F606A14E1B8017@SHSMSX104.ccr.corp.intel.com> From: Ard Biesheuvel Date: Fri, 26 Jan 2018 15:20:00 +0000 Message-ID: To: "Gao, Liming" Cc: Pete Batard , "edk2-devel@lists.01.org" , "eugene@hp.com" Subject: Re: [PATCH v5 0/6] Add ARM support for VS2017 X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 26 Jan 2018 15:14:32 -0000 Content-Type: text/plain; charset="UTF-8" On 26 January 2018 at 15:05, Gao, Liming wrote: > After the change in ArmPkg is reviewed, I will help push this patch serial. > That change is Reviewed-by: Ard Biesheuvel Thanks. >> -----Original Message----- >> From: Pete Batard [mailto:pete@akeo.ie] >> Sent: Thursday, January 25, 2018 7:32 PM >> To: Gao, Liming ; edk2-devel@lists.01.org >> Cc: ard.biesheuvel@linaro.org; eugene@hp.com >> Subject: Re: [PATCH v5 0/6] Add ARM support for VS2017 >> >> Thanks Liming. >> >> From the way you framed your comment, I'm not completely sure if >> there's action still needed on my side... >> >> Do I actually need to resubmit a patch set with "Reviewed By"? >> Or, now that each patch should have flagged as reviewed, are we simply >> supposed to wait for formal integration? >> >> Regards, >> >> /Pete >> >> On 2018.01.25 10:27, Gao, Liming wrote: >> > Pete: >> > The changes in BaseTools and MdePkg are good to me. You can add my R-B. >> > >> >> -----Original Message----- >> >> From: Pete Batard [mailto:pete@akeo.ie] >> >> Sent: Friday, January 12, 2018 9:33 PM >> >> To: edk2-devel@lists.01.org >> >> Cc: Gao, Liming ; ard.biesheuvel@linaro.org; >> >> eugene@hp.com >> >> Subject: [PATCH v5 0/6] Add ARM support for VS2017 >> >> >> >> (Same as v4, except for the AREA names where we replaced the RVCT macros, >> >> in >> >> patch 4/6, so that it matches what would have been produced with the >> >> macros) >> >> >> >> >> >> The following series adds ARM compilation support for the VS2017 toolchain. >> >> * PATCH 1 targets the disabling of VS Level 4 warnings. The disabled warnings >> >> for ARM are now aligned with IA32 and X64. >> >> * PATCH 2 adds a NULL handler for the base stack check, since this is a GCC >> >> functionality. >> >> * PATCH 3 updates MdePkg/Library/BaseLib so that the RVCT assembly >> >> sources >> >> are also used for MSFT. >> >> * PATCH 4 adds the required compiler intrinsics replacements for division, >> >> shift, by reusing the RVCT code, as well as memset/memcpy. >> >> * PATCH 5 adds variable argument handlers for print output. Note that this >> >> is done without relying on any external headers, with the VA_ARG macro >> >> having been reverse engineered from MSFT ARM assembly output. >> >> * PATCH 6 enables the selection of ARM in the conf templates. >> >> >> >> With these patches, VS2017 toolchain users should be able to compile >> >> regular UEFI ARM applications using EDK2. Note that, unlike ARM64 support, >> >> ARM support does not require a specific update of Visual Studio 2017, as >> >> the ARM toolchain has been available from the very first release. >> >> >> >> Additional notes: >> >> >> >> We tested compiling and running the full UEFI Shell with this series, as >> >> well as a small set of applications and drivers, and found no issues. >> >> With an additional patch [1], it is also possible to use this proposal to >> >> compile a complete QEMU ARM firmware. As the patch shows, the changes >> >> that >> >> need to be applied to the EDK2 sources to achieve this are actually very >> >> minimal. >> >> >> >> However, the generated firmware does not currently boot, possibly because >> >> of the following warnings being generated by the MS compiler: >> >> - ArmCpuDxe.dll : warning LNK4072: section count 118 exceeds max (96); >> >> image may not run >> >> - UiApp.dll : warning LNK4072: section count 113 exceeds max (96); image may >> >> not run >> >> >> >> As far as I could see, the section count max is hardcoded so a workaround >> >> would be needed to address those. >> >> >> >> Also, because the VS2017 ARM compiler forces a section alignment of 4096 >> >> bytes (which in turn forces use to use /FILEALIGN:4096 as a linker option >> >> for the firmware generation), the generated firmware exceeds 2MB and we >> >> had to double its size to 4MB. >> >> >> >> At this stage, since the goal of this series is to allow users to compile >> >> regular ARM UEFI applications using the VS2017 toolchain, I have no plans >> >> to spend more time on the QEMU firmware issues, especially as I suspect >> >> that reducing the firmware size back to 2 MB may not be achievable without >> >> Microsoft altering their compiler. I am however hopeful that ARM >> >> specialists can take this matter over eventually... >> >> >> >> Regards, >> >> >> >> /Pete >> >> >> >> [1] >> >> https://github.com/pbatard/edk2/commit/c4ce41094a46f4f3dc7ccc64a906048 >> >> 13f037b13 >> >> >> >> Pete Batard (6): >> >> MdePkg: Disable some Level 4 warnings for VS2017/ARM >> >> MdePkg/Library/BaseStackCheckLib: Add Null handler for VS2017/ARM >> >> MdePkg/Library/BaseLib: Enable VS2017/ARM builds >> >> ArmPkg/Library/CompilerIntrinsicsLib: Enable VS2017/ARM builds >> >> MdePkg/Include: Add VA list support for VS2017/ARM >> >> BaseTools/Conf: Add VS2017/ARM support >> >> >> >> ArmPkg/Library/CompilerIntrinsicsLib/Arm/div.asm | 43 +++++++-- >> >> ArmPkg/Library/CompilerIntrinsicsLib/Arm/ldivmod.asm | 40 ++++++-- >> >> ArmPkg/Library/CompilerIntrinsicsLib/Arm/llsr.asm | 22 +++-- >> >> ArmPkg/Library/CompilerIntrinsicsLib/Arm/uldiv.asm | 29 +++++- >> >> ArmPkg/Library/CompilerIntrinsicsLib/CompilerIntrinsicsLib.inf | 16 +++- >> >> ArmPkg/Library/CompilerIntrinsicsLib/memcpy_ms.c | 34 +++++++ >> >> ArmPkg/Library/CompilerIntrinsicsLib/memset_ms.c | 33 +++++++ >> >> BaseTools/Conf/build_rule.template | 31 ++++++- >> >> BaseTools/Conf/tools_def.template | 31 +++++++ >> >> MdePkg/Include/Arm/ProcessorBind.h | 96 >> >> +++++++++++++++----- >> >> MdePkg/Include/Base.h | 13 +++ >> >> MdePkg/Library/BaseLib/Arm/CpuBreakpoint.asm | 5 +- >> >> MdePkg/Library/BaseLib/BaseLib.inf | 16 +++- >> >> MdePkg/Library/BaseStackCheckLib/BaseStackCheckLib.inf | 5 +- >> >> MdePkg/Library/BaseStackCheckLib/BaseStackCheckNull.c | 18 ++++ >> >> 15 files changed, 372 insertions(+), 60 deletions(-) >> >> create mode 100644 ArmPkg/Library/CompilerIntrinsicsLib/memcpy_ms.c >> >> create mode 100644 ArmPkg/Library/CompilerIntrinsicsLib/memset_ms.c >> >> create mode 100644 >> >> MdePkg/Library/BaseStackCheckLib/BaseStackCheckNull.c >> >> >> >> -- >> >> 2.9.3.windows.2 >> > > > _______________________________________________ > edk2-devel mailing list > edk2-devel@lists.01.org > https://lists.01.org/mailman/listinfo/edk2-devel