diff --git a/tcl/board/olimex_stm32_h103.cfg b/tcl/board/olimex_stm32_h103.cfg index fadf17551..de1fa8bf3 100644 --- a/tcl/board/olimex_stm32_h103.cfg +++ b/tcl/board/olimex_stm32_h103.cfg @@ -4,5 +4,8 @@ # http://olimex.com/dev/stm32-h103.html # +#Set flash size to 128k for STM32103RB device +set WORKAREASIZE 0x20000 + source [find target/stm32.cfg] diff --git a/tcl/target/stm32.cfg b/tcl/target/stm32.cfg index 2fe178501..61ae562f0 100644 --- a/tcl/target/stm32.cfg +++ b/tcl/target/stm32.cfg @@ -12,6 +12,14 @@ if { [info exists ENDIAN] } { set _ENDIAN little } +#Checking if user had set the work-area-size for the chip +#If not, the value will be set to 16k +if { [info exists WORKAREASIZE] } { + set _WORKAREASIZE $WORKAREASIZE +} else { + set _WORKAREASIZE 0x4000 +} + # jtag speed jtag_khz 500 @@ -50,7 +58,7 @@ jtag newtap $_CHIPNAME bs -irlen 5 -ircapture 0x1 -irmask 0x1 -expected-id $_BS set _TARGETNAME [format "%s.cpu" $_CHIPNAME] target create $_TARGETNAME cortex_m3 -endian $_ENDIAN -chain-position $_TARGETNAME -$_TARGETNAME configure -work-area-virt 0 -work-area-phys 0x20000000 -work-area-size 16384 -work-area-backup 0 +$_TARGETNAME configure -work-area-virt 0 -work-area-phys 0x20000000 -work-area-size $_WORKAREASIZE -work-area-backup 0 flash bank stm32x 0 0 0 0 0