installing HII config access protocol on child handle instead of installing on NIC physical handle, to avoid conflict with the HII config access protocol installed on NIC physical handle.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9665 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
vanjeff
2010-01-04 05:55:47 +00:00
parent 8fdcc4123b
commit d80ea7394c
9 changed files with 390 additions and 860 deletions

View File

@@ -42,8 +42,6 @@ EfiIp4ConfigUnload (
{
UINT32 Index;
Ip4ConfigFormUnload ();
//
// Stop all the IP4_CONFIG instances
//
@@ -81,8 +79,6 @@ Ip4ConfigDriverEntryPoint (
IN EFI_SYSTEM_TABLE *SystemTable
)
{
Ip4ConfigFormInit ();
return EfiLibInstallDriverBindingComponentName2 (
ImageHandle,
SystemTable,
@@ -161,6 +157,16 @@ Ip4ConfigDriverBindingStart (
IP4_CONFIG_VARIABLE *NewVariable;
EFI_STATUS Status;
UINT32 Index;
EFI_DEVICE_PATH_PROTOCOL *ParentDevicePath;
Status = gBS->HandleProtocol (
ControllerHandle,
&gEfiDevicePathProtocolGuid,
(VOID **) &ParentDevicePath
);
if (EFI_ERROR (Status)) {
return Status;
}
//
// Check for multiple start.
@@ -222,6 +228,7 @@ Ip4ConfigDriverBindingStart (
Instance->Signature = IP4_CONFIG_INSTANCE_SIGNATURE;
Instance->Controller = ControllerHandle;
Instance->Image = This->DriverBindingHandle;
Instance->ParentDevicePath = ParentDevicePath;
CopyMem (&Instance->Ip4ConfigProtocol, &mIp4ConfigProtocolTemplate, sizeof (mIp4ConfigProtocolTemplate));
@@ -272,12 +279,6 @@ Ip4ConfigDriverBindingStart (
}
Status = Ip4ConfigDeviceInit (Instance);
if (!EFI_ERROR (Status)) {
//
// Try to add a port configuration page for this controller.
//
Ip4ConfigUpdateForm (Instance, TRUE);
}
//
// Install the IP4_CONFIG and NIC_IP4CONFIG protocols