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();
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)
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
*/
/* 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 */
}