dm: crash for DM_FLAG_PRE_RELOC

Heinrich Schuchardt xypron.glpk at gmx.de
Wed Apr 15 23:17:10 CEST 2020


On 4/15/20 9:22 PM, Simon Glass wrote:
> Hi Heinrich,
>
> On Wed, 15 Apr 2020 at 12:33, Fabio Estevam <festevam at gmail.com> wrote:
>>
>> Changing Ruchika's address to the NXP one.
>>
>> On Wed, Apr 15, 2020 at 3:28 PM Heinrich Schuchardt <xypron.glpk at gmx.de> wrote:
>>>
>>> Hello Simon,
>>>
>>> I try to boot pine64-lts_defconfig + CONFIG_RSA=y.
>>>
>>> SPL loads BL31. BL31 starts U-Boot. But before any output appears SPL is
>>> restarted. So some crash must occur.
>>>
>>> If I remove the flag DM_FLAG_PRE_RELOC in
>>> drivers/crypto/rsa_mod_exp/mod_exp_sw.c, booting works fine.
>>>
>>> Assigning the driver to UCLASS_NOP does not resolve the problem. So it
>>> seems not to be a problem with the u-class.
>>>
>>> Enlarging CONFIG_SPL_SYS_MALLOC_F_LEN and CONFIG_SYS_MALLOC_F_LEN does
>>> not resolve the problem.
>>>
>>> As the failure occurs very early no console is available for debug
>>> output. Defining LOG_DEBUG at the top of drivers/core/list.c provides no
>>> output.
>>>
>>> Do you have an idea how to identify the root cause of the problem?
>>>
>>> @Ruchika
>>> Why is this driver loaded before relocation? I cannot find any usage of
>>> function rsa_verify_key() before relocation.
>>>>
> I suppose a JTAG debugger would be best. But failing that you can
> enable the debug UART. It should make printf(), etc. work very early.
> If not, try printch() etc, to figure out why.

The board has no board_debug_uart_init().
And there isn't any JTAG connector either.

With

CONFIG_DEBUG_UART_NS16550=y
CONFIG_DEBUG_UART_BASE=0x1c28000
CONFIG_DEBUG_UART_CLOCK=24000000

printch() lets the board simply hang.

Best regards

Heinrich

>
> Regards,
> SImon
>



More information about the U-Boot mailing list