
Hi York,
-----Original Message----- From: york sun Sent: 2016年11月30日 5:58 To: Z.Q. Hou zhiqiang.hou@nxp.com; u-boot@lists.denx.de; albert.u.boot@aribaud.net; wd@denx.de; Prabhakar Kushwaha prabhakar.kushwaha@nxp.com; Alison Wang alison.wang@nxp.com; Mingkai Hu mingkai.hu@nxp.com Cc: Yao Yuan yao.yuan@nxp.com; Q.Y. Gong qianyu.gong@nxp.com; bmeng.cn@gmail.com; Shengzhou Liu shengzhou.liu@nxp.com Subject: Re: [PATCHv2 1/5] fsl: serdes: ensure accessing the initialized maps of serdes protocol
On 08/02/2016 04:14 AM, Zhiqiang Hou wrote:
From: Hou Zhiqiang Zhiqiang.Hou@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 element of the map isn't used for any device, so use it as the flag to indicate if the map has been initialized.
Signed-off-by: Hou Zhiqiang Zhiqiang.Hou@nxp.com
V2:
- Check initialization-state of the serdes protocol map before serdes init.
- Comment the element 'NONE' used as a initialization-state flag.
Zhiqiang,
This patch has been merged but I found an issue with it today. Please try to boot P4080DS from NOR flash. It causes recursive calls fsl_serdes_init()->p4080_erratum_serdes_a005()->is_serdes_configured()->fsl_ serdes_init(). Please check if you have any similar recursive case for other platforms. Please send a fix ASAP.
This issue has been fixed by the patch below, did your test point include this patch? Anyway, I will try the latest commit of tree u-boot-fsl-qoriq. commit 5eef15ea9d297d270935510d8a635f8d8bf72439 Author: Hou Zhiqiang Zhiqiang.Hou@nxp.com Date: Mon Oct 31 10:59:16 2016 +0800
fsl: serdes: fix a deadloop issue for P4080
This deadloop is introduced by commit: 71fe222 fsl: serdes: ensure accessing the initialized maps of serdes protocol
deadloop detail: cpu_init_r => fsl_serdes_init => p4080_erratum_serdes_a005 => is_serdes_configured => fsl_serdes_init
Thanks, Zhiqiang