doc for pm3 256k

This commit is contained in:
Philippe Teuwen 2020-11-05 19:23:20 +01:00
parent 2cc5fb383c
commit b2bc2a499d

View file

@ -32,9 +32,7 @@ make SKIPBT=1
By default, the firmware is of course tuned for the Proxmark3 Rdv4.0 device, which has built-in support for 256kb onboard flash SPI memory, Sim module (smart card support), FPC connector.
These features make it very different from all other devices, there is non other like this one.
**Recommendation**: if you don't have a RDV4, we strongly recommend your device to have at least a 512kb arm chip, since this repo is on the very edge of 256kb limit.
A firmware built for the RDV4 can still run on the other platforms as it will auto-detect during boot that external SPI and Sim are not present, still it will boot faster if it's tuned to the platform, which solves USB enumeration issues on some OSes.
**Recommendation**: if you don't have a RDV4, we strongly recommend your device to have at least a 512kb arm chip, since this repo is crossing 256kb limit. There is still a way to skip parts to make it fit on a 256kb device, see below.
If you need to tune things and save the configuration, create a file `Makefile.platform` in the root directory of the repository, see `Makefile.platform.sample`.
For an up-to-date exhaustive list of options, you can run `make PLATFORM=`.
@ -101,6 +99,48 @@ Here are the supported values you can assign to `STANDALONE` in `Makefile.platfo
By default `STANDALONE=HF_MSDSAL`.
## 256kb versions
If you own a Proxmark3 Easy with only 256kb, you can use a few definitions to help you getting a smaller firmware.
First thing is of course to use the `PLATFORM=PM3OTHER`.
Adding `PLATFORM_SIZE=256` will provoke an error during compilation of the recovery image if your image is too big, so you can detect the problem before trying to flash the Proxmark3, e.g.
```
[=] GEN proxmark3_recovery.bin
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
ERROR: Firmware image too large for your platform! 262768 > 262144
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
```
You can skip the standalone support by indicating `STANDALONE=` and
a series of `SKIP_*` allow to skip some of the functionalities and to get a smaller image.
| Definitions | Rough estimation of the saved space |
|---------------------|-------------------------------------|
|STANDALONE= | 3.6kb
|SKIP_LF=1 | 25.8kb
|SKIP_HITAG=1 | 24.2kb
|SKIP_EM4x50=1 | 2.9kb
|SKIP_ISO15693=1 | 3.2kb
|SKIP_LEGICRF=1 | 3.9kb
|SKIP_ISO14443b=1 | 3.7kb
|SKIP_ISO14443a=1 | 63.0kb
|SKIP_ICLASS=1 | 10.5kb
|SKIP_FELICA=1 | 4.0kb
|SKIP_NFCBARCODE=1 | 1.4kb
|SKIP_HFSNIFF=1 | 0.5kb
|SKIP_HFPLOT=1 | 0.3kb
So for example, at the time of writing, this is a valid `Makefile.platform` compiling an image for 256k:
```
PLATFORM=PM3OTHER
PLATFORM_SIZE=256
STANDALONE=
SKIP_LEGICRF=1
SKIP_FELICA=1
```
Situation might change when the firmware is growing of course, requiring to skip more elements.
## Next step
See [Compilation instructions](/doc/md/Use_of_Proxmark/0_Compilation-Instructions.md)