[U-Boot] [PATCH 1/3] fsl: PPA: add support PPA image validation from NAND and SD

York Sun york.sun at nxp.com
Tue Apr 11 15:38:31 UTC 2017


On 04/11/2017 04:59 AM, Sumit Garg wrote:
>> -----Original Message-----
>> From: York Sun [mailto:york.sun at nxp.com]
>> Sent: Tuesday, April 11, 2017 11:44 AM
>> To: Sumit Garg <sumit.garg at nxp.com>; u-boot at lists.denx.de
>> Cc: Ruchika Gupta <ruchika.gupta at nxp.com>; Prabhakar Kushwaha
>> <prabhakar.kushwaha at nxp.com>; Vini Pillai <vinitha.pillai at nxp.com>; Udit
>> Agarwal <udit.agarwal at nxp.com>
>> Subject: Re: [PATCH 1/3] fsl: PPA: add support PPA image validation from
>> NAND and SD
>>
>> On 04/10/2017 10:54 PM, Sumit Garg wrote:
>>>> -----Original Message-----
>>>> From: York Sun [mailto:york.sun at nxp.com]
>>>> Sent: Monday, April 10, 2017 10:39 PM
>>>> To: Sumit Garg <sumit.garg at nxp.com>; u-boot at lists.denx.de
>>>> Cc: Ruchika Gupta <ruchika.gupta at nxp.com>; Prabhakar Kushwaha
>>>> <prabhakar.kushwaha at nxp.com>; Vini Pillai <vinitha.pillai at nxp.com>;
>>>> Udit Agarwal <udit.agarwal at nxp.com>
>>>> Subject: Re: [PATCH 1/3] fsl: PPA: add support PPA image validation
>>>> from NAND and SD
>>>>
>>>> On 04/07/2017 04:41 AM, Sumit Garg wrote:
>>>>> Signed-off-by: Sumit Garg <sumit.garg at nxp.com>
>>>>> Signed-off-by: Udit Agarwal <udit.agarwal at nxp.com>
>>>>> Tested-by: Vinitha Pillai <vinitha.pillai at nxp.com>
>>>>> ---
>>>>>  arch/arm/cpu/armv8/fsl-layerscape/ppa.c | 67
>>>>> ++++++++++++++++++++++++++++++++-
>>>>>  1 file changed, 66 insertions(+), 1 deletion(-)
>>>>>
>>>>> diff --git a/arch/arm/cpu/armv8/fsl-layerscape/ppa.c
>>>>> b/arch/arm/cpu/armv8/fsl-layerscape/ppa.c
>>>>> index 7f87bb8..d8f1d36 100644
>>>>> --- a/arch/arm/cpu/armv8/fsl-layerscape/ppa.c
>>>>> +++ b/arch/arm/cpu/armv8/fsl-layerscape/ppa.c
>>>>> @@ -39,6 +39,10 @@ int ppa_init(void)  #ifdef CONFIG_CHAIN_OF_TRUST
>>>>>  	uintptr_t ppa_esbc_hdr = CONFIG_SYS_LS_PPA_ESBC_ADDR;
>>>>
>>>> For MMC and NAND, this CONFIG_SYS_LS_PPA_ESBC_ADDR is actually not
>>>> used.
>>>> Shall we move the assignment down to XIP section? The Kconfig should
>>>> also be updated.
>>>>
>>>> York
>>>
>>> As per PPA verification patch for eMMC/SD and NAND:
>>>
>>> --- a/arch/arm/cpu/armv8/fsl-layerscape/Kconfig
>>> +++ b/arch/arm/cpu/armv8/fsl-layerscape/Kconfig
>>> @@ -179,12 +179,22 @@ config SYS_LS_PPA_ESBC_ADDR
>>>  	default 0x40740000 if SYS_LS_PPA_FW_IN_XIP && ARCH_LS1046A
>>>  	default 0x40480000 if SYS_LS_PPA_FW_IN_XIP && ARCH_LS1012A
>>>  	default 0x580c40000 if SYS_LS_PPA_FW_IN_XIP && FSL_LSCH3
>>> +	default 0x700000 if SYS_LS_PPA_FW_IN_MMC
>>> +	default 0x700000 if SYS_LS_PPA_FW_IN_NAND
>>>  	help
>>>  	  If the PPA header firmware locate at XIP flash, such as NOR or
>>>  	  QSPI flash, this address is a directly memory-mapped.
>>>  	  If it is in a serial accessed flash, such as NAND and SD
>>>  	  card, it is a byte offset.
>>>
>>> CONFIG_SYS_LS_PPA_ESBC_ADDR is used to provide offset on eMMC/SD
>> and NAND.
>>>
>>
>> That's exactly what I was referring to. You are _NOT_ using
>> CONFIG_SYS_LS_PPA_ESBC_ADDR value for eMMC/SD or NAND. Instead, you
>> use malloc to get a new memory for the header, which I agree it is right to do.
>> So the macro CONFIG_SYS_LS_PPA_ESBC_ADDR is not used for either MMC or
>> NAND.
>>
>> York
>
> Actually I am using CONFIG_SYS_LS_PPA_ESBC_ADDR in case of eMMC/SD or NAND as follows:
>
> For eMMC/SD:
> +	blk = CONFIG_SYS_LS_PPA_ESBC_ADDR >> 9;
> +	cnt = DIV_ROUND_UP(CONFIG_LS_PPA_ESBC_HDR_SIZE, 512);
> +	ret = mmc->block_dev.block_read(&mmc->block_dev, blk, cnt, ppa_hdr_ddr);
> +	if (ret != cnt) {
> +		free(ppa_hdr_ddr);
> +		printf("MMC/SD read of PPA header failed\n");
> +		return -EIO;
> +	}
>
> For NAND:
> +	ret = nand_read(nand_info[0], (loff_t)CONFIG_SYS_LS_PPA_ESBC_ADDR,
> +		       &fw_length, (u_char *)ppa_hdr_ddr);
> +	if (ret == -EUCLEAN) {
> +		free(ppa_hdr_ddr);
> +		printf("NAND read of PPA firmware at offset 0x%x failed\n",
> +		       CONFIG_SYS_LS_PPA_FW_ADDR);
> +		return -EIO;
> +	}
>

So you are using this macro, but not using it directly as the way for 
XIP. It is confusing to see the assignment

ppa_esbc_hdr = CONFIG_SYS_LS_PPA_ESBC_ADDR;

I was suggesting to move this assignment down to the XIP section.

York


More information about the U-Boot mailing list