On 07/20/2016 02:38 AM, Zhiqiang Hou wrote:
> Hi York,
>
> Thanks for your comments!
>
>> -----Original Message-----
>> From: york sun
>> Sent: 2016年7月19日 23:46
>> To: Zhiqiang Hou <zhiqiang....@nxp.com>; u-boot@lists.denx.de;
>> albert.u.b...@aribaud.net; w...@denx.de; Prabhakar Kushwaha
>> <prabhakar.kushw...@nxp.com>; alison.w...@freescale.com;
>> mingkai...@freescale.com
>> Cc: yao.y...@freescale.com; qianyu.g...@freescale.com;
>> bmeng...@gmail.com; Shengzhou Liu <shengzhou....@nxp.com>
>> Subject: Re: [PATCH 1/5] fsl: serdes: ensure accessing the initialized maps 
>> of serdes
>> protocol
>>
>> On 07/03/2016 11:39 PM, Zhiqiang Hou wrote:
>>> From: Hou Zhiqiang <zhiqiang....@nxp.com>
>>>
>>> Up to now, the function is_serdes_configed() doesn't check if the map
>>> of serdes protocol is initialized before accessing it. The function
>>> is_serdes_configed() will get wrong result when it was called before
>>> the serdes protocol maps initialized. As the first eliment of the map
>>
>> s/eliment/element
>
> Will fix my spelling mistakes next version, thanks a lot!
>
>>> isn't used for any device, so use it as the flag to indicate if the
>>> map has been initialized.
>>
>> I am not sure it is safe to presume the first element is always not used. 
>> Take
>> LS2080A as an example, the serdes map array is initialized by serdes_init(), 
>> which
>> calls serdes_get_prtcl() to get the index of the array. With normal 
>> condition, the
>> index shouldn't be zero. Zero is used as an error but it is not checked 
>> before setting
>>
>> serdes_prtcl_map[lane_prtcl] = 1;
>>
>
> The first element of enum srds_prtcl 'NONE' is aim to describe a lane isn't 
> assigned to
> any device, and the array serdesn_prtcl_map is used to check if the specified 
> device
> selected by the current serdes protocol, right? Nobody will check if the 
> device 'NONE'
> has been configured, right? So it can be used to indicate if the 
> serdes_prtcl_map has
> been initialized.
> Don't care whether the function serdes_get_prtcl() will return zero, just 
> focus if the
> serdes protocol map has been filled. For example, if the serdes protocol 
> value read from
> RCW doesn't match with any entry of the serdes_cfg_tbl, then all lane will be 
> assigned to
> 'NONE'. It still means the serdes protocol map has been filled, even if there 
> is only the
> serdesn_prtcl_map[NONE] was set to 1.
>
>> If you presumption is correct, and you want to use the first one as a flag, 
>> you
>> probably need to check all of them to make sure errors are handled correctly,
>> instead of setting the flag unexpected. Also it is important to document 
>> this idea
>> so future platform code follows the same.
>>
>
> Is it necessary to add it to a document, if add a comment to the 
> serdesn_prtcl_map make it?
>

If you don't want to add a document, please at least put some comments, 
in case we need to change some code in the future.

York

_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to