diff --git a/bootrom/bootrom.c b/bootrom/bootrom.c index 44bfaba6c..26231b015 100644 --- a/bootrom/bootrom.c +++ b/bootrom/bootrom.c @@ -275,7 +275,11 @@ void BootROM(void) AT91C_BASE_EFC0->EFC_FMR = AT91C_MC_FWS_1FWS | MC_FLASH_MODE_MASTER_CLK_IN_MHZ(48); - +#ifdef HAS_512_FLASH + AT91C_BASE_EFC1->EFC_FMR = + AT91C_MC_FWS_1FWS | + MC_FLASH_MODE_MASTER_CLK_IN_MHZ(48); +#endif // Initialize all system clocks ConfigClocks(); diff --git a/client/flash.c b/client/flash.c index 576f0d27a..b0ae46b3b 100644 --- a/client/flash.c +++ b/client/flash.c @@ -28,7 +28,13 @@ int OpenProxmark(size_t i); unsigned int current_command = CMD_UNKNOWN; #define FLASH_START 0x100000 -#define FLASH_SIZE (256*1024) + +#ifdef HAS_512_FLASH +# define FLASH_SIZE (512*1024) +#else +# define FLASH_SIZE (256*1024) +#endif + #define FLASH_END (FLASH_START + FLASH_SIZE) #define BOOTLOADER_SIZE 0x2000 #define BOOTLOADER_END (FLASH_START + BOOTLOADER_SIZE) diff --git a/common/Makefile.common b/common/Makefile.common index f5640bc9c..477cd6a34 100644 --- a/common/Makefile.common +++ b/common/Makefile.common @@ -59,6 +59,7 @@ DETECTED_OS=Windows endif +APP_CFLAGS += -DHAS_512_FLASH # Also search prerequisites in the common directory (for usb.c), the fpga directory (for fpga.bit), and the zlib directory VPATH = . ../common ../fpga ../zlib diff --git a/common/ldscript.common b/common/ldscript.common index ea57ec249..c0134ffd0 100644 --- a/common/ldscript.common +++ b/common/ldscript.common @@ -10,11 +10,12 @@ ms of the GNU GPL, version 2 or, */ /* AT91SAM7S256 has 256k Flash and 64k RAM */ +/* AT91SAM7S512 has 512k Flash and 64k RAM */ MEMORY { bootphase1 : ORIGIN = 0x00100000, LENGTH = 0x200 /* Phase 1 bootloader: Copies real bootloader to RAM */ bootphase2 : ORIGIN = 0x00100200, LENGTH = 0x2000 - 0x200 /* Main bootloader code, stored in Flash, executed from RAM */ - osimage : ORIGIN = 0x00102000, LENGTH = 256K - 0x2000 /* Place where the main OS will end up */ + osimage : ORIGIN = 0x00102000, LENGTH = 512K - 0x2000 /* Place where the main OS will end up */ ram : ORIGIN = 0x00200000, LENGTH = 64K - 0x20 /* RAM, minus small common area */ commonarea : ORIGIN = 0x00200000 + 64K - 0x20, LENGTH = 0x20 /* Communication between bootloader and main OS */ }