aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2012-05-19contrib: enable cortex-m0 and cortex-m4 libdcc supportSpencer Oliver
Change-Id: Ib8ff645d1e5b8baca02de8ea95b629d88b203969 Signed-off-by: Spencer Oliver <spen@spen-soft.co.uk> Reviewed-on: http://openocd.zylin.com/644 Tested-by: jenkins
2012-05-19remote_bitbang: fix native windows buildSpencer Oliver
Change-Id: Ied29ade0346c4595ffc1dafa788e2d5a595e0de3 Signed-off-by: Spencer Oliver <spen@spen-soft.co.uk> Reviewed-on: http://openocd.zylin.com/648 Tested-by: jenkins Reviewed-by: Xiaofan <xiaofanc@gmail.com>
2012-05-19remote_bitbang: missed closing brace in macro REMOTE_BITBANG_RAISE_ERRORAlexander Osipenko
Change-Id: I591308bd98810ef6361106c207c55b83c3a83890 Signed-off-by: Spencer Oliver <spen@spen-soft.co.uk> Reviewed-on: http://openocd.zylin.com/647 Tested-by: jenkins Reviewed-by: Xiaofan <xiaofanc@gmail.com>
2012-05-14docs: Fix incorrect -rtos option valuesPeter Stuge
Commit 9ca1592cb9fe4e61ee5bc327345fdfc254c9fe13 started on documentation for the -rtos option, but some of the documented values were incorrect so we'll clean up the mess here. Many thanks to Freddie Chopin for spotting this! Change-Id: Iaa633bd40ff5f75dd6a69e74e79dafc1643ee21a Signed-off-by: Peter Stuge <peter@stuge.se> Reviewed-on: http://openocd.zylin.com/642 Reviewed-by: Freddie Chopin <freddie.chopin@gmail.com> Tested-by: jenkins
2012-05-14docs: add initial target rtos support infoSpencer Oliver
Change-Id: Idd39ce17922602aedd4626496ed8f5422bb76e07 Signed-off-by: Spencer Oliver <spen@spen-soft.co.uk> Reviewed-on: http://openocd.zylin.com/641 Tested-by: jenkins Reviewed-by: Peter Stuge <peter@stuge.se>
2012-05-14jtag: add opendous and estick supportSpencer Oliver
Change-Id: I49c25d226f05fdcaca6cbfc35c2ab47e8464abec Signed-off-by: Spencer Oliver <spen@spen-soft.co.uk> Reviewed-on: http://openocd.zylin.com/611 Tested-by: jenkins
2012-05-14stlink: add armv7m stlink handlingSpencer Oliver
This enables us to better handle some of the low level functions that the stlink does not support. It also enables us to share a few more of the standard cortex_m3 functions if necessary. Change-Id: I7a2c57450122012ec189245d8879d8967913e00e Signed-off-by: Spencer Oliver <spen@spen-soft.co.uk> Reviewed-on: http://openocd.zylin.com/637 Tested-by: jenkins
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-05-14flash: fix protect check for pic32mx1x/2x familySpencer Oliver
Change-Id: Ib2692d8b79e52cd40f429008047494aa7f552984 Signed-off-by: Spencer Oliver <spen@spen-soft.co.uk> Reviewed-on: http://openocd.zylin.com/612 Tested-by: jenkins Reviewed-by: Xiaofan <xiaofanc@gmail.com>
2012-05-14jimtcl: update jim to fix make clean bugSpencer Oliver
jimtcl 0.73 has a issue when make clean is called. we have only included that fix as this is close to a release to update to jimtcl master. Change-Id: I5791ff32a98bd76e52feb9475605cbecf58420e5 Signed-off-by: Spencer Oliver <spen@spen-soft.co.uk> Reviewed-on: http://openocd.zylin.com/638 Tested-by: jenkins
2012-05-14stlink: fix stlink api2 single stepSpencer Oliver
This makes the newer v2 api behave as per the v1 api, eg. single stepping masks all interrupts. A better long term solution is to use same behaviour as a cortex-m3 target, see CORTEX_M3_ISRMASK_AUTO. Change-Id: Iaf9f9adf225cf274faaac938050bb996582aa98f Signed-off-by: Spencer Oliver <spen@spen-soft.co.uk> Reviewed-on: http://openocd.zylin.com/621 Tested-by: jenkins
2012-05-14stlink: add stlink_api cmdSpencer Oliver
This enables the manual selection of the stlink api version. Change-Id: I0ec8c5b0a101b6456f426d2fec65971da56db4e7 Signed-off-by: Spencer Oliver <spen@spen-soft.co.uk> Reviewed-on: http://openocd.zylin.com/617 Tested-by: jenkins Reviewed-by: Freddie Chopin <freddie.chopin@gmail.com> Reviewed-by: Xiaofan <xiaofanc@gmail.com>
2012-05-14stlink: stlink/v1 use v2 api if supportedSpencer Oliver
The api v2 is supported on the stlink/v1 if it has a least v11 firmware. Change-Id: Idfdb5a7f5a5881326017451ae9b6004eeaa46a96 Signed-off-by: Spencer Oliver <spen@spen-soft.co.uk> Reviewed-on: http://openocd.zylin.com/616 Tested-by: jenkins Reviewed-by: Freddie Chopin <freddie.chopin@gmail.com> Reviewed-by: Xiaofan <xiaofanc@gmail.com>
2012-05-14mips: support connecting under resetSpencer Oliver
Some targets support connecting while the target's srst is asserted. Tested on pic32 family. Change-Id: I0d20c40af6d031d1306043893e95e61f484c0a87 Signed-off-by: Spencer Oliver <spen@spen-soft.co.uk> Reviewed-on: http://openocd.zylin.com/608 Tested-by: jenkins
2012-05-14Use hardware reset and connect under reset on boards with ST-LINK/V2, asFreddie Chopin
now it is supported. Change-Id: Id3b2ca9a2270974a5f453323f9057ecece400c94 Signed-off-by: Freddie Chopin <freddie.chopin@gmail.com> Reviewed-on: http://openocd.zylin.com/609 Tested-by: jenkins Reviewed-by: Spencer Oliver <spen@spen-soft.co.uk>
2012-05-14cfg: add stm320518-eval onboard stlink configSpencer Oliver
Change-Id: Ie92a87ce077c538fdd04af37c798e0a8054b423a Signed-off-by: Spencer Oliver <spen@spen-soft.co.uk> Reviewed-on: http://openocd.zylin.com/610 Reviewed-by: Freddie Chopin <freddie.chopin@gmail.com> Tested-by: jenkins Reviewed-by: Xiaofan <xiaofanc@gmail.com>
2012-05-14stlink: support connecting under resetSpencer Oliver
Some targets support connecting while the target's srst is asserted. Tested on stm32 family. Change-Id: I1197dd721a1e1cbf95ee77dfd8e1082b165b22a9 Signed-off-by: Spencer Oliver <spen@spen-soft.co.uk> Reviewed-on: http://openocd.zylin.com/607 Tested-by: jenkins
2012-05-14cortex-m3: support connecting under resetSpencer Oliver
Some targets support connecting while the target's srst is asserted. Tested on stm32 family. Change-Id: I9df43623025e37832155aeee7aa099b844b85f16 Signed-off-by: Spencer Oliver <spen@spen-soft.co.uk> Reviewed-on: http://openocd.zylin.com/606 Tested-by: jenkins
2012-05-14cfi: fix write_bank segfault with spansion flash on armv7mAurelien Jacobs
cfi_spansion_write_block() passes an arm_algorithm struct to target_run_algorithm() which in turn calls armv7m_start_algorithm() which expect an armv7m_algorithm struct. As armv7m_algorithm is bigger than arm_algorithm, when armv7m_start_algorithm() writes in the struct, it overrun the buffer, writting junk on the stack, which latter on generates a segfault. This patch ensure we use a properly sized armv7m_algorithm struct when the target is an armv7m. Change-Id: I4ab67c15ae4bb72454414a81b92a4231dcdb2239 Signed-off-by: Aurelien Jacobs <aurel@gnuage.org> Reviewed-on: http://openocd.zylin.com/623 Tested-by: jenkins Reviewed-by: Spencer Oliver <spen@spen-soft.co.uk>
2012-05-14cfi: fix cfi arch check regressionSpencer Oliver
seems 9933fa334de551096674d4044ed7ac2152213e8b introduce a regression if the target was anything other than armv4_5 or armv7m. Just check that we have an arm target. Change-Id: I67c05138e5be2952ee92e9bfa15e1d050844462a Signed-off-by: Spencer Oliver <spen@spen-soft.co.uk> Reviewed-on: http://openocd.zylin.com/615 Tested-by: jenkins Reviewed-by: Aurelien Jacobs <aurel@gnuage.org>
2012-05-14cfi: check supported archSpencer Oliver
check that the cfi driver supports the current target arch. Change-Id: I8a95908684de67bf1657d1956f2573662a641cc1 Signed-off-by: Spencer Oliver <spen@spen-soft.co.uk> Reviewed-on: http://openocd.zylin.com/614 Tested-by: jenkins Reviewed-by: Aurelien Jacobs <aurel@gnuage.org>
2012-05-14build: use generic name for arm_algorithm varsSpencer Oliver
This makes the code a bit easier to read as arm_algorithm can refer to other arch's, not just armv4_5. Change-Id: I78c99d40f34cda04e06f2daee75b48ff40a1d23d Signed-off-by: Spencer Oliver <spen@spen-soft.co.uk> Reviewed-on: http://openocd.zylin.com/613 Tested-by: jenkins Reviewed-by: Aurelien Jacobs <aurel@gnuage.org> Reviewed-by: Freddie Chopin <freddie.chopin@gmail.com>
2012-05-14build: add missing erase_check loader srcSpencer Oliver
Change-Id: I1534c1ea1606fda9eb6ffa6a11a708f8c8a3d46a Signed-off-by: Spencer Oliver <spen@spen-soft.co.uk> Reviewed-on: http://openocd.zylin.com/605 Tested-by: jenkins Reviewed-by: Freddie Chopin <freddie.chopin@gmail.com>
2012-05-14armv7m: update crc/erase_check loaders for cortex-m0Spencer Oliver
Use loaders that have been built for cortex-m0, making them usable for both cortex-m0 and cortex-m3 families. Change-Id: Ifd82be87eaec2cb96464290c80800cec3630d619 Signed-off-by: Spencer Oliver <spen@spen-soft.co.uk> Reviewed-on: http://openocd.zylin.com/604 Tested-by: jenkins
2012-05-11contrib: fix Neo1973 udev permission typoSpencer Oliver
Change-Id: I6d5ad0cc28e0cb52104ead9e974b8b1ed92d9cdc Signed-off-by: Spencer Oliver <spen@spen-soft.co.uk> Reviewed-on: http://openocd.zylin.com/636 Tested-by: jenkins Reviewed-by: Peter Stuge <peter@stuge.se>
2012-05-08flash: use correct stm32f0 flash size registerSpencer Oliver
The stm32f0 parts use a different address then the rest of the family. Add a function that returns the correct FLASH_SIZE reg depending on variant. Change-Id: Idb41580f7162f395b347cec034d6b745847326b7 Signed-off-by: Spencer Oliver <spen@spen-soft.co.uk> Reviewed-on: http://openocd.zylin.com/601 Tested-by: jenkins Reviewed-by: Freddie Chopin <freddie.chopin@gmail.com>
2012-05-08cfg: increase stm32f0discovery board working areaSpencer Oliver
Change-Id: Iea166ee27fc60bbfdeb851fdcf71509f3984f72f Signed-off-by: Spencer Oliver <spen@spen-soft.co.uk> Reviewed-on: http://openocd.zylin.com/602 Tested-by: jenkins Reviewed-by: Freddie Chopin <freddie.chopin@gmail.com>
2012-05-08cfg: increase stm32f0 default working areaSpencer Oliver
The smallest stm32f0 has 4k sram, so use this as the default. Change-Id: I9097be9608da92b1b9da504e5bacc1280c86907a Signed-off-by: Spencer Oliver <spen@spen-soft.co.uk> Reviewed-on: http://openocd.zylin.com/603 Tested-by: jenkins Reviewed-by: Freddie Chopin <freddie.chopin@gmail.com>
2012-05-08cfg: Deleted duplicate busblaster.cfg and renamed original.Bill Traynor
The busblaster.cfg was contributed on April 23, 2012 and is a duplicate of dp_busblaster.cfg that was contributed on Oct. 23, 2011. Therefore, deleting the second version. Also, renaming the original dp_busblaster.cfg to simply busblaster.cfg, as this name is more concise. Change-Id: Iccb1f10f53dbbb248b1ff4c6295eaf67c32247c1 Signed-off-by: Bill Traynor <wmat@alphatroop.com> Reviewed-on: http://openocd.zylin.com/622 Tested-by: jenkins Reviewed-by: Peter Stuge <peter@stuge.se>
2012-05-07cfg: Fixed product link to Flyswatter2Bill Traynor
Fixed the product link to the Flyswatter2 debugger: http://www.tincantools.com/product.php?productid=16153 Change-Id: I7d65e8c94d4521e61b9ae72a5ce14b140b775697 Signed-off-by: Bill Traynor <wmat@alphatroop.com> Reviewed-on: http://openocd.zylin.com/620 Reviewed-by: Peter Stuge <peter@stuge.se> Tested-by: jenkins
2012-05-07cfg: add default pid/vid pair to beaglebone board cfg.Bill Traynor
The newer versions of BeagleBone boards use the default vid/pid pair for FT2232 debugging. Please see the following README: http://beagleboard.org/static/beaglebone/latest/README.htm On revision A3/A4 boards, the VID/PID were chosen to match the TI XDS100v2 (0x0403/0xA6D0). On A5 and newer revisions when we've given the authors of CCS the chance to update their software, the generic FTDI VID/PID (0x0403/0x6010) will be used to simplify installation of drivers for systems already having those drivers. Change-Id: I44228eb2029162f23d084eb05bcfef39e615668d Signed-off-by: Bill Traynor <wmat@alphatroop.com> Reviewed-on: http://openocd.zylin.com/619 Tested-by: jenkins Reviewed-by: Peter Stuge <peter@stuge.se>
2012-05-04build: remove clang unused variable assignment warningsSpencer Oliver
Change-Id: Ibe5254704d6cd879a318a82c4f50d9da3c14276c Signed-off-by: Spencer Oliver <spen@spen-soft.co.uk> Reviewed-on: http://openocd.zylin.com/600 Tested-by: jenkins Reviewed-by: Freddie Chopin <freddie.chopin@gmail.com>
2012-05-04build: remove clang unused variable increments warningsSpencer Oliver
Change-Id: Ib755474aa46f7233495fae1947bc27cd0b2d6b4f Signed-off-by: Spencer Oliver <spen@spen-soft.co.uk> Reviewed-on: http://openocd.zylin.com/599 Tested-by: jenkins Reviewed-by: Freddie Chopin <freddie.chopin@gmail.com>
2012-04-30cfg: fix incorrect stm32vldiscovery working areaSpencer Oliver
The working area used in the config was incorrect, we only have 8K on this board not 16K as the original cfg was declaring. Change-Id: Ie0309fb86d839bd3bc1ac9383905b581fac5c388 Signed-off-by: Spencer Oliver <spen@spen-soft.co.uk> Reviewed-on: http://openocd.zylin.com/598 Tested-by: jenkins Reviewed-by: Mathias Küster <kesmtp@freenet.de> Reviewed-by: Freddie Chopin <freddie.chopin@gmail.com>
2012-04-30cfg: allow stm32discovery parameter overrideSpencer Oliver
This enable the user or board config to override the parameters passed to stm32_stlink.cfg. Required to fix a incorrect working area bug with the stm32vldiscovery. Change-Id: I40a4f7913ff37d577d44b1f23befccf0317080a1 Signed-off-by: Spencer Oliver <spen@spen-soft.co.uk> Reviewed-on: http://openocd.zylin.com/597 Tested-by: jenkins Reviewed-by: Freddie Chopin <freddie.chopin@gmail.com>
2012-04-30cfg: remove unused stlink optionsSpencer Oliver
reset_config is now supported by stlink, remove from the config as this is a per board option. Change-Id: I85208d2154502b8d3a098afe1d9a28d75820a7c0 Signed-off-by: Spencer Oliver <spen@spen-soft.co.uk> Reviewed-on: http://openocd.zylin.com/582 Tested-by: jenkins Reviewed-by: Mathias Küster <kesmtp@freenet.de> Reviewed-by: Freddie Chopin <freddie.chopin@gmail.com>
2012-04-30stlink: support srst resetSpencer Oliver
This adds the ability to support srst reset for the stlink/v2. stlink/v1 will fallback to using SYSRESETREQ which is a full reset - including peripherals. To enable the use of the srst add the following to your cfg: reset_config srst_only Change-Id: I570de607c5f370fd6a4abf47360686c9be07bcdd Signed-off-by: Spencer Oliver <spen@spen-soft.co.uk> Reviewed-on: http://openocd.zylin.com/581 Tested-by: jenkins Reviewed-by: Mathias Küster <kesmtp@freenet.de> Reviewed-by: Freddie Chopin <freddie.chopin@gmail.com>
2012-04-30stlink: export write_debug_regSpencer Oliver
Change-Id: I3944911d4a71dba4af48470ceb3e4850784a0e7d Signed-off-by: Spencer Oliver <spen@spen-soft.co.uk> Reviewed-on: http://openocd.zylin.com/580 Tested-by: jenkins Reviewed-by: Mathias Küster <kesmtp@freenet.de> Reviewed-by: Freddie Chopin <freddie.chopin@gmail.com>
2012-04-30stlink: add hardware srst functions to stlink/v2Spencer Oliver
Change-Id: Ib82b6a1116b9f396f1933cc5526733334254fd62 Signed-off-by: Spencer Oliver <spen@spen-soft.co.uk> Reviewed-on: http://openocd.zylin.com/579 Tested-by: jenkins Reviewed-by: Freddie Chopin <freddie.chopin@gmail.com> Reviewed-by: Mathias Küster <kesmtp@freenet.de>
2012-04-30flash: update stm32f0x version infoSpencer Oliver
Change-Id: Iab0962021e6243d1df3e7c647654a51b4bf50d72 Signed-off-by: Spencer Oliver <spen@spen-soft.co.uk> Reviewed-on: http://openocd.zylin.com/578 Tested-by: jenkins Reviewed-by: Mathias Küster <kesmtp@freenet.de> Reviewed-by: Freddie Chopin <freddie.chopin@gmail.com>
2012-04-30stlink: default to latest api availableSpencer Oliver
Change-Id: Ic04128f4020055587bb87250f41e5c804d9c2b01 Signed-off-by: Spencer Oliver <spen@spen-soft.co.uk> Reviewed-on: http://openocd.zylin.com/577 Tested-by: jenkins Reviewed-by: Mathias Küster <kesmtp@freenet.de> Reviewed-by: Freddie Chopin <freddie.chopin@gmail.com>
2012-04-30stlink: add improved STLINK_JTAG_API_V2 supportSpencer Oliver
The STLINK/V2 supports two api's. This completes the support so STLINK_JTAG_API_V2 is usable. Support for hardware srst still needs adding. Change-Id: Ic4d0499be2a225d18abf96fd6f5ce5e295fb1f37 Signed-off-by: Spencer Oliver <spen@spen-soft.co.uk> Reviewed-on: http://openocd.zylin.com/561 Tested-by: jenkins Reviewed-by: Mathias Küster <kesmtp@freenet.de> Reviewed-by: Freddie Chopin <freddie.chopin@gmail.com>
2012-04-30stlink: support stlink api resultSpencer Oliver
The stlink api does support results for some functions - add support. Change-Id: I39cb495408c46af8bc343b198a1e0bd4c7aee6d8 Signed-off-by: Spencer Oliver <spen@spen-soft.co.uk> Reviewed-on: http://openocd.zylin.com/560 Tested-by: jenkins Reviewed-by: Mathias Küster <kesmtp@freenet.de> Reviewed-by: Freddie Chopin <freddie.chopin@gmail.com>
2012-04-26SAM3X - Added support for at91sam3x8h-ES, fixed CIDR for ES2 and productionOlivier Schonken
The first available devkits for the at91sam3x8h had the ES device populated. The ES device had an error in the CIDR, specifically in the last byte of which the upper 3 bits identifies the chip family - cortex-m3, arm7tdmi etc. The problem was fixed on the ES2 devices - Thanks to Pat Hickey for giving me the heads-up. Change-Id: I13dd7fbe0cffaf76f948188c9459dc3cf4435570 Signed-off-by: Olivier Schonken <olivier.schonken@gmail.com> Reviewed-on: http://openocd.zylin.com/575 Tested-by: jenkins Reviewed-by: Jim Norris <u17263@att.net> Reviewed-by: Spencer Oliver <spen@spen-soft.co.uk>
2012-04-26topic: Added support for the SAM4S variantsOlivier Schonken
Atmel introduced 6 new Cortex-M4 processors on 2011-10-26 SAM4S16C - 1024KB flash LQFP100/BGA100 SAM4S16B - 1024KB flash LQFP64/QFN64 SAM4S16A - 1024KB flash LQFP48/QFN48 SAM4S8C - 512KB flash LQFP100/BGA100 SAM4S8B - 512KB flash LQFP64/QFN64 SAM4S8A - 512KB flash LQFP48/QFN48 The SAM4S processors still suffer from the "6 waitstates needed to program device" errata. Other relevant changes are: 1. Address of flash memory starts at 0x400000. 2. EWP (Erase page and write page) only works for the first two 8KB "sectors" 3. Because of the EWP not working for all the sectors, normal page writes have to be used. The default_flash_blank_check is used to check if lockregions should be erased. 4. The EA (Erase All) command takes 7.3s to complete. (Previous timeout was 500 ms) 5. There are 128 lockable regions of 8KB each. Implemented default blank checking, and page erase for load_image scenarios. This is to compensate for the EWP flash commands only working on the first 2 8KB sectors. Change-Id: I7c5a52b177f7849a107611fd0f635fc416cfb724 Signed-off-by: Olivier Schonken <olivier.schonken@gmail.com> Reviewed-on: http://openocd.zylin.com/528 Tested-by: jenkins Reviewed-by: Spencer Oliver <spen@spen-soft.co.uk>
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-24topic: Ignored TAGS files.Linus Tolke
Allow use of TAGS. Change-Id: I5e71e8986671642b49cc9a62d37cc8c0dfa37181 Signed-off-by: Linus Tolke <linus@tigris.org> Reviewed-on: http://openocd.zylin.com/595 Reviewed-by: Peter Stuge <peter@stuge.se> Tested-by: jenkins
2012-04-23cfg: Add interface config for Dangerous Prototypes Bus BlasterAllen Martin
This is a FT2232 based USB JTAG dongle Change-Id: Ibed773a23b6446df62fe4eac16c27fb2d741f4c3 Signed-off-by: Allen Martin <amartin@nvidia.com> Reviewed-on: http://openocd.zylin.com/589 Tested-by: jenkins Reviewed-by: Spencer Oliver <spen@spen-soft.co.uk>
2012-04-23UserGuide: Fixing link to USBprog tool.Bill Traynor
In section '2.8 USB Other' updated the link to the USBprog tool: http://shop.embedded-projects.net/ Change-Id: I7fa453934ac6a7889e01b22b7e0cb07f42ee168d Signed-off-by: Bill Traynor <wmat@alphatroop.com> Reviewed-on: http://openocd.zylin.com/591 Tested-by: jenkins Reviewed-by: Spencer Oliver <spen@spen-soft.co.uk>
2012-04-23UserGuide: Updated link to Versaloon-Link tool.Bill Traynor
In section '2.8 USB Other' updated the URL to the Versaloon-Link to: http://www.versaloon.com Change-Id: Idd92333cb3d87d1b89dfb282134332387df5a0fc Signed-off-by: Bill Traynor <wmat@alphatroop.com> Reviewed-on: http://openocd.zylin.com/592 Tested-by: jenkins Reviewed-by: Spencer Oliver <spen@spen-soft.co.uk>