diff --git a/tcl/board/olimex_stm32_h103.cfg b/tcl/board/olimex_stm32_h103.cfg
index de1fa8bf3c1939c65cfe7976aaff11591257b74e..98b0b658db1039465af93f3e7a2ed1e2f0f25982 100644
--- a/tcl/board/olimex_stm32_h103.cfg
+++ b/tcl/board/olimex_stm32_h103.cfg
@@ -1,11 +1,7 @@
-#
 # Olimex STM32-H103 eval board
-#
 # http://olimex.com/dev/stm32-h103.html
-#
 
-#Set flash size to 128k for STM32103RB device
-set WORKAREASIZE 0x20000
+# Work-area size (RAM size) = 20kB for STM32F103RB device
+set WORKAREASIZE 0x5000
 
 source [find target/stm32.cfg]
-
diff --git a/tcl/target/stm32.cfg b/tcl/target/stm32.cfg
index 61ae562f0f515f79f9a4c3f0d65382456c505cf1..d3f60feb3f16b05dbc16858553cd53dc6b0a39b5 100644
--- a/tcl/target/stm32.cfg
+++ b/tcl/target/stm32.cfg
@@ -12,16 +12,16 @@ 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
+# Work-area is a space in RAM used for flash programming
+# By default use 16kB
 if { [info exists WORKAREASIZE] } {
    set  _WORKAREASIZE $WORKAREASIZE
 } else {
    set  _WORKAREASIZE 0x4000
 }
 
-# jtag speed
-jtag_khz 500
+# JTAG speed should be <= F_CPU/6. F_CPU after reset is 8MHz, so use F_JTAG = 1MHz
+jtag_khz 1000
 
 jtag_nsrst_delay 100
 jtag_ntrst_delay 100