~/Projects/proxmark3
git clone https://code.lsong.org/proxmark3
Commit
- Commit
- b46e1cb556cdb0e3107a0d91196d37ff3ac3965a
- Author
- Alex <[email protected]>
- Date
- 2023-08-29 11:27:50 +0200 +0200
- Diffstat
armsrc/fpgaloader.h | 145 ++++++++++++++++++++++++++++++++++++++++------
Fix BUGBUG in fpgaloader.h, realign fpga\define.v with armsrc\fpgaloader.h
diff --git a/armsrc/fpgaloader.h b/armsrc/fpgaloader.h index a1869d5da237bd3a173e27066fc8cfbd8c4c0fbd..b345e34f21bf482dbcc225de327eba09e5e10267 100644 --- a/armsrc/fpgaloader.h +++ b/armsrc/fpgaloader.h @@ -1,5 +1,4 @@ //----------------------------------------------------------------------------- -// Copyright (C) Jonathan Westhues, April 2006 // Copyright (C) Proxmark3 contributors. See AUTHORS.md for details. // // This program is free software: you can redistribute it and/or modify @@ -32,122 +31,226 @@ #define FPGA_BITSTREAM_HF_FELICA 3 #define FPGA_BITSTREAM_HF_15 4 /* + Communication between ARM / FPGA is done inside armsrc/fpgaloader.c see: function FpgaSendCommand() +//----------------------------------------------------------------------------- // Copyright (C) Jonathan Westhues, April 2006 +//----------------------------------------------------------------------------- +//----------------------------------------------------------------------------- // (at your option) any later version. ++------ frame layout circa 2020 ------------------+ +| 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 | ++-------------------------------------------------+ +| C C C C M M M M P P P P P P P P | C = FPGA_CMD_SET_CONFREG, M = FPGA_MAJOR_MODE_*, P = FPGA_LF_* or FPGA_HF_* parameter +| C C C C D D D D D D D D | C = FPGA_CMD_SET_DIVISOR, D = divisor +| C C C C T T T T T T T T | C = FPGA_CMD_SET_EDGE_DETECT_THRESHOLD, T = threshold +//----------------------------------------------------------------------------- // Copyright (C) Jonathan Westhues, April 2006 -// This program is distributed in the hope that it will be useful, +// (at your option) any later version. ++-------------------------------------------------+ ++------ frame layout current ---------------------+ +| 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 | ++-------------------------------------------------+ +//----------------------------------------------------------------------------- BUGBUG -- Conflicts with information in ../fpga/define.v //----------------------------------------------------------------------------- +#define FPGA_BITSTREAM_HF_15 4 +| C C C C T T T T T T T T | C = FPGA_CMD_SET_EDGE_DETECT_THRESHOLD, T = threshold +// GNU General Public License for more details. // (at your option) any later version. ++-------------------------------------------------+ + +//----------------------------------------------------------------------------- The bit format is: C3 C2 C1 C0 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0 + +//----------------------------------------------------------------------------- where +//----------------------------------------------------------------------------- C is 4bit command +//----------------------------------------------------------------------------- D is 12bit data //----------------------------------------------------------------------------- -// (at your option) any later version. -----+--------- frame layout -------------------- +//----------------------------------------------------------------------------- bit | 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 + +//----------------------------------------------------------------------------- -----+------------------------------------------- +//----------------------------------------------------------------------------- cmd | x x x x +//----------------------------------------------------------------------------- major| x x x +//----------------------------------------------------------------------------- opt | x x + +//----------------------------------------------------------------------------- divi | x x x x x x x x +//----------------------------------------------------------------------------- thres| x x x x x x x x ------+------------------------------------------- +//----------------------------------------------------------------------------- */ //----------------------------------------------------------------------------- -// (at your option) any later version. // Definitions for the FPGA commands. +//----------------------------------------------------------------------------- // BOTH HF / LF +//----------------------------------------------------------------------------- #define FPGA_CMD_SET_CONFREG (1<<12) // C +//----------------------------------------------------------------------------- // LF +//----------------------------------------------------------------------------- #define FPGA_CMD_SET_DIVISOR (2<<12) // C +//----------------------------------------------------------------------------- #define FPGA_CMD_SET_USER_BYTE1 (3<<12) // C +//----------------------------------------------------------------------------- // HF +//----------------------------------------------------------------------------- #define FPGA_CMD_TRACE_ENABLE (2<<12) // C //----------------------------------------------------------------------------- -// (at your option) any later version. // Definitions for the FPGA configuration word. + +//----------------------------------------------------------------------------- #define FPGA_MAJOR_MODE_MASK 0x01C0 +//----------------------------------------------------------------------------- #define FPGA_MINOR_MODE_MASK 0x003F -// LF +//----------------------------------------------------------------------------- #define FPGA_MAJOR_MODE_LF_READER (0<<6) +//----------------------------------------------------------------------------- #define FPGA_MAJOR_MODE_LF_EDGE_DETECT (1<<6) +//----------------------------------------------------------------------------- #define FPGA_MAJOR_MODE_LF_PASSTHRU (2<<6) +//----------------------------------------------------------------------------- #define FPGA_MAJOR_MODE_LF_ADC (3<<6) -// HF +//----------------------------------------------------------------------------- #define FPGA_MAJOR_MODE_HF_READER (0<<6) // D +//----------------------------------------------------------------------------- #define FPGA_MAJOR_MODE_HF_SIMULATOR (1<<6) // D + +//----------------------------------------------------------------------------- #define FPGA_MAJOR_MODE_HF_ISO14443A (2<<6) // D +//----------------------------------------------------------------------------- #define FPGA_MAJOR_MODE_HF_SNIFF (3<<6) // D +//----------------------------------------------------------------------------- #define FPGA_MAJOR_MODE_HF_ISO18092 (4<<6) // D +//----------------------------------------------------------------------------- #define FPGA_MAJOR_MODE_HF_GET_TRACE (5<<6) // D +//----------------------------------------------------------------------------- #define FPGA_MAJOR_MODE_HF_FSK_READER (6<<6) // D //----------------------------------------------------------------------------- +#define FPGA_MAJOR_MODE_OFF (7<<6) // D +//----------------------------------------------------------------------------- // (at your option) any later version. // -// This program is free software: you can redistribute it and/or modify +// Copyright (C) Proxmark3 contributors. See AUTHORS.md for details. +//----------------------------------------------------------------------------- // it under the terms of the GNU General Public License as published by -// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +#define FPGA_MAJOR_MODE_MASK 0x01C0 - +#define FPGA_MINOR_MODE_MASK 0x003F -// Options for LF_READER +// Definitions for the FPGA commands. +//----------------------------------------------------------------------------- #define FPGA_LF_ADC_READER_FIELD 0x1 //----------------------------------------------------------------------------- -// (at your option) any later version. // Options for LF_EDGE_DETECT +//----------------------------------------------------------------------------- #define FPGA_CMD_SET_EDGE_DETECT_THRESHOLD FPGA_CMD_SET_USER_BYTE1 +//----------------------------------------------------------------------------- #define FPGA_LF_EDGE_DETECT_READER_FIELD 0x1 + +//----------------------------------------------------------------------------- #define FPGA_LF_EDGE_DETECT_TOGGLE_MODE 0x2 +#define FPGA_MAJOR_MODE_LF_READER (0<<6) +#define FPGA_MAJOR_MODE_LF_EDGE_DETECT (1<<6) +#define FPGA_MAJOR_MODE_LF_PASSTHRU (2<<6) +#define FPGA_MAJOR_MODE_LF_ADC (3<<6) +//----------------------------------------------------------------------------- // Options for the HF reader +//----------------------------------------------------------------------------- #define FPGA_HF_READER_MODE_RECEIVE_IQ (0<<0) +//----------------------------------------------------------------------------- #define FPGA_HF_READER_MODE_RECEIVE_AMPLITUDE (1<<0) +//----------------------------------------------------------------------------- #define FPGA_HF_READER_MODE_RECEIVE_PHASE (2<<0) +//----------------------------------------------------------------------------- #define FPGA_HF_READER_MODE_SEND_FULL_MOD (3<<0) +//----------------------------------------------------------------------------- #define FPGA_HF_READER_MODE_SEND_SHALLOW_MOD (4<<0) +//----------------------------------------------------------------------------- #define FPGA_HF_READER_MODE_SNIFF_IQ (5<<0) + +// Options for LF_READER +//----------------------------------------------------------------------------- #define FPGA_HF_READER_MODE_SNIFF_AMPLITUDE (6<<0) + +// Options for LF_EDGE_DETECT +//----------------------------------------------------------------------------- #define FPGA_HF_READER_MODE_SNIFF_PHASE (7<<0) +//----------------------------------------------------------------------------- #define FPGA_HF_READER_MODE_SEND_JAM (8<<0) +//----------------------------------------------------------------------------- // (at your option) any later version. -// Copyright (C) Proxmark3 contributors. See AUTHORS.md for details. +// Copyright (C) Proxmark3 contributors. See AUTHORS.md for details. +//----------------------------------------------------------------------------- #define FPGA_HF_READER_SUBCARRIER_848_KHZ (0<<4) +//----------------------------------------------------------------------------- #define FPGA_HF_READER_SUBCARRIER_424_KHZ (1<<4) +//----------------------------------------------------------------------------- #define FPGA_HF_READER_SUBCARRIER_212_KHZ (2<<4) +//----------------------------------------------------------------------------- #define FPGA_HF_READER_2SUBCARRIERS_424_484_KHZ (3<<4) //----------------------------------------------------------------------------- -// (at your option) any later version. // Options for the HF simulated tag, how to modulate +//----------------------------------------------------------------------------- #define FPGA_HF_SIMULATOR_NO_MODULATION 0x0 // 0000 +//----------------------------------------------------------------------------- #define FPGA_HF_SIMULATOR_MODULATE_BPSK 0x1 // 0001 +//----------------------------------------------------------------------------- #define FPGA_HF_SIMULATOR_MODULATE_212K 0x2 // 0010 +//----------------------------------------------------------------------------- #define FPGA_HF_SIMULATOR_MODULATE_424K 0x4 // 0100 +//----------------------------------------------------------------------------- #define FPGA_HF_SIMULATOR_MODULATE_424K_8BIT 0x5 // 0101 -// This program is distributed in the hope that it will be useful, + +// (at your option) any later version. // +#define FPGA_HF_READER_SUBCARRIER_424_KHZ (1<<4) +#define FPGA_HF_READER_SUBCARRIER_212_KHZ (2<<4) +#define FPGA_HF_READER_2SUBCARRIERS_424_484_KHZ (3<<4) +// Options for the HF simulated tag, how to modulate +#define FPGA_HF_SIMULATOR_NO_MODULATION ( 0 ) +//----------------------------------------------------------------------------- // Options for ISO14443A +//----------------------------------------------------------------------------- #define FPGA_HF_ISO14443A_SNIFFER 0x0 +//----------------------------------------------------------------------------- #define FPGA_HF_ISO14443A_TAGSIM_LISTEN 0x1 +//----------------------------------------------------------------------------- #define FPGA_HF_ISO14443A_TAGSIM_MOD 0x2 + +// Options for ISO14443A +//----------------------------------------------------------------------------- #define FPGA_HF_ISO14443A_READER_LISTEN 0x3 -//----------------------------------------------------------------------------- +// Copyright (C) Jonathan Westhues, April 2006 - -//----------------------------------------------------------------------------- +// Copyright (C) Jonathan Westhues, April 2006 //----------------------------------------------------------------------------- -//----------------------------------------------------------------------------- +// Copyright (C) Jonathan Westhues, April 2006 // Copyright (C) Jonathan Westhues, April 2006 -//----------------------------------------------------------------------------- +// Copyright (C) Jonathan Westhues, April 2006 // Copyright (C) Proxmark3 contributors. See AUTHORS.md for details. //----------------------------------------------------------------------------- +// (at your option) any later version. +// Copyright (C) Jonathan Westhues, April 2006 // +#define FPGA_HF_ISO18092_FLAG_NOMOD ( 1 ) // 0001 disable modulation module +#define FPGA_HF_ISO18092_FLAG_424K ( 2 ) // 0010 should enable 414k mode (untested). No autodetect +#define FPGA_HF_ISO18092_FLAG_READER ( 4 ) // 0100 enables antenna power, to act as a reader instead of tag void FpgaSendCommand(uint16_t cmd, uint16_t v); void FpgaWriteConfWord(uint16_t v);