diff --git a/README.md b/README.md
index 1f103d6..ac9818e 100644
--- a/README.md
+++ b/README.md
@@ -2,16 +2,35 @@
 OpenOCD support for RTL8710 and integrated flash.
 ## pins:
 ### SWD
-SWDIO:   GE3  
-SWCLK:   GE4  
+* SWDIO:   GE3  
+* SWCLK:   GE4  
 ### JTAG
-TRST:    GE0  
-TDI:     GE1  
-TDO:     GE2  
-TMS:     GE3  
-CLK:     GE4  
+* TRST:    GE0  
+* TDI:     GE1  
+* TDO:     GE2  
+* TMS:     GE3  
+* TCK:     GE4  
 ## building:
 make
-## testing:
-make test
-
+## available OpenOCD commands:
+### rtl8710_flash_read_id
+read and parse the jedec id bytes from flash
+### rtl8710_flash_mass_erase
+erase whole flash
+### rtl8710_flash_read [filename] [offset] [size]
+dump (size) bytes from flash offset (offset) to file (filename)
+### rtl8710_flash_write [filename] [offset]
+write file (filename) to flash offset (offset)
+### rtl8710_flash_verify [filename] [offset]
+compare file (filename) with flash offset (offset)
+### rtl8710_flash_auto_erase [1/0]
+set auto_erase option on/off. flash pages will be autoerased when writing
+### rtl8710_flash_auto_verify [1/0]
+set auto_verify on/off. each block of data will be auto verified when writing
+## example:
+```
+openocd -f interface/stlink-v2-1.cfg -f rtl8710.ocd -c "init" -c "reset halt" -c "rtl8710_flash_read_id" -c "rtl8710_flash_read dump.bin 0 1048576" -c "shutdown"
+```
+```
+openocd -f interface/stlink-v2-1.cfg -f rtl8710.ocd -c "init" -c "reset halt" -c "rtl8710_flash_auto_erase 1" -c "rtl8710_flash_auto_verify 1" -c "rtl8710_flash_write dump.bin 0" -c "shutdown"
+```
diff --git a/rtl8710_flasher.ocd b/rtl8710_flasher.ocd
index b65d248..c7f04fe 100644
--- a/rtl8710_flasher.ocd
+++ b/rtl8710_flasher.ocd
@@ -16,6 +16,19 @@ set rtl8710_flasher_auto_erase           0
 set rtl8710_flasher_auto_verify          0
 set rtl8710_flasher_auto_erase_sector    0xFFFFFFFF
 
+proc array2file {a local_filename loc} {
+	for {set offset 0} {$offset < [array size a]} {set offset [expr {$offset + 1}]} {
+		append bindata [binary format c $a([expr $offset])]
+	}
+	set fp [open $local_filename "a+"]
+	close $fp
+	set fp [open $local_filename "r+"]
+	fconfigure $fp -translation binary
+	seek $fp $loc
+	puts -nonewline $fp $bindata
+	close $fp
+}
+
 proc rtl8710_flasher_init {} {
 	global rtl8710_flasher_firmware_ptr
 	global rtl8710_flasher_buffer
@@ -40,21 +53,6 @@ proc rtl8710_flasher_init {} {
 	return ""
 }
 
-proc array2file {a local_filename loc} {
-	echo $a
-	echo [array size a]
-	for {set offset 0} {$offset < [array size a]} {set offset [expr {$offset + 1}]} {
-		append bindata [binary format c $a([expr $offset])]
-	}
-	set fp [open $local_filename "a+"]
-	close $fp
-	set fp [open $local_filename "r+"]
-	fconfigure $fp -translation binary
-	seek $fp $loc
-	puts -nonewline $fp $bindata
-	close $fp
-}
-
 proc rtl8710_flasher_mrw {reg} {
 	set value ""
 	mem2array value 32 $reg 1
diff --git a/script/rtl8710.ocd b/script/rtl8710.ocd
index 07e6994..f572fe2 100644
--- a/script/rtl8710.ocd
+++ b/script/rtl8710.ocd
@@ -114,6 +114,19 @@ set rtl8710_flasher_auto_erase           0
 set rtl8710_flasher_auto_verify          0
 set rtl8710_flasher_auto_erase_sector    0xFFFFFFFF
 
+proc array2file {a local_filename loc} {
+	for {set offset 0} {$offset < [array size a]} {set offset [expr {$offset + 1}]} {
+		append bindata [binary format c $a([expr $offset])]
+	}
+	set fp [open $local_filename "a+"]
+	close $fp
+	set fp [open $local_filename "r+"]
+	fconfigure $fp -translation binary
+	seek $fp $loc
+	puts -nonewline $fp $bindata
+	close $fp
+}
+
 proc rtl8710_flasher_init {} {
 	global rtl8710_flasher_firmware_ptr
 	global rtl8710_flasher_buffer
@@ -138,21 +151,6 @@ proc rtl8710_flasher_init {} {
 	return ""
 }
 
-proc array2file {a local_filename loc} {
-	echo $a
-	echo [array size a]
-	for {set offset 0} {$offset < [array size a]} {set offset [expr {$offset + 1}]} {
-		append bindata [binary format c $a([expr $offset])]
-	}
-	set fp [open $local_filename "a+"]
-	close $fp
-	set fp [open $local_filename "r+"]
-	fconfigure $fp -translation binary
-	seek $fp $loc
-	puts -nonewline $fp $bindata
-	close $fp
-}
-
 proc rtl8710_flasher_mrw {reg} {
 	set value ""
 	mem2array value 32 $reg 1