PERFORCE change 107275 for review
Warner Losh
imp at FreeBSD.org
Wed Oct 4 16:04:48 PDT 2006
http://perforce.freebsd.org/chv.cgi?CH=107275
Change 107275 by imp at imp_lighthouse on 2006/10/04 23:03:50
30MHz works too, you know... Use it instead. Don't know why 15MHz
was selected, nor why Linux limits the speed to 25MHz.
This shaves 2s off the boot time.
Affected files ...
.. //depot/projects/arm/src/sys/boot/arm/at91/libat91/sd-card.c#11 edit
Differences ...
==== //depot/projects/arm/src/sys/boot/arm/at91/libat91/sd-card.c#11 (text+ko) ====
@@ -83,7 +83,6 @@
}
while( !(status & AT91C_MCI_NOTBUSY) && (timeout>0) );
- //TODO: Make interrupts work!
AT91F_MCI_Handler();
}
@@ -96,35 +95,6 @@
AT91S_MCIDeviceStatus status;
int sizeToWrite;
- //See if we are requested to write partial sectors, and have the capability to do so
- if ((length % sectorLength) && !(MCI_Device_Features.Write_Partial))
- //Return error if appropriat
- return MCI_UNSUPP_SIZE_ERROR;
-
- //See if we are requested to write to anywhere but a sectors' boundary
- //and have the capability to do so
- if ((offset) && !(MCI_Device_Features.Write_Partial))
- //Return error if appropriat
- return MCI_UNSUPP_OFFSET_ERROR;
-
- //If the address we're trying to write != sector boundary
- if (offset)
- {
- //* Wait MCI Device Ready
- AT91F_MCIDeviceWaitReady(AT91C_MCI_TIMEOUT);
-
- //Calculate the nr of bytes to write
- sizeToWrite = sectorLength - offset;
- //Do the writing
- status = AT91F_MCI_WriteBlock(&MCI_Device, dest, (unsigned int*)source, sizeToWrite);
- //TODO:Status checking
-
- //Update counters & pointers
- length -= sizeToWrite;
- dest += sizeToWrite;
- source += sizeToWrite;
- }
-
//As long as there is data to write
while (length)
{
@@ -257,7 +227,7 @@
AT91F_MCI_Configure(AT91C_BASE_MCI,
AT91C_MCI_DTOR_1MEGA_CYCLES,
- AT91C_MCI_MR_PDCMODE, // 15MHz for MCK = 60MHz (CLKDIV = 1)
+ AT91C_MCI_PDCMODE,
AT91C_MCI_SDCARD_4BITS_SLOTA);
if (AT91F_MCI_SDCard_Init(&MCI_Device) != AT91C_INIT_OK)
More information about the p4-projects
mailing list