From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=2607:f8b0:4864:20::12e; helo=mail-it1-x12e.google.com; envelope-from=ard.biesheuvel@linaro.org; receiver=edk2-devel@lists.01.org Received: from mail-it1-x12e.google.com (mail-it1-x12e.google.com [IPv6:2607:f8b0:4864:20::12e]) (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 DC8E02119623D for ; Fri, 30 Nov 2018 13:45:41 -0800 (PST) Received: by mail-it1-x12e.google.com with SMTP id p197so672503itp.0 for ; Fri, 30 Nov 2018 13:45:41 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=E0c5WqrDLjZmbuEinHHNFSguKwOvonwv0qoXopddMRU=; b=WhU6URxFK9+UH/E9h9NH28Gxn+RZsKXkrkgWiLQQClRH2uL9jGJszar49mFjkotTPd 2emHRnC2ZvCy0HMkLeLuITIXSoxtA/3J6VpdXwwuK4/nWue3X4F3+GAxQRHYhRov7g/p /Tvc/62gd+fDn3+ROwNYZSGVZpLVEESjHA/Zk= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=E0c5WqrDLjZmbuEinHHNFSguKwOvonwv0qoXopddMRU=; b=mRGpkicVlO9dOOF/tJnLEbBWDSk+CAZ2xSb1pIr+oB892U9zhySu4o0yuYhjxY/3Xw IHzEOrudoMab8BNgO3tDnpULrquxYMthjMEwkrYaGfu/v9WQZagYT3Hph6MEyn+btcjx ouFt2wGwchplww7M+1+1M4/C19R4mbhVZuCTvn+KKXy8je6pCwiylmbJmG45N3oqTnCC keEQEkRcroAms7Eaz4M7o0i/TSnalThq+GbXYlQwM0y0j71p7ChByDxbu+8bMXYbscvy ir4ke4/QDyJI564o2EUySlUE7sImBOsJnHyUd55ufcY0Bi1q2KkdkbDE/79L/tq5iwAn +Uqw== X-Gm-Message-State: AA+aEWYK4nROmAXGODodstQGwoSxS3XQV3+/6HJbhQ+IcwgaHRGrGS3t w9JPym9PKmOX/XRhM0imB+zj50glNnKKBALmMA10NEgdp24= X-Google-Smtp-Source: AFSGD/WKLKPH6tB6B3N4z7cOGvBmSUexj2wCWODNkUX7EgPR+hJ/snaSM7Rhd9QnfvAF0F9d7KNwcjtVcy/fA7p8gTc= X-Received: by 2002:a05:660c:4b:: with SMTP id p11mr448342itk.71.1543614340262; Fri, 30 Nov 2018 13:45:40 -0800 (PST) MIME-Version: 1.0 References: <20181128143357.991-1-ard.biesheuvel@linaro.org> In-Reply-To: From: Ard Biesheuvel Date: Fri, 30 Nov 2018 22:45:27 +0100 Message-ID: To: "edk2-devel@lists.01.org" Cc: Laszlo Ersek , Leif Lindholm , Auger Eric , Andrew Jones , =?UTF-8?Q?Philippe_Mathieu=2DDaud=C3=A9?= , Julien Grall Subject: Re: [PATCH v3 00/16] [Arm|ArmVirt|MdePkg|Embedded]Pkg: lift 40-bit IPA space limit X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 30 Nov 2018 21:45:42 -0000 Content-Type: text/plain; charset="UTF-8" On Thu, 29 Nov 2018 at 18:59, Ard Biesheuvel wrote: > > On Wed, 28 Nov 2018 at 15:34, Ard Biesheuvel wrote: > > > > This v3 subsumes and/or supersedes > > > > [PATCH v2 00/13] ArmPkg, ArmVirtPkg: lift 40-bit IPA space limit > > [PATCH] MdePkg/ProcessorBind.h AARCH64: limit MAX_ADDRESS to 48 bits > > [PATCH v2 0/2] ArmVirtPkg: remove high peripheral space mapping > > > > The ArmVirtQemu targets currently limit the size of the IPA space to > > 40 bits because that is all what KVM supports. However, this is about > > to change, and so we need to update the code if we want to ensure that > > our UEFI firmware builds can keep running on systems that set values > > other than 40 (which could be > 40 or < 40) > > > > This series refactors how we handle the maximum size of the physical > > address space supported by the CPU in relation with the size of UEFI's > > 1:1 mapping and the size of the GCD memory space map, taking the following > > observations into account: > > - the range of the linear mapping can be tied to whatever the CPU supports > > (as long as it doesn't exceed what the architecture permits for 4k pages) > > since we mostly already use the maximum of 4 levels anyway, and there is > > no memory cost involved beyond that > > - there is usually no point in mapping the entire address space, which does > > involve a memory cost > > - the GCD memory space may be required to cover more than what UEFI can > > address itself, since it is the based for the UEFI memory map that is > > provided to the OS > > > > Patches #1 and #2 remove some unused code to avoid having to fix it. > > > > Patches #3 and #4 update ArmVirtQemu and ArmVirtQemuKernel to drop the high > > peripheral space mapping, and map whatever may reside there explicitly > > (currently only the ECAM space in practice, but the MMIO view of the PCI > > I/O space is mapped explicitly as well) > > > > Patch #5 was sent out before individually, and sets MAX_ADDRESS to the > > maximum value AArch64 can map in UEFI which runs with 4k pages. > > > > Patch #6 adds a helper to ArmLib to read the number of supported address > > bits and take this into account in the page table code (#8), which allows > > PcdPrePiCpuMemorySize to assume a value that exceeds the capabilities of > > the CPU. > > > > Patch #7 is mostly a cleanup patch, to switch to the new helper added in > > patch #6. No functional changes intended. > > > > Patches #9 to #12 modify building of the CPU hob (and thus the size of the > > GCD memory space) based on the CPU capabilities rather than the value of > > PcdPrePiCpuMemorySize, which is dropped in the last patch. > > > > Pacthes #13 and #14 remove some needless references to PcdPrePiCpuMemorySize > > > > Patch #15 drops the overrides of PcdPrePiCpuMemorySize from all ArmVirtPkg > > platforms. > > > > Cc: Laszlo Ersek > > Cc: Leif Lindholm > > Cc: Eric Auger > > Cc: Andrew Jones > > Cc: Philippe Mathieu-Daude > > Cc: Julien Grall > > > > Ard Biesheuvel (16): > > EmbeddedPkg/TemplateSec: remove unused module > > EmbeddedPkg/PrePiHobLib: drop CreateHobList() from library > > ArmVirtPkg/FdtPciHostBridgeLib: map ECAM and I/O spaces in GCD memory > > map > > ArmVirtPkg/QemuVirtMemInfoLib: remove 1:1 mapping of top of PA range > > MdePkg/ProcessorBind.h AARCH64: limit MAX_ADDRESS to 48 bits > > ArmPkg/ArmLib: add support for reading the max physical address space > > size > > ArmVirtPkg/XenVirtMemInfoLib: refactor reading of the PA space size > > ArmPkg/ArmMmuLib: take the CPU supported maximum PA space into account > > ArmPkg/CpuPei: base GCD memory space size on CPU's PA range > > ArmPlatformPkg/PrePi: base GCD memory space size on CPU's PA range > > ArmVirtPkg/PrePi: base GCD memory space size on CPU's PA range > > BeagleBoardPkg/PrePi: base GCD memory space size on CPU's PA range > > ArmPlatformPkg/PlatformPei: drop unused PCD references > > EmbeddedPkg/PrePiLib: drop unused PCD reference > > ArmVirtPkg: drop PcdPrePiCpuMemorySize assignments from all platforms > > EmbeddedPkg/EmbeddedPkg.dec: drop PcdPrePiCpuMemorySize declarations > > > > Thanks all for the reviews. > > Patches #1 .. #15 pushed as e979ea74aa14..55342094fb86 > > Patch #16 needs to wait until edk2-platforms is brought up to date > with the removal of PcdPrePiCpuMemorySize Patch #16 now merged as 55342094fb86..bcf2a9db1f8e