From: "Dong, Eric" <eric.dong@intel.com>
To: "Zhang, Lubo" <lubo.zhang@intel.com>
Cc: "Ye, Ting" <ting.ye@intel.com>,
"Fu, Siyuan" <siyuan.fu@intel.com>,
"edk2-devel@lists.01.org" <edk2-devel@lists.01.org>
Subject: Re: [patch] MdeModulePkg: Refine codes of iSCSI driver
Date: Thu, 11 Aug 2016 08:43:51 +0000 [thread overview]
Message-ID: <ED077930C258884BBCB450DB737E66221277A7A5@shsmsx102.ccr.corp.intel.com> (raw)
In-Reply-To: <7619447B08B8F74DA4FF2A813B79803B01A4EDF7@shsmsx102.ccr.corp.intel.com>
Reviewed-by: Eric Dong <eric.dong@intel.com>
> -----Original Message-----
> From: Zhang, Lubo
> Sent: Thursday, August 11, 2016 3:19 PM
> To: Dong, Eric
> Cc: Ye, Ting; Fu, Siyuan; edk2-devel@lists.01.org
> Subject: RE: [edk2] [patch] MdeModulePkg: Refine codes of iSCSI driver
>
> Hi Eric
> Do you have any comments for this patch.
>
> Best regards
> Lubo
>
> -----Original Message-----
> From: edk2-devel [mailto:edk2-devel-bounces@lists.01.org] On Behalf Of Zhang Lubo
> Sent: Thursday, August 11, 2016 10:28 AM
> To: edk2-devel@lists.01.org
> Cc: Ye, Ting <ting.ye@intel.com>; Fu, Siyuan <siyuan.fu@intel.com>; Dong, Eric <eric.dong@intel.com>
> Subject: [edk2] [patch] MdeModulePkg: Refine codes of iSCSI driver
>
> The RSDT is only used when the bios need to support ACPI 1.0 version. When change PcdAcpiExposedTableVersions to 0x3C, it will not
> support ACPI 1.0. The default is 0x3E.
>
> Contributed-under: TianoCore Contribution Agreement 1.0
> Signed-off-by: Zhang Lubo <lubo.zhang@intel.com>
> Cc: Eric Dong <eric.dong@intel.com>
> Cc: Ye Ting <ting.ye@intel.com>
> Cc: Fu Siyuan <siyuan.fu@intel.com>
> ---
> .../Universal/Network/IScsiDxe/IScsiIbft.c | 35 ++++++++++++----------
> 1 file changed, 20 insertions(+), 15 deletions(-)
>
> diff --git a/MdeModulePkg/Universal/Network/IScsiDxe/IScsiIbft.c b/MdeModulePkg/Universal/Network/IScsiDxe/IScsiIbft.c
> index e5f685f..45d89a6 100644
> --- a/MdeModulePkg/Universal/Network/IScsiDxe/IScsiIbft.c
> +++ b/MdeModulePkg/Universal/Network/IScsiDxe/IScsiIbft.c
> @@ -434,42 +434,42 @@ IScsiPublishIbft (
> EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_HEADER *Table;
> UINTN HandleCount;
> EFI_HANDLE *HandleBuffer;
> UINT8 *Heap;
> UINT8 Checksum;
> - UINTN Index;
> EFI_ACPI_3_0_ROOT_SYSTEM_DESCRIPTION_POINTER *Rsdp;
> EFI_ACPI_DESCRIPTION_HEADER *Rsdt;
> + EFI_ACPI_DESCRIPTION_HEADER *Xsdt;
> +
> + Rsdt = NULL;
> + Xsdt = NULL;
>
> Status = gBS->LocateProtocol (&gEfiAcpiTableProtocolGuid, NULL, (VOID **)&AcpiTableProtocol);
> if (EFI_ERROR (Status)) {
> return ;
> }
>
>
> //
> // Find ACPI table RSD_PTR from system table
> //
> - for (Index = 0, Rsdp = NULL; Index < gST->NumberOfTableEntries; Index++) {
> - if (CompareGuid (&(gST->ConfigurationTable[Index].VendorGuid), &gEfiAcpi20TableGuid) ||
> - CompareGuid (&(gST->ConfigurationTable[Index].VendorGuid), &gEfiAcpi10TableGuid) ||
> - CompareGuid (&(gST->ConfigurationTable[Index].VendorGuid), &gEfiAcpiTableGuid)
> - ) {
> - //
> - // A match was found.
> - //
> - Rsdp = (EFI_ACPI_3_0_ROOT_SYSTEM_DESCRIPTION_POINTER *) gST->ConfigurationTable[Index].VendorTable;
> - break;
> - }
> + Status = EfiGetSystemConfigurationTable (&gEfiAcpiTableGuid, (VOID
> + **) &Rsdp); if (EFI_ERROR (Status)) {
> + Status = EfiGetSystemConfigurationTable (&gEfiAcpi10TableGuid,
> + (VOID **) &Rsdp);
> }
>
> - if (Rsdp == NULL) {
> + if (EFI_ERROR (Status) || (Rsdp == NULL)) {
> return ;
> - } else {
> + } else if (Rsdp->Revision >= EFI_ACPI_2_0_ROOT_SYSTEM_DESCRIPTION_POINTER_REVISION && Rsdp->XsdtAddress != 0) {
> + Xsdt = (EFI_ACPI_DESCRIPTION_HEADER *) (UINTN) Rsdp->XsdtAddress;
> + } else if (Rsdp->RsdtAddress != 0) {
> Rsdt = (EFI_ACPI_DESCRIPTION_HEADER *) (UINTN) Rsdp->RsdtAddress;
> }
>
> + if ((Xsdt == NULL) && (Rsdt == NULL)) {
> + return ;
> + }
>
> if (mIbftInstalled) {
> Status = AcpiTableProtocol->UninstallAcpiTable (
> AcpiTableProtocol,
> mTableKey @@ -504,11 +504,16 @@ IScsiPublishIbft (
> Heap = (UINT8 *) Table + IBFT_HEAP_OFFSET;
>
> //
> // Fill in the various section of the iSCSI Boot Firmware Table.
> //
> - IScsiInitIbfTableHeader (Table, Rsdt->OemId, &Rsdt->OemTableId);
> + if (Rsdp->Revision >= EFI_ACPI_2_0_ROOT_SYSTEM_DESCRIPTION_POINTER_REVISION) {
> + IScsiInitIbfTableHeader (Table, Xsdt->OemId, &Xsdt->OemTableId); }
> + else {
> + IScsiInitIbfTableHeader (Table, Rsdt->OemId, &Rsdt->OemTableId); }
> +
> IScsiInitControlSection (Table, HandleCount);
> IScsiFillInitiatorSection (Table, &Heap, HandleBuffer[0]);
> IScsiFillNICAndTargetSections (Table, &Heap, HandleCount, HandleBuffer);
>
> Checksum = CalculateCheckSum8((UINT8 *)Table, Table->Length);
> --
> 1.9.5.msysgit.1
>
> _______________________________________________
> edk2-devel mailing list
> edk2-devel@lists.01.org
> https://lists.01.org/mailman/listinfo/edk2-devel
prev parent reply other threads:[~2016-08-11 8:43 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-08-11 2:27 [patch] MdeModulePkg: Refine codes of iSCSI driver Zhang Lubo
2016-08-11 7:19 ` Zhang, Lubo
2016-08-11 8:43 ` Dong, Eric [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-list from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=ED077930C258884BBCB450DB737E66221277A7A5@shsmsx102.ccr.corp.intel.com \
--to=devel@edk2.groups.io \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox