aboutsummaryrefslogtreecommitdiff
path: root/src/flash/nor/stellaris.c
AgeCommit message (Collapse)Author
2013-10-31Remove unnecessary castsAndreas Fritiofson
Change-Id: Ia97283707282ccccdc707c969f59337313b4e291 Signed-off-by: Andreas Fritiofson <andreas.fritiofson@gmail.com> Reviewed-on: http://openocd.zylin.com/1767 Tested-by: jenkins Reviewed-by: Spencer Oliver <spen@spen-soft.co.uk>
2013-06-05update files to correct FSF addressSpencer Oliver
Change-Id: I429f7fd51f77b0e7c86d7a7f110ca31afd76c173 Signed-off-by: Spencer Oliver <spen@spen-soft.co.uk> Reviewed-on: http://openocd.zylin.com/1426 Tested-by: jenkins Reviewed-by: Paul Fertser <fercerpav@gmail.com>
2013-02-02armv7m: use ARM_MODE_THREAD core mode for algoorithm'sSpencer Oliver
This makes sure we are using privileged mode when executing any loaders. Change-Id: I18bf32ec92e1c76a66ab25e3712652bc3650b332 Signed-off-by: Spencer Oliver <spen@spen-soft.co.uk> Reviewed-on: http://openocd.zylin.com/1108 Tested-by: jenkins Reviewed-by: Andreas Fritiofson <andreas.fritiofson@gmail.com>
2013-02-02armv7m: use generic arm::core_modeSpencer Oliver
To simplify things change over to using the generic core_mode struct rather than maintaining a armv7m specific one. Change-Id: Ibf32b785d896fef4f33307fabe0d8eb266f7086f Signed-off-by: Spencer Oliver <spen@spen-soft.co.uk> Reviewed-on: http://openocd.zylin.com/966 Tested-by: jenkins Reviewed-by: Andreas Fritiofson <andreas.fritiofson@gmail.com>
2012-10-12flash: update stellaris flash data to latest dev package 9453Spencer Oliver
Change-Id: I16107a093d4ed7342583f5c32ad16aa98f81d122 Signed-off-by: Spencer Oliver <spen@spen-soft.co.uk> Reviewed-on: http://openocd.zylin.com/856 Tested-by: jenkins Reviewed-by: Freddie Chopin <freddie.chopin@gmail.com>
2012-10-08flash/nor/stellaris: Remove unnecessary write_algorithm checkAndreas Fritiofson
The pointer must be non-null here since we returned if allocation failed. Change-Id: I9b75099ed3b3870c815d1df5760ed1f3fe1d20d6 Signed-off-by: Andreas Fritiofson <andreas.fritiofson@gmail.com> Reviewed-on: http://openocd.zylin.com/866 Reviewed-by: Freddie Chopin <freddie.chopin@gmail.com> Tested-by: jenkins Reviewed-by: Spencer Oliver <spen@spen-soft.co.uk>
2012-05-14flash: blank check use default_flash_blank_checkSpencer Oliver
Use default_flash_blank_check, this will use the much faster blank_check_memory handler if supported - 15x quicker on stm32f4. Otherwise it will fall back to using the slower default_flash_mem_blank_check. Change-Id: Ia231b3e95468c9e92594dbdbe1fa2d69e1506fc3 Signed-off-by: Spencer Oliver <spen@spen-soft.co.uk> Reviewed-on: http://openocd.zylin.com/632 Tested-by: jenkins
2012-04-24topic: Fixed a clang Dead assignment warning.Linus Tolke
The value returned from target_write_buffer is still ignored. Change-Id: Icb49d4d1313a5e4f7df68d3f122a5f81cfa0604a Signed-off-by: Linus Tolke <linus@tigris.org> Reviewed-on: http://openocd.zylin.com/596 Tested-by: jenkins Reviewed-by: Peter Stuge <peter@stuge.se>
2012-04-10topic: add reset functions for SWDSimon Qian
Add swd_init_reset and swd_add_reset. Add adapter_assert_reset and adapter_deassert_reset, and call them instead of JTAG reset functions. Change-Id: Ib2551c6fbb45513e0ae0dc331cfe3ee3f922298a Signed-off-by: Simon Qian <simonqian.openocd@gmail.com> Reviewed-on: http://openocd.zylin.com/526 Tested-by: jenkins Reviewed-by: Freddie Chopin <freddie.chopin@gmail.com> Reviewed-by: Spencer Oliver <spen@spen-soft.co.uk>
2012-02-26flash: add stellaris async flash loaderSpencer Oliver
This enable the Stellaris flash driver to use the asynchronous algorithm support. Speed increase is as follows: before - wrote 65536 bytes from file test.bin in 5.486040s (11.666 KiB/s) after - wrote 65536 bytes from file test.bin in 2.274001s (28.144 KiB/s) Change-Id: I9004c9aadffa1ae3b0cbf908e6549b5b1f794508 Signed-off-by: Spencer Oliver <spen@spen-soft.co.uk> Reviewed-on: http://openocd.zylin.com/403 Tested-by: jenkins Reviewed-by: Andreas Fritiofson <andreas.fritiofson@gmail.com>
2012-02-06build: cleanup src/flash/nor directorySpencer Oliver
Change-Id: Ic299de969ce566282c055ba4dd8b94892c4c4311 Signed-off-by: Spencer Oliver <spen@spen-soft.co.uk> Reviewed-on: http://openocd.zylin.com/420 Tested-by: jenkins
2012-01-27flash: fix stellaris class regressionSpencer Oliver
for some reason the following commit was incorrect 769064de4bd8fc59804c37a418b83fcdba6fd36f Only the Sandstorm and Fury class should write this register. Change-Id: Ie18f1da6e9b59fb99cca47aa93c7f2fee447ccea Signed-off-by: Spencer Oliver <spen@spen-soft.co.uk> Reviewed-on: http://openocd.zylin.com/400 Tested-by: jenkins
2012-01-23flash: update stellaris_set_flash_timing for target classSpencer Oliver
stellaris_set_flash_timing should only be used for Sandstorm and Fury device classes. Change-Id: Ib5eff9d954c039f2c5726a8ecc3ee45d1694cfd3 Signed-off-by: Spencer Oliver <spen@spen-soft.co.uk> Reviewed-on: http://openocd.zylin.com/389 Tested-by: jenkins
2012-01-23flash: cleanup stellaris device class detectionSpencer Oliver
read the target class during probe and save for later use. Change-Id: Ib3ad20edc7d206b7f434bdcc6b947e6a5f06dd1f Signed-off-by: Spencer Oliver <spen@spen-soft.co.uk> Reviewed-on: http://openocd.zylin.com/388 Tested-by: jenkins
2012-01-18flash: add missing stellaris device classesSpencer Oliver
This adds missing classes to the stellaris flash driver. Change-Id: I90f2218479e5eb60950046fef04429b9529f7ddf Signed-off-by: Spencer Oliver <spen@spen-soft.co.uk> Reviewed-on: http://openocd.zylin.com/382 Tested-by: jenkins Reviewed-by: Øyvind Harboe <oyvindharboe@gmail.com>
2012-01-12cmd: add missing usage varSpencer Oliver
Change-Id: I0f05d643b0801b19cc3beb88f0d12d7e4c83ef9c Signed-off-by: Spencer Oliver <spen@spen-soft.co.uk> Reviewed-on: http://openocd.zylin.com/356 Tested-by: jenkins
2012-01-12optimize: replace while loop by memcpyMathias K
There is no need to use a while loop here. This patch simple copy the last bytes with the system function. Change-Id: Ibda72dca449746efeba5a1af2e45c5990f9cf347 Signed-off-by: Mathias K <kesmtp@freenet.de> Reviewed-on: http://openocd.zylin.com/364 Tested-by: jenkins Reviewed-by: Øyvind Harboe <oyvindharboe@gmail.com> Reviewed-by: Spencer Oliver <spen@spen-soft.co.uk>
2012-01-04Change return value on error.Mathias K
On wrong parameters a error is signalized to the calling function. Change-Id: I484443fdb39938e20382edc9246d5ec546a5c960 Signed-off-by: Mathias K <kesmtp@freenet.de> Signed-off-by: Øyvind Harboe <oyvind.harboe@zylin.com> Reviewed-on: http://openocd.zylin.com/282 Tested-by: jenkins Reviewed-by: Øyvind Harboe <oyvindharboe@gmail.com>
2012-01-04retire ERROR_INVALID_ARGUMENTS and replace with ERROR_COMMAND_SYNTAX_ERRORØyvind Harboe
Change-Id: I6dee51e1fab1944085391f274a343cdb9014c7a4 Signed-off-by: Øyvind Harboe <oyvind.harboe@zylin.com> Reviewed-on: http://openocd.zylin.com/300 Tested-by: jenkins Reviewed-by: Øyvind Harboe <oyvindharboe@gmail.com> Reviewed-by: Spencer Oliver <spen@spen-soft.co.uk>
2011-11-09warning fix: remove unused variable assignmentØyvind Harboe
Change-Id: I8c73b0f9a6a10734e539eedcedd79e1a34122f60 Signed-off-by: Øyvind Harboe <oyvind.harboe@zylin.com> Reviewed-on: http://openocd.zylin.com/185 Tested-by: jenkins Reviewed-by: Spencer Oliver <spen@spen-soft.co.uk>
2011-11-08flash: update luminary device tableSpencer Oliver
add support for checking target against the device CLASS rather then just the PARTNO. This change also adds the new LM4F family (Blizzard). Change-Id: Ia9d1e33f1f1c2817c0039a2232ecf932fae072f9 Signed-off-by: Spencer Oliver <spen@spen-soft.co.uk> Reviewed-on: http://openocd.zylin.com/161 Reviewed-by: Øyvind Harboe <oyvindharboe@gmail.com>
2011-11-01flash: add Stellaris Blizzard classSpencer Oliver
Change-Id: I83f0d6edf3ab31d9fa86682f20cec77dc47ba2f6 Signed-off-by: Spencer Oliver <spen@spen-soft.co.uk> Reviewed-on: http://openocd.zylin.com/146 Tested-by: jenkins Reviewed-by: Andreas Fritiofson <andreas.fritiofson@gmail.com>
2011-10-18luminary: add new targetsSpencer Oliver
update target support from latest SW-DRL 8049 Change-Id: I40aba4d30fe2b79fd955f466c64d99a1dfd63ecf Signed-off-by: Spencer Oliver <spen@spen-soft.co.uk> Reviewed-on: http://openocd.zylin.com/31 Reviewed-by: Øyvind Harboe <oyvindharboe@gmail.com> Tested-by: Øyvind Harboe <oyvindharboe@gmail.com>
2011-07-10Fix typo in command outputLuca Bruno
Fix a bunch of minor typo in user facing output. Signed-off-by: Luca Bruno <lucab@debian.org>
2011-03-17Fix a bunch of typos.Uwe Hermann
Fix a bunch of typos. Most are in code comments, so nothing should break. UNKOWN_COMMAND and CMD_UNKOWN are not used elsewhere, so correcting the spelling should also not break anything.
2011-01-19stellaris: automatically generate and update device IDsEric Wetzel
Added a Perl script to contrib that uses the header files in StellarisWare complete Firmware Development Package provided by TI/Luminary to generate a new list of device IDs Used Perl script and revision 6734 of TI/Luminary StellarisWare to update device IDs
2010-12-29warnings: use more 'const' for char *Øyvind Harboe
Signed-off-by: Øyvind Harboe <oyvind.harboe@zylin.com>
2010-11-17FLASH/NOR: Remove useless file stellaris.hAntonio Borneo
Signed-off-by: Antonio Borneo <borneo.antonio@gmail.com>
2010-10-28src: add loader src descriptionSpencer Oliver
- add comment where to find the various loaders src files. Signed-off-by: Spencer Oliver <ntfreak@users.sourceforge.net>
2010-08-31flash: increase stellaris flash loader bufferSpencer Oliver
This speeds up programming for targets with more working area, Signed-off-by: Spencer Oliver <ntfreak@users.sourceforge.net>
2010-08-01stellaris flash comment updateDavid Brownell
This flash driver works on more than just two chips. (Though it does need work still, e.g. to protect more than 64K. (On non-'3748-A0 chips where errata allow that.)) Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
2010-07-20flash: remove algorithm exit_point address for supported targetsSpencer Oliver
For the above targets the exit_point is optional when used with run_algorithm, so remove it. This makes updating the algorithm less error prone. Signed-off-by: Spencer Oliver <ntfreak@users.sourceforge.net>
2010-06-15stellaris: -Wshadow warning fixesØyvind Harboe
Signed-off-by: Øyvind Harboe <oyvind.harboe@zylin.com>
2010-05-29nor: fix memory leaks during probeSpencer Oliver
Fix similar memory leaks as per commit: ef72484b785ec7462a0415afea679d08b864c7fb Signed-off-by: Spencer Oliver <ntfreak@users.sourceforge.net>
2010-05-16NOR: add read() callback to struct flash_driverAntonio Borneo
Final target is to force bus_width size during CFI flash read. In this first step I need to replace default flash read with flash specific implementation. This patch introduces: - flash_driver_read() layer; - default_flash_read(), backward compatible; - read() callback in struct flash_driver; - proper initialization in every flash_driver instance. Signed-off-by: Antonio Borneo <borneo.antonio@gmail.com>
2010-05-04flash: less bogus errorsØyvind Harboe
Removed bogus errors when trying to allocate a large a target memory buffer as possible. Signed-off-by: Øyvind Harboe <oyvind.harboe@zylin.com>
2010-03-03NOR: stellaris message tweaksDavid Brownell
Give a more accurate failure message when trying to unprotect; don't complain about pages being write protected, just say that unprotect is not supported by the hardware ... referencing the new "recover" command, which is the way to achieve that. Likewise, when trying to protect, talk about "pages" (matching hardware doc) not "sectors" (an concept that's alien to these chips). Also make the helptext for the "recover" command mention that it also erases the device. Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
2010-02-28stellaris: recover_command use usleep rather than sleepSpencer Oliver
windows api does not define a posix sleep, use usleep that has an openocd wrapper to the win32 native function. Signed-off-by: Spencer Oliver <ntfreak@users.sourceforge.net>
2010-02-28ARMv7M: use software breakpoints for algorithmsSpencer Oliver
- armv7m_run_algorithm now requires all algorithms to use a software breakpoint at their exit address - updated all algorithms to support this Signed-off-by: Spencer Oliver <ntfreak@users.sourceforge.net>
2010-02-27new "stellaris recover" commandDavid Brownell
Stellaris chips have a procedure for restoring the chip to what's effectively the "as-manufactured" state, with all the non-volatile memory erased. That includes all flash memory, plus things like the flash protection bits and various control words which can for example disable debugger access. clearly, this can be useful during development. Luminary/TI provides an MS-Windows utility to perform this procedure along with its Stellaris developer kits. Now OpenOCD users will no longer need to use that MS-Windows utility. Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
2010-01-29NOR: cleanup driver declsDavid Brownell
Fix goofy struct indents. Function names *are* their addresses. Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
2010-01-02streamline and document helptext mode displaysDavid Brownell
Most commands are usable only at runtime; so don't bother saying that, it's noise. Moreover, tokens like EXEC are cryptic. Be more clear: highlight only the commands which may (also) be used during the config stage, thus matching the docs more closely. There are - Configuration commands (per documentation) - And also some commands that valid at *any* time. Update the docs to note that "help" now shows this mode info. This also highlighted a few mistakes in command configuration, mostly commands listed as "valid at any time" which shouldn't have been. This just fixes ones I noted when sanity testing. Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
2009-12-18stellaris: fix min buffer length checksDavid Brownell
Word count == size/4; cope. And increase buf_min so it's large enough to cover the overhead in my tests. Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
2009-12-18stellaris: update bulk flash writesDavid Brownell
Try to right-size the SRAM buffers, by not: - using them for very small writes - giving up when a large buffer isn't available - allocating buffers much larger than their data Also don't: - bother loading the code unless we allocate the writebuffer too - be so verbose with messaging: * be more concise * reduce importance (e.g. DEBUG not WARNING) * remove duplication The minimum buffer size is something of a guess. It's eight times smaller than before, almost the same size as the code being downloaded. It probably deserves some tuning. Also, note an erratum affecting flash protection on some chips; and narrow many over-wide lines affected by the above changes. Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
2009-12-16stellaris: commentsDavid Brownell
Someday revisit various issues: Tempest parts support writing more than one word at a time; for some target firmware it might be necessary to save and restore flash IRQ configuration. (The safest policy is likely to always reset after flash updates.) Plus swap some undesirable TAB characters with SPACE. Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
2009-12-16stellaris: probe() cleanupsDavid Brownell
Fix potential memory leak: make sure the per-bank data structures are only allocated in probe(), and that calling probe() multiple times is a NOP. Use it for auto_probe(). Require probe() to have done its thing: don't make access routines cope with it not having been called. Shrink a bunch of failure paths; and in some cases, correct them. Don't needlessly insist on a halted target for probe(). Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
2009-12-16stellaris: remove needless codeDavid Brownell
No point in reading and discarding a status value when fetching part description data. Or having that needless "#if 0" code. Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
2009-12-16stellaris: avoid chip writesDavid Brownell
Previously "reading" clock info (and part info) also, as a side effect, wrote the flash timing register. Instead, be more safe: "reading" should only read. Write paths still refresh timing, coping with changes the application code may have made. Also rename the routine which sets flash timing, indicating what it's really doing; it's got nothing to do with a "mode". Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
2009-12-14stellaris: device IDsEric Wetzel
I added the remaining devices and device IDs to stellaris.c, and removed several devices that don't exist on the Stellaris web page. Additionally, I found a few devices with duplicate IDs ... the DID1 Version Number for LM3Sxxx parts have DID1 Version = 0x0, and for LM3Sxxxx have DID1 Version = 0x1. So I extended the comparison to use the VER and FAM fields from DID1 also. ID=0x33: LM3S812 (DID1v0) and LM3S2616 (DID1v1) ID=0x39: LM3S808 (DID1v0) and LM3S2276 (DID1v1) These are the parts I removed from the file for lack of documentation (no data sheet to confirm part ID): LM3S318, LM3S1101, LM3S1108, LM3S1615, LM3S1616, LM3S2016, LM3S2101, LM3S2108, LM3S3759, LM3S3768, LM3S5757, LM3S5767, LM3S5768, LM3S5769, LM3S6815, LM3S6816, LM3S6915, LM3S6916, LM3S6111, LM3S6118. Also, sort devices according to part number. Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
2009-12-10anotyer cygwin compile fixDavid Brownell
Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>