From nobody Mon Feb 9 19:30:08 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) client-ip=66.175.222.108; envelope-from=bounce+27952+87543+1787277+3901457@groups.io; helo=mail02.groups.io; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce+27952+87543+1787277+3901457@groups.io ARC-Seal: i=1; a=rsa-sha256; t=1647272337; cv=none; d=zohomail.com; s=zohoarc; b=IbURI0ACAolVrbHJi9YSGhe291Qvc9ldNMOfYoQZU0c84age04qu80swSpgxr0LHiUksoceTQ9XjlIGbKdFXrVSI/LEZmwqoB1JBbMnyOR7VsjA/mqxDDw5e8hzH8ojQSWdCf+4Lw1Ty+8cAnGe5NIvvmwRpwi+wCzBaGcQ4bes= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1647272337; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:References:Sender:Subject:To; bh=rDsw+WWhsw9ByiSaymu2iBNopGvJkPjT9uaLoEYYuXE=; b=CLVagLoaobWkw7w6XYffD9ErsWb7DWNSjJ0U7oP5M/gG7Autb9ZTIHuRjFkzwB7DbGDJ2Nb6/YXfcev4DKyX5jBDiXbuJKc3nLAWtnApFS0IitNRT/CUz53o5HfAhaN2Oc1ABkOFOyhfh4wOFI+A0CzRyKxuHi8Da4/X5m4BMhY= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce+27952+87543+1787277+3901457@groups.io Received: from mail02.groups.io (mail02.groups.io [66.175.222.108]) by mx.zohomail.com with SMTPS id 1647272337837226.31447846201615; Mon, 14 Mar 2022 08:38:57 -0700 (PDT) Return-Path: X-Received: by 127.0.0.2 with SMTP id AOwdYY1788612xdZ0DgnhfUV; Mon, 14 Mar 2022 08:38:57 -0700 X-Received: from mail-lf1-f44.google.com (mail-lf1-f44.google.com [209.85.167.44]) by mx.groups.io with SMTP id smtpd.web12.27703.1647272336695866379 for ; Mon, 14 Mar 2022 08:38:57 -0700 X-Received: by mail-lf1-f44.google.com with SMTP id g17so27904098lfh.2 for ; Mon, 14 Mar 2022 08:38:56 -0700 (PDT) X-Gm-Message-State: 3cw9E45fiAnbH7t3VGWUqzosx1787277AA= X-Google-Smtp-Source: ABdhPJz6QCF/txB/O42ENBt3SRPW5z91Z5b0vn3QyzGC2DcPIj63sQzuDy+d1XM9dAxKkaADk7RyPA== X-Received: by 2002:a05:6512:1511:b0:448:36d9:df26 with SMTP id bq17-20020a056512151100b0044836d9df26mr13624247lfb.652.1647272334973; Mon, 14 Mar 2022 08:38:54 -0700 (PDT) X-Received: from gilgamesh.lab.semihalf.net ([83.142.187.85]) by smtp.gmail.com with ESMTPSA id b8-20020ac25628000000b004484bd1be5esm3325401lff.256.2022.03.14.08.38.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 14 Mar 2022 08:38:54 -0700 (PDT) From: "Marcin Wojtas" To: devel@edk2.groups.io Cc: quic_llindhol@quicinc.com, ardb+tianocore@kernel.org, mw@semihalf.com, jaz@semihalf.com, gjb@semihalf.com, upstream@semihalf.com, sunny.Wang@arm.com Subject: [edk2-devel] [edk2-platforms PATCH 4/8] Marvell/Drivers: Pp2Dxe: Implement Pp2SnpIpToMac Date: Mon, 14 Mar 2022 16:38:33 +0100 Message-Id: <20220314153837.1885852-5-mw@semihalf.com> In-Reply-To: <20220314153837.1885852-1-mw@semihalf.com> References: <20220314153837.1885852-1-mw@semihalf.com> MIME-Version: 1.0 Precedence: Bulk List-Unsubscribe: List-Subscribe: List-Help: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,mw@semihalf.com Content-Transfer-Encoding: quoted-printable DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1647272337; bh=b115GRlXU++jnSxqSZQ8Gv93ydzcSUjB7Ad0jRzdlhM=; h=Cc:Date:From:Reply-To:Subject:To; b=t7qH9JQMelOpmgpt6TKiatqAqsZVq5CyzG9GDgc5FPYC+VnhQ/Zbz0X5RyR/Y/tPtWU OzSd758TrMo+UIqmgmfSWmPUbWKdtqmGpWei3QjK69h4HTO8UckHKndYM4GxSFMBbi9tz sMdQ0+KpwKnMDY5BsuDutLha1GUCkDdQtkg= X-ZohoMail-DKIM: pass (identity @groups.io) X-ZM-MESSAGEID: 1647272338507100016 Content-Type: text/plain; charset="utf-8" The SNP MCastIpToMac callback was unsupported in Pp2Dxe driver. Implement it. Signed-off-by: Marcin Wojtas --- Silicon/Marvell/Drivers/Net/Pp2Dxe/Pp2Dxe.c | 81 +++++++++++++++++++- 1 file changed, 77 insertions(+), 4 deletions(-) diff --git a/Silicon/Marvell/Drivers/Net/Pp2Dxe/Pp2Dxe.c b/Silicon/Marvell/= Drivers/Net/Pp2Dxe/Pp2Dxe.c index 5f487c4dc6..91cd573b87 100644 --- a/Silicon/Marvell/Drivers/Net/Pp2Dxe/Pp2Dxe.c +++ b/Silicon/Marvell/Drivers/Net/Pp2Dxe/Pp2Dxe.c @@ -889,12 +889,85 @@ EFI_STATUS EFIAPI Pp2SnpIpToMac ( IN EFI_SIMPLE_NETWORK_PROTOCOL *This, - IN BOOLEAN IPv6, - IN EFI_IP_ADDRESS *IP, - OUT EFI_MAC_ADDRESS *MAC + IN BOOLEAN IsIpv6, + IN EFI_IP_ADDRESS *Ip, + OUT EFI_MAC_ADDRESS *McastMac ) { - return EFI_UNSUPPORTED; + PP2DXE_CONTEXT *Pp2Context; + EFI_TPL SavedTpl; + + /* Check Snp Instance. */ + if (This =3D=3D NULL) { + return EFI_INVALID_PARAMETER; + } + + SavedTpl =3D gBS->RaiseTPL (TPL_CALLBACK); + + Pp2Context =3D INSTANCE_FROM_SNP (This); + + /* Check that driver was started and initialised. */ + if (This->Mode->State !=3D EfiSimpleNetworkInitialized) { + switch (This->Mode->State) { + case EfiSimpleNetworkStopped: + DEBUG ((DEBUG_WARN, "Pp2Dxe%d: not started\n", Pp2Context->Instance)= ); + ReturnUnlock (SavedTpl, EFI_NOT_STARTED); + case EfiSimpleNetworkStarted: + DEBUG ((DEBUG_WARN, "Pp2Dxe%d: not initialized\n", Pp2Context->Insta= nce)); + ReturnUnlock (SavedTpl, EFI_DEVICE_ERROR); + default: + DEBUG ((DEBUG_WARN, + "Pp2Dxe%d: wrong state: %u\n", + Pp2Context->Instance, + This->Mode->State)); + ReturnUnlock (SavedTpl, EFI_DEVICE_ERROR); + } + } + + /* Check parameters. */ + if ((McastMac =3D=3D NULL) || (Ip =3D=3D NULL)) { + ReturnUnlock (SavedTpl, EFI_INVALID_PARAMETER); + } + + /* Make sure MAC address is empty. */ + ZeroMem (McastMac, sizeof(EFI_MAC_ADDRESS)); + + /* If we need ipv4 address. */ + if (!IsIpv6) { + /* + * Most significant 25 bits of a multicast HW address are set. + * 01-00-5E is the IPv4 Ethernet Multicast Address (see RFC 1112). + */ + McastMac->Addr[0] =3D 0x01; + McastMac->Addr[1] =3D 0x00; + McastMac->Addr[2] =3D 0x5E; + + /* + * Lower 23 bits from ipv4 address + * Clear the most significant bit (25th bit of MAC must be 0). + */ + McastMac->Addr[3] =3D Ip->v4.Addr[1] & 0x7F; + McastMac->Addr[4] =3D Ip->v4.Addr[2]; + McastMac->Addr[5] =3D Ip->v4.Addr[3]; + } else { + /* + * Most significant 16 bits of multicast v6 HW address are set + * 33-33 is the IPv6 Ethernet Multicast Address (see RFC 2464). + */ + McastMac->Addr[0] =3D 0x33; + McastMac->Addr[1] =3D 0x33; + + /* Lower four octets are taken from ipv6 address. */ + McastMac->Addr[2] =3D Ip->v6.Addr[8]; + McastMac->Addr[3] =3D Ip->v6.Addr[9]; + McastMac->Addr[4] =3D Ip->v6.Addr[10]; + McastMac->Addr[5] =3D Ip->v6.Addr[11]; + } + + /* Restore TPL and return. */ + gBS->RestoreTPL (SavedTpl); + + return EFI_SUCCESS; } =20 EFI_STATUS --=20 2.29.0 -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#87543): https://edk2.groups.io/g/devel/message/87543 Mute This Topic: https://groups.io/mt/89776253/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-