summaryrefslogtreecommitdiff
path: root/src/flash/at91sam7.c
diff options
context:
space:
mode:
authordrath <drath@b42882b7-edfa-0310-969c-e2dbd0fdcd60>2007-01-09 17:19:41 +0000
committerdrath <drath@b42882b7-edfa-0310-969c-e2dbd0fdcd60>2007-01-09 17:19:41 +0000
commita4f2e1eaaca40dbcc7916755efb094cacafbb65c (patch)
treee9ae7ed6e2d83e85810c1925d086645f1f9dea98 /src/flash/at91sam7.c
parente8947e0d13ef40d6f1fca606edc78d2b82ba8476 (diff)
downloadopenocd+libswd-a4f2e1eaaca40dbcc7916755efb094cacafbb65c.tar.gz
openocd+libswd-a4f2e1eaaca40dbcc7916755efb094cacafbb65c.tar.bz2
openocd+libswd-a4f2e1eaaca40dbcc7916755efb094cacafbb65c.tar.xz
openocd+libswd-a4f2e1eaaca40dbcc7916755efb094cacafbb65c.zip
- disabled FT2232 debug output (that code should be fairly stable)
- fixed bug in jtag.c where JTAG command type was wrong for PATHMOVE commands - added lattice ISP cable (experimental) - properly initialize parallel port (clear tristate bit) - fixed jtag/Makefile.am that failed with some versions of autotools - print error number if read() in gdbserver.c failed on Windows - fixed handling of opcodes with bits 27-25 b011 (comment was correct, code had a bug) - added support for AT91SAM7SE internal flash git-svn-id: svn://svn.berlios.de/openocd/trunk@122 b42882b7-edfa-0310-969c-e2dbd0fdcd60
Diffstat (limited to 'src/flash/at91sam7.c')
-rw-r--r--src/flash/at91sam7.c34
1 files changed, 34 insertions, 0 deletions
diff --git a/src/flash/at91sam7.c b/src/flash/at91sam7.c
index 84916829..dc9c2d72 100644
--- a/src/flash/at91sam7.c
+++ b/src/flash/at91sam7.c
@@ -405,6 +405,40 @@ int at91sam7_read_part_info(struct flash_bank_s *bank)
return ERROR_OK;
}
+ if (at91sam7_info->cidr_arch == 0x72 )
+ {
+ at91sam7_info->num_nvmbits = 2;
+ at91sam7_info->nvmbits = (status>>8)&0x03;
+ bank->base = 0x100000;
+ bank->bus_width = 4;
+ if (bank->size==0x80000) /* AT91SAM7SE512 */
+ {
+ at91sam7_info->target_name = "AT91SAM7SE512";
+ at91sam7_info->num_lockbits = 32;
+ at91sam7_info->pagesize = 256;
+ at91sam7_info->pages_in_lockregion = 64;
+ at91sam7_info->num_pages = 32*64;
+ }
+ if (bank->size==0x40000)
+ {
+ at91sam7_info->target_name = "AT91SAM7SE256";
+ at91sam7_info->num_lockbits = 16;
+ at91sam7_info->pagesize = 256;
+ at91sam7_info->pages_in_lockregion = 64;
+ at91sam7_info->num_pages = 16*64;
+ }
+ if (bank->size==0x08000)
+ {
+ at91sam7_info->target_name = "AT91SAM7SE32";
+ at91sam7_info->num_lockbits = 8;
+ at91sam7_info->pagesize = 128;
+ at91sam7_info->pages_in_lockregion = 32;
+ at91sam7_info->num_pages = 8*32;
+ }
+
+ return ERROR_OK;
+ }
+
if (at91sam7_info->cidr_arch == 0x75 )
{
at91sam7_info->num_nvmbits = 3;