From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from NAM02-CY1-obe.outbound.protection.outlook.com (NAM02-CY1-obe.outbound.protection.outlook.com [40.107.76.84]) by mx.groups.io with SMTP id smtpd.web11.665.1589215449185802361 for ; Mon, 11 May 2020 09:44:09 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@vmware.com header.s=selector2 header.b=swciv5We; spf=pass (domain: vmware.com, ip: 40.107.76.84, mailfrom: awarkentin@vmware.com) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=jFM0Mx1+k1YRX1osOyJ68EA/lJmLZiLOk76Nvu9GOUokOyBvKX+RaZ3hLmUZpMhzzi8Xg6dU0HjvSCJvV2c91/aZ62uyt5M1R8cilhbnpG4J5Z9bwGCnMDJ5LeVcalGF/0mmck5RmQ4XMC2nSi5u13gv8FgmAH8FSqGM75ctSQWD77XhvOHgnQetRGhq383WsSG+HEMj65evqdz5yk5a8g9brQSPFILtUkDX9fC5ZXiWpaAeV28rZWotfpaNnX96baYkn7CNSjg+SAH8tYjLF6/pOf1EX8taDYPL6tW0H4ZP6U+VS8K/5M6WEsBMSiZnajx7n1xYYyodPFjHswHadw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=nAkRZS/A2otNF97MqFq0bVwNb0T02+tBZkPg6dEoiow=; b=l1HNoC5A+iYzrS86zWfagZY/OxJ16WxOqICqJhohQS1ynnK4gTkTLfz0vY8XZgPWs7RFYs5vwUkvl5Jx8MeBIp6OHHIlSsyuRMM/bFZQe2zmYpFWWB5uRwz3Uwr8ahYEj0mPJOEyv2AAyLngqXgzwIhQlI7jHmjf/wdcRJf49S77cS9Nek/jyS9KfhR5/kLYnEC/HwD5cD3hM7f9T6tU9VIBorp5B+DP9R0lyao6EKJOqi9ucplpFBpqO2JhOPTGL0ZdPRKDfYodwAmZozMwsftoqc00JBLCIPZ9d0HCCDAaoY/5GvbPbeIck5vLdDYndd9C8XxCxGxrcO81Jto9Ug== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=vmware.com; dmarc=pass action=none header.from=vmware.com; dkim=pass header.d=vmware.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vmware.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=nAkRZS/A2otNF97MqFq0bVwNb0T02+tBZkPg6dEoiow=; b=swciv5We3M84P2EOEWJ29HbVaRCUZF5dr07XlYvzcTD7ppeARrv1OZL6SrfAx7iVU/LPqJS6+PCX5YypyqOWwP9ewOXTGOK+XHtebW+qHY+4cBiljMCS8feRuGpzYtk3kJrXSSfHYajF3ljl6/L8DasRzcqDTmUPGyVWVfNxkHU= Received: from BN6PR05MB3411.namprd05.prod.outlook.com (2603:10b6:405:43::23) by BN6PR05MB2818.namprd05.prod.outlook.com (2603:10b6:404:28::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3000.11; Mon, 11 May 2020 16:44:07 +0000 Received: from BN6PR05MB3411.namprd05.prod.outlook.com ([fe80::f463:db64:43d8:5a0f]) by BN6PR05MB3411.namprd05.prod.outlook.com ([fe80::f463:db64:43d8:5a0f%3]) with mapi id 15.20.3000.016; Mon, 11 May 2020 16:44:07 +0000 From: "Andrei Warkentin" To: Ard Biesheuvel , "devel@edk2.groups.io" CC: Pete Batard , Jared McNeill , Samer El-Haj-Mahmoud , Jeremy Linton Subject: Re: [PATCH edk2-platforms v4 2/9] Silicon/Broadcom/BcmGenetDxe: add support for broadcast filtering Thread-Topic: [PATCH edk2-platforms v4 2/9] Silicon/Broadcom/BcmGenetDxe: add support for broadcast filtering Thread-Index: AQHWJ6Q/Bu1rX7Xdw0+sUbXFns5Z3aijF2Sl Date: Mon, 11 May 2020 16:44:07 +0000 Message-ID: References: <20200511145527.23453-1-ard.biesheuvel@arm.com>,<20200511145527.23453-3-ard.biesheuvel@arm.com> In-Reply-To: <20200511145527.23453-3-ard.biesheuvel@arm.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: arm.com; dkim=none (message not signed) header.d=none;arm.com; dmarc=none action=none header.from=vmware.com; x-originating-ip: [98.214.99.181] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 7ed1304c-7dfe-43b1-5387-08d7f5ca860e x-ms-traffictypediagnostic: BN6PR05MB2818: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:2512; x-forefront-prvs: 04004D94E2 x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: TjJ03YpTi/uRViJ3JoMudR17YV7EKYngIH/CJHSHfxIaHD1VHw7voItMAW/Iu1HUbU74IlzptmW+glNqxJSzCghTSKre5KSL4o7Y27kze+2ejJjCNaXoBVAHJO9p5WwL3ZfkYyWzjgDWEXWk6QSLSdT++5Xdj1k4Y8FWGrXvc9ZHfzojz+DGygFByEkX1KwgOJ59txVoExybHXMOuaAjgKIszEB1e+UPzhQW1YbO9aN2akfElBreeWgWQtsi4W4okZuVBCqLzRtanDLahyHvG1eF65BLw2zlpRdSsWcRw7bcL3+Gftehp4tYkP0OG6p1F/HlJCbtcrKofLBE15uGGudDQdZSLx+K+cwDcDI55y61E+CjvozaT3BpaDQS5efLy9lSYv8kIaSyxvnpekp/FnThm1cNQltMX4mWXOQyaHMreSYvzSLuSMT0nwIPwCaskc6fRVoj0wJ/Hmsoh8vt33ak6lQaDL8km6BkXx1VTlkzyq+6fLDTmYvwmqw3AsY5N4ZI3CWD2IZ2McpJ9P4Ajg== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BN6PR05MB3411.namprd05.prod.outlook.com;PTR:;CAT:NONE;SFTY:;SFS:(4636009)(376002)(346002)(136003)(366004)(396003)(39860400002)(33430700001)(66446008)(26005)(64756008)(33440700001)(33656002)(8676002)(52536014)(6506007)(66556008)(53546011)(66946007)(478600001)(2906002)(8936002)(4326008)(66476007)(71200400001)(19627405001)(9686003)(7696005)(86362001)(5660300002)(54906003)(316002)(110136005)(55016002)(76116006)(186003);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata: GFvz5p3MwWnzYNNOhP32ue+xh9DkApTW1ZPAPipjPbQ1vflbHBrOSHtoEBPgCpaGLA4pBZsa0OuN1MuG2KiZ67hCl0Fhr8ECzaqlP/8/GxPzda/fEsZcImhK+kRcUcmW9GlnWBjEKBaqYuks4bPPZjQpvJrL8awO2vO5aBqmN/l2UiujhR17linu70Q7ko1gpb9Q3jTbfGZF5qpGtIUFNiY9pSb46gLM2A7DQfXx5b6AzH5iOcQS4a8P+lt67Io9MXzcvI5etM1lj5gBYWOY32CAHYbrsVUWSCyOr2tAbgx1+sQEnwEI1gWYvjPaPn3kq7ihaX8iQVUdmnH1Fe9xvogb7unPN2xwzpUSMsiLCJuV1+x68GuYkSXGbaJaS2YGXz1eS1Lw62CpdVX2pmD40uhL2V4zr/baCQz1kQJw5kB0byi4ZX6BA7NyxAP6Y9V1c+Rgov/LSzzZz6B1RQNeDgUZ3eFYI/wGK1IuDeklBvU= x-ms-exchange-transport-forked: True MIME-Version: 1.0 X-OriginatorOrg: vmware.com X-MS-Exchange-CrossTenant-Network-Message-Id: 7ed1304c-7dfe-43b1-5387-08d7f5ca860e X-MS-Exchange-CrossTenant-originalarrivaltime: 11 May 2020 16:44:07.5550 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: b39138ca-3cee-4b4a-a4d6-cd83d9dd62f0 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: VK1eHO9817Rlk9zqTLBr+wXdWsTa7Trt9SGj5nrwrxgrIzBRCxKo0BRJ6F+etQ2Wv4vVZc2y9jKQO53eMowGjw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN6PR05MB2818 Content-Language: en-US Content-Type: multipart/alternative; boundary="_000_BN6PR05MB3411E6B21C1CD86FD3A705A4B9A10BN6PR05MB3411namp_" --_000_BN6PR05MB3411E6B21C1CD86FD3A705A4B9A10BN6PR05MB3411namp_ Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Reviewed-by: Andrei Warkentin ________________________________ From: Ard Biesheuvel Sent: Monday, May 11, 2020 9:55 AM To: devel@edk2.groups.io Cc: Ard Biesheuvel ; Pete Batard ; Ja= red McNeill ; Andrei Warkentin ; Samer El-Haj-Mahmoud ; Jeremy Linton Subject: [PATCH edk2-platforms v4 2/9] Silicon/Broadcom/BcmGenetDxe: add su= pport for broadcast filtering Add a helper to configure the first MDF filter for filtering the broadcast Ethernet address. Signed-off-by: Ard Biesheuvel --- Silicon/Broadcom/Drivers/Net/BcmGenetDxe/GenetUtil.h | 7 +++++ Silicon/Broadcom/Drivers/Net/BcmGenetDxe/GenetUtil.c | 33 ++++++++++++++++= ++++ 2 files changed, 40 insertions(+) diff --git a/Silicon/Broadcom/Drivers/Net/BcmGenetDxe/GenetUtil.h b/Silicon= /Broadcom/Drivers/Net/BcmGenetDxe/GenetUtil.h index b21a284b6221..b491ea4665b0 100644 --- a/Silicon/Broadcom/Drivers/Net/BcmGenetDxe/GenetUtil.h +++ b/Silicon/Broadcom/Drivers/Net/BcmGenetDxe/GenetUtil.h @@ -107,6 +107,7 @@ #define GENET_UMAC_MDF_CTRL 0xe50 #define GENET_UMAC_MDF_ADDR0(n) (0xe54 + (n) * 0x8) #define GENET_UMAC_MDF_ADDR1(n) (0xe58 + (n) * 0x8) +#define GENET_MAX_MDF_FILTER 17 #define GENET_DMA_DESC_COUNT 256 #define GENET_DMA_DESC_SIZE 12 @@ -300,6 +301,12 @@ GenetSetPromisc ( IN BOOLEAN Enable ); +VOID +GenetEnableBroadcastFilter ( + IN GENET_PRIVATE_DATA *Genet, + IN BOOLEAN Enable + ); + VOID GenetDmaInitRings ( IN GENET_PRIVATE_DATA *Genet diff --git a/Silicon/Broadcom/Drivers/Net/BcmGenetDxe/GenetUtil.c b/Silicon= /Broadcom/Drivers/Net/BcmGenetDxe/GenetUtil.c index 7ae9acec4c78..71c659e7f882 100644 --- a/Silicon/Broadcom/Drivers/Net/BcmGenetDxe/GenetUtil.c +++ b/Silicon/Broadcom/Drivers/Net/BcmGenetDxe/GenetUtil.c @@ -492,6 +492,39 @@ GenetSetPromisc ( GenetMmioWrite (Genet, GENET_UMAC_CMD, Value); } +/** + Enable the MAC filter for the Ethernet broadcast address + + @param Genet[in] Pointer to GENET_PRIVATE_DATA. + @param Enable[in] Promiscuous mode state. + +**/ +VOID +GenetEnableBroadcastFilter ( + IN GENET_PRIVATE_DATA *Genet, + IN BOOLEAN Enable + ) +{ + CONST EFI_MAC_ADDRESS *MacAddr =3D &Genet->SnpMode.CurrentAddress; + UINT32 Value; + + if (Enable) { + GenetMmioWrite (Genet, GENET_UMAC_MDF_ADDR0 (0), + MacAddr->Addr[1] | MacAddr->Addr[0] << 8); + GenetMmioWrite (Genet, GENET_UMAC_MDF_ADDR1 (0), + MacAddr->Addr[5] | MacAddr->Addr[4] << 8 | + MacAddr->Addr[3] << 16 | MacAddr->Addr[2] << 24); + + GenetMmioWrite (Genet, GENET_UMAC_MDF_ADDR0 (1), 0xffff); + GenetMmioWrite (Genet, GENET_UMAC_MDF_ADDR1 (1), 0xffffffff); + + Value =3D (1U << GENET_MAX_MDF_FILTER) & ~(BIT1 | BIT0); + } else { + Value =3D 0; + } + GenetMmioWrite (Genet, GENET_UMAC_MDF_CTRL, Value); +} + /** Configure DMA TX and RX queues, enabling them. -- 2.17.1 --_000_BN6PR05MB3411E6B21C1CD86FD3A705A4B9A10BN6PR05MB3411namp_ Content-Type: text/html; charset="us-ascii" Content-Transfer-Encoding: quoted-printable
Reviewed= -by: Andrei Warkentin <andrey.warkentin@gmail.com>

From: Ard Biesheuvel <ar= d.biesheuvel@arm.com>
Sent: Monday, May 11, 2020 9:55 AM
To: devel@edk2.groups.io <devel@edk2.groups.io>
Cc: Ard Biesheuvel <ard.biesheuvel@arm.com>; Pete Batard <p= ete@akeo.ie>; Jared McNeill <jmcneill@invisible.ca>; Andrei Warken= tin <awarkentin@vmware.com>; Samer El-Haj-Mahmoud <Samer.El-Haj-Ma= hmoud@arm.com>; Jeremy Linton <jeremy.linton@arm.com>
Subject: [PATCH edk2-platforms v4 2/9] Silicon/Broadcom/BcmGenetDxe:= add support for broadcast filtering
 
Add a helper to configure the first MDF filter for= filtering the
broadcast Ethernet address.

Signed-off-by: Ard Biesheuvel <ard.biesheuvel@arm.com>
---
 Silicon/Broadcom/Drivers/Net/BcmGenetDxe/GenetUtil.h |  7 +&= #43;+++
 Silicon/Broadcom/Drivers/Net/BcmGenetDxe/GenetUtil.c | 33 ++&= #43;++++++++++++++&= #43;++
 2 files changed, 40 insertions(+)

diff --git a/Silicon/Broadcom/Drivers/Net/BcmGenetDxe/GenetUtil.h b/Silicon= /Broadcom/Drivers/Net/BcmGenetDxe/GenetUtil.h
index b21a284b6221..b491ea4665b0 100644
--- a/Silicon/Broadcom/Drivers/Net/BcmGenetDxe/GenetUtil.h
+++ b/Silicon/Broadcom/Drivers/Net/BcmGenetDxe/GenetUtil.h
@@ -107,6 +107,7 @@
 #define GENET_UMAC_MDF_CTRL       =             &nb= sp; 0xe50
 #define GENET_UMAC_MDF_ADDR0(n)      &n= bsp;          (0xe54 + (n)= * 0x8)
 #define GENET_UMAC_MDF_ADDR1(n)      &n= bsp;          (0xe58 + (n)= * 0x8)
+#define GENET_MAX_MDF_FILTER       =              17=
 
 #define GENET_DMA_DESC_COUNT       = ;             2= 56
 #define GENET_DMA_DESC_SIZE       =             &nb= sp; 12
@@ -300,6 +301,12 @@ GenetSetPromisc (
   IN BOOLEAN        &nbs= p;   Enable
   );
 
+VOID
+GenetEnableBroadcastFilter (
+  IN GENET_PRIVATE_DATA   *Genet,
+  IN BOOLEAN         = ;     Enable
+  );
+
 VOID
 GenetDmaInitRings (
   IN GENET_PRIVATE_DATA *Genet
diff --git a/Silicon/Broadcom/Drivers/Net/BcmGenetDxe/GenetUtil.c b/Silicon= /Broadcom/Drivers/Net/BcmGenetDxe/GenetUtil.c
index 7ae9acec4c78..71c659e7f882 100644
--- a/Silicon/Broadcom/Drivers/Net/BcmGenetDxe/GenetUtil.c
+++ b/Silicon/Broadcom/Drivers/Net/BcmGenetDxe/GenetUtil.c
@@ -492,6 +492,39 @@ GenetSetPromisc (
   GenetMmioWrite (Genet, GENET_UMAC_CMD, Value);
 }
 
+/**
+  Enable the MAC filter for the Ethernet broadcast address
+
+  @param  Genet[in]   Pointer to GENET_PRIVATE_DAT= A.
+  @param  Enable[in]  Promiscuous mode state.
+
+**/
+VOID
+GenetEnableBroadcastFilter (
+  IN GENET_PRIVATE_DATA   *Genet,
+  IN BOOLEAN         = ;     Enable
+  )
+{
+  CONST EFI_MAC_ADDRESS   *MacAddr =3D &Genet->S= npMode.CurrentAddress;
+  UINT32         &nb= sp;        Value;
+
+  if (Enable) {
+    GenetMmioWrite (Genet, GENET_UMAC_MDF_ADDR0 (0), +      MacAddr->Addr[1] | MacAddr->Addr[= 0] << 8);
+    GenetMmioWrite (Genet, GENET_UMAC_MDF_ADDR1 (0), +      MacAddr->Addr[5] | MacAddr->Addr[= 4] << 8 |
+      MacAddr->Addr[3] << 16 | MacAd= dr->Addr[2] << 24);
+
+    GenetMmioWrite (Genet, GENET_UMAC_MDF_ADDR0 (1), 0x= ffff);
+    GenetMmioWrite (Genet, GENET_UMAC_MDF_ADDR1 (1), 0x= ffffffff);
+
+    Value =3D (1U << GENET_MAX_MDF_FILTER) & = ~(BIT1 | BIT0);
+  } else {
+    Value =3D 0;
+  }
+  GenetMmioWrite (Genet, GENET_UMAC_MDF_CTRL, Value);
+}
+
 /**
   Configure DMA TX and RX queues, enabling them.
 
--
2.17.1

--_000_BN6PR05MB3411E6B21C1CD86FD3A705A4B9A10BN6PR05MB3411namp_--