Commit graph

131 commits

Author SHA1 Message Date
marcansoft
24b182d01b Remove 512k support, fix flash waitstates
512k chip support isn't complete anyway and the incorrect clock would've
ended up destroying Flash anyway. The 256k waitstates were set to 0,
which is outside the spec. Set them to 1, which is allowed.
2010-03-03 13:33:24 +00:00
d18c7db
86c35934fc Corrected erroneous bit masking 2010-02-28 05:30:26 +00:00
marcansoft
9af4835863 Add KEEP() to version information section
Prevents it from being garbage collected
2010-02-26 23:29:22 +00:00
marcansoft
7f7e715756 Add explicit PHDRs to bootrom to properly separate data and bss 2010-02-26 21:40:27 +00:00
marcansoft
86d3195518 Bootloader cleanup (UNTESTED!)
- Clean up bootloader asm
- Remove fromflash.c - it's not worth doing in C, do it in ASM
- Clean up linker script
- Force use of symbol inside bootphase2 (otherwise linker
  garbage-collects it)
- Link bootloader with gcc instead of ld
2010-02-26 15:14:47 +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
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
henryk@ploetzli.ch
4fdefea801 Automatically enter bootrom when OS image doesn't appear to be proper 2010-01-16 06:10:04 +00:00
henryk@ploetzli.ch
4ab6281664 Make the bootrom correctly nack in case of flash write error (e.g. due to lock bits) 2010-01-01 14:56:25 +00:00
bushing
1dea88f976 fix some ARM build fail 2009-12-22 12:48:33 +00:00
d18c7db
6949aca9fa Pushed standard AT91 defines into main code 2009-09-29 12:13:41 +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
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
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
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
7af790aa03 Jump to the correct physical address in Flash. (The comment was wrong, it never used RAM) 2009-08-28 00:36:02 +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
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
fb6e5aa863 The older gnuarm in the windows toolchain seems to need the glue_7t section 2009-08-27 04:46:31 +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
d18c7db
0422e2a471 Reduced the size of BigBuf to make more room for stack/vars 2009-07-29 13:37:09 +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
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