[U-Boot] [PATCH v2 2/8] ahci: Fix cache align error messages

Roger Quadros rogerq at ti.com
Mon Nov 11 14:57:15 CET 2013


On 11/11/2013 03:56 PM, Tom Rini wrote:
> On Mon, Nov 11, 2013 at 03:31:16PM +0200, Roger Quadros wrote:
>> Align the ATA ID buffer to the cache-line boundary. This gets rid
>> of the below error mesages on ARM v7 platforms.
>>
>>  scanning bus for devices...
>>  ERROR: v7_dcache_inval_range - start address is not aligned - 0xfee48618
>>  ERROR: v7_dcache_inval_range - stop address is not aligned - 0xfee48818
>>
>> CC: Aneesh V <aneesh at ti.com>
>> Signed-off-by: Roger Quadros <rogerq at ti.com>
>> ---
>>  drivers/block/ahci.c | 8 +-------
>>  1 file changed, 1 insertion(+), 7 deletions(-)
>>
>> diff --git a/drivers/block/ahci.c b/drivers/block/ahci.c
>> index e24d634..e64df4f 100644
>> --- a/drivers/block/ahci.c
>> +++ b/drivers/block/ahci.c
>> @@ -623,7 +623,7 @@ static int ata_scsiop_inquiry(ccb *pccb)
>>  		95 - 4,
>>  	};
>>  	u8 fis[20];
>> -	u16 *tmpid;
>> +	ALLOC_CACHE_ALIGN_BUFFER(u16, tmpid, ATA_ID_WORDS);
> [snip]
>> -	tmpid = malloc(ATA_ID_WORDS * 2);
>> -	if (!tmpid) {
>> -		printf("%s: No memory for tmpid\n", __func__);
>> -		return -ENOMEM;
>> -	}
>>  
>>  	if (ahci_device_data_io(port, (u8 *) &fis, sizeof(fis), (u8 *)tmpid,
>>  				ATA_ID_WORDS * 2, 0)) {
> 
> We should be calling ALLOC_CACHE_ALIGN_BUFFER with ATA_ID_WORDS * 2,
> right?
> 
No, as is u16.

cheers,
-roger


More information about the U-Boot mailing list