summaryrefslogtreecommitdiff
path: root/utils/imxtools (follow)
Commit message (Collapse)AuthorAge
* imxtools/sbtools: switch SHA1 implementation to Crypto++Amaury Pouly2017-01-16
| | | | | | | The current implementation was custom and super slow. Since we use Crypto++ anyway, we might as well get use a good implementation. Change-Id: I761ad7401653471e54000e1c2bc3d9882378112f
* imxtools/sbtools: switch AES implementation to Crypto++Amaury Pouly2017-01-16
| | | | | | | | Instead of having our own copy of the AES code, use a good library to do that. Crypto++ is well-maintained, supports a lot of ciphers, works on many OSes, and is optimized for many architectures. Change-Id: I7d7d24b47993206d7338c5f9bac8bbdd3915a667
* imxtools/sbtools: various fixesAmaury Pouly2017-01-16
| | | | | | | Change bug() macro, fix memory leaks, always use -h for help, fix usage(), fix comment, remove useless macro Change-Id: I30554b5e07e6f2845560a570808603cf8c4da5ad
* imxtools/sbtools: rework cryptographyAmaury Pouly2017-01-16
| | | | | | | | | | It was a mess, a mix of crypto_* and cbc_mac calls. I made everything call crypto functions, and also separate key setup from cryptographic operations, this will be useful to speed up the code in the upcoming commits. Drop support for "usbotp" key, since the crypto code for that was never mainlined and we can always get the keys from a device as long as we have code execution (using the DCP debug registers). Change-Id: I7aa24d12207ffb744225d1b9cc7cb1dc7281dd22
* imxtools: correctly read unencrypted images in raw modeAmaury Pouly2017-01-16
| | | | Change-Id: I87830b81a017f36d2887d9c289d09812f227b157
* imxtools: rework key/IV overriding logicAmaury Pouly2017-01-16
| | | | | | | The overriding of the IV and real key should be the exception, there is no need to manually set them to false. Change-Id: Id66754f20a79aa5c1a991839345d1242e0aa587d
* imxtools: rework sb file productionAmaury Pouly2017-01-16
| | | | | | | | | | | | | | | | | | | | The old code had some annoying way of dealing with padding by adding explicit instructions to the stream, which is 1) ugly 2) not in par with freescale tools. The trick, which this new version implements, is to put the useful length of the section in the section header, and the actual (with padding) length in the boot tag. This way the tools can just ignore padding instruction by reading the section header, and the bootloader can still load the image because it uses the boot tags. Also correctly handle the case where the first section does not start right after the header (there is a bug in freescale tools for this case by the way). There is an ambiguity in the way the padding instructions should be encrypted: the bootloader should logically treat them as regular instruction of the section stream, but it appears the freescale tools do not generate them as part of the stream and instead encrypt them like boot tags, which is stupid because there is no way the bootloader could decrypt them, and anyway we don't care because the bootloader doesn't decrypt them at all. Change-Id: Iabdc1d1f9f82d374779bf03efb75c2c3998f5b5d
* imxtools: various fixes for WindowsAmaury Pouly2017-01-07
| | | | | | | | Don't use colors since the terminal doesn't support it. Also packing is broken on MinGW so use #pragma pack when compiling for windows, this is also supported by MSCV. Change-Id: I635649d52ed5f2e0af46cb9ca2ec325955b2ddb2
* imxtools: move firmware read/write to libraryAmaury Pouly2017-01-07
| | | | | | | Split the ugly firmware read/write into a API function and a much simplified code. Also the code can now report progress. Change-Id: I3f998eaf0c067c6da42b1d2dd9c5a5bf43c6915d
* imxtools/scsitools: move stmp scsi api to its own fileAmaury Pouly2017-01-07
| | | | | | No code modification code, just moving code around. Change-Id: I30744d3994aa7540f4b5b158f31b51959d5d8586
* imxtools/scsitools: rework stmp scsi APIAmaury Pouly2017-01-07
| | | | | | | | | | Sanitize the whole library by hiding most of the horrible details of the implementation. This means that all logical/drive/table attributes are exported in structures that are internally filled by higher-level API functions. This makes the code much more readable and prepares for a split between scsitool and the stmp scsi library. Change-Id: Id85d450b25cf99cd7c0896c6fc35bcd00babe9e1
* imxtools/scsitools: use new SCSI libraryAmaury Pouly2017-01-07
| | | | | | | The function names and prototypes are also normalized so make subsequent reworks easier. Change-Id: Ifa5d64aa144b11f8c087517ddc904744e3037361
* Add multiplatform library for raw SCSI commandsAmaury Pouly2017-01-07
| | | | | | | | | | | | Several tools need to perform raw SCSI commands, and we need to support Linux, Windows and Mac OS, without pulling tons of dependencies to build it easily. This very simple library has no dependency and supports Linux. TODO: - windows - mac os Change-Id: I496f5ad2490bd3e96ad962d31cce4e511a523c3a
* imxtools: fix bug aes128 (did not update cbc-macp)Amaury Pouly2017-01-01
| | | | | | | Although this does bug is never triggered because we never decrypt and use the resulting CBC-MAC, it's a major overlook. Change-Id: I3c5d318e6428d528483bf888ea284e9ded3889f0
* qeditor: port to the new hwstub library and add featuresAmaury Pouly2016-04-08
| | | | | | | | | This commit adds support for the version of the hwstub library, which requires a lot of changes. It also adds some editing features, such as register access and much better editing of fields using the mouse (double click on a field to be able to resize and move it). Change-Id: I3c4e4cc855cb44911c72bc8127bad841b68efe52
* sb1: fix buggy comparisonAmaury Pouly2014-12-20
| | | | | | | | | cppcheck reported: [rockbox/utils/imxtools/sbtools/sb1.c:440]: (warning) Comparison of a boolean expression with an integer other than 0 or 1. Thanks to Thomas Jarosch Change-Id: I0078232706d4014a1f2acea310a7a0d0edf7788b
* sbtools: add option to ignore sha1 errorsAmaury Pouly2014-09-07
| | | | Change-Id: I6bf9e4671e57f8ff3f436660e8ecb561027a036c
* sbtools: use default transfer size if it cannot be probedAmaury Pouly2014-09-07
| | | | | | | | A older commit removed this ability but it tends to be a problem since the HID driver can prevent probing of transfer size which then needs to be entered by hand on the command line. Change-Id: Ie5a556ffdcc2adec0e1c984810983e19136b6473
* imxtools/scsitools: increase SCSI delay to 10 secondsAmaury Pouly2014-02-22
| | | | | | | On some OSes like Windows or if running in a virtual machine, the one second timeout might be too short. Change-Id: I717f7a2aaed1cb3d40e8fbe6f9b1081b43ceea95
* imxtools/scsitool: add progress indicatorAmaury Pouly2014-02-22
| | | | Change-Id: I061ddac4f882156139e38fa6d495fee86271a6aa
* imxtools/scsitool: improve output formattingAmaury Pouly2014-02-22
| | | | Change-Id: Ifc5b5252e1342f381356f7bd5c2fed5ad8beddfe
* imxtools/scsitools: tool can now write a firmware using SCSIAmaury Pouly2013-12-24
| | | | Change-Id: Iac803d4b2d48319a1a32d1101f5041d20174c7a1
* imxtools/sbtools/sb1: fix parsing/debug bug about jump/call argumentsAmaury Pouly2013-12-06
| | | | Change-Id: Ib406cfc03ced6c8689ed467c154d6a7447a34e5c
* imxtools/sbtools/elf: fix debug codeAmaury Pouly2013-12-06
| | | | Change-Id: If043eb214417a41f71e6c05fc6a725eb8f983373
* elftosb: fix crash on invalid command fileAmaury Pouly2013-12-06
| | | | Change-Id: Ifef61b7ca6a391960d1d696ba455e0d14462c967
* imxtools/scsitools: document some of the SCSI vendor commandsAmaury Pouly2013-10-10
| | | | Change-Id: I534fc467aad960c61b54d202096823d5c2c9a5e9
* imxtools/sbloader: rewrite hid codeAmaury Pouly2013-10-09
| | | | | | | Rewrite code with proper documentation: it uses a UMS like CBW/CSW to wrap commands and status. Change-Id: I10476c87aaea96d4b9e54f8c1c266835c8e89721
* imxtools/sbtools: always probe report size for HID recovery modeAmaury Pouly2013-10-09
| | | | | | | Some older versions of the ROM (TA3 for example), use a 64 byte report size instead of 1024, so hardcoding 1024 is just a bad idea. Change-Id: I720c4465cfe2f519bffa307175614bba58766dce
* imxtools: add pin map and decoding toolAmaury Pouly2013-09-18
| | | | | | Also add the tool which was used to generate the map on wiki. Change-Id: I54f3474028b5fa75348564437ec1b46ba20f071b
* imxtools/efltosb: fix extern() in db filesAmaury Pouly2013-09-10
| | | | Change-Id: I5f1acd619b2f280e709d2bd06a28a3e88cc05e27
* imxtools/scsitools: add option to extract firmware from the deviceAmaury Pouly2013-09-05
| | | | Change-Id: Ib8cbf2f864a9375575cea0edbba48f740bf8f12e
* sbtools: fix elf section namingAmaury Pouly2013-08-22
| | | | Change-Id: I4500bf70028af26cc4b8136f111f527e1396d16e
* sbtools: more work on sbtoelf and elftosb, support more attributesAmaury Pouly2013-08-22
| | | | | | | Now handle timestamp, sb minor version, component/product versions, section flags. Change-Id: I35313efe60c28f04ea3732b36e5e01be3213cf9e
* sbtools: factor code in command parserAmaury Pouly2013-08-22
| | | | Change-Id: I790c373b8a0319cdb00650d3c59919bd4b0b96f6
* sbtools: now generate a db file along with with elf/rsrc filesAmaury Pouly2013-08-22
| | | | | | | | | | Now always generate a "make.db" file which aims at being the exact representation of the file, ie running sbtoelf and elftosb using the generated command file should produce the exact same file (except for the random paddings). We still miss the support for some option parsing to achieve that though. Change-Id: Ib7d6b241f7855fd35225df8ab8e0711f69d9ee5a
* sbtools: fix buffer overflowAmaury Pouly2013-08-22
| | | | Change-Id: I7b1c963e58eec88da215722ec219569a0a5a9cea
* sbtools: fix redAmaury Pouly2013-08-21
| | | | Change-Id: I28b7d4d59d8f14abbba2a70e2bdea6987b6a3a98
* sbtools: more code refactoringAmaury Pouly2013-08-21
| | | | | | Factor all printf method with a unique one defined in misc.h Change-Id: I58fbf8916b76e873a2e6678506d2c8aece7834ec
* sbtools: more printf fixingAmaury Pouly2013-08-10
| | | | Change-Id: Id617297c196b381fd1c381da3eff4345e3157529
* sbtools: fix output printingAmaury Pouly2013-08-06
| | | | | | | The code used printf instead of the provided printf functions, resulting in strange output. Change-Id: I2c7c2531d8d54ecdea97e8c189d18d351320ca7d
* sbtools: fix handling of NOP instructionsAmaury Pouly2013-08-06
| | | | Change-Id: I05ab8176f368a6e2d075dfb2059692871e0c00b3
* elf: fix handling of virtual/physical addressesAmaury Pouly2013-08-06
| | | | | | | | | | Remove the hackish elf_translate_addresses which should not have existed in the first place, on write always compute the physical address of a section using elf_translate_virtual_address which makes it possible to specify any virtual to physical mapping and fail nicely if there is none. Change-Id: I4f436945e90280a6fd9430de6c642dbeb8e23d40
* sbtools: various fixesAmaury Pouly2013-08-06
| | | | Change-Id: I82c4642aea325cf22d66e9b49fc2d47319cd70eb
* sbtools: standard sb print function is now standardAmaury Pouly2013-08-06
| | | | Change-Id: I2746bfff9a360ef4fc823853859609ffed5d2b67
* sbtools: elf library can now load global symbolsAmaury Pouly2013-08-06
| | | | Change-Id: I4d9f38ce31e65542d6ab192158bff52b6fad8f09
* sbtools: add helper to determine if a file is a valid ELF imageAmaury Pouly2013-08-06
| | | | Change-Id: Ie0e9c05569ca9b02fd36f31fd7323f02b14e1b60
* sbtools: make code aware of elf section namesAmaury Pouly2013-08-06
| | | | Change-Id: I7ab657959e38d2fcb2c7e6d9858facfb83101423
* sbtools: refactor and cleanupAmaury Pouly2013-07-18
| | | | | | | Factor common elf/sb read/write/printf routines. Factor sb zero key, move sb version guess. Change-Id: I5ae1885587456736e782e623610281bbee545039
* imxtools: add device info and serial number requests to scsitoolAmaury Pouly2013-07-07
| | | | Change-Id: I17b679062fa53c20034e7db6f4080f8762a7818c
* imx233: document some more stmp vendor scsi commandAmaury Pouly2013-07-03
| | | | Change-Id: Ie03c0c8288b4bd9c0b4beedae363cff6caf3c5cd