F29H850TU: Boot ROM flow

Part Number: F29H850TU

Hi,

In BOOT ROM flow section, for decoding bootmodes, it checks for emulation boot flow or standalone bootflow.

image.png

Here before jumping to Application, there are so many steps like loading values into SSU registers and after bootloading success, it will jump to application(if debugger is not connected, meaning standalone bootflow)

image.png

But here, only the bootmode pins are decoded and jumped to Application code. Why are the SSU values are not loaded here?

What is HSM pattern and its types like Normal, recovery pass, idle mode? Why is there need to read these values?

In what cases, RAM boot is helpful?

Thanks and Regards

Geetha K

  • Hi,

    But here, only the bootmode pins are decoded and jumped to Application code. Why are the SSU values are not loaded here?

    Not really if you look at the flowchart, if the bootpin_config key is 5A and If debugger is not connected, then the following SECCFG locations are used to determine the boot modes: – BOOTPIN_CONFIG – BOOTDEF_LOW – BOOTDEF_HIGH

    What is HSM pattern and its types like Normal, recovery pass, idle mode? Why is there need to read these values?

    This is HSM ROM given pattern, which communicates  to C29 ROM if the decoded boot mode should be taken in effect, in case of recovery pass we then go to wait boot or ram boot otherwise. This is enabled for device recovery.

    Thanks.

  • Hi,

    Not really if you look at the flowchart, if the bootpin_config key is 5A and If debugger is not connected, then the following SECCFG locations are used to determine the boot modes: – BOOTPIN_CONFIG – BOOTDEF_LOW – BOOTDEF_HIGH

    I meant about RAMOPEN_COMMIT, RAMOPEN__LOCK, BOOTLOADER_LOCK, SECVALID, BANKMODE, BANKMAP values from 1st image, why are these values are not loaded in standalone bootflow? In 2nd image, only  BOOTPIN_CONFIG – BOOTDEF_LOW – BOOTDEF_HIGH these values are read.

    its types like Normal, recovery pass, idle mode

    Can you explain the difference among them? In which case each of them is communicated by HSM ROM when idle mode is given, normal pass and recovery pass, respectively?

    Thanks

  • I meant about RAMOPEN_COMMIT, RAMOPEN__LOCK, BOOTLOADER_LOCK, SECVALID, BANKMODE, BANKMAP values from 1st image, why are these values are not loaded in standalone bootflow? In 2nd image, only  BOOTPIN_CONFIG – BOOTDEF_LOW – BOOTDEF_HIGH these values are read.

    Decoding of bootmode occurs before but doesnt jump straight to app from there it still jumps to application later after completing rest of system boot as describe in system boot flowchart

    Can you explain the difference among them? In which case each of them is communicated by HSM ROM when idle mode is given, normal pass and recovery pass, respectively?

    Recovery pass is way for HSM to notify the C29 rom that security settings are not verified correctly and allows way to still boot device in safe way for recovery

    Thanks

  • Hi, 

    allows way to still boot device in safe way for recovery

    When Recovery_pass is obtained by C29 CPU, it still goes to System Boot, how does this differentiate from Normal pass mode, like what does it do to boot in safe recovery way?

  • Hi,

    Since when recovery pass is detected, forcing wait boot mode or RAM boot mode if decoded mode is ram boot mode. This provides user ability to debug the application and re-program rather than locking out the device.

    When Recovery_pass is obtained by C29 CPU, it still goes to System Boot

    When recovery pass is detected by c29 rom it defaults the SSU settings as shown in below flowchart, the decoding of SSu config happen here and then programmed in system boot

    Thanks