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' Header file for IDE Bus Driver, containing the helper functions'
entire prototype. entire prototype.
Copyright (c) 2006, Intel Corporation Copyright (c) 2006 - 2007 Intel Corporation. <BR>
All rights reserved. This program and the accompanying materials All rights reserved. This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License 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 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 TODO: Add function description

View File

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

View File

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

View File

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