Commit Graph
101 Commits
Author SHA1 Message Date
iceman1001 a7918d5135 style 2026-09-03 18:30:00 +02:00
iceman1001 d397e62665 bad compare signed 2026-09-03 18:29:01 +02:00
iceman1001 6616e939f7 the changes to the PM5 button press influenced PM3 button press to enter bootloader. This make sure to seperate those two behaviors from eachother on each device platform 2026-09-03 18:26:09 +02:00
iceman1001 25d958e5e6 split PM3_CMD_DATA_SIZE_OLD out of PM3_CMD_DATA_SIZE
The OLD frame size was tied to the NG one, but the bootloader only speaks
OLD - growing PM3_CMD_DATA_SIZE would silently change sizeof(PacketCommandOLD)
and break flashing against every deployed bootrom in both directions.

Pin the OLD structs to their own constant and use it on every OLD path:
reply_old and the OLD receive branch on both sides, the bootrom, and the
flasher's write_block/send_finish_write_cmd, which memcpy into a
PacketCommandOLD using the NG size.

No behaviour change - both constants are 512 and armsrc .text is
byte-identical before and after.
2026-08-30 13:03:53 +02:00
DXL b448d3c6bd The bootrom performs hardware abstraction. 2026-08-19 15:48:58 +02:00
iceman1001 af2980c753 style 2026-07-06 23:21:00 +02:00
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