The latest IPF boot failure is found and is not caused by this fixing, so check-in the fixing again.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@2434 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
klu2 2007-03-09 09:04:53 +00:00
parent 17fb73c8e1
commit 27061085e5
5 changed files with 300 additions and 1160 deletions

File diff suppressed because it is too large Load Diff

View File

@ -2,7 +2,7 @@
Header file for IDE Bus Driver, containing the helper functions'
entire prototype.
Copyright (c) 2006, Intel Corporation
Copyright (c) 2006 - 2007 Intel Corporation. <BR>
All rights reserved. This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License
which accompanies this distribution. The full text of the license may be found at
@ -1097,6 +1097,42 @@ AtaUdmaWriteExt (
)
;
/**
Perform an ATA Udma operation (Read, ReadExt, Write, WriteExt).
@param[in] *IdeDev
pointer pointing to IDE_BLK_IO_DEV data structure, used
to record all the information of the IDE device.
@param[in] *DataBuffer
A pointer to the source buffer for the data.
@param[in] StartLba
The starting logical block address to write to
on the device media.
@param[in] NumberOfBlocks
The number of transfer data blocks.
@param[in] UdmaOp
The perform operations could be AtaUdmaReadOp, AtaUdmaReadExOp,
AtaUdmaWriteOp, AtaUdmaWriteExOp
@return The device status of UDMA operation. If the operation is
successful, return EFI_SUCCESS.
**/
EFI_STATUS
DoAtaUdma (
IN IDE_BLK_IO_DEV *IdeDev,
IN VOID *DataBuffer,
IN EFI_LBA StartLba,
IN UINTN NumberOfBlocks,
IN ATA_UDMA_OPERATION UdmaOp
)
;
/**
TODO: Add function description

View File

@ -1,5 +1,5 @@
/** @file
Copyright (c) 2006, Intel Corporation
Copyright (c) 2006 - 2007 Intel Corporation. <BR>
All rights reserved. This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License
which accompanies this distribution. The full text of the license may be found at
@ -629,7 +629,11 @@ IDEBusDriverBindingStart (
IdeBlkIoDevicePtr = NULL;
continue;
}
//
// Record Udma Mode
//
IdeBlkIoDevicePtr->UdmaMode.Valid = TRUE;
IdeBlkIoDevicePtr->UdmaMode.Mode = SupportedModes->UdmaMode.Mode;
EnableInterrupt (IdeBlkIoDevicePtr);
} else if (SupportedModes->MultiWordDmaMode.Valid) {

View File

@ -1,7 +1,7 @@
/** @file
Header file for IDE Bus Driver.
Copyright (c) 2006, Intel Corporation
Copyright (c) 2006 - 2007 Intel Corporation. <BR>
All rights reserved. This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License
which accompanies this distribution. The full text of the license may be found at
@ -65,7 +65,7 @@ typedef struct {
INQUIRY_DATA *pInquiryData;
EFI_IDENTIFY_DATA *pIdData;
ATA_PIO_MODE PioMode;
ATA_UDMA_MODE UDma_Mode;
EFI_ATA_MODE UdmaMode;
CHAR8 ModelName[41];
REQUEST_SENSE_DATA *SenseData;
UINT8 SenseDataNumber;

View File

@ -1,7 +1,7 @@
/** @file
Header file for IDE Bus Driver's Data Structures
Copyright (c) 2006, Intel Corporation
Copyright (c) 2006 - 2007 Intel Corporation. <BR>
All rights reserved. This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License
which accompanies this distribution. The full text of the license may be found at
@ -86,6 +86,13 @@ typedef enum {
SenseOtherSense
} SENSE_RESULT;
typedef enum {
AtaUdmaReadOp,
AtaUdmaReadExtOp,
AtaUdmaWriteOp,
AtaUdmaWriteExtOp
} ATA_UDMA_OPERATION;
//
// IDE Registers
//