[U-Boot] MMC: proposal to support multiple physical partitions

Steve Rae srae at broadcom.com
Mon May 5 18:53:21 CEST 2014


Pantelis,

As per comments below, I suspect that adding another argument to the callback function is unacceptable. Please clarify!

Thanks, Steve

On 14-04-29 11:08 AM, Steve Rae wrote:

> Thanks for the response,
>
>> -----Original Message-----
>> From: Pantelis Antoniou [mailto:panto at antoniou-consulting.com]
>> Sent: Tuesday, April 29, 2014 10:25
>> To: Steve Rae
>> Cc: u-boot at lists.denx.de; trini at ti.com; albert.u.boot at aribaud.net
>> Subject: Re: MMC: proposal to support multiple physical partitions
>>
>> Hi Steve,
>>
>> On Apr 24, 2014, at 8:50 PM, Steve Rae wrote:
>>
> [... snip ...]
>
>>> I have two different proposals:
>>> 1) overload the "int dev_num" argument with encoded  "dev_num" and
>> "part_num" fields
>>> -          the dev_num  in the [15:0] bits,
>>> -          the part_num in the [30:16] bits,
>>> -          a flag to indicate this encoding in [31] bit.
>>> -          and modify mmc_bread() to handle this encoded argument, and
>> implement the above code...
>>> 2) create a wrapper function to perform the above code, with an added
>> argument "int part_num", possibly named:
>>> -          mmc_block_dev_block_read() -- so that it is similar to the original
>> calling convention [mmc->block_dev.block_read], or
>>> -          mmc_pbread() [PartitionBlockRead] -- so that it is similar to the
>> mmc_bread() [which is the implementation of the callback function]
>>
>> I'd rather go with the wrapper function. Perhaps it's not even needed. The
>> function called is part of the block_dev (block_read/write etc).
>>
>> Overwrite those with functions that implemented the switching first, and
>> then call the original block* function.
>>
> The callback function is:
>      mmc->block_dev.block_read = mmc_bread
> and it accepts four arguments:
>      include/part.h: unsigned long   (*block_read)(int dev,
>      include/part.h-                               lbaint_t start,
>      include/part.h-                               lbaint_t blkcnt,
>      include/part.h-                               void *buffer);
> Are you suggesting that I should add another argument to this callback?
>
> [...snip...]
>
>> Regards
>>
>> -- Pantelis
> _______________________________________________
> U-Boot mailing list
> U-Boot at lists.denx.de
> http://lists.denx.de/mailman/listinfo/u-boot
>



More information about the U-Boot mailing list