- several small fixes (thanks to Magnus Lundin and Spencer Oliver)
authordrath <drath@b42882b7-edfa-0310-969c-e2dbd0fdcd60>
Mon, 23 Oct 2006 14:02:34 +0000 (14:02 +0000)
committerdrath <drath@b42882b7-edfa-0310-969c-e2dbd0fdcd60>
Mon, 23 Oct 2006 14:02:34 +0000 (14:02 +0000)
- added support for using Luminary Micro development board 'evb_lm3s811' as a JTAG interface (thanks to Magnus Lundin)

git-svn-id: svn://svn.berlios.de/openocd/trunk@106 b42882b7-edfa-0310-969c-e2dbd0fdcd60

src/flash/str9x.c
src/jtag/ft2232.c
src/jtag/jtag.c
src/target/arm7_9_common.c
src/target/arm7tdmi.c

index 054f5d0a886c1cd1dcab406922be32abf45083fc..c07bc757f1814a131c00c66cad2cf36511c67593 100644 (file)
@@ -107,7 +107,7 @@ int str9x_build_block_list(struct flash_bank_s *bank)
                        exit(-1);
        }
        
-       num_sectors = b0_sectors + 2;
+       num_sectors = b0_sectors + 4;
        
        bank->num_sectors = num_sectors;
        bank->sectors = malloc(sizeof(flash_sector_t) * num_sectors);
@@ -510,7 +510,7 @@ int str9x_write(struct flash_bank_s *bank, u8 *buffer, u32 offset, u32 count)
 
        while (words_remaining > 0)
        {
-               bank_adr = address & 0x03;
+               bank_adr = address & ~0x03;
                
                /* write data command */
                target_write_u16(target, bank_adr, 0x40);
@@ -552,7 +552,7 @@ int str9x_write(struct flash_bank_s *bank, u8 *buffer, u32 offset, u32 count)
                        bytes_written++;
                }
                
-               bank_adr = address & 0x03;
+               bank_adr = address & ~0x03;
                
                /* write data comamnd */
                target_write_u16(target, bank_adr, 0x40);
index 06b419a06cde8fa7898ebbba1af3218fae035ffa..e681b3e5ad843d6294ea95ffeb7a7b2403d20e65 100644 (file)
@@ -109,6 +109,7 @@ ft2232_layout_t ft2232_layouts[] =
        {"jtagkey", jtagkey_init, jtagkey_reset, NULL},
        {"jtagkey_prototype_v1", jtagkey_init, jtagkey_reset, NULL},
        {"signalyzer", usbjtag_init, usbjtag_reset, NULL},
+       {"evb_lm3s811", usbjtag_init, usbjtag_reset, NULL},
        {"olimex-jtag", olimex_jtag_init, olimex_jtag_reset, olimex_jtag_blink},
        {"m5960", m5960_init, m5960_reset, NULL},
        {NULL, NULL, NULL},
@@ -1169,6 +1170,15 @@ int usbjtag_init(void)
                nSRST = 0x20;
                nSRSTnOE = 0x20;
        }
+       else if (strcmp(ft2232_layout, "evb_lm3s811") == 0)
+       {
+               nTRST = 0x0;
+               nTRSTnOE = 0x00;
+               nSRST = 0x20;
+               nSRSTnOE = 0x20;
+               low_output = 0x88;
+               low_direction = 0x8b;
+       }
        else
        {
                ERROR("BUG: usbjtag_init called for unknown layout '%s'", ft2232_layout);
index 5ae7462163f4b5c2c8d2b7575b6439fcba032954..4ba227c09b39b1d3480625609ac66e7c6b4ed1e4 100644 (file)
@@ -1028,7 +1028,6 @@ int jtag_read_buffer(u8 *buffer, scan_command_t *cmd)
 
                        if (cmd->fields[i].in_check_value)
                        {
-                               u8 *captured = buf_set_buf(buffer, bit_count, malloc(CEIL(num_bits, 8)), 0, num_bits);
                                if ((cmd->fields[i].in_check_mask && buf_cmp_mask(captured, cmd->fields[i].in_check_value, cmd->fields[i].in_check_mask, num_bits))
                                        || (!cmd->fields[i].in_check_mask && buf_cmp(captured, cmd->fields[i].in_check_mask, num_bits)))
                                {
index b793ba51531a1b359b48bb58edcc178b4487b921..c298c904e1d222e09957a1a280f8c987ff091a1b 100644 (file)
@@ -281,15 +281,15 @@ int arm7_9_add_breakpoint(struct target_s *target, u32 address, u32 length, enum
                return ERROR_TARGET_RESOURCE_NOT_AVAILABLE;
        }
        
-       if (type == BKPT_HARD)
-               arm7_9->wp_available--;
-       
        if ((length != 2) && (length != 4))
        {
                INFO("only breakpoints of two (Thumb) or four (ARM) bytes length supported");
                return ERROR_TARGET_RESOURCE_NOT_AVAILABLE;
        }
        
+       if (type == BKPT_HARD)
+               arm7_9->wp_available--;
+       
        return ERROR_OK;
 }
 
@@ -1448,7 +1448,7 @@ int arm7_9_step(struct target_s *target, int current, u32 address, int handle_br
 {
        armv4_5_common_t *armv4_5 = target->arch_info;
        arm7_9_common_t *arm7_9 = armv4_5->arch_info;
-       breakpoint_t *breakpoint = target->breakpoints;
+       breakpoint_t *breakpoint = NULL;
 
        if (target->state != TARGET_HALTED)
        {
index 115952446a8c9059d1d0b09e0414209db4edd10d..a1fde037e101d08ba88cd8176941dc743c4e9714 100644 (file)
@@ -869,7 +869,7 @@ int arm7tdmi_target_command(struct command_context_s *cmd_ctx, char *cmd, char *
                exit(-1);
        }
        
-       chain_pos = strtoul(args[2], NULL, 0);
+       chain_pos = strtoul(args[3], NULL, 0);
        
        if (argc >= 5)
                variant = args[4];

Linking to existing account procedure

If you already have an account and want to add another login method you MUST first sign in with your existing account and then change URL to read https://review.openocd.org/login/?link to get to this page again but this time it'll work for linking. Thank you.

SSH host keys fingerprints

1024 SHA256:YKx8b7u5ZWdcbp7/4AeXNaqElP49m6QrwfXaqQGJAOk gerrit-code-review@openocd.zylin.com (DSA)
384 SHA256:jHIbSQa4REvwCFG4cq5LBlBLxmxSqelQPem/EXIrxjk gerrit-code-review@openocd.org (ECDSA)
521 SHA256:UAOPYkU9Fjtcao0Ul/Rrlnj/OsQvt+pgdYSZ4jOYdgs gerrit-code-review@openocd.org (ECDSA)
256 SHA256:A13M5QlnozFOvTllybRZH6vm7iSt0XLxbA48yfc2yfY gerrit-code-review@openocd.org (ECDSA)
256 SHA256:spYMBqEYoAOtK7yZBrcwE8ZpYt6b68Cfh9yEVetvbXg gerrit-code-review@openocd.org (ED25519)
+--[ED25519 256]--+
|=..              |
|+o..   .         |
|*.o   . .        |
|+B . . .         |
|Bo. = o S        |
|Oo.+ + =         |
|oB=.* = . o      |
| =+=.+   + E     |
|. .=o   . o      |
+----[SHA256]-----+
2048 SHA256:0Onrb7/PHjpo6iVZ7xQX2riKN83FJ3KGU0TvI0TaFG4 gerrit-code-review@openocd.zylin.com (RSA)