Remove tabs.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11296 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
andrewfish 2011-02-02 22:54:50 +00:00
parent 58b5d037b4
commit 5d23922674
1 changed files with 239 additions and 120 deletions

View File

@ -761,16 +761,26 @@ CpuDeadLoop ();
ZeroMem (&DmaOperation, sizeof (DMA_MAP_OPERATION)); ZeroMem (&DmaOperation, sizeof (DMA_MAP_OPERATION));
Dma4.DataType = 2; // DMA4_CSDPi[1:0] 32-bit elements from MMCHS_DATA Dma4.DataType = 2; // DMA4_CSDPi[1:0] 32-bit elements from MMCHS_DATA
Dma4.SourceEndiansim = 0; // DMA4_CSDPi[21] Dma4.SourceEndiansim = 0; // DMA4_CSDPi[21]
Dma4.DestinationEndianism = 0; // DMA4_CSDPi[19] Dma4.DestinationEndianism = 0; // DMA4_CSDPi[19]
Dma4.SourcePacked = 0; // DMA4_CSDPi[6] Dma4.SourcePacked = 0; // DMA4_CSDPi[6]
Dma4.DestinationPacked = 0; // DMA4_CSDPi[13] Dma4.DestinationPacked = 0; // DMA4_CSDPi[13]
Dma4.NumberOfElementPerFrame = This->Media->BlockSize/4; // DMA4_CENi (TRM 4K is optimum value) Dma4.NumberOfElementPerFrame = This->Media->BlockSize/4; // DMA4_CENi (TRM 4K is optimum value)
Dma4.NumberOfFramePerTransferBlock = BlockCount; // DMA4_CFNi Dma4.NumberOfFramePerTransferBlock = BlockCount; // DMA4_CFNi
Dma4.ReadPriority = 0; // DMA4_CCRi[6] Low priority read Dma4.ReadPriority = 0; // DMA4_CCRi[6] Low priority read
Dma4.WritePriority = 0; // DMA4_CCRi[23] Prefetech disabled Dma4.WritePriority = 0; // DMA4_CCRi[23] Prefetech disabled
//Populate the command information based on the operation type. //Populate the command information based on the operation type.
if (OperationType == READ) { if (OperationType == READ) {
Cmd = CMD18; //Multiple block read Cmd = CMD18; //Multiple block read
@ -778,19 +788,33 @@ CpuDeadLoop ();
DmaOperation = MapOperationBusMasterCommonBuffer; DmaOperation = MapOperationBusMasterCommonBuffer;
Dma4.ReadPortAccessType =0 ; // DMA4_CSDPi[8:7] Can not burst MMCHS_DATA reg Dma4.ReadPortAccessType =0 ; // DMA4_CSDPi[8:7] Can not burst MMCHS_DATA reg
Dma4.WritePortAccessType = 3; // DMA4_CSDPi[15:14] Memory burst 16x32 Dma4.WritePortAccessType = 3; // DMA4_CSDPi[15:14] Memory burst 16x32
Dma4.WriteMode = 1; // DMA4_CSDPi[17:16] Write posted Dma4.WriteMode = 1; // DMA4_CSDPi[17:16] Write posted
Dma4.SourceStartAddress = MMCHS_DATA; // DMA4_CSSAi Dma4.SourceStartAddress = MMCHS_DATA; // DMA4_CSSAi
Dma4.DestinationStartAddress = (UINT32)BufferAddress; // DMA4_CDSAi Dma4.DestinationStartAddress = (UINT32)BufferAddress; // DMA4_CDSAi
Dma4.SourceElementIndex = 1; // DMA4_CSEi Dma4.SourceElementIndex = 1; // DMA4_CSEi
Dma4.SourceFrameIndex = 0x200; // DMA4_CSFi Dma4.SourceFrameIndex = 0x200; // DMA4_CSFi
Dma4.DestinationElementIndex = 1; // DMA4_CDEi Dma4.DestinationElementIndex = 1; // DMA4_CDEi
Dma4.DestinationFrameIndex = 0; // DMA4_CDFi Dma4.DestinationFrameIndex = 0; // DMA4_CDFi
Dma4.ReadPortAccessMode = 0; // DMA4_CCRi[13:12] Always read MMCHS_DATA Dma4.ReadPortAccessMode = 0; // DMA4_CCRi[13:12] Always read MMCHS_DATA
Dma4.WritePortAccessMode = 1; // DMA4_CCRi[15:14] Post increment memory address Dma4.WritePortAccessMode = 1; // DMA4_CCRi[15:14] Post increment memory address
Dma4.ReadRequestNumber = 0x1e; // DMA4_CCRi[4:0] Syncro with MMCA_DMA_RX (61) Dma4.ReadRequestNumber = 0x1e; // DMA4_CCRi[4:0] Syncro with MMCA_DMA_RX (61)
Dma4.WriteRequestNumber = 1; // DMA4_CCRi[20:19] Syncro upper 0x3e == 62 (one based) Dma4.WriteRequestNumber = 1; // DMA4_CCRi[20:19] Syncro upper 0x3e == 62 (one based)
} else if (OperationType == WRITE) { } else if (OperationType == WRITE) {
@ -799,19 +823,33 @@ CpuDeadLoop ();
DmaOperation = MapOperationBusMasterRead; DmaOperation = MapOperationBusMasterRead;
Dma4.ReadPortAccessType = 3; // DMA4_CSDPi[8:7] Memory burst 16x32 Dma4.ReadPortAccessType = 3; // DMA4_CSDPi[8:7] Memory burst 16x32
Dma4.WritePortAccessType = 0; // DMA4_CSDPi[15:14] Can not burst MMCHS_DATA reg Dma4.WritePortAccessType = 0; // DMA4_CSDPi[15:14] Can not burst MMCHS_DATA reg
Dma4.WriteMode = 1; // DMA4_CSDPi[17:16] Write posted ??? Dma4.WriteMode = 1; // DMA4_CSDPi[17:16] Write posted ???
Dma4.SourceStartAddress = (UINT32)BufferAddress; // DMA4_CSSAi Dma4.SourceStartAddress = (UINT32)BufferAddress; // DMA4_CSSAi
Dma4.DestinationStartAddress = MMCHS_DATA; // DMA4_CDSAi Dma4.DestinationStartAddress = MMCHS_DATA; // DMA4_CDSAi
Dma4.SourceElementIndex = 1; // DMA4_CSEi Dma4.SourceElementIndex = 1; // DMA4_CSEi
Dma4.SourceFrameIndex = 0x200; // DMA4_CSFi Dma4.SourceFrameIndex = 0x200; // DMA4_CSFi
Dma4.DestinationElementIndex = 1; // DMA4_CDEi Dma4.DestinationElementIndex = 1; // DMA4_CDEi
Dma4.DestinationFrameIndex = 0; // DMA4_CDFi Dma4.DestinationFrameIndex = 0; // DMA4_CDFi
Dma4.ReadPortAccessMode = 1; // DMA4_CCRi[13:12] Post increment memory address Dma4.ReadPortAccessMode = 1; // DMA4_CCRi[13:12] Post increment memory address
Dma4.WritePortAccessMode = 0; // DMA4_CCRi[15:14] Always write MMCHS_DATA Dma4.WritePortAccessMode = 0; // DMA4_CCRi[15:14] Always write MMCHS_DATA
Dma4.ReadRequestNumber = 0x1d; // DMA4_CCRi[4:0] Syncro with MMCA_DMA_TX (60) Dma4.ReadRequestNumber = 0x1d; // DMA4_CCRi[4:0] Syncro with MMCA_DMA_TX (60)
Dma4.WriteRequestNumber = 1; // DMA4_CCRi[20:19] Syncro upper 0x3d == 61 (one based) Dma4.WriteRequestNumber = 1; // DMA4_CCRi[20:19] Syncro upper 0x3d == 61 (one based)
} else { } else {
@ -1088,9 +1126,11 @@ SdReadWrite (
UINTN BytesToBeTranferedThisPass = 0; UINTN BytesToBeTranferedThisPass = 0;
UINTN BytesRemainingToBeTransfered; UINTN BytesRemainingToBeTransfered;
EFI_TPL OldTpl; EFI_TPL OldTpl;
BOOLEAN Update; BOOLEAN Update;
Update = FALSE; Update = FALSE;
if (gMediaChange) { if (gMediaChange) {
@ -1112,11 +1152,17 @@ SdReadWrite (
if (Update) { if (Update) {
DEBUG ((EFI_D_INFO, "SD Card ReinstallProtocolInterface ()\n")); DEBUG ((EFI_D_INFO, "SD Card ReinstallProtocolInterface ()\n"));
gBS->ReinstallProtocolInterface ( gBS->ReinstallProtocolInterface (
gImageHandle, gImageHandle,
&gEfiBlockIoProtocolGuid, &gEfiBlockIoProtocolGuid,
&gBlockIo, &gBlockIo,
&gBlockIo &gBlockIo
); );
} }
if (EFI_ERROR (Status)) { if (EFI_ERROR (Status)) {
@ -1180,22 +1226,36 @@ SdReadWrite (
} }
DoneRestoreTPL: DoneRestoreTPL:
gBS->RestoreTPL (OldTpl); gBS->RestoreTPL (OldTpl);
Done: Done:
return Status; return Status;
} }
/** /**
Reset the Block Device. Reset the Block Device.
@param This Indicates a pointer to the calling context. @param This Indicates a pointer to the calling context.
@param ExtendedVerification Driver may perform diagnostics on reset. @param ExtendedVerification Driver may perform diagnostics on reset.
@retval EFI_SUCCESS The device was reset. @retval EFI_SUCCESS The device was reset.
@retval EFI_DEVICE_ERROR The device is not functioning properly and could @retval EFI_DEVICE_ERROR The device is not functioning properly and could
not be reset. not be reset.
**/ **/
EFI_STATUS EFI_STATUS
EFIAPI EFIAPI
@ -1209,22 +1269,39 @@ MMCHSReset (
/** /**
Read BufferSize bytes from Lba into Buffer. Read BufferSize bytes from Lba into Buffer.
@param This Indicates a pointer to the calling context. @param This Indicates a pointer to the calling context.
@param MediaId Id of the media, changes every time the media is replaced. @param MediaId Id of the media, changes every time the media is replaced.
@param Lba The starting Logical Block Address to read from @param Lba The starting Logical Block Address to read from
@param BufferSize Size of Buffer, must be a multiple of device block size. @param BufferSize Size of Buffer, must be a multiple of device block size.
@param Buffer A pointer to the destination buffer for the data. The caller is @param Buffer A pointer to the destination buffer for the data. The caller is
responsible for either having implicit or explicit ownership of the buffer. responsible for either having implicit or explicit ownership of the buffer.
@retval EFI_SUCCESS The data was read correctly from the device. @retval EFI_SUCCESS The data was read correctly from the device.
@retval EFI_DEVICE_ERROR The device reported an error while performing the read. @retval EFI_DEVICE_ERROR The device reported an error while performing the read.
@retval EFI_NO_MEDIA There is no media in the device. @retval EFI_NO_MEDIA There is no media in the device.
@retval EFI_MEDIA_CHANGED The MediaId does not matched the current device. @retval EFI_MEDIA_CHANGED The MediaId does not matched the current device.
@retval EFI_BAD_BUFFER_SIZE The Buffer was not a multiple of the block size of the device. @retval EFI_BAD_BUFFER_SIZE The Buffer was not a multiple of the block size of the device.
@retval EFI_INVALID_PARAMETER The read request contains LBAs that are not valid, @retval EFI_INVALID_PARAMETER The read request contains LBAs that are not valid,
or the buffer is not on proper alignment. or the buffer is not on proper alignment.
EFI_STATUS EFI_STATUS
**/ **/
@ -1244,28 +1321,48 @@ MMCHSReadBlocks (
Status = SdReadWrite (This, (UINTN)Lba, Buffer, BufferSize, READ); Status = SdReadWrite (This, (UINTN)Lba, Buffer, BufferSize, READ);
return Status; return Status;
} }
/** /**
Write BufferSize bytes from Lba into Buffer. Write BufferSize bytes from Lba into Buffer.
@param This Indicates a pointer to the calling context. @param This Indicates a pointer to the calling context.
@param MediaId The media ID that the write request is for. @param MediaId The media ID that the write request is for.
@param Lba The starting logical block address to be written. The caller is @param Lba The starting logical block address to be written. The caller is
responsible for writing to only legitimate locations. responsible for writing to only legitimate locations.
@param BufferSize Size of Buffer, must be a multiple of device block size. @param BufferSize Size of Buffer, must be a multiple of device block size.
@param Buffer A pointer to the source buffer for the data. @param Buffer A pointer to the source buffer for the data.
@retval EFI_SUCCESS The data was written correctly to the device. @retval EFI_SUCCESS The data was written correctly to the device.
@retval EFI_WRITE_PROTECTED The device can not be written to. @retval EFI_WRITE_PROTECTED The device can not be written to.
@retval EFI_DEVICE_ERROR The device reported an error while performing the write. @retval EFI_DEVICE_ERROR The device reported an error while performing the write.
@retval EFI_NO_MEDIA There is no media in the device. @retval EFI_NO_MEDIA There is no media in the device.
@retval EFI_MEDIA_CHNAGED The MediaId does not matched the current device. @retval EFI_MEDIA_CHNAGED The MediaId does not matched the current device.
@retval EFI_BAD_BUFFER_SIZE The Buffer was not a multiple of the block size of the device. @retval EFI_BAD_BUFFER_SIZE The Buffer was not a multiple of the block size of the device.
@retval EFI_INVALID_PARAMETER The write request contains LBAs that are not valid, @retval EFI_INVALID_PARAMETER The write request contains LBAs that are not valid,
or the buffer is not on proper alignment. or the buffer is not on proper alignment.
**/ **/
EFI_STATUS EFI_STATUS
EFIAPI EFIAPI
@ -1282,19 +1379,30 @@ MMCHSWriteBlocks (
//Perform write operation. //Perform write operation.
Status = SdReadWrite (This, (UINTN)Lba, Buffer, BufferSize, WRITE); Status = SdReadWrite (This, (UINTN)Lba, Buffer, BufferSize, WRITE);
return Status; return Status;
} }
/** /**
Flush the Block Device. Flush the Block Device.
@param This Indicates a pointer to the calling context. @param This Indicates a pointer to the calling context.
@retval EFI_SUCCESS All outstanding data was written to the device @retval EFI_SUCCESS All outstanding data was written to the device
@retval EFI_DEVICE_ERROR The device reported an error while writting back the data @retval EFI_DEVICE_ERROR The device reported an error while writting back the data
@retval EFI_NO_MEDIA There is no media in the device. @retval EFI_NO_MEDIA There is no media in the device.
**/ **/
EFI_STATUS EFI_STATUS
EFIAPI EFIAPI
@ -1317,16 +1425,27 @@ EFI_BLOCK_IO_PROTOCOL gBlockIo = {
/** /**
Timer callback to convert card present hardware into a boolean that indicates Timer callback to convert card present hardware into a boolean that indicates
a media change event has happened. If you just check the GPIO you could see a media change event has happened. If you just check the GPIO you could see
card 1 and then check again after card 1 was removed and card 2 was inserted card 1 and then check again after card 1 was removed and card 2 was inserted
and you would still see media present. Thus you need the timer tick to catch and you would still see media present. Thus you need the timer tick to catch
the toggle event. the toggle event.
@param Event Event whose notification function is being invoked. @param Event Event whose notification function is being invoked.
@param Context The pointer to the notification function's context, @param Context The pointer to the notification function's context,
which is implementation-dependent. Not used. which is implementation-dependent. Not used.
**/ **/
VOID VOID
EFIAPI EFIAPI