From 85d88d364feab4fd9f01637dfbb6d797e4fceaf7 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Thu, 11 Jun 2015 08:38:56 -0600 Subject: [PATCH] Kinetis: Add logic to set CFM protect area to all 0xff in all configurations --- arch/arm/src/kinetis/Make.defs | 1 + arch/arm/src/kinetis/kinetis_cfmconfig.c | 28 ++++++++++++++++++++++++ arch/arm/src/kinetis/kinetis_start.c | 4 ++-- 3 files changed, 31 insertions(+), 2 deletions(-) create mode 100644 arch/arm/src/kinetis/kinetis_cfmconfig.c diff --git a/arch/arm/src/kinetis/Make.defs b/arch/arm/src/kinetis/Make.defs index 18896f1d72..65cea6f6e3 100644 --- a/arch/arm/src/kinetis/Make.defs +++ b/arch/arm/src/kinetis/Make.defs @@ -84,6 +84,7 @@ CHIP_CSRCS = kinetis_allocateheap.c kinetis_clockconfig.c CHIP_CSRCS += kinetis_clrpend.c kinetis_idle.c kinetis_irq.c CHIP_CSRCS += kinetis_lowputc.c kinetis_pin.c kinetis_pingpio.c CHIP_CSRCS += kinetis_serial.c kinetis_start.c kinetis_wdog.c +CHIP_CSRCS += kinetis_cfmconfig.c # Configuration-dependent Kinetis files diff --git a/arch/arm/src/kinetis/kinetis_cfmconfig.c b/arch/arm/src/kinetis/kinetis_cfmconfig.c new file mode 100644 index 0000000000..97c3f30cb8 --- /dev/null +++ b/arch/arm/src/kinetis/kinetis_cfmconfig.c @@ -0,0 +1,28 @@ +/* Barely based on "bare metal" sample from Freedom board: +Copyright (c) 2012-2013 Andrew Payne + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ + +#include + +__attribute__ ((section(".cfmconfig"))) +const uint8_t __flashconfigbytes[16] = +{ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff +}; diff --git a/arch/arm/src/kinetis/kinetis_start.c b/arch/arm/src/kinetis/kinetis_start.c index 90f6d991f2..df5b6adec3 100644 --- a/arch/arm/src/kinetis/kinetis_start.c +++ b/arch/arm/src/kinetis/kinetis_start.c @@ -112,8 +112,8 @@ void __start(void) } /* Copy any necessary code sections from FLASH to RAM. The correct - * destination in SRAM is geive by _sramfuncs and _eramfuncs. The - * temporary location is in flash after the data initalization code + * destination in SRAM is given by _sramfuncs and _eramfuncs. The + * temporary location is in flash after the data initialization code * at _framfuncs */