Skip to content

Add stm32_flash_addr #2

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 151 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
151 commits
Select commit Hold shift + click to select a range
47b8cf8
target: Add 64-bit target address support
elta Sep 23, 2013
ea45db5
server: Allow 64 address to be send over GBD server
Jan 17, 2015
9cbfc9f
arm_dpm: Add new state ARM_STATE_AARCH64
Apr 3, 2015
84a0bb4
arm_dpm: Add 64bit register handling.
Jan 17, 2015
d376f7f
aarch64: Add ARMv8 AARCH64 support files
Jan 16, 2015
236c996
aarch64: Add hardware breakpoint support
pierreKuo2Git Mar 17, 2015
5ee67ce
aarch64: Enable halting debug mode on breakpoint set
Apr 23, 2015
13d13b2
aarch64: Add instruction stepping support using hardware step
pierreKuo2Git Apr 23, 2015
a12c15e
aarch64: Enable resuming with address
Apr 23, 2015
6b554b3
aarch64: Correct target state for hardware step
Apr 20, 2015
ced4108
aarch64: add symbolic definitions for armv8 opcodes
sysgo-maw Sep 2, 2016
f2a271e
aarch64: fix reading of MPIDR
sysgo-maw Sep 3, 2016
df32af2
target: add -ctibase config option in addition to -dbgbase
sysgo-maw Sep 3, 2016
a3b9e12
aarch64: introduce dpm extension for ARMv8
sysgo-maw Sep 3, 2016
db97bb4
aarch64: make DCC read/write functions operate on struct armv8_common
sysgo-maw Sep 1, 2016
53573f7
aarch64: Implement MA mode for bulk memory reads and writes
sysgo-maw Sep 15, 2016
b085570
aarch64: deconflict debug register names
sysgo-maw Sep 17, 2016
4ba8388
aarch64: fix context and hybrid hardware breakpoints
sysgo-maw Sep 17, 2016
21a5c40
aarch64: formalize use of CTI in halt and resume
sysgo-maw Sep 16, 2016
f28d5ee
aarch64: fix error recovery in aarch64_dpm_prepare
sysgo-maw Sep 16, 2016
044e4b8
aarch64: fix accesses to SCTLR_ELn register
sysgo-maw Sep 16, 2016
3911095
aarch64: use symbolic opcodes instead of hex values
sysgo-maw Sep 16, 2016
d8abda4
aarch64: fix entry into debug state
sysgo-maw Sep 16, 2016
7eb95b1
aarch64: fix reading of translation table registers
sysgo-maw Sep 16, 2016
4314624
aarch64: fix cache identification
sysgo-maw Sep 16, 2016
42574b3
aarch64: correct breakpoint register offset
sysgo-maw Sep 16, 2016
667c1d0
aarch64: clear breakpoint value register on removal
sysgo-maw Sep 16, 2016
0386112
aarch64: remove armv7-a virt-to-phys code
sysgo-maw Sep 16, 2016
f442a53
aarch64: use symbolic constant for register count
sysgo-maw Sep 16, 2016
b273ec9
aarch64: correct display for aarch64 state
sysgo-maw Sep 16, 2016
6c096b2
aarch64: fix first examination
sysgo-maw Sep 16, 2016
e860288
aarch64: use correct A64 instructions for cache handling
sysgo-maw Sep 16, 2016
4afa32e
aarch64: unify armv7-a and armv8 debug entry decoding
sysgo-maw Sep 16, 2016
56ab6ab
aarch64: fix armv8_set_core_reg when destination is cpsr
sysgo-maw Sep 16, 2016
ae7f209
aarch64: remove references to armv7-r
sysgo-maw Sep 1, 2016
9cc8cfe
aarch64: fix stepping from address
sysgo-maw Sep 15, 2016
1826f0a
aarch64: remove code for AHB-AP support
sysgo-maw Sep 15, 2016
18ab54b
aarch64: fix duplication of register cache
sysgo-maw Sep 15, 2016
11bc04e
aarch64: fix register list
sysgo-maw Sep 16, 2016
df7069a
aarch64: report the correct reason for halting after singlestep
sysgo-maw Sep 16, 2016
4246fac
aarch64: use correct instruction for software breakpoints
sysgo-maw Sep 16, 2016
b430d0a
aarch64: disable interrupts when stepping [WIP]
sysgo-maw Sep 19, 2016
e17d1d4
aarch64: add cache handling functions
sysgo-maw Sep 20, 2016
c6ed75f
aarch64: add cache handling when setting/deleting soft breakpoints
sysgo-maw Sep 20, 2016
6b392de
aarch64: update smp halt and resume to better facilitate CTI
sysgo-maw Sep 29, 2016
a9931e6
aarch64: add basic Aarch32 support
sysgo-maw Sep 15, 2016
ef263a4
aarch64: refactor armv8 dpm
sysgo-maw Sep 22, 2016
b69750f
aarch64: armv8 cache functions update
sysgo-maw Sep 22, 2016
40ce737
aarch64: remove bogus os_border calculation
sysgo-maw Sep 26, 2016
fc3ce94
aarch64: slightly simplify breakpoint set function
sysgo-maw Sep 26, 2016
2b56f4f
aarch64: provide virt2phys command
sysgo-maw Oct 6, 2016
675b017
aarch64: simplify armv8_set_cpsr()
sysgo-maw Oct 6, 2016
a76e88d
aarch64: allow reading system control register when halted in EL0
sysgo-maw Oct 6, 2016
2539a32
aarch64: simplify armv8_read_ttbcr
sysgo-maw Oct 6, 2016
79c4c22
aarch64: register access rewrite
sysgo-maw Oct 6, 2016
946958c
aarch64: fix mode switching
sysgo-maw Oct 20, 2016
62c2eb4
aarch64: cache identification for aarch32 state
sysgo-maw Oct 20, 2016
c30f8d6
aarch64: handle exceptions taken in debug state
sysgo-maw Oct 20, 2016
05bf20d
aarch64: make sure to enable HDE for all SMP PEs to be halted
sysgo-maw Oct 20, 2016
ba82230
aarch64: allow reading TTBR register when halted in EL0
sysgo-maw Oct 20, 2016
ccb1199
aarch64: enable aarch32 debugging with arm gdb
sysgo-maw Oct 20, 2016
0a53bae
aarch64: cleanup context restore
sysgo-maw Oct 20, 2016
9f4b5b5
aarch64: discard async aborts on entering debug state
sysgo-maw Oct 20, 2016
f7dbcc3
aarch64: consolidate sticky error handling
sysgo-maw Oct 6, 2016
822ebda
aarch64: enlarge value buffer of arm_reg to store 64 bit
sysgo-maw Oct 20, 2016
7d537dc
aarch64: improve debug output
sysgo-maw Oct 20, 2016
2407721
aarch64: remove unused struct components
sysgo-maw Oct 20, 2016
8f59ee3
aarch64: remove "mrs <Xt>, currentel" opcode
sysgo-maw Oct 20, 2016
9166320
aarch64: remove arm command chain from aarch64 target commands
sysgo-maw Oct 20, 2016
9d2e8aa
aarch64: use cached value of dscr register where needed
sysgo-maw Oct 20, 2016
beece50
aarch64: don't segfault on reset when target is not examined
sysgo-maw Oct 21, 2016
7c2dc13
aarch64: don't try resuming if target is not halted
sysgo-maw Oct 21, 2016
091c378
flash/nor: avrf: support atmega128rfa1
karlp May 31, 2015
7c85165
aarch64: Fix #include guards
Feb 12, 2017
5d00fd9
aarch64: fix software breakpoints when in aarch32 state
sysgo-maw Oct 26, 2016
f988f59
aarch64: refactor SCTLR manipulation
sysgo-maw Nov 14, 2016
06ba549
aarch64: remove mrs/msr functions from struct arm
sysgo-maw Nov 14, 2016
fa8700c
aarch64: reduce debug output to improve legibility
sysgo-maw Nov 14, 2016
7ed0b63
aarch64: optimize core state detection
sysgo-maw Nov 15, 2016
9527d1e
target: generic ARM CTI function wrapper
sysgo-maw Nov 19, 2016
8b92353
aarch64: remove bogus address check before memory access
sysgo-maw Nov 27, 2016
095ff3d
armv8: load aarch32 register through aarch64 equivalent
sysgo-maw Nov 27, 2016
6fb9f2e
armv8: factor out generic bit set/clr for debug registers
sysgo-maw Feb 15, 2017
d6535e0
aarch64: reset fixes
sysgo-maw Feb 15, 2017
257c434
aarch64: clean up target specific commands
sysgo-maw Feb 17, 2017
e513fe9
aarch64: clean up struct aarch64_common
sysgo-maw Feb 17, 2017
bf1efe0
aarch64: run control rework
sysgo-maw Feb 17, 2017
2861ed5
armv8: spelling and formatting updates
sysgo-maw Feb 17, 2017
b736281
armv8_dpm: retrieve only necessary registers on halt
sysgo-maw Feb 17, 2017
9981093
armv8_dpm: fix exception handling
sysgo-maw Feb 17, 2017
77189db
tcl: add Hi6220 target and LeMaker HiKey board config
sysgo-maw Feb 23, 2017
6b2acc0
arm_dpm: fix dpm setup
girtsf Mar 3, 2017
2804480
nrf51: Remove pointer cast
nattgris Dec 29, 2016
332d66c
aarch64: clear CTI halt event early at debug entry
sysgo-maw Mar 1, 2017
f605a23
aarch64: add some documentation
sysgo-maw Feb 23, 2017
568e842
stlink: increase trace buffer size to maximum allowed on st-link v2 f…
apmorton Mar 29, 2017
518fcd3
target: Fix memory leak
Jan 8, 2017
668347e
flash Kinetis: reduce a flash write message severity to info
Apr 12, 2017
34eb293
jtag/drivers cmsis-dap: fix speed setting on Atmel EDBG
tom-van Jan 9, 2017
d7d7d8b
added interface config file for In-Circuit's ICprog OpenOCD JTAG adapter
matthiasbock Apr 19, 2017
6e82177
tools/scripts/checkpatch.pl: fix unescaped brace
Apr 9, 2017
7829f31
nrf51: Add new HWID 0x008F
damyanmitev Apr 4, 2017
1894292
board: introduce base config for TI BeagleBone family boards
thinkfat Nov 4, 2015
f63af76
help/options.c: add error handling for -d arg
girtsf Nov 5, 2016
b90d58d
helper/options.c: fail if unexpected cmdline arguments are present
girtsf Nov 5, 2016
8addd95
help/log.c: better error handling for "log_output"
girtsf Nov 5, 2016
73a9464
Add support for the ATMEL SAM G55 Xplained Pro board and CPU.
lambourg Apr 6, 2016
44ad4fd
jtag/drivers cmsis-dap: do not limit speed so strictly
tom-van Jan 9, 2017
2e0e6c5
flash/nor/at91samd: fix chip erase of a secured device
tom-van Mar 3, 2017
ca9dcc8
Fix flash writing on stm32l0
armint Mar 2, 2017
e916bcd
stm32lx: fix dual-bank configuration for Cat.5 and Cat.6 devices
CezaryGapinski Mar 20, 2017
b375052
tcl STM32L0xx - add support for dual banked targets and for Nucleo-64…
janbraiins Jan 25, 2017
790a7b2
flash/nor/tcl: Fix some format specifiers
Aug 16, 2016
45f0e6d
flash/nor/tcl: Make verify_bank parameter optional
Nov 4, 2016
8f3d16f
libusb: Add transfer type filter to get correct ep
Jan 26, 2016
e683ff2
Added 512K flashing support for em3587
Sep 26, 2016
68e204f
udev: Add rules for Ambiq Micro EVK's.
karlp Feb 17, 2017
3fe9929
tcl/board: Add STMicroelectronics STM32F7 Nucleo config
May 26, 2016
832f597
mips32, pic32 use uint8_t in 8 bit scan function
Feb 20, 2017
d81fc78
mips32, add generic scan 32 function
Feb 20, 2017
99db18a
stm32l4: support flashing L496 devices
juniskane Apr 25, 2017
b43b95e
server/server: Remove all exit() calls
Jan 24, 2016
3421b89
server/telnet: Remove exit() call
Jan 29, 2016
7ccd53b
mips32, homogenize code in the scan functions
Feb 20, 2017
09ebc1a
mips32, drop unnecessary code in mips32_pracc.c
Feb 22, 2017
5fdcbbd
mips32, mips32_pracc_finish() queued only
Feb 23, 2017
9bdc3bf
mips32, in wait_for_pracc_rw() use ejtag_info->pa_ctrl
Feb 23, 2017
bff6205
mips32, implement assembler li instruction
Feb 24, 2017
cb317ea
mips32, write handler code in a more compact way
Feb 24, 2017
3414dae
Fix compile failure on MacOSX
sysgo-maw May 2, 2017
c8b31aa
mips32, change in pracc_list for dynamic allocation
Feb 26, 2017
1392c27
mips32, add realloc code
Feb 26, 2017
e320588
mips32, add option to avoid check in last instruction
Feb 27, 2017
6012a87
mips32, add microMips instruction subset
Feb 27, 2017
2279c23
mips32, add support for micromips in debug mode
May 7, 2017
f5151b6
mips32, convert miniprograms with code definition
May 7, 2017
4831ce4
mips32: add micromips isa handling
May 7, 2017
b702b16
mips32: add micromips breakpoints support
May 8, 2017
f22b89d
mips32, use scan32 function for reading impcode/idcode.
Feb 20, 2017
753cf12
stm32l4: support flashing L45x/46x devices
juniskane May 4, 2017
16655c1
tcl/cpld: add config file for Altera 5M570Z CPLD (MAXV family)
Apr 26, 2017
f6449a7
jtag/drivers: Add Cypress KitProg driver
cyrozap Jan 30, 2016
83c67b7
imx_gpio: add mmap based jtag interface for IMX processors
gkostka Apr 18, 2017
6b9d19d
flash: Add support for Atheros (ath79) SPI interface
ranma Aug 1, 2016
1025be3
flash: nor: ath79: fix build failure due to recent MIPS changes
paulfertser May 31, 2017
ca2a440
Add stm32 flash scripts
erwango Feb 3, 2017
7415840
Create README.md
erwango Feb 3, 2017
bf88392
Update README.md
erwango Feb 3, 2017
6cc083a
Update README.md
erwango Feb 3, 2017
a0b3ce7
stm32_l4 / stm32_f4: add stm32_flsh_addr command
jamike Jun 26, 2017
0aa3174
Merge branch 'master' into stm32_flash_addr
erwango Oct 30, 2017
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion README
Original file line number Diff line number Diff line change
Expand Up @@ -123,7 +123,7 @@ XScale, Intel Quark.
Flash drivers
-------------

ADUC702x, AT91SAM, AVR, CFI, DSP5680xx, EFM32, EM357, FM3, FM4, Kinetis,
ADUC702x, AT91SAM, ATH79, AVR, CFI, DSP5680xx, EFM32, EM357, FM3, FM4, Kinetis,
LPC8xx/LPC1xxx/LPC2xxx/LPC541xx, LPC2900, LPCSPIFI, Marvell QSPI,
Milandr, NIIET, NuMicro, PIC32mx, PSoC4, SiM3x, Stellaris, STM32, STMSMI,
STR7x, STR9x, nRF51; NAND controllers of AT91SAM9, LPC3180, LPC32xx,
Expand Down
32 changes: 31 additions & 1 deletion configure.ac
Original file line number Diff line number Diff line change
Expand Up @@ -129,6 +129,9 @@ m4_define([USB0_ADAPTERS],
m4_define([HIDAPI_ADAPTERS],
[[[cmsis_dap], [CMSIS-DAP Compliant Debugger], [CMSIS_DAP]]])

m4_define([HIDAPI_USB1_ADAPTERS],
[[[kitprog], [Cypress KitProg Programmer], [KITPROG]]])

m4_define([LIBFTDI_ADAPTERS],
[[[usb_blaster], [Altera USB-Blaster Compatible], [USB_BLASTER]],
[[presto], [ASIX Presto Adapter], [PRESTO]],
Expand Down Expand Up @@ -243,6 +246,7 @@ AC_ARG_ADAPTERS([
USB_ADAPTERS,
USB0_ADAPTERS,
HIDAPI_ADAPTERS,
HIDAPI_USB1_ADAPTERS,
LIBFTDI_ADAPTERS,
LIBJAYLINK_ADAPTERS
],[auto])
Expand Down Expand Up @@ -294,11 +298,15 @@ AS_CASE(["${host_cpu}"],
AC_ARG_ENABLE([bcm2835gpio],
AS_HELP_STRING([--enable-bcm2835gpio], [Enable building support for bitbanging on BCM2835 (as found in Raspberry Pi)]),
[build_bcm2835gpio=$enableval], [build_bcm2835gpio=no])
AC_ARG_ENABLE([imx_gpio],
AS_HELP_STRING([--enable-imx_gpio], [Enable building support for bitbanging on NXP IMX processors]),
[build_imx_gpio=$enableval], [build_imx_gpio=no])
],
[
build_ep93xx=no
build_at91rm9200=no
build_bcm2835gpio=no
build_imx_gpio=no
])

AC_ARG_ENABLE([gw16012],
Expand Down Expand Up @@ -339,6 +347,10 @@ AC_ARG_ENABLE([internal-libjaylink],
[Disable building internal libjaylink]),
[use_internal_libjaylink=$enableval], [use_internal_libjaylink=yes])

AC_ARG_ENABLE([target64],
AS_HELP_STRING([--disable-target64], [Disable 64-bit target address]),
[build_target64=$enableval], [build_target64=yes])

build_minidriver=no
AC_MSG_CHECKING([whether to enable ZY1000 minidriver])
AS_IF([test "x$build_zy1000" = "xyes"], [
Expand Down Expand Up @@ -508,6 +520,13 @@ AS_IF([test "x$build_bcm2835gpio" = "xyes"], [
AC_DEFINE([BUILD_BCM2835GPIO], [0], [0 if you don't want bcm2835gpio.])
])

AS_IF([test "x$build_imx_gpio" = "xyes"], [
build_bitbang=yes
AC_DEFINE([BUILD_IMX_GPIO], [1], [1 if you want imx_gpio.])
], [
AC_DEFINE([BUILD_IMX_GPIO], [0], [0 if you don't want imx_gpio.])
])

AS_IF([test "x$parport_use_ppdev" = "xyes"], [
AC_DEFINE([PARPORT_USE_PPDEV], [1], [1 if you want parport to use ppdev.])
], [
Expand Down Expand Up @@ -572,6 +591,13 @@ AS_IF([test "x$build_sysfsgpio" = "xyes"], [
AC_DEFINE([BUILD_SYSFSGPIO], [0], [0 if you don't want SysfsGPIO driver.])
])

AS_IF([test "x$build_target64" = "xyes"], [
AC_DEFINE([BUILD_TARGET64], [1], [1 if you want 64-bit addresses.])
], [
AC_DEFINE([BUILD_TARGET64], [0], [0 if you don't want 64-bit addresses.])
])


PKG_CHECK_MODULES([LIBUSB1], [libusb-1.0], [
use_libusb1=yes
AC_DEFINE([HAVE_LIBUSB1], [1], [Define if you have libusb-1.x])
Expand Down Expand Up @@ -627,6 +653,7 @@ PROCESS_ADAPTERS([USB1_ADAPTERS], ["x$use_libusb1" = "xyes"], [libusb-1.x])
PROCESS_ADAPTERS([USB_ADAPTERS], ["x$use_libusb1" = "xyes" -o "x$use_libusb0" = "xyes"], [libusb-1.x or libusb-0.1])
PROCESS_ADAPTERS([USB0_ADAPTERS], ["x$use_libusb0" = "xyes"], [libusb-0.1])
PROCESS_ADAPTERS([HIDAPI_ADAPTERS], ["x$use_hidapi" = "xyes"], [hidapi])
PROCESS_ADAPTERS([HIDAPI_USB1_ADAPTERS], ["x$use_hidapi" = "xyes" -a "x$use_libusb1" = "xyes"], [hidapi and libusb-1.x])
PROCESS_ADAPTERS([LIBFTDI_ADAPTERS], ["x$use_libftdi" = "xyes"], [libftdi])
PROCESS_ADAPTERS([LIBJAYLINK_ADAPTERS], ["x$use_libusb1" = "xyes" -a "x$use_internal_libjaylink" = "xyes" -o "x$use_libjaylink" = "xyes"], [libusb-1.x or libjaylink-0.1])

Expand Down Expand Up @@ -670,6 +697,7 @@ AM_CONDITIONAL([ZY1000_MASTER], [test "x$build_zy1000_master" = "xyes"])
AM_CONDITIONAL([IOUTIL], [test "x$build_ioutil" = "xyes"])
AM_CONDITIONAL([AT91RM9200], [test "x$build_at91rm9200" = "xyes"])
AM_CONDITIONAL([BCM2835GPIO], [test "x$build_bcm2835gpio" = "xyes"])
AM_CONDITIONAL([IMX_GPIO], [test "x$build_imx_gpio" = "xyes"])
AM_CONDITIONAL([BITBANG], [test "x$build_bitbang" = "xyes"])
AM_CONDITIONAL([JTAG_VPI], [test "x$build_jtag_vpi" = "xyes" -o "x$build_jtag_vpi" = "xyes"])
AM_CONDITIONAL([USB_BLASTER_DRIVER], [test "x$enable_usb_blaster" != "xno" -o "x$enable_usb_blaster_2" != "xno"])
Expand All @@ -689,6 +717,7 @@ AM_CONDITIONAL([BITQ], [test "x$build_bitq" = "xyes"])
AM_CONDITIONAL([USE_LIBFTDI], [test "x$use_libftdi" = "xyes"])
AM_CONDITIONAL([USE_HIDAPI], [test "x$use_hidapi" = "xyes"])
AM_CONDITIONAL([USE_LIBJAYLINK], [test "x$use_libjaylink" = "xyes"])
AM_CONDITIONAL([TARGET64], [test "x$build_target64" = "xyes"])

AM_CONDITIONAL([MINIDRIVER], [test "x$build_minidriver" = "xyes"])
AM_CONDITIONAL([MINIDRIVER_DUMMY], [test "x$build_minidriver_dummy" = "xyes"])
Expand Down Expand Up @@ -756,7 +785,8 @@ echo
echo OpenOCD configuration summary
echo --------------------------------------------------
m4_foreach([adapter], [USB1_ADAPTERS, USB_ADAPTERS, USB0_ADAPTERS,
HIDAPI_ADAPTERS, LIBFTDI_ADAPTERS, LIBJAYLINK_ADAPTERS],
HIDAPI_ADAPTERS, HIDAPI_USB1_ADAPTERS, LIBFTDI_ADAPTERS,
LIBJAYLINK_ADAPTERS],
[s=m4_format(["%-40s"], ADAPTER_DESC([adapter]))
AS_CASE([$ADAPTER_VAR([adapter])],
[auto], [
Expand Down
11 changes: 11 additions & 0 deletions contrib/60-openocd.rules
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,12 @@ ATTRS{idVendor}=="0483", ATTRS{idProduct}=="3748", MODE="660", GROUP="plugdev",
# STLink v2-1
ATTRS{idVendor}=="0483", ATTRS{idProduct}=="374b", MODE="660", GROUP="plugdev", TAG+="uaccess"

# Cypress KitProg in KitProg mode
ATTRS{idVendor}=="04b4", ATTRS{idProduct}=="f139", MODE="660", GROUP="plugdev", TAG+="uaccess"

# Cypress KitProg in CMSIS-DAP mode
ATTRS{idVendor}=="04b4", ATTRS{idProduct}=="f138", MODE="660", GROUP="plugdev", TAG+="uaccess"

# Hilscher NXHX Boards
ATTRS{idVendor}=="0640", ATTRS{idProduct}=="0028", MODE="660", GROUP="plugdev", TAG+="uaccess"

Expand Down Expand Up @@ -122,6 +128,11 @@ ATTRS{idVendor}=="1781", ATTRS{idProduct}=="0c63", MODE="660", GROUP="plugdev",
# TI/Luminary Stellaris In-Circuit Debug Interface (ICDI) Board
ATTRS{idVendor}=="1cbe", ATTRS{idProduct}=="00fd", MODE="660", GROUP="plugdev", TAG+="uaccess"

# Ambiq Micro EVK and Debug boards.
ATTRS{idVendor}=="2aec", ATTRS{idProduct}=="6010", MODE="664", GROUP="plugdev", TAG+="uaccess"
ATTRS{idVendor}=="2aec", ATTRS{idProduct}=="6011", MODE="664", GROUP="plugdev", TAG+="uaccess"
ATTRS{idVendor}=="2aec", ATTRS{idProduct}=="1106", MODE="664", GROUP="plugdev", TAG+="uaccess"

# Marvell Sheevaplug
ATTRS{idVendor}=="9e88", ATTRS{idProduct}=="9e8f", MODE="660", GROUP="plugdev", TAG+="uaccess"

Expand Down
32 changes: 16 additions & 16 deletions contrib/loaders/flash/stm32lx.S
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,9 @@
* Copyright (C) 2011 Clement Burin des Roziers *
* [email protected] *
* *
* Copyright (C) 2017 Armin van der Togt *
* [email protected] *
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
Expand All @@ -28,7 +31,7 @@
// Build : arm-eabi-gcc -c stm32lx.S
.text
.syntax unified
.cpu cortex-m3
.cpu cortex-m0
.thumb
.thumb_func
.global write
Expand All @@ -39,24 +42,21 @@
r2 - count
*/

// Set 0 to r3
movs r3, #0
// r2 = source + count * 4
lsls r2, r2, #2
adds r2, r1, r2
// Go to compare
b.n test_done

b test_done
write_word:
// Load one word from address in r0, increment by 4
ldr.w ip, [r1], #4
// Store the word to address in r1, increment by 4
str.w ip, [r0], #4
// Increment r3
adds r3, #1

// load word from address in r1 and increase r1 by 4
ldmia r1!, {r3}
// store word to address in r0 and increase r0 by 4
stmia r0!, {r3}
test_done:
// Compare r3 and r2
cmp r3, r2
// Loop if not zero
bcc.n write_word
// compare r1 and r2
cmp r1, r2
// loop if not equal
bne write_word

// Set breakpoint to exit
bkpt #0x00
Expand Down
Loading