diff options
author | Brian J. Nemec <bnemec@google.com> | 2022-02-07 09:24:37 -0800 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2022-02-15 21:31:20 +0000 |
commit | 3027a7553e51785be1395af10b9545aa1a32ff99 (patch) | |
tree | 8eeddf54e82ccc19d3fb4ec6bec2ca5b17f2656d /chip/stm32/config-stm32f4.h | |
parent | 0f6242e8bd99e0b1fe4d2f15e95bf48eb7daa516 (diff) | |
download | chrome-ec-3027a7553e51785be1395af10b9545aa1a32ff99.tar.gz |
stm32: Add the DFU Boot Manager
Added the DFU Boot Manager to control the switch between the DFU
and main application region.
The DFU Bootmanager performs self checks when the application boots.
If any of the following conditions are true it will jump into DFU:
* The system backup registers contain a 'Jump to DFU' request.
* The start of the RW region is erased indicating the prior
firmware update has failed.
* An optional check can be enabled to record the number of
consecutive unexpected reboots which will be useful for
developer test images to avoid locked systems.
Testing requires enabling multiple configuration settings set in the
follower CL which enables it on Servo_v4. dfu-util version 0.9 lacks
the 'leave' parameter required to automatically jump out, systems using
this would need to be power cycled to leave DFU.
BRANCH=servo
BUG=b:217955677
TEST=Enabled the DFU configuration on a Servo_v4. Verified that the
runtime identifier is correctly recognized by dfu-util and pydfu.py
implementations of the DFU host protocol. Verified firmware updates
via the DFU protocol function correctly.
TEST=sudo dfu-util -a 0 -s 0x08000000:leave -e -D ec.bin
Verified that dfu-util can program the application region.
Signed-off-by: Brian Nemec <bnemec@chromium.org>
Change-Id: Ie535efc91318244574949542c03efa0b5973cbe5
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3443960
Tested-by: Brian Nemec <bnemec@google.com>
Reviewed-by: Sam Hurst <shurst@google.com>
Commit-Queue: Brian Nemec <bnemec@google.com>
Diffstat (limited to 'chip/stm32/config-stm32f4.h')
-rw-r--r-- | chip/stm32/config-stm32f4.h | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/chip/stm32/config-stm32f4.h b/chip/stm32/config-stm32f4.h index 73c9a3694f..46303444fc 100644 --- a/chip/stm32/config-stm32f4.h +++ b/chip/stm32/config-stm32f4.h @@ -70,3 +70,6 @@ #define CONFIG_IRQ_COUNT 97 #undef CONFIG_CMD_CHARGEN + +/* DFU Address */ +#define STM32_DFU_BASE 0x1fff0000 |