Files
OpenCellular/include
Randall Spangler e8ecda5e8d Support flash write protect on STM32L
This adds support for write protecting the RO code at boot, and the
entire flash on demand.

Implementation if WP# is not asserted is currently a little different
than STM32F and LM4; RO is still protected at boot if ro_at_boot, but
can be unprotected and the change will commit on the next reboot.
This saves the bank of flash which we use for pstate on LM4 and
STM32F.  I think I can use one of the unused option bits (WRP2 bit 0)
to hold the RO-at-boot flag, in which case I can more closely match
the behavior of the other chips, but I'd like to do that (or give up
and implement pstate) in a separate CL so it's clearer what I'm doing.

BUG=chrome-os-partner:15613
BRANCH=none
TEST=manual

- flashinfo -> (no flags)
- enable WP (via screw or dut-control)
- flashinfo -> wp_gpio_asserted
- flashwp enable
- flashinfo -> wp_gpio_asserted ro_at_boot
- flashwp now
- flashinfo -> wp_gpio_asserted ro_at_boot all_now
- flashwp disable -> fails
- flashinfo -> wp_gpio_asserted ro_at_boot all_now
- flasherase 0x1fc00 0x400 -> fails
- reboot
- flashinfo -> wp_gpio_asserted ro_at_boot ro_now
- flasherase 0xfc00 0x400 -> fails
- flasherase 0x1fc00 0x400 -> succeeds
- disable WP (via screw or dut-control)
- reboot
- flashinfo -> ro_at_boot ro_now
- flashwp disable
- flashinfo -> ro_now
- reboot
- flashinfo -> (no flags)
- flasherase 0xfc00 0x400 -> succeeds
- flasherase 0x1fc00 0x400 -> succeeds

Change-Id: Id1b6b099a44a1985a5ab9387feb882a8f26e3aa1
Signed-off-by: Randall Spangler <rspangler@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/55594
2013-05-22 19:15:56 -07:00
..
2013-04-30 10:38:43 -07:00
2012-10-24 10:09:20 -07:00
2013-04-05 14:28:42 -07:00
2013-03-26 18:03:20 -07:00
2013-04-03 11:49:07 -07:00
2011-12-07 19:10:02 +00:00
2012-10-26 09:49:38 -07:00
2013-04-10 14:24:10 -07:00
2013-05-22 19:15:56 -07:00
2013-04-24 00:06:00 -07:00
2013-05-22 12:29:11 -07:00
2012-10-30 12:42:46 -07:00
2012-11-04 20:27:57 -08:00
2011-12-07 19:10:02 +00:00
2012-10-25 14:12:11 -07:00
2011-12-07 19:10:02 +00:00
2012-10-25 14:12:10 -07:00
2012-10-25 17:03:44 -07:00
2012-08-09 17:40:37 -07:00
2013-05-14 09:25:03 -07:00
2012-10-26 13:10:57 -07:00
2012-10-29 16:52:49 -07:00
2012-10-30 12:42:43 -07:00