Commit graph

2869 commits

Author SHA1 Message Date
marcansoft 9af4835863 Add KEEP() to version information section
Prevents it from being garbage collected
2010-02-26 23:29:22 +00:00
marcansoft 9b87d273b5 Fix minor consistency issue in armsrc/ldscript
BSS should be AT>ram (though it really doesn't matter because load size
is 0)
2010-02-26 21:40:14 +00:00
marcansoft cc7580be7a Minor fix to armsrc ldscript 2010-02-26 15:14:27 +00:00
marcansoft 98bf65a640 Fix up armsrc/ldscript (create proper PHDRs, cleanup)
Now explicitly creates PHDRs (to avoid including e.g. ELF headers inside
the first PHDR)
2010-02-26 14:03:21 +00:00
marcansoft 98540684df Link using gcc and get rid of the LIBGCC stuff
GCC knows how to find libgcc, and the proper way to link C code is to
use gcc, not ld.
2010-02-26 14:03:03 +00:00
marcansoft e949e6a63e Add license header to armsrc/ldscript 2010-02-26 14:01:31 +00:00
izsh@fail0verflow.com 9e13f87517 Fix a couple of warnings 2010-02-24 20:34:13 +00:00
marcansoft c1bd1140c4 Some random cleanup 2010-02-21 00:13:08 +00:00
marcansoft bd20f8f478 Add license headers to armsrc/bootrom/common stuff
I have kept whatever copyright notices exist. Please add your own
copyright notice if you have made any nontrivial changes or additions to
the code. There are several files without any attribution, currently.
2010-02-21 00:12:52 +00:00
marcansoft 9ab7a6c755 Split str* and mem* into string.[ch] 2010-02-21 00:10:28 +00:00
marcansoft f7e3ed8287 Clean up data types, some header cleanup, etc. 2010-02-20 22:51:00 +00:00
marcansoft e30c654b19 More en masse cleanup (whitespace/newlines/headers/etc) 2010-02-20 21:57:20 +00:00
marcansoft 15c4dc5ace Clean up line endings, switch everything to LF instead of CRLF
Doing this for bootrom and armsrc for now. If you're using Windows,
please configure your editor for LF line endings.
2010-02-20 21:24:25 +00:00
marcansoft 72c4af087f Add obj/.dummy for clients that don't track empty dirs 2010-02-20 21:20:47 +00:00
izsh@fail0verflow.com 5e174a511b marcan's patch until he gets commit access. Remove C library's includes from the firmware side since it's not available anyway and not used 2010-02-20 03:07:55 +00:00
adam@algroup.co.uk 4c8db262c0 usability hint 2010-02-06 15:50:20 +00:00
adam@algroup.co.uk b279e3efc1 more helpful error message (from Sourcerer) 2010-02-06 09:54:38 +00:00
adam@algroup.co.uk a2b1414f43 Andreas fix for LEGIC MIM1024 2010-02-06 09:43:33 +00:00
adam@algroup.co.uk 8e220a9126 put legic back in the system and add rumpletux's fast legic / prng code from forum 2010-02-05 08:18:02 +00:00
adam@algroup.co.uk 502def6d63 oops. in the spirit of cleaner code, don't do stuff twice! 2010-02-04 23:31:23 +00:00
adam@algroup.co.uk bdd1de1b02 make LF sampling ACK to fix USB timing issue in em410xwatch 2010-02-04 23:15:53 +00:00
henryk@ploetzli.ch 92e592ce71 Limit DbpString size to the buffer size, patch by Andreas from proxmark forums 2010-02-04 02:49:21 +00:00
izsh.f0f 7fe9b0b742 Client cleanup and restructuring. Stage 1...
Next Step is refactoring some of the giant functions which are
just copy/paste of some other ones with just a few line changes,
removing unnecessary 'goto' etc.

The MS Windows version is broken with this commit but will be fixed
soon. Everything can't be done all at once :P

The commands are now hierarchical, for example:
"hf 14a read" vs. "hf 14b read".
You can also request help:
"hf help", "data help", "hf 15 help" etc.

Indents are now space-based, not tab-based anymore. Hopefully
no one will be trolling about it, considering the suicide-prone work
being done here ;)

client/cmdhw.c, client/proxusb.c, client/cmdhw.h, client/proxusb.h,
client/cmdmain.c, client/cmdlfhid.c, client/cmdmain.h, client/cmdlfhid.h,
client/data.c, client/data.h, client/cmdhf.c, client/cmdlf.c,
client/cmdhf.h, client/cmdhf15.c, client/cmdhf14b.c, client/cmdlf.h,
client/cmdhf15.h, client/cmdhf14b.h, client/cmddata.c, client/cmddata.h,
client/ui.c, client/cmdparser.c, client/cmdlfti.c, client/ui.h,
client/cmdlfem4x.c, client/cmdparser.h, client/cmdlfti.h, client/cmdlfem4x.h,
client/graph.c, client/graph.h, client/cmdhf14a.c, client/cmdhf14a.h,
client/cmdhflegic.c, client/cmdhflegic.c: New files.

client/cli.c, client/flasher.c, client/snooper.c, client/proxmark3.c,
client/proxmark3.h, client/Makefile: Update accordingly.

client/flash.h, client/flash.c, client/proxgui.cpp: Cosmetic changes.

client/translate.h, client/command.c, client/gui.c,
client/usb.c, client/prox.h: Remove.

include/usb_cmd.h (CMD_ACQUIRE_RAW_ADC_SAMPLES_ISO_14443_SIM): Remove dead cmd.

common/crc16.h: New file.
common/crc16.c: Modify accordingly.
common/iso14443crc.h: New file.
common/iso14443_crc.c: Rename to
common/iso14443crc.c: and modify accordingly.

armsrc/lfops.c, armsrc/iso14443.c,
armsrc/iso14443a.c: include .h files from
the common directory instead of including the c files.

common/Makefile.common, armsrc/Makefile: Modify accordingly.
2010-02-04 01:27:07 +00:00
adam@algroup.co.uk 6982ac2612 fix USB send data timing issue in CMD_DOWNLOADED_SIM_SAMPLES_125K 2010-01-29 09:28:47 +00:00
adam@algroup.co.uk 13a79da4e9 add 'losimman' command - simulate arbitrary Manchester encoded LF tags 2010-01-28 11:49:05 +00:00
d18c7db 815f3f2559 Decreased BigBuff mem, some elf flasher fixes (needs more work) but flashing correctly currently. 2010-01-10 03:57:41 +00:00
daniel.boteanu 8caef54055 Increased buffer sizes for hi14snoop. Added blinking LED for feedback 2010-01-09 15:30:47 +00:00
daniel.boteanu d724614963 Trim long debug string message in hitune 2010-01-09 15:13:49 +00:00
daniel.boteanu 1eb7596aad Added hitune command for continuously measuring HF antenna tuning 2010-01-09 14:59:42 +00:00
d18c7db 1e1b303093 Fixed some compile warnings in client, minor tidy up with some dbprintf statements 2010-01-04 03:08:45 +00:00
bushing 850427c8a9 switch away entirely from using DbpInteger to Dbprintf 2010-01-02 00:34:43 +00:00
bushing a9bc033bdd create Dbprintf convenience function 2010-01-01 23:36:17 +00:00
bushing 0d974852ce ARM code cleanup (lfops) 2009-12-30 02:52:33 +00:00
bushing 6f5cb60c46 Add printf, and start transitioning away from DbpInteger 2009-12-30 02:18:25 +00:00
roel@libnfc.org 32cfae439e mifare firmware update 2009-12-30 00:11:50 +00:00
henryk@ploetzli.ch 2561caa24c Implement card reading with a few simple fixed obfuscation strings 2009-12-28 18:19:00 +00:00
henryk@ploetzli.ch 1d99b0df4a Remove LEGIC RF tag emulation code since it's useless without keystream generator 2009-12-28 18:18:25 +00:00
roel@libnfc.org 84c02e97e0 iso14443a cleanup, cascade2 level working again 2009-12-28 17:21:50 +00:00
roel@libnfc.org d24438f85c cleaning up endless copy-paste of trace functionality 2009-12-28 00:16:05 +00:00
bushing d5be6f7cd4 fix OS detection, libgcc detection 2009-12-22 12:50:34 +00:00
bushing 1dea88f976 fix some ARM build fail 2009-12-22 12:48:33 +00:00
henryk@ploetzli.ch 8d40aba58b Add capability to correlate against subcarriers of 212kHz (argument FPGA_HF_READER_RX_XCORR_QUARTER_FREQ | FPGA_HF_READER_RX_XCORR_848_KHZ) and 106kHz (argument FPGA_HF_READER_RX_XCORR_QUARTER_FREQ) 2009-12-09 02:31:01 +00:00
henryk@ploetzli.ch 68d9d60a4d Add generic CRC calculation code 2009-11-25 20:41:41 +00:00
edouard@lafargue.name c86cc30801 Added the new SRIX4K reading routine, thanks to jonor. Regression tested against SRI512 tags,
but I do not have SRIX4K tags to test this with.
2009-11-23 09:34:57 +00:00
d18c7db e70140224f Fix define typo 2009-11-12 08:04:40 +00:00
d18c7db c0d04e9540 Also defines to carve out LF related code 2009-11-12 07:23:12 +00:00
henryk@ploetzli.ch b1083ec9f7 #ifdef out the calls to the ISO15693/14443/14443a functions so that the -D on the make command line actually can be used to reduce code size 2009-11-10 05:10:01 +00:00
henryk@ploetzli.ch dcc10e5e31 Add basic communication shell for Legic RF in reader mode. Needs the new receive function of hi_read_tx. 2009-11-06 15:37:53 +00:00
henryk@ploetzli.ch add16a6287 Refactor things around to make it easier to add a reader mode with code reuse 2009-11-05 11:13:46 +00:00
henryk@ploetzli.ch 4014b814fb Make canned responsed const 2009-10-25 09:58:23 +00:00
henryk@ploetzli.ch ccedd6ae6b Simplify data types, now that I believe that 'frames' will always be rather short 2009-10-23 21:40:17 +00:00
henryk@ploetzli.ch aac23b2434 Fix and generify legic response code 2009-10-16 22:07:00 +00:00
henryk@ploetzli.ch a7247d858b Add basic LEGIC RF communication in tag simulation mode 2009-10-12 11:47:39 +00:00
henryk@ploetzli.ch ecf53cb215 Add HF simulator modulation mode for 212kHz subcarrier 2009-10-12 07:46:03 +00:00
henryk@ploetzli.ch 5fc8250f7f Add command to manually set ADC mux source 2009-10-09 15:57:07 +00:00
d18c7db 6949aca9fa Pushed standard AT91 defines into main code 2009-09-29 12:13:41 +00:00
d18c7db d3ae0de746 Small changes to some armsrc makefile to allow conditional compilation of various protocols via defines, change winsrc makefile to allow override of compiler location via external defines, finally change fpgaloader to actually check that the image upload succeeded instead of just blindly sending it and hoping for the best. 2009-09-22 09:57:03 +00:00
henryk@ploetzli.ch 1b2c893632 Fix data segement. You may now use stuff like int foo = 1; in global context (as opposed to both int foo = 0; which is bss and const int foo = 1; which is rodata) without having the sky come
crashing down
2009-09-08 15:40:22 +00:00
d18c7db 715d74c5be Fixed up last gcc 4.1 and 4.4 warnings, added OpenOCD wiggler config 2009-09-08 10:08:43 +00:00
henryk@ploetzli.ch 45dcfac2cc Hopefully correct code for C's strict aliasing rules 2009-09-08 02:36:50 +00:00
henryk@ploetzli.ch 9dbe0941fd Change section_start pointer to char** to prevent aliasing warnings on old toolchain 2009-09-08 00:37:13 +00:00
d18c7db 57fcd2d7d1 added eh_frame needed for gcc 4.4.1 or higher 2009-09-07 09:53:45 +00:00
henryk@ploetzli.ch d4086fe2b7 Re-enable -Wall 2009-09-06 19:19:38 +00:00
henryk@ploetzli.ch bb03181744 Fix FPGA load code for the generic case where a new style bitstream is not DWORD aligned
Completely switch to byte-wise load, shouldn't make much of a difference since this is not timing-critical
2009-09-06 19:08:56 +00:00
henryk@ploetzli.ch 83288efc7d Remove unused code from hitag2.c
Mark intermittently used code in iso15693.c as attribute unused
Change CFLAGS to -Werror to enforce warning free code
2009-09-05 22:17:18 +00:00
henryk@ploetzli.ch 8fcbf652da New bootrom
+ Add common area at end of RAM to communicate between main os and bootrom
+ Lower stack end to make room for common area
+ Implement CMD_DEVICE_INFO in both OS and bootrom to give information about the current state and supported features
+ Allow hands-free firmware update: When CMD_START_FLASH is received over USB in OS mode, the device will reset and enter the bootrom
  Pressing the button in hands-free update mode takes precedence: releasing the button will immediately abort firmware update and 
  perform a reset. Do not press the button.
+ Require each flash sequence to be preceded by a CMD_START_FLASH to set up the boundaries for the following flash sequence
  Not compatible with linux flasher before SVN revision 200
  Currently no compatible flasher for Windows. WINDOWS USERS: DO NOT UPDATE YOUR BOOTROM YET
+ Protect bootrom flash area unless magic unlock sequence is given in CMD_START_FLASH
2009-09-01 14:44:38 +00:00
henryk@ploetzli.ch e3ae025783 Eradicate all occurences of hardcoded memory addresses from all sources files, except for the FPGA bitstream fallback 2009-08-31 14:52:59 +00:00
henryk@ploetzli.ch 3742d90563 Add forgotten file 2009-08-31 00:47:12 +00:00
henryk@ploetzli.ch 2e68bd4065 Add forgotten file 2009-08-31 00:37:29 +00:00
henryk@ploetzli.ch 4271e82d56 Only re-compile version.c as often as necessary
Make bootrom version information pointer a proper symbol (with hacky ld strangeness workaround)
2009-08-29 06:14:28 +00:00
henryk@ploetzli.ch 0fa9ca5b53 Add command and code for bidirectional LF emulation of Hitag2. Should be extended for other types of tags 2009-08-28 21:56:43 +00:00
henryk@ploetzli.ch 8a6aec16d8 Implement version information storage and retrieval for the bootrom and the osimage.
Use perl to create the version information (thereby re-creating the perl dependency and adding an svn dependency) but fall back in case of missing perl or svn
2009-08-28 06:40:44 +00:00
henryk@ploetzli.ch ba8a80b30c Add version command 2009-08-28 00:37:28 +00:00
henryk@ploetzli.ch e73e717239 Add Makefile for fpga directory (Windows codepath is untested, in any case, go.bat is still there)
Retire rbt2c.pl, instead use objcopy to directly convert the .bit file into an .o that can be linked with the flash image
Rename armsrc/fpga.c to armsrc/fpgaloader.c (since there is now a new fpga.o, created from fpga.bit)
Remove fpgaimg.c from subversion, add fpga.bit
Instead of creating fpgaimage.elf and osimage.elf separately, now create a joined fullimage.elf 
  first (obsoleting ldscript-full), then extract only the fpga and os sections with objcopy
  (This creates unspecific warnings about an empty segment, need to investigate)
Implement a rudimentary .bit parser in the firmware, use that to locate the bitstream in the new
  fpgaimage (which is just a plain copy of the fpga.bit file) and send it to the FPGA
  The code will check the format that's in flash and fall back to the legacy format
2009-08-27 23:29:49 +00:00
henryk@ploetzli.ch 391a974f53 (Our Windows ARM toolchain really likes its glue sections) 2009-08-27 16:12:00 +00:00
henryk@ploetzli.ch 2bfed17db2 Add a common linker script with the memory map for the complete project
Use the correct physical addresses in the memory map, and instead translate the addresses during postprocessing with objcopy
2009-08-27 16:07:35 +00:00
henryk@ploetzli.ch 8652988d62 Merge linker scripts in bootrom to have a single linker script for the bootloader proper (previously known as bootrom-merged.s19)
Remove the now unnecessary files (merge-srec.pl, ldscript-ram-jtag)
Note that this drops the dependency on perl for bootrom build, so end-users who don't touch the FPGA bitstream will not need perl anymore
2009-08-27 04:25:34 +00:00
henryk@ploetzli.ch 0fc0fca583 Move most rules to Makefile.common
Add automatic dependency generation
Compile ISO14443 files in ARM mode, as was the case with the Linux Makefile before
2009-08-26 17:34:19 +00:00
henryk@ploetzli.ch 7e931bbd32 Consolidate Linux/Windows Makefiles into one, see http://www.proxmark.org/forum/topic/312/consolidating-makefile/
+ Needs GNU make for Windows, a new release of the Windows development environment will follow
 + Is based on the Windows Makefile, so will build everything in Thumb mode, doesn't have flash commands (yet)
2009-08-26 11:17:05 +00:00
adam@algroup.co.uk 5435eb0ca2 switch off reader field after hi14areader command 2009-08-24 12:20:54 +00:00
adam@algroup.co.uk 093cbaf63e fix Mifare AUTH for hi14areader command 2009-08-24 12:09:43 +00:00
henryk@ploetzli.ch bea2a8660e Add pretty field strength lights for ListenReaderField() also in LF mode. 2009-08-19 23:35:35 +00:00
skamkar 50722269b6 detect usb or no usb for standalone mode [ryan] 2009-08-08 07:42:51 +00:00
d18c7db 7381e8f2f2 Added tiread command to demod TI tags on the PM3 2009-08-06 12:53:06 +00:00
adam@algroup.co.uk 890bf4be90 [henryk] memory map for linux build 2009-07-29 16:03:16 +00:00
d18c7db 0422e2a471 Reduced the size of BigBuf to make more room for stack/vars 2009-07-29 13:37:09 +00:00
d18c7db 9bea179a71 added tiwrite command, split LF code from appmain into lfops.c 2009-07-25 11:47:43 +00:00
d18c7db 0c2ed92d87 Further additions to tidemod to differentiate between ro and rw tags and check crc validity. 2009-07-22 11:39:39 +00:00
adam@algroup.co.uk ebd7aaf9e7 [rleroy] add signal strength meter to 'detectreader' command (HF only) 2009-07-21 11:15:32 +00:00
d18c7db 8e7a6ce409 This version code now reads a TI tag properly. 2009-07-20 10:36:33 +00:00
d18c7db 67853904cc Some new commands (threshold and fskdemod) that act on the graph window 2009-07-19 11:00:24 +00:00
d18c7db c701d2c2fa Initial attempt at TI tag reading. 2009-07-19 04:37:07 +00:00
d18c7db 17465c9edd New mode define for FPGA 2009-07-19 03:58:02 +00:00
d18c7db 72acba7884 Added FPGA passthrough mode for TI tags 2009-07-19 03:51:06 +00:00
d18c7db 5e6a0b2369 Tidy up of SpinDelay 2009-07-19 03:47:01 +00:00
d18c7db f7c64b570c minor changes to iso15693.c to get rid off all the compile warnings 2009-07-19 00:25:19 +00:00
adam@algroup.co.uk 693f7cf770 make button detection more reliable in standalone mode and add exit command 2009-07-13 12:14:50 +00:00
d18c7db e7aee94e6a Merged sweeplf into tune command 2009-07-13 11:20:29 +00:00
skamkar 1dff8c42f5 fix debug printing function, add readmem function 2009-07-13 08:22:24 +00:00
skamkar 955fc5e2f8 Added stand-alone mode (no PC) with HID reading and cloning, moved helper functions to util.c 2009-07-13 04:54:37 +00:00
adam@algroup.co.uk 1dd2335295 compile clean and flasher targets 2009-07-12 10:02:57 +00:00
adam@algroup.co.uk 6bd86cb24a confirm function has exited on button press 2009-07-10 15:40:24 +00:00
adam@algroup.co.uk 38b65694d6 'sweeplf' tells us antenna's resonant frequency 2009-07-08 02:15:22 +00:00
adam@algroup.co.uk 7f3480429b add 'detectreader' command - listen for external reader fields 2009-07-07 17:19:42 +00:00
adam@algroup.co.uk 846225d575 #defines for ADC channels so we can see what's what 2009-07-06 16:40:03 +00:00
adam@algroup.co.uk 959baa89f7 send LF commands to TAG (locomread) 2009-07-04 16:45:17 +00:00
adam@algroup.co.uk f23e056d95 added 'buffclear' - when you absolutely positivley must clear every bit in the room 2009-07-03 10:17:52 +00:00
skamkar e6b13a5718 Don't depend on local path/lib settings for easier compilation 2009-07-02 01:29:48 +00:00
adam@algroup.co.uk 16e590fd2b fix loader memory mapping 2009-06-29 13:26:35 +00:00
adam@algroup.co.uk bb06be43b7 update arm toolchain installer for linux and make it a little more user friendly
use ARMLIB environment variable so you don't need to edit Makefile.linux after updates
2009-06-28 21:31:35 +00:00
edouard@lafargue.name d722c4ce78 - Restored the 'reset' command
- Linux client: detects offline mode and blocks commands which need a connected Proxmark3 (still do to on Windows)
2009-04-27 19:56:43 +00:00
edouard@lafargue.name 0e25ae1102 Rationalized LED usage in 14443-B: LED D shows RF Field OK,
and LED A, B and C respectively show:
- Receiving from reader
- Transmitting to tag/reader
- Receiving from tag

Also, updated the snoop function to make full use of the DMA buffer, which removes (in my case) all the 'blew DMA buffer' issues.

Last, moved the compilation of iso1443.c to ARM mode (not thumb) to make it faster on my Linux gcc 4.3 version, otherwise the 'blew DMA buffer' issue was systematic.

Also: restored the "indalademod" command which had mysteriously disappeared from the prox.exe (proxmark3) client!
2009-04-26 14:26:06 +00:00
edouard@lafargue.name aa4d9d9b73 - Added new Makefile.linux in bootrom directory
- Cleaned up Makefile.linux in armsrc directory
- Added Linux toolchain build script in tools directory
- Made LCD support optional (disabled by default) in armsrc
- Small formatting changes
2009-04-25 21:19:59 +00:00
edouard@lafargue.name b1d0de0a08 Added a gnu make compatible Makefile to armsrc for compiling on Linux 2009-04-21 17:24:42 +00:00
d18c7db 1c38843b3f Updated logic in lo_read.v so it's much tidier now, better timing.
Commented source and recompiled FPGA to new fpgaimg.c
2009-04-16 23:09:21 +00:00
edouard@lafargue.name 1a093c19b5 Added UID reading to SRI512, and reordered the output to reflect the
MSB-LSB alignment of the data. Routine should now be OK (including CRC...)
2009-04-16 09:30:11 +00:00
edouard@lafargue.name fb25b48308 Added a new function to read ISO14443-B ST Microelectronics SRI512 memory tags.
I have a problem with CRC though: sometimes it works, sometimes not, I have no
clue why, I must be doing something wrong with the CRC calculation routine...
2009-04-16 08:37:24 +00:00
edouard@lafargue.name 30f2a7d38f Added LF frequency adjustments from d18c7db, cleaned up code,
typo fixes in iso14443a code, added the missing "tools" directory,
added initial elements for online/offline detection for commands.
2009-04-15 08:09:06 +00:00
edouard@lafargue.name 6658905f18 Initial commit for the firmware. Used the 20090306_ela version as baseline.
It is identical to the popular 20081211, with the doob addition (20090301), a
linux client, and two additional commands for LF analysis. Let me know if
you find issues here!
2009-04-09 06:43:20 +00:00