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::12f; helo=mail-it1-x12f.google.com; envelope-from=ard.biesheuvel@linaro.org; receiver=edk2-devel@lists.01.org Received: from mail-it1-x12f.google.com (mail-it1-x12f.google.com [IPv6:2607:f8b0:4864:20::12f]) (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 BA005211CFBE9 for ; Wed, 27 Mar 2019 08:32:27 -0700 (PDT) Received: by mail-it1-x12f.google.com with SMTP id w18so768748itj.4 for ; Wed, 27 Mar 2019 08:32:27 -0700 (PDT) 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=se6xtd/U+XVxkuj8J1VNJjXmZKwlSIk92z+Bn1DwGEU=; b=mu1j5stV0AGZISeTLJ8+ySx/jZCyyukpvi29ZXoT2mRu3DSZqnbutE8RH/o+s53zl+ 1u1rN9G/l7Z+lYDi0xsyy5bXjlXVXVjCc37Zo0x9YtNvixg111jkvCNtBVZ/1YNVDV9/ 4yMQN+B3D+iPIV2oNpAWjJeFtvCk/YsfQ+AKDxOPzR06+j3Zh87OmTxKbMAoNDv9/qgx c45khQD4j2rjk5nJzaL0Jc7kAn6YYJfEYBy2WBKZk9aLKeq/RaUuXs+GZg2+hhYnp+go tLjcXTRuN9fcDTC6eoqCJCeIjaIVwecm3+kO6hzuC+4IXJs5mmHxiaFQIWpJ7k9USKNG V2rQ== 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=se6xtd/U+XVxkuj8J1VNJjXmZKwlSIk92z+Bn1DwGEU=; b=JRpEBsxP2yQn9bMrhdZKO4H3MQd501q7SnTm6Hx6T6xRkSIf9lBiZMfFwJfyZ+IhAv t41PO5RCACnN3j9OtO/+08BO/Az1B0tV2uWJu1tOHBp1FOheKOcL3QoXGzHOxBE5q2i1 9z6V+OrsOyDZbmUu50vIKVDnMhDeHPbV6+N6OeQ93FDASNej+WGkPMVFdoCJ8iJT4KlW A9SobuHxvWDMErose/900dwUT2hQo7973xpL5e/cB8a+HuR7ySo1HrPBWJikbGiYAU76 0mXQqMYV6w7LfeOacuDLFfEiNM/XskUJ09z2LbKAtP6NUQTn9K71lTqSjwdNdDdvXDBA PgpA== X-Gm-Message-State: APjAAAUuq4XKGCHx5y4Vt1stHmSwnuzdhrB1cFmWBdbAg8HG0cEjY79a 2FpdApWYwqjNGlADk663Jt7dkS6Ig5ATk/ooMwDvgg== X-Google-Smtp-Source: APXvYqyjzXFfuFckoW02OlKHuFvbSiP8gO5+zbTZmCCXjfhpFrUCj6M053zA8z+dbIjNhZHDkbEqxyJKILnADoBBVMI= X-Received: by 2002:a24:11ce:: with SMTP id 197mr3622789itf.121.1553700746554; Wed, 27 Mar 2019 08:32:26 -0700 (PDT) MIME-Version: 1.0 References: <20181106175833.26964-1-ard.biesheuvel@linaro.org> In-Reply-To: From: Ard Biesheuvel Date: Wed, 27 Mar 2019 16:32:09 +0100 Message-ID: To: Ryszard Knop Cc: "edk2-devel@lists.01.org" , "Kacperski, Kamil" , "Jin, Eric" , "Orlowski, Pawel" , "Kinney, Michael D" , "Hsiung, Harry L" Subject: Re: [PATCH edk2-staging 00/19] IntelUndiPkg/GigUndiDxe: build fixes for AARCH64/ARM/GCC 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: Wed, 27 Mar 2019 15:32:28 -0000 Content-Type: text/plain; charset="UTF-8" On Tue, 29 Jan 2019 at 14:55, Ryszard Knop wrote: > > +Team > As it turns out, this driver is still broken for non-1:1 mapped DMA. In particular, I am hitting a crash on E1000MemCopy ( (UINT8 *) (UINTN) CpbReceive->BufferAddr, (UINT8 *) (UINTN) ReceiveDescriptor->buffer_addr, TempLen ); (around line 676 in e1000.c), which uses the DMA address 'ReceiveDescriptor->buffer_addr' in a memory copy operation performed by the CPU. This causes a crash on systems where the DMA address is not also a valid CPU address. > On Tue, 2019-01-29 at 14:13 +0100, Ryszard Knop wrote: > > Hi Ard, > > > > I've finally got some time to review and merge all of this. A bit > > problematic thing is that we internally have a separate tree that we > > need to merge those commits into, then generate the open source tree > > and related commits from that. This will result in somewhat broken > > history, so sorry about that in advance - we're still figuring out > > the > > proper way to handle multiple source trees on our end without messing > > it up. I'll push these changes to edk2-staging once we've got it all > > ready. > > > > On Tue, 2018-11-06 at 18:58 +0100, ard.biesheuvela wrote: > > > This series fixes the GigUndiDxe in the edk2-staging/Intel_UNDI > > > branch > > > at github.com/tianocore so it can be built with GCC on Linux for > > > ARM > > > and AARCH64 (as well as X64) > > > > > > Ard Biesheuvel (19): > > > IntelOpenSourceUndiPkg.dsc: add AARCH64 and ARM to supported > > > architectures > > > IntelUndiPkg: remove EOF markers > > > IntelUndiPkg/GigUndiDxe: consistently use lowercase for e1000 in > > > filenames > > > IntelUndiPkg/GigUndiDxe: consistently use forward slashes as path > > > separators > > > IntelUndiPkg/GigUndiDxe: move BRAND_STRUCT declaration after type > > > definition > > > IntelUndiPkg/GigUndiDxe: use intermediate UINTN casts for > > > pointers > > > IntelUndiPkg/GigUndiDxe: create GCC alternatives for MSFT build > > > options > > > IntelUndiPkg/GigUndiDxe: add missing VOID** cast > > > IntelUndiPkg/GigUndiDxe: add missing UINT8* cast > > > IntelUndiPkg/GigUndiDxe: add missing braces to GUID literals > > > IntelUndiPkg/GigUndiDxe: fix incorrect use of CPP token pasting > > > IntelUndiPkg/GigUndiDxe: cast E1000MemCopy () args to correct > > > pointer > > > type > > > IntelUndiPkg/GigUndiDxe: don't take address of cast expression > > > IntelUndiPkg/GigUndiDxe: redefine UNREFERENCED_nPARAMETER macros > > > for > > > GCC > > > IntelUndiPkg/GigUndiDxe: remove forward declaration of non- > > > existent > > > function > > > IntelUndiPkg/GigUndiDxe: fix incorrect indentation > > > IntelUndiPkg/GigUndiDxe: move MSFT warning overrides to INF file > > > IntelUndiPkg/GigUndiDxe: add missing EFIAPI modifiers > > > IntelUndiPkg/GigUndiDxe: remove or reorganize unused variables > > > > > > IntelUndiPkg/GigUndiDxe/AdapterInformation.c | 6 ++- > > > IntelUndiPkg/GigUndiDxe/AdapterInformation.h | 1 - > > > IntelUndiPkg/GigUndiDxe/Brand.c | 1 - > > > IntelUndiPkg/GigUndiDxe/ComponentName.c | 5 ++- > > > IntelUndiPkg/GigUndiDxe/ComponentName.h | 2 +- > > > IntelUndiPkg/GigUndiDxe/Decode.c | 5 +-- > > > IntelUndiPkg/GigUndiDxe/Decode.h | 1 - > > > IntelUndiPkg/GigUndiDxe/DeviceSupport.c | 1 - > > > IntelUndiPkg/GigUndiDxe/DeviceSupport.h | 9 ++--- > > > IntelUndiPkg/GigUndiDxe/Dma.c | 11 +++--- > > > IntelUndiPkg/GigUndiDxe/Dma.h | 1 - > > > IntelUndiPkg/GigUndiDxe/DriverConfiguration.c | 6 ++- > > > IntelUndiPkg/GigUndiDxe/DriverConfiguration.h | 1 - > > > IntelUndiPkg/GigUndiDxe/DriverDiagnostics.c | 12 +++--- > > > IntelUndiPkg/GigUndiDxe/DriverDiagnostics.h | 1 - > > > IntelUndiPkg/GigUndiDxe/DriverHealth.c | 5 ++- > > > IntelUndiPkg/GigUndiDxe/EepromConfig.c | 1 - > > > IntelUndiPkg/GigUndiDxe/EepromConfig.h | 3 +- > > > IntelUndiPkg/GigUndiDxe/GigUndiDxe.inf | 39 +++++++++------ > > > ---- > > > IntelUndiPkg/GigUndiDxe/Hii.c | 11 +++--- > > > IntelUndiPkg/GigUndiDxe/Hii.h | 1 - > > > IntelUndiPkg/GigUndiDxe/HiiInternalLib.c | 3 -- > > > IntelUndiPkg/GigUndiDxe/HiiInternalLib.h | 1 - > > > IntelUndiPkg/GigUndiDxe/Init.c | 11 +++--- > > > IntelUndiPkg/GigUndiDxe/Init.h | 1 - > > > IntelUndiPkg/GigUndiDxe/Inventory.vfr | 1 - > > > IntelUndiPkg/GigUndiDxe/NVDataStruc.h | 7 ++-- > > > IntelUndiPkg/GigUndiDxe/StartStop.c | 5 ++- > > > IntelUndiPkg/GigUndiDxe/StartStop.h | 7 ++-- > > > IntelUndiPkg/GigUndiDxe/Version.h | 1 - > > > IntelUndiPkg/GigUndiDxe/{E1000.c => e1000.c} | 37 ++++++++------- > > > -- > > > - > > > IntelUndiPkg/GigUndiDxe/{E1000.h => e1000.h} | 5 +-- > > > IntelUndiPkg/GigUndiDxe/e1000_80003es2lan.c | 1 - > > > IntelUndiPkg/GigUndiDxe/e1000_80003es2lan.h | 1 - > > > IntelUndiPkg/GigUndiDxe/e1000_82571.c | 1 - > > > IntelUndiPkg/GigUndiDxe/e1000_82571.h | 1 - > > > IntelUndiPkg/GigUndiDxe/e1000_82575.c | 1 - > > > IntelUndiPkg/GigUndiDxe/e1000_82575.h | 1 - > > > IntelUndiPkg/GigUndiDxe/e1000_api.c | 1 - > > > IntelUndiPkg/GigUndiDxe/e1000_api.h | 1 - > > > IntelUndiPkg/GigUndiDxe/e1000_defines.h | 10 ++++- > > > IntelUndiPkg/GigUndiDxe/e1000_hw.h | 1 - > > > IntelUndiPkg/GigUndiDxe/e1000_i210.c | 1 - > > > IntelUndiPkg/GigUndiDxe/e1000_i210.h | 1 - > > > IntelUndiPkg/GigUndiDxe/e1000_ich8lan.c | 18 ++++----- > > > IntelUndiPkg/GigUndiDxe/e1000_ich8lan.h | 1 - > > > IntelUndiPkg/GigUndiDxe/e1000_mac.c | 1 - > > > IntelUndiPkg/GigUndiDxe/e1000_mac.h | 1 - > > > IntelUndiPkg/GigUndiDxe/e1000_manage.c | 1 - > > > IntelUndiPkg/GigUndiDxe/e1000_manage.h | 1 - > > > IntelUndiPkg/GigUndiDxe/e1000_nvm.c | 1 - > > > IntelUndiPkg/GigUndiDxe/e1000_nvm.h | 1 - > > > .../{E1000_osdep.c => e1000_osdep.c} | 3 +- > > > .../{E1000_osdep.h => e1000_osdep.h} | 8 +--- > > > IntelUndiPkg/GigUndiDxe/e1000_phy.c | 1 - > > > IntelUndiPkg/GigUndiDxe/e1000_phy.h | 1 - > > > IntelUndiPkg/GigUndiDxe/e1000_regs.h | 1 - > > > IntelUndiPkg/GigUndiDxe/wol/wol.c | 1 - > > > IntelUndiPkg/GigUndiDxe/wol/wol.h | 1 - > > > IntelUndiPkg/GigUndiDxe/wol/wol_1G.c | 1 - > > > IntelUndiPkg/GigUndiDxe/wol/wolfamily.c | 1 - > > > IntelUndiPkg/GigUndiDxe/wol/wolimpl.c | 1 - > > > IntelUndiPkg/GigUndiDxe/wol/wolimpl.h | 3 +- > > > IntelUndiPkg/GigUndiDxe/wol/wolinfo.c | 1 - > > > IntelUndiPkg/I40eUndiDxe/AdapterInformation.c | 1 - > > > IntelUndiPkg/I40eUndiDxe/AdapterInformation.h | 1 - > > > IntelUndiPkg/I40eUndiDxe/Brand.c | 1 - > > > IntelUndiPkg/I40eUndiDxe/ComponentName.c | 1 - > > > IntelUndiPkg/I40eUndiDxe/ComponentName.h | 1 - > > > IntelUndiPkg/I40eUndiDxe/Decode.c | 1 - > > > IntelUndiPkg/I40eUndiDxe/Decode.h | 1 - > > > IntelUndiPkg/I40eUndiDxe/DeviceSupport.c | 1 - > > > IntelUndiPkg/I40eUndiDxe/DeviceSupport.h | 1 - > > > IntelUndiPkg/I40eUndiDxe/Dma.c | 1 - > > > IntelUndiPkg/I40eUndiDxe/Dma.h | 1 - > > > IntelUndiPkg/I40eUndiDxe/DriverDiagnostics.c | 1 - > > > IntelUndiPkg/I40eUndiDxe/DriverDiagnostics.h | 1 - > > > IntelUndiPkg/I40eUndiDxe/DriverHealth.c | 1 - > > > IntelUndiPkg/I40eUndiDxe/DriverHealthCommon.h | 1 - > > > IntelUndiPkg/I40eUndiDxe/EepromConfig.c | 1 - > > > IntelUndiPkg/I40eUndiDxe/EepromConfig.h | 1 - > > > IntelUndiPkg/I40eUndiDxe/Hii.c | 1 - > > > IntelUndiPkg/I40eUndiDxe/Hii.h | 1 - > > > IntelUndiPkg/I40eUndiDxe/HiiInternalLib.c | 1 - > > > IntelUndiPkg/I40eUndiDxe/HiiInternalLib.h | 1 - > > > IntelUndiPkg/I40eUndiDxe/I40e.c | 1 - > > > IntelUndiPkg/I40eUndiDxe/I40e.h | 1 - > > > IntelUndiPkg/I40eUndiDxe/I40eUndiDxe.inf | 1 - > > > IntelUndiPkg/I40eUndiDxe/I40e_osdep.h | 1 - > > > IntelUndiPkg/I40eUndiDxe/Init.c | 1 - > > > IntelUndiPkg/I40eUndiDxe/Init.h | 1 - > > > IntelUndiPkg/I40eUndiDxe/Inventory.vfr | 1 - > > > IntelUndiPkg/I40eUndiDxe/NVDataStruc.h | 1 - > > > IntelUndiPkg/I40eUndiDxe/StartStop.c | 1 - > > > IntelUndiPkg/I40eUndiDxe/StartStop.h | 1 - > > > IntelUndiPkg/I40eUndiDxe/Version.h | 1 - > > > IntelUndiPkg/I40eUndiDxe/i40e_adminq.c | 1 - > > > IntelUndiPkg/I40eUndiDxe/i40e_adminq.h | 1 - > > > IntelUndiPkg/I40eUndiDxe/i40e_adminq_cmd.h | 1 - > > > IntelUndiPkg/I40eUndiDxe/i40e_alloc.h | 1 - > > > IntelUndiPkg/I40eUndiDxe/i40e_common.c | 1 - > > > IntelUndiPkg/I40eUndiDxe/i40e_devids.h | 1 - > > > IntelUndiPkg/I40eUndiDxe/i40e_diag.c | 1 - > > > IntelUndiPkg/I40eUndiDxe/i40e_diag.h | 1 - > > > IntelUndiPkg/I40eUndiDxe/i40e_hmc.c | 1 - > > > IntelUndiPkg/I40eUndiDxe/i40e_hmc.h | 1 - > > > IntelUndiPkg/I40eUndiDxe/i40e_lan_hmc.c | 1 - > > > IntelUndiPkg/I40eUndiDxe/i40e_lan_hmc.h | 1 - > > > IntelUndiPkg/I40eUndiDxe/i40e_nvm.c | 1 - > > > IntelUndiPkg/I40eUndiDxe/i40e_prototype.h | 1 - > > > IntelUndiPkg/I40eUndiDxe/i40e_register.h | 1 - > > > IntelUndiPkg/I40eUndiDxe/i40e_status.h | 1 - > > > IntelUndiPkg/I40eUndiDxe/i40e_type.h | 1 - > > > IntelUndiPkg/I40eUndiDxe/i40e_virtchnl.h | 1 - > > > IntelUndiPkg/IntelOpenSourceUndiPkg.dsc | 13 ++++++- > > > IntelUndiPkg/XGigUndiDxe/AdapterInformation.c | 1 - > > > IntelUndiPkg/XGigUndiDxe/AdapterInformation.h | 1 - > > > IntelUndiPkg/XGigUndiDxe/Brand.c | 1 - > > > IntelUndiPkg/XGigUndiDxe/ComponentName.c | 1 - > > > IntelUndiPkg/XGigUndiDxe/ComponentName.h | 1 - > > > IntelUndiPkg/XGigUndiDxe/Decode.c | 1 - > > > IntelUndiPkg/XGigUndiDxe/Decode.h | 1 - > > > IntelUndiPkg/XGigUndiDxe/DeviceSupport.c | 1 - > > > IntelUndiPkg/XGigUndiDxe/DeviceSupport.h | 1 - > > > IntelUndiPkg/XGigUndiDxe/Dma.c | 1 - > > > IntelUndiPkg/XGigUndiDxe/Dma.h | 1 - > > > IntelUndiPkg/XGigUndiDxe/DriverDiagnostics.c | 1 - > > > IntelUndiPkg/XGigUndiDxe/DriverDiagnostics.h | 1 - > > > IntelUndiPkg/XGigUndiDxe/DriverHealth.c | 1 - > > > IntelUndiPkg/XGigUndiDxe/DriverHealthCommon.h | 1 - > > > IntelUndiPkg/XGigUndiDxe/EepromConfig.c | 1 - > > > IntelUndiPkg/XGigUndiDxe/EepromConfig.h | 1 - > > > IntelUndiPkg/XGigUndiDxe/Hii.c | 1 - > > > IntelUndiPkg/XGigUndiDxe/Hii.h | 1 - > > > IntelUndiPkg/XGigUndiDxe/HiiInternalLib.c | 1 - > > > IntelUndiPkg/XGigUndiDxe/HiiInternalLib.h | 1 - > > > IntelUndiPkg/XGigUndiDxe/Init.c | 1 - > > > IntelUndiPkg/XGigUndiDxe/Init.h | 1 - > > > IntelUndiPkg/XGigUndiDxe/Inventory.vfr | 1 - > > > IntelUndiPkg/XGigUndiDxe/NVDataStruc.h | 1 - > > > IntelUndiPkg/XGigUndiDxe/StartStop.c | 1 - > > > IntelUndiPkg/XGigUndiDxe/StartStop.h | 1 - > > > IntelUndiPkg/XGigUndiDxe/Version.h | 1 - > > > IntelUndiPkg/XGigUndiDxe/XGigUndiDxe.inf | 1 - > > > IntelUndiPkg/XGigUndiDxe/Xgbe.c | 1 - > > > IntelUndiPkg/XGigUndiDxe/Xgbe.h | 1 - > > > IntelUndiPkg/XGigUndiDxe/ixgbe_82598.c | 1 - > > > IntelUndiPkg/XGigUndiDxe/ixgbe_82598.h | 1 - > > > IntelUndiPkg/XGigUndiDxe/ixgbe_82599.c | 1 - > > > IntelUndiPkg/XGigUndiDxe/ixgbe_82599.h | 1 - > > > IntelUndiPkg/XGigUndiDxe/ixgbe_api.c | 1 - > > > IntelUndiPkg/XGigUndiDxe/ixgbe_api.h | 1 - > > > IntelUndiPkg/XGigUndiDxe/ixgbe_common.c | 1 - > > > IntelUndiPkg/XGigUndiDxe/ixgbe_common.h | 1 - > > > IntelUndiPkg/XGigUndiDxe/ixgbe_dcb.h | 1 - > > > IntelUndiPkg/XGigUndiDxe/ixgbe_dcb_82599.h | 1 - > > > IntelUndiPkg/XGigUndiDxe/ixgbe_osdep.h | 1 - > > > IntelUndiPkg/XGigUndiDxe/ixgbe_phy.c | 1 - > > > IntelUndiPkg/XGigUndiDxe/ixgbe_phy.h | 1 - > > > IntelUndiPkg/XGigUndiDxe/ixgbe_type.h | 1 - > > > IntelUndiPkg/XGigUndiDxe/ixgbe_x540.c | 1 - > > > IntelUndiPkg/XGigUndiDxe/ixgbe_x540.h | 1 - > > > IntelUndiPkg/XGigUndiDxe/ixgbe_x550.c | 1 - > > > IntelUndiPkg/XGigUndiDxe/ixgbe_x550.h | 1 - > > > IntelUndiPkg/XGigUndiDxe/wol/wol.c | 1 - > > > IntelUndiPkg/XGigUndiDxe/wol/wol.h | 1 - > > > IntelUndiPkg/XGigUndiDxe/wol/wol_10G.c | 1 - > > > IntelUndiPkg/XGigUndiDxe/wol/wolfamily.c | 1 - > > > IntelUndiPkg/XGigUndiDxe/wol/wolimpl.c | 1 - > > > IntelUndiPkg/XGigUndiDxe/wol/wolimpl.h | 1 - > > > IntelUndiPkg/XGigUndiDxe/wol/wolinfo.c | 1 - > > > 171 files changed, 120 insertions(+), 270 deletions(-) > > > rename IntelUndiPkg/GigUndiDxe/{E1000.c => e1000.c} (99%) > > > rename IntelUndiPkg/GigUndiDxe/{E1000.h => e1000.h} (99%) > > > rename IntelUndiPkg/GigUndiDxe/{E1000_osdep.c => e1000_osdep.c} > > > (99%) > > > rename IntelUndiPkg/GigUndiDxe/{E1000_osdep.h => e1000_osdep.h} > > > (99%) > > > > > > > _______________________________________________ > > edk2-devel mailing list > > edk2-devel@lists.01.org > > https://lists.01.org/mailman/listinfo/edk2-devel >