The error I am getting is:
gEfiAtaPassThruProtocolGuid couldnt opened: Unsupported
from "AtaBusDriverBindingSupported" code.
Whereas I have added some debug prints in "AtaAtapiPassThruStart" function as:
DEBUG ((EFI_D_INFO, "==AtaAtapiPassThru Start== Install gEfiAtaPassThruProtocolGuid\n")); Status = gBS->InstallMultipleProtocolInterfaces ( &Controller, &gEfiAtaPassThruProtocolGuid, &(Instance->AtaPassThru), &gEfiExtScsiPassThruProtocolGuid, &(Instance->ExtScsiPassThru), NULL ); ASSERT_EFI_ERROR (Status);
DEBUG ((EFI_D_INFO, "==AtaAtapiPassThru Start== gEfiAtaPassThruProtocolGuid Installed \n")); DEBUG ((EFI_D_INFO, "==AtaAtapiPassThru Start== Returning Status :%r\n", Status));
UEFI runtime logs are:
==AtaAtapiPassThru Start== Install gEfiAtaPassThruProtocolGuid InstallProtocolInterface: 1D3DE7F0-0807-424F-AA69-11A54E19A46F 836EBFD8C0 InstallProtocolInterface: 143B7632-B81B-4CB7-ABD3-B625A5B9BFFE 836EBFD910 ==AtaAtapiPassThru Start== gEfiAtaPassThruProtocolGuid Installed ==AtaAtapiPassThru Start== Returning Status :Success
they show that the protocol has been installed properly. Then why it couldn't get opened?
NOTE: no SATA device is attached currently.
Regards, Shaveta
-----Original Message----- From: Jan Dąbroś [mailto:jsd@semihalf.com] Sent: Monday, May 09, 2016 4:30 PM To: Shaveta Leekha shaveta.leekha@nxp.com Cc: Ard Biesheuvel ard.biesheuvel@linaro.org; Linaro UEFI Mailman List linaro-uefi@lists.linaro.org; Haim Boot hayim@marvell.com; Neta Zur Hershkovits neta@marvell.com Subject: Re: [Linaro-uefi] PciEmulation - problem with AHCI
Hi Shaveta,
inline
2016-05-09 12:05 GMT+02:00 Shaveta Leekha shaveta.leekha@nxp.com:
Thanks Great Jan!
I am still struggling to make it work.
In my case also "PxCMD.FR stay unset" so I have removed that test code (as suggested for the time being).
Do you notice that besides initialization, this polling is performed also in AhciEnableFisReceive () ?
Similarly In my case EFI_AHCI_CAP_SAM was set and writing to EFI_AHCI_GHC_ENABLE wasn't not getting performed. So I have "ENABLED AE" also.
Just in case - do you notice, that it is also performed in AhciReset function?
So the code so far is installing "gEfiAtaPassThruProtocolGuid" Protocol.
But somehow, in " AtaBusDriverBindingSupported" , this protocol is not getting opened. Status = gBS->OpenProtocol ( Controller, &gEfiAtaPassThruProtocolGuid, (VOID **) &AtaPassThru, This->DriverBindingHandle, Controller, EFI_OPEN_PROTOCOL_BY_DRIVER );
Above code throws an error.
Any idea about that?
I didn't have such error, but can you provide returned Error Code? It may help.
Regards, Jan