About boot register(BSCR、BUREG) value lost?

Discussion around products based on ARM Cortex-A5 core.

Moderator: nferre

xzp114
Posts: 23
Joined: Thu Mar 16, 2017 12:30 pm

About boot register(BSCR、BUREG) value lost?

Mon Apr 17, 2017 5:30 am

Hi,
I found a problem, when i configed my evaluation board for a few days, i connected power, it cannot boot up,and just print "RomBOOT".I print the cpu boot config registers , they are became the reset values just as blow

Code: Select all

Applet 'BootConfig' from softpack 2.5 (v2.5).
BSCR: 0x00000000 ->  BUREG_0
BUREG0: 0x00000000 -> QSPI_0_IOSET_1 QSPI_1_IOSET_1 SPI_0_IOSET_1 SPI_1_IOSET_1 NFC_IOSET_1 SDMMC_0 SDMMC_1 CONSOLE_UART1_IOSET_1 JTAG_IOSET_1
BUREG1: 0x00000000 -> QSPI_0_IOSET_1 QSPI_1_IOSET_1 SPI_0_IOSET_1 SPI_1_IOSET_1 NFC_IOSET_1 SDMMC_0 SDMMC_1 CONSOLE_UART1_IOSET_1 JTAG_IOSET_1
BUREG2: 0x00000000 -> QSPI_0_IOSET_1 QSPI_1_IOSET_1 SPI_0_IOSET_1 SPI_1_IOSET_1 NFC_IOSET_1 SDMMC_0 SDMMC_1 CONSOLE_UART1_IOSET_1 JTAG_IOSET_1
BUREG3: 0x00000000 -> QSPI_0_IOSET_1 QSPI_1_IOSET_1 SPI_0_IOSET_1 SPI_1_IOSET_1 NFC_IOSET_1 SDMMC_0 SDMMC_1 CONSOLE_UART1_IOSET_1 JTAG_IOSET_1
FUSE: 0x00240032 -> QSPI_0_IOSET_3* QSPI_1_IOSET_1 SPI_1_IOSET_1 NFC_IOSET_1 SDMMC_0 SDMMC_1 CONSOLE_UART1_IOSET_1 JTAG_IOSET_1 EXT_MEM_BOOT* QSPI_XIP_MODE*
When the board power down , i open the jumper of VDDBU(JP6) . The boot config values is loss too. After reconfig the boot register my board can boot up normally. So what is wrong? And how to designed my custom board about the VDDBU? If the boot registers value lost, it would be a lot of trouble!
HW:Sama5d2-Xplained
blue_z
Location: USA
Posts: 1560
Joined: Thu Apr 19, 2007 10:15 pm

Re: About boot register(BSCR、BUREG) value lost?

Tue Apr 18, 2017 9:16 pm

xzp114 wrote:When the board power down , i open the jumper of VDDBU(JP6) . The boot config values is loss too. After reconfig the boot register my board can boot up normally. So what is wrong?
As usual the answer is in the SoC datasheet.
The four boot config BUREG registers are part of the BUREG256b in the SAMA5D2 Security Module macrocell.
BUREG256b is always reset after a VDDBU powerup.

These registers are seen as zero after reset or after an erase.
xzp114 wrote:And how to designed my custom board about the VDDBU?
Obviously VDDBU has to be supplied by uninterruptible power (e.g. a battery or supercap) to maintain BUREG256b data.

Regards
xzp114
Posts: 23
Joined: Thu Mar 16, 2017 12:30 pm

Re: About boot register(BSCR、BUREG) value lost?

Wed Apr 19, 2017 3:39 am

Obviously VDDBU has to be supplied by uninterruptible power (e.g. a battery or supercap) to maintain BUREG256b data.
Thanks, so my question is how to do when the battery capacity is empty? My machine may work for few years, and maybe leave unused for few months. Must we should depend on the battery for keep the boot registers? Any ideas?
Thanks,
blue_z
Location: USA
Posts: 1560
Joined: Thu Apr 19, 2007 10:15 pm

Re: About boot register(BSCR、BUREG) value lost?

Wed Apr 19, 2017 10:14 pm

Instead of using a BUREG, consider writing zeroes to the BSC_CR (i.e. BUREG_VALID = 0), and use the fuses for the Boot Configuration Word.
Instead of a battery, consider using a supercapacitor.

Regards
xzp114
Posts: 23
Joined: Thu Mar 16, 2017 12:30 pm

Re: About boot register(BSCR、BUREG) value lost?

Fri Apr 21, 2017 3:55 am

blue_z wrote:Instead of using a BUREG, consider writing zeroes to the BSC_CR (i.e. BUREG_VALID = 0), and use the fuses for the Boot Configuration Word.
Instead of a battery, consider using a supercapacitor.

Regards
OK,thank you!
I use SAM_BA 3.1.4 to reset BCW register BUREG_VALID bit. But my board cannot boot up as the fuse boot Sequence (QSPI0) also,just print "RomBOOT". And i find that i cannot set the BUREG_VALID bit back, i donot know why? Here is the log.

Code: Select all

Applet 'BootConfig' from softpack 2.5 (v2.5).
BSCR: 0x00000004 -> BUREG_VALID BUREG_0
BUREG0: 0x00040ffe -> QSPI_0_IOSET_3* CONSOLE_UART1_IOSET_1 JTAG_IOSET_1 EXT_MEM_BOOT*
BUREG1: 0x00000000 -> QSPI_0_IOSET_1 QSPI_1_IOSET_1 SPI_0_IOSET_1 SPI_1_IOSET_1 NFC_IOSET_1 SDMMC_0 SDMMC_1 CONSOLE_UART1_IOSET_1 JTAG_IOSET_1
BUREG2: 0x00000000 -> QSPI_0_IOSET_1 QSPI_1_IOSET_1 SPI_0_IOSET_1 SPI_1_IOSET_1 NFC_IOSET_1 SDMMC_0 SDMMC_1 CONSOLE_UART1_IOSET_1 JTAG_IOSET_1
BUREG3: 0x00000000 -> QSPI_0_IOSET_1 QSPI_1_IOSET_1 SPI_0_IOSET_1 SPI_1_IOSET_1 NFC_IOSET_1 SDMMC_0 SDMMC_1 CONSOLE_UART1_IOSET_1 JTAG_IOSET_1
FUSE: 0x006400f2 -> QSPI_0_IOSET_3* QSPI_1_IOSET_1 NFC_IOSET_1 SDMMC_0 SDMMC_1 CONSOLE_UART1_IOSET_1 JTAG_IOSET_1 EXT_MEM_BOOT* QSPI_XIP_MODE* DISABLE_BSCR*
Writing 0x00000004 to BSC CR
Writing 0x000400c2 to bootcfg fuse (fuse #16)
BSCR: 0x00000004 -> BUREG_VALID BUREG_0
BUREG0: 0x00040ffe -> QSPI_0_IOSET_3* CONSOLE_UART1_IOSET_1 JTAG_IOSET_1 EXT_MEM_BOOT*
BUREG1: 0x00000000 -> QSPI_0_IOSET_1 QSPI_1_IOSET_1 SPI_0_IOSET_1 SPI_1_IOSET_1 NFC_IOSET_1 SDMMC_0 SDMMC_1 CONSOLE_UART1_IOSET_1 JTAG_IOSET_1
BUREG2: 0x00000000 -> QSPI_0_IOSET_1 QSPI_1_IOSET_1 SPI_0_IOSET_1 SPI_1_IOSET_1 NFC_IOSET_1 SDMMC_0 SDMMC_1 CONSOLE_UART1_IOSET_1 JTAG_IOSET_1
BUREG3: 0x00000000 -> QSPI_0_IOSET_1 QSPI_1_IOSET_1 SPI_0_IOSET_1 SPI_1_IOSET_1 NFC_IOSET_1 SDMMC_0 SDMMC_1 CONSOLE_UART1_IOSET_1 JTAG_IOSET_1
FUSE: 0x006400f2 -> QSPI_0_IOSET_3* QSPI_1_IOSET_1 NFC_IOSET_1 SDMMC_0 SDMMC_1 CONSOLE_UART1_IOSET_1 JTAG_IOSET_1 EXT_MEM_BOOT* QSPI_XIP_MODE* DISABLE_BSCR*
The FUSE register is always 0x006400f2 , not to be set for my 0x000400c2 , can you help me?
blue_z
Location: USA
Posts: 1560
Joined: Thu Apr 19, 2007 10:15 pm

Re: About boot register(BSCR、BUREG) value lost?

Sat Apr 22, 2017 1:18 am

xzp114 wrote:And i find that i cannot set the BUREG_VALID bit back, i donot know why?
You haven't supplied any details to indicate what you might be doing incorrectly.
FYI I do not have a SAMA5D2 board, so anything I know is from the datasheet.
xzp114 wrote:The FUSE register is always 0x006400f2 , not to be set for my 0x000400c2 , can you help me?
The fuses are OPT, one time programmable (set to logic ‘1’). They cannot be erased back to zero.
That's why it's called a "fuse" rather than a "memory".

Regards
xzp114
Posts: 23
Joined: Thu Mar 16, 2017 12:30 pm

Re: About boot register(BSCR、BUREG) value lost?

Sat Apr 22, 2017 8:19 am

blue_z wrote: They cannot be erased back to zero.
That's why it's called a "fuse" rather than a "memory".
OK, thanks,i know. Do i have some way to recovery the fuse since i set the wrong value like above?
blue_z
Location: USA
Posts: 1560
Joined: Thu Apr 19, 2007 10:15 pm

Re: About boot register(BSCR、BUREG) value lost?

Tue Apr 25, 2017 12:20 am

xzp114 wrote:Do i have some way to recovery the fuse since i set the wrong value like above?
No.
You could use the BSC_CR and a BUREG to override the fuses so long as the DISABLE_BSCR fuse is clear (however yours is set).

Regards

Return to “SAMA5D Cortex-A5 MPU”

Who is online

Users browsing this forum: No registered users and 1 guest