Commit graph

95 commits

Author SHA1 Message Date
iceman1001
5ac1ae2e06 when in bootrom mode, the arg0 variable needed to be zeroed out before usage. We assign arg0 from a message before but we can discard that information in this particular case. Its quite odd to see the assignment failing but empty it out seems to have fixed it. 2024-10-16 09:36:37 +02:00
iceman1001
6abb217a18 fix shadowed variable 2024-05-14 10:10:12 +02:00
iceman1001
db616ce7bf style 2024-01-24 17:12:56 +01:00
Martijn Plak
6202da367f coding style 2024-01-24 17:05:37 +01:00
Martijn Plak
1d14bc38c5 Rename CMD_READ_MEM_DOWNLOAD flag.
It got included in pm3_cmd.lua but shouldn't be because it's not a command.
Also, the bitshift in the value upsets some versions of lua.
2024-01-24 16:36:52 +01:00
iceman1001
081ff216eb style 2024-01-23 15:28:50 +01:00
Martijn Plak
ebdd30e92c readmem (ARM): boundary check against end of addressable space 2024-01-23 08:41:53 +01:00
Martijn Plak
e35385fde1 Adding processor flash memory reading, viewing and writing to file.
Works when the device is running either osimage or bootloader.

- New memory reading command in osimage and bootloader.
- Extended 'hw readmem' command with length parameter, file writing and hex viewer.
- Introduced '--dumpmem' option to proxmark3 executable to support dumping from bootloader.

Simple interactive examples:
  hw readmem -f flashdump
  hw readmem -l 1024
CLI example:
  ./pm3 --dumpmem flashdump.bin

Reading from arbitrary memory ranges can be unlocked using the 'raw' option.
2024-01-22 16:40:05 +01:00
wh201906
00686a91d0
Ignore button jitters in bootloader mode 2024-01-03 15:39:50 +08:00
nvx
d3a90a5da3 Clear bss on bootloader start.
This fixes a bug with the USB device serial number sometimes not working in bootloader mode.
2023-12-14 20:33:00 +10:00
iceman1001
e41019e584 the renumerations of USB seems to time critical. Prolonging the delay seems to improve it. Thanks to @NVX / @HenryGab for looking into it 2023-12-14 00:36:07 +01:00
Self Not Found
d33fbf1347
Fix units 2023-04-06 20:54:00 +08:00
Henry Gabryjelski
48ca513a96 updates from make style 2023-02-17 17:27:07 -08:00
Henry Gabryjelski
44676bde72 Bootrom: Enable serial number from flash
* Add `.ramfunc` section to bootrom loader script
* exclude spiffs functionality from flashmem.h/flashmem.c
   (allows bootrom to use flashmem)
* hide unused tick.h / flashmem.h functions from bootrom
   (not technically necessary; see comments)
* bootrom: add source files, include path, and defines when
  `PLATFORM_DEFS` defines `WITH_FLASH`
* Define `AS_BOOTROM` to indicate code is building for bootrom
2023-02-17 17:07:13 -08:00
iceman1001
b98d518fd7 style 2022-01-06 19:41:45 +01:00
Philippe Teuwen
b703bb746b Adapting license headers, WIP 2022-01-06 02:20:38 +01:00
merlokk
d46d23d079 make style 2021-08-25 14:44:06 +03:00
Philippe Teuwen
0384359aa4 icopyx bootloader safeguard 2021-08-21 23:52:15 +02:00
Philippe Teuwen
d56d8f0f65 rename common_area typedef and global 2021-08-21 23:29:56 +02:00
Philippe Teuwen
a330401769 change strategy for refs to linker symbols to get compatible again with old GCC (6.3), tested on GCC 11 too 2021-05-25 16:47:13 +02:00
Philippe Teuwen
a592b349cb make style 2021-05-18 23:56:11 +02:00
Philippe Teuwen
0f80c6dea4 Uniformize source code ref: bootloader
Using "extern char linker_symbol[]" notation
cf https://sourceware.org/binutils/docs/ld/Source-Code-Reference.html
2021-05-14 00:05:44 +02:00
iceman1001
9594619af3 fix cppchecker 2020-06-02 12:51:45 +02:00
Philippe Teuwen
d7422aaf99 bootrom fix warnings 2020-05-11 13:48:57 +02:00
Philippe Teuwen
f9463d183a bootloader: fix missing prototypes and shadowed vars 2020-05-11 13:48:57 +02:00
Philippe Teuwen
bf3ae7f007 perform startup delay also during TIA 2019-10-15 18:07:28 +02:00
Philippe Teuwen
3fce47d023 Add hw tia to trigger a new Timing Interval Acquisition 2019-10-15 15:02:34 +02:00
Philippe Teuwen
3560cf5466 bootrom: remove deprecated CMD_SETUP_WRITE 2019-10-05 19:10:40 +02:00
Philippe Teuwen
9370649861 bootrom: avoid pointer magic to please coverity 2019-10-05 19:10:40 +02:00
Philippe Teuwen
d19754567d summer restructuring:
* .h include only the strict minimum for their own parsing
  * this forces all files to include explicitment their needs and not count on far streched dependencies
  * this helps Makefile to rebuild only the minimum
  * according to this rule, most standalone .h are now gone
  * big app.h is gone
  * remove seldom __cplusplus, if c++ happens, everything will have to be done properly anyway
* all unrequired include were removed
* split common/ into common/ (client+arm) and common_arm/ (os+bootloader)
  * bring zlib to common/
  * bring stuff not really/not yet used in common back to armsrc/ or client/
  * bring liblua into client/
  * bring uart into client/
  * move some portions of code around (dbprint, protocols,...)
* rename unused files into *_disabled.[ch] to make it explicit
* rename soft Uarts between 14a, 14b and iclass, so a standalone could use several without clash
* remove PrintAndLogDevice
* move deprecated-hid-flasher from client to tools
* Makefiles
  * treat deps in armsrc/ as in client/
  * client: stop on warning (-Werror), same as for armsrc/

Tested on:

* all standalone modes
* Linux
2019-08-11 21:42:01 +02:00
Philippe Teuwen
1354aec556 typos 2019-08-06 13:51:10 +02:00
Philippe Teuwen
daae890667 Bootrom & flasher changes:
* use macros for versions
* activate UNDERSTANDS_VERSION in bootrom
* fix missing break; bug in bootrom
* force flash_load to reject images > 256k if bootloader not up to date
* move logic from flasher to flash
2019-07-20 10:48:40 +02:00
slurdge
68aa9d631d Flasher support for versionning
Only bootrom with version > 1.0.0 will allow 512K writes
2019-07-20 10:47:24 +02:00
slurdge
c056e56492 Add a version command to the bootloader (not activated yet) 2019-07-20 10:47:24 +02:00
Philippe Teuwen
8e6258936c make style 2019-07-19 13:18:35 +02:00
slurdge
7bf3255a6c Flasher support for 512K flash
A better way would be to cut the connecting function and flashing function and to move the whole mem computation to flash.c
Working flasher
2019-07-19 12:35:04 +02:00
Philippe Teuwen
b0dbbd3683 make style 2019-07-13 00:38:30 +02:00
slurdge
4727ab96d7 Dynamic report of the chipID for flashing purposes 2019-07-10 21:11:20 +02:00
Philippe Teuwen
a55e597e36 make style 2019-06-07 21:40:33 +02:00
Philippe Teuwen
732bc766f9 Reduce some var scopes 2019-06-07 18:41:39 +02:00
Philippe Teuwen
51e4df533e New button behaviour in bootloader mode:
- Keep button pressed when powering to force entering bootloader
  - Once in bootloader more, you can release the button
- When in bootloader mode (no matter how you entered that mode)
  - One button press to quit bootloader mode and boot main image
2019-05-26 17:48:30 +02:00
Philippe Teuwen
27f7057961 Rename few USB -> PM3 to avoid misleading interpretations 2019-04-30 21:10:11 +02:00
Philippe Teuwen
7d2d23ce50 fix bootrom using new names (but still old packets) 2019-04-25 01:53:09 +02:00
Philippe Teuwen
482db05741 Rename few stuff for consistency 2019-04-18 12:49:51 +02:00
Philippe Teuwen
4e31c6110b Better Command structs 2019-04-18 00:12:52 +02:00
Philippe Teuwen
be15ad7fec Viva la revolucion 2019-04-17 21:30:01 +02:00
iceman1001
ce5fcf1e2d simplify 2019-04-07 12:20:17 +02:00
iceman1001
ca9061bd32 changed byte_t -> uint8_t 2019-03-21 15:19:18 +01:00
Philippe Teuwen
961d929f4d changing {} style to match majority of previous style 2019-03-10 11:20:22 +01:00
Philippe Teuwen
0373696662 make style 2019-03-10 00:00:59 +01:00