You can subscribe to this list here.
| 2008 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(75) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2009 |
Jan
(70) |
Feb
(20) |
Mar
(52) |
Apr
(149) |
May
(387) |
Jun
(466) |
Jul
(133) |
Aug
(87) |
Sep
(122) |
Oct
(140) |
Nov
(185) |
Dec
(105) |
| 2010 |
Jan
(85) |
Feb
(45) |
Mar
(75) |
Apr
(17) |
May
(41) |
Jun
(52) |
Jul
(33) |
Aug
(29) |
Sep
(36) |
Oct
(15) |
Nov
(26) |
Dec
(34) |
| 2011 |
Jan
(26) |
Feb
(25) |
Mar
(26) |
Apr
(29) |
May
(20) |
Jun
(27) |
Jul
(15) |
Aug
(32) |
Sep
(13) |
Oct
(64) |
Nov
(60) |
Dec
(10) |
| 2012 |
Jan
(64) |
Feb
(63) |
Mar
(39) |
Apr
(43) |
May
(54) |
Jun
(11) |
Jul
(30) |
Aug
(45) |
Sep
(11) |
Oct
(70) |
Nov
(24) |
Dec
(23) |
| 2013 |
Jan
(17) |
Feb
(8) |
Mar
(35) |
Apr
(40) |
May
(20) |
Jun
(24) |
Jul
(36) |
Aug
(25) |
Sep
(42) |
Oct
(40) |
Nov
(9) |
Dec
(21) |
| 2014 |
Jan
(29) |
Feb
(24) |
Mar
(60) |
Apr
(22) |
May
(22) |
Jun
(46) |
Jul
(11) |
Aug
(23) |
Sep
(26) |
Oct
(10) |
Nov
(14) |
Dec
(2) |
| 2015 |
Jan
(28) |
Feb
(47) |
Mar
(33) |
Apr
(58) |
May
(5) |
Jun
(1) |
Jul
|
Aug
(8) |
Sep
(12) |
Oct
(25) |
Nov
(58) |
Dec
(21) |
| 2016 |
Jan
(12) |
Feb
(40) |
Mar
(2) |
Apr
(1) |
May
(67) |
Jun
(2) |
Jul
(5) |
Aug
(36) |
Sep
|
Oct
(24) |
Nov
(17) |
Dec
(50) |
| 2017 |
Jan
(14) |
Feb
(16) |
Mar
(2) |
Apr
(35) |
May
(14) |
Jun
(16) |
Jul
(3) |
Aug
(3) |
Sep
|
Oct
(19) |
Nov
|
Dec
(16) |
| 2018 |
Jan
(55) |
Feb
(11) |
Mar
(34) |
Apr
(14) |
May
(4) |
Jun
(20) |
Jul
(39) |
Aug
(16) |
Sep
(17) |
Oct
(16) |
Nov
(20) |
Dec
(30) |
| 2019 |
Jan
(29) |
Feb
(24) |
Mar
(37) |
Apr
(26) |
May
(19) |
Jun
(21) |
Jul
(2) |
Aug
(3) |
Sep
(9) |
Oct
(12) |
Nov
(12) |
Dec
(12) |
| 2020 |
Jan
(47) |
Feb
(36) |
Mar
(54) |
Apr
(44) |
May
(37) |
Jun
(19) |
Jul
(32) |
Aug
(13) |
Sep
(16) |
Oct
(24) |
Nov
(32) |
Dec
(11) |
| 2021 |
Jan
(14) |
Feb
(5) |
Mar
(40) |
Apr
(32) |
May
(42) |
Jun
(31) |
Jul
(29) |
Aug
(47) |
Sep
(38) |
Oct
(17) |
Nov
(74) |
Dec
(33) |
| 2022 |
Jan
(11) |
Feb
(15) |
Mar
(40) |
Apr
(21) |
May
(39) |
Jun
(44) |
Jul
(19) |
Aug
(46) |
Sep
(79) |
Oct
(35) |
Nov
(21) |
Dec
(15) |
| 2023 |
Jan
(56) |
Feb
(13) |
Mar
(43) |
Apr
(28) |
May
(60) |
Jun
(15) |
Jul
(29) |
Aug
(28) |
Sep
(32) |
Oct
(21) |
Nov
(42) |
Dec
(39) |
| 2024 |
Jan
(35) |
Feb
(17) |
Mar
(28) |
Apr
(7) |
May
(14) |
Jun
(35) |
Jul
(30) |
Aug
(35) |
Sep
(30) |
Oct
(28) |
Nov
(38) |
Dec
(18) |
| 2025 |
Jan
(21) |
Feb
(28) |
Mar
(36) |
Apr
(35) |
May
(34) |
Jun
(58) |
Jul
(9) |
Aug
(54) |
Sep
(47) |
Oct
(15) |
Nov
(47) |
Dec
|
|
From: <oh...@ma...> - 2009-04-21 07:33:54
|
Author: oharboe
Date: 2009-04-21 07:33:47 +0200 (Tue, 21 Apr 2009)
New Revision: 1481
Modified:
trunk/src/helper/options.c
trunk/src/jtag/arm-jtag-ew.c
trunk/src/jtag/jlink.c
trunk/src/jtag/vsllink.c
trunk/src/target/target.c
trunk/src/xsvf/xsvf.c
Log:
Zach Welch <zw...@su...> fix -Wformat-security warnings (1 of 4)
Modified: trunk/src/helper/options.c
===================================================================
--- trunk/src/helper/options.c 2009-04-21 05:31:18 UTC (rev 1480)
+++ trunk/src/helper/options.c 2009-04-21 05:33:47 UTC (rev 1481)
@@ -54,7 +54,7 @@
int configuration_output_handler(struct command_context_s *context, const char* line)
{
- LOG_USER_N(line);
+ LOG_USER_N("%s", line);
return ERROR_OK;
}
Modified: trunk/src/jtag/arm-jtag-ew.c
===================================================================
--- trunk/src/jtag/arm-jtag-ew.c 2009-04-21 05:31:18 UTC (rev 1480)
+++ trunk/src/jtag/arm-jtag-ew.c 2009-04-21 05:33:47 UTC (rev 1481)
@@ -896,7 +896,7 @@
snprintf(s, 4, " %02x", buffer[j]);
strcat(line, s);
}
- LOG_DEBUG(line);
+ LOG_DEBUG("%s", line);
}
}
#endif
Modified: trunk/src/jtag/jlink.c
===================================================================
--- trunk/src/jtag/jlink.c 2009-04-21 05:31:18 UTC (rev 1480)
+++ trunk/src/jtag/jlink.c 2009-04-21 05:33:47 UTC (rev 1481)
@@ -537,7 +537,7 @@
if (result == len)
{
usb_in_buffer[result] = 0;
- LOG_INFO((char *)usb_in_buffer);
+ LOG_INFO("%s", (char *)usb_in_buffer);
return ERROR_OK;
}
}
Modified: trunk/src/jtag/vsllink.c
===================================================================
--- trunk/src/jtag/vsllink.c 2009-04-21 05:31:18 UTC (rev 1480)
+++ trunk/src/jtag/vsllink.c 2009-04-21 05:33:47 UTC (rev 1481)
@@ -470,7 +470,7 @@
vsllink_usb_in_buffer[result] = 0;
VSLLINK_BufferSize = vsllink_usb_in_buffer[0] + (vsllink_usb_in_buffer[1] << 8);
strncpy(version_str, (char *)vsllink_usb_in_buffer + 2, sizeof(version_str));
- LOG_INFO(version_str);
+ LOG_INFO("%s", version_str);
// free the pre-alloc memroy
free(vsllink_usb_in_buffer);
@@ -1449,7 +1449,7 @@
snprintf(s, 4, " %02x", buffer[j]);
strcat(line, s);
}
- LOG_DEBUG(line);
+ LOG_DEBUG("%s", line);
}
}
#endif // _DEBUG_USB_COMMS_
Modified: trunk/src/target/target.c
===================================================================
--- trunk/src/target/target.c 2009-04-21 05:31:18 UTC (rev 1480)
+++ trunk/src/target/target.c 2009-04-21 05:33:47 UTC (rev 1481)
@@ -3961,7 +3961,7 @@
};
LOG_DEBUG("Target command params:");
- LOG_DEBUG(Jim_Debug_ArgvString( interp, argc, argv) );
+ LOG_DEBUG("%s", Jim_Debug_ArgvString(interp, argc, argv));
cmd_ctx = Jim_GetAssocData( interp, "context" );
Modified: trunk/src/xsvf/xsvf.c
===================================================================
--- trunk/src/xsvf/xsvf.c 2009-04-21 05:31:18 UTC (rev 1480)
+++ trunk/src/xsvf/xsvf.c 2009-04-21 05:33:47 UTC (rev 1481)
@@ -761,7 +761,7 @@
comment[sizeof(comment)-1] = 0; /* regardless, terminate */
if (verbose)
- LOG_USER(comment);
+ LOG_USER("%s", comment);
}
break;
|
|
From: <oh...@ma...> - 2009-04-21 07:31:25
|
Author: oharboe
Date: 2009-04-21 07:31:18 +0200 (Tue, 21 Apr 2009)
New Revision: 1480
Modified:
trunk/AUTHORS
trunk/src/flash/cfi.c
trunk/src/flash/cfi.h
trunk/src/flash/non_cfi.c
trunk/src/flash/non_cfi.h
Log:
Michael Schwingen <rin...@di...> add non-CFI SST flashs
Modified: trunk/AUTHORS
===================================================================
--- trunk/AUTHORS 2009-04-21 05:29:23 UTC (rev 1479)
+++ trunk/AUTHORS 2009-04-21 05:31:18 UTC (rev 1480)
@@ -5,3 +5,4 @@
Carsten Schlote <sc...@va...>
Øyvind Harboe <oyv...@zy...>
Duane Ellis <op...@du...>
+Michael Schwingen <mi...@sc...>
Modified: trunk/src/flash/cfi.c
===================================================================
--- trunk/src/flash/cfi.c 2009-04-21 05:29:23 UTC (rev 1479)
+++ trunk/src/flash/cfi.c 2009-04-21 05:31:18 UTC (rev 1480)
@@ -296,13 +296,14 @@
int cfi_spansion_wait_status_busy(flash_bank_t *bank, int timeout)
{
u8 status, oldstatus;
+ cfi_flash_bank_t *cfi_info = bank->driver_priv;
oldstatus = cfi_get_u8(bank, 0, 0x0);
do {
status = cfi_get_u8(bank, 0, 0x0);
if ((status ^ oldstatus) & 0x40) {
- if (status & 0x20) {
+ if (status & cfi_info->status_poll_mask & 0x20) {
oldstatus = cfi_get_u8(bank, 0, 0x0);
status = cfi_get_u8(bank, 0, 0x0);
if ((status ^ oldstatus) & 0x40) {
@@ -313,7 +314,7 @@
return(ERROR_OK);
}
}
- } else {
+ } else { /* no toggle: finished, OK */
LOG_DEBUG("status: 0x%x", status);
return(ERROR_OK);
}
@@ -2283,6 +2284,7 @@
break;
/* AMD/Spansion, Atmel, ... command set */
case 0x0002:
+ cfi_info->status_poll_mask = CFI_STATUS_POLL_MASK_DQ5_DQ6_DQ7; /* default for all CFI flashs */
cfi_read_0002_pri_ext(bank);
break;
default:
@@ -2303,7 +2305,7 @@
{
return retval;
}
- }
+ } /* end CFI case */
/* apply fixups depending on the primary command set */
switch(cfi_info->pri_id)
Modified: trunk/src/flash/cfi.h
===================================================================
--- trunk/src/flash/cfi.h 2009-04-21 05:29:23 UTC (rev 1479)
+++ trunk/src/flash/cfi.h 2009-04-21 05:31:18 UTC (rev 1480)
@@ -23,11 +23,13 @@
#include "flash.h"
#include "target.h"
+#define CFI_STATUS_POLL_MASK_DQ5_DQ6_DQ7 0xE0 /* DQ5..DQ7 */
+#define CFI_STATUS_POLL_MASK_DQ6_DQ7 0xC0 /* DQ6..DQ7 */
+
typedef struct cfi_flash_bank_s
{
working_area_t *write_algorithm;
-
int x16_as_x8;
int jedec_probe;
int not_cfi;
@@ -58,6 +60,8 @@
u8 block_erase_timeout_max;
u8 chip_erase_timeout_max;
+ u8 status_poll_mask;
+
/* flash geometry */
u32 dev_size;
u16 interface_desc;
Modified: trunk/src/flash/non_cfi.c
===================================================================
--- trunk/src/flash/non_cfi.c 2009-04-21 05:29:23 UTC (rev 1479)
+++ trunk/src/flash/non_cfi.c 2009-04-21 05:31:18 UTC (rev 1480)
@@ -44,6 +44,7 @@
.dev_size = 64*KB,
.interface_desc = 0x0, /* x8 only device */
.max_buf_write_size = 0x0,
+ .status_poll_mask = CFI_STATUS_POLL_MASK_DQ5_DQ6_DQ7,
.num_erase_regions = 1,
.erase_region_info =
{
@@ -57,6 +58,7 @@
.dev_size = 128*KB,
.interface_desc = 0x0, /* x8 only device */
.max_buf_write_size = 0x0,
+ .status_poll_mask = CFI_STATUS_POLL_MASK_DQ5_DQ6_DQ7,
.num_erase_regions = 1,
.erase_region_info =
{
@@ -70,6 +72,7 @@
.dev_size = 256*KB,
.interface_desc = 0x0, /* x8 only device */
.max_buf_write_size = 0x0,
+ .status_poll_mask = CFI_STATUS_POLL_MASK_DQ5_DQ6_DQ7,
.num_erase_regions = 1,
.erase_region_info =
{
@@ -83,6 +86,7 @@
.dev_size = 512*KB,
.interface_desc = 0x0, /* x8 only device */
.max_buf_write_size = 0x0,
+ .status_poll_mask = CFI_STATUS_POLL_MASK_DQ5_DQ6_DQ7,
.num_erase_regions = 1,
.erase_region_info =
{
@@ -96,6 +100,7 @@
.dev_size = 512*KB,
.interface_desc = 0x2, /* x8 or x16 device */
.max_buf_write_size = 0x0,
+ .status_poll_mask = CFI_STATUS_POLL_MASK_DQ5_DQ6_DQ7,
.num_erase_regions = 1,
.erase_region_info =
{
@@ -109,6 +114,7 @@
.dev_size = 512*KB,
.interface_desc = 0x2, /* x8 or x16 device with nBYTE */
.max_buf_write_size = 0x0,
+ .status_poll_mask = CFI_STATUS_POLL_MASK_DQ5_DQ6_DQ7,
.num_erase_regions = 4,
.erase_region_info =
{
@@ -125,6 +131,7 @@
.dev_size = 512*KB,
.interface_desc = 0x2, /* x8 or x16 device with nBYTE */
.max_buf_write_size = 0x0,
+ .status_poll_mask = CFI_STATUS_POLL_MASK_DQ5_DQ6_DQ7,
.num_erase_regions = 4,
.erase_region_info =
{
@@ -134,13 +141,102 @@
ERASE_REGION( 1, 16*KB)
}
},
+
+ /* SST 39VF* do not support DQ5 status polling - this currently is
+ only supported by the host algorithm, not by the target code using
+ the work area. */
{
+ .mfr = CFI_MFR_SST,
+ .id = 0x2782, /* SST39xF160 */
+ .pri_id = 0x02,
+ .dev_size = 2*MB,
+ .interface_desc = 0x2, /* x8 or x16 device with nBYTE */
+ .max_buf_write_size = 0x0,
+ .status_poll_mask = CFI_STATUS_POLL_MASK_DQ6_DQ7,
+ .num_erase_regions = 1,
+ .erase_region_info =
+ {
+ ERASE_REGION(512, 4*KB)
+ }
+ },
+ {
+ .mfr = CFI_MFR_SST,
+ .id = 0x2783, /* SST39VF320 */
+ .pri_id = 0x02,
+ .dev_size = 4*MB,
+ .interface_desc = 0x2, /* x8 or x16 device with nBYTE */
+ .max_buf_write_size = 0x0,
+ .status_poll_mask = CFI_STATUS_POLL_MASK_DQ6_DQ7,
+ .num_erase_regions = 1,
+ .erase_region_info =
+ {
+ ERASE_REGION(1024, 4*KB)
+ }
+ },
+ {
+ .mfr = CFI_MFR_SST,
+ .id = 0x234b, /* SST39VF1601 */
+ .pri_id = 0x02,
+ .dev_size = 2*MB,
+ .interface_desc = 0x2, /* x8 or x16 device with nBYTE */
+ .max_buf_write_size = 0x0,
+ .status_poll_mask = CFI_STATUS_POLL_MASK_DQ6_DQ7,
+ .num_erase_regions = 1,
+ .erase_region_info =
+ {
+ ERASE_REGION(512, 4*KB)
+ }
+ },
+ {
+ .mfr = CFI_MFR_SST,
+ .id = 0x234a, /* SST39VF1602 */
+ .pri_id = 0x02,
+ .dev_size = 2*MB,
+ .interface_desc = 0x2, /* x8 or x16 device with nBYTE */
+ .max_buf_write_size = 0x0,
+ .status_poll_mask = CFI_STATUS_POLL_MASK_DQ6_DQ7,
+ .num_erase_regions = 1,
+ .erase_region_info =
+ {
+ ERASE_REGION(512, 4*KB)
+ }
+ },
+ {
+ .mfr = CFI_MFR_SST,
+ .id = 0x235b, /* SST39VF3201 */
+ .pri_id = 0x02,
+ .dev_size = 4*MB,
+ .interface_desc = 0x2, /* x8 or x16 device with nBYTE */
+ .max_buf_write_size = 0x0,
+ .status_poll_mask = CFI_STATUS_POLL_MASK_DQ6_DQ7,
+ .num_erase_regions = 1,
+ .erase_region_info =
+ {
+ ERASE_REGION(1024, 4*KB)
+ }
+ },
+ {
+ .mfr = CFI_MFR_SST,
+ .id = 0x235a, /* SST39VF3202 */
+ .pri_id = 0x02,
+ .dev_size = 4*MB,
+ .interface_desc = 0x2, /* x8 or x16 device with nBYTE */
+ .max_buf_write_size = 0x0,
+ .status_poll_mask = CFI_STATUS_POLL_MASK_DQ6_DQ7,
+ .num_erase_regions = 1,
+ .erase_region_info =
+ {
+ ERASE_REGION(1024, 4*KB)
+ }
+ },
+ {
.mfr = CFI_MFR_AMD,
.id = 0x22ab, /* AM29F400BB */
.pri_id = 0x02,
.dev_size = 512*KB,
.interface_desc = 0x2, /* x8 or x16 device with nBYTE */
.max_buf_write_size = 0x0,
+ .status_poll_mask = CFI_STATUS_POLL_MASK_DQ5_DQ6_DQ7,
.num_erase_regions = 4,
.erase_region_info =
{
@@ -157,6 +253,7 @@
.dev_size = 512*KB,
.interface_desc = 0x2, /* x8 or x16 device with nBYTE */
.max_buf_write_size = 0x0,
+ .status_poll_mask = CFI_STATUS_POLL_MASK_DQ5_DQ6_DQ7,
.num_erase_regions = 4,
.erase_region_info =
{
@@ -173,6 +270,7 @@
.dev_size = 1*MB,
.interface_desc = 0x2, /* x8 or x16 device with nBYTE */
.max_buf_write_size = 0x0,
+ .status_poll_mask = CFI_STATUS_POLL_MASK_DQ5_DQ6_DQ7,
.num_erase_regions = 4,
.erase_region_info =
{
@@ -189,6 +287,7 @@
.dev_size = 1*MB,
.interface_desc = 0x2,
.max_buf_write_size = 0x0,
+ .status_poll_mask = CFI_STATUS_POLL_MASK_DQ5_DQ6_DQ7,
.num_erase_regions = 4,
.erase_region_info =
{
@@ -205,6 +304,7 @@
.dev_size = 1*MB,
.interface_desc = 0x2, /* x8 or x16 device with nBYTE */
.max_buf_write_size = 0x0,
+ .status_poll_mask = CFI_STATUS_POLL_MASK_DQ5_DQ6_DQ7,
.num_erase_regions = 4,
.erase_region_info =
{
@@ -222,6 +322,7 @@
.dev_size = 2*MB,
.interface_desc = 0x2, /* x8 or x16 device with nBYTE */
.max_buf_write_size = 0x0,
+ .status_poll_mask = CFI_STATUS_POLL_MASK_DQ5_DQ6_DQ7,
.num_erase_regions = 4,
.erase_region_info =
{
@@ -238,6 +339,7 @@
.dev_size = 2*MB,
.interface_desc = 0x2, /* x8 or x16 device with nBYTE */
.max_buf_write_size = 0x0,
+ .status_poll_mask = CFI_STATUS_POLL_MASK_DQ5_DQ6_DQ7,
.num_erase_regions = 4,
.erase_region_info =
{
@@ -248,25 +350,13 @@
}
},
{
- .mfr = CFI_MFR_SST,
- .id = 0x2782, /* SST39xF160 */
- .pri_id = 0x02,
- .dev_size = 2*MB,
- .interface_desc = 0x2, /* x8 or x16 device with nBYTE */
- .max_buf_write_size = 0x0,
- .num_erase_regions = 1,
- .erase_region_info =
- {
- ERASE_REGION(512, 4*KB)
- }
- },
- {
.mfr = CFI_MFR_ATMEL,
.id = 0x00c0, /* Atmel 49BV1614 */
.pri_id = 0x02,
.dev_size = 2*MB,
.interface_desc = 0x2, /* x8 or x16 device with nBYTE */
.max_buf_write_size = 0x0,
+ .status_poll_mask = CFI_STATUS_POLL_MASK_DQ5_DQ6_DQ7,
.num_erase_regions = 3,
.erase_region_info =
{
@@ -282,6 +372,7 @@
.dev_size = 2*MB,
.interface_desc = 0x2, /* x8 or x16 device with nBYTE */
.max_buf_write_size = 0x0,
+ .status_poll_mask = CFI_STATUS_POLL_MASK_DQ5_DQ6_DQ7,
.num_erase_regions = 3,
.erase_region_info =
{
@@ -297,6 +388,7 @@
.dev_size = 1*MB,
.interface_desc = 0x2, /* x8 or x16 device with nBYTE */
.max_buf_write_size = 0x0,
+ .status_poll_mask = CFI_STATUS_POLL_MASK_DQ5_DQ6_DQ7,
.num_erase_regions = 4,
.erase_region_info =
{
@@ -358,6 +450,7 @@
cfi_info->interface_desc = non_cfi->interface_desc;
cfi_info->max_buf_write_size = non_cfi->max_buf_write_size;
+ cfi_info->status_poll_mask = non_cfi->status_poll_mask;
cfi_info->num_erase_regions = non_cfi->num_erase_regions;
cfi_info->erase_region_info = non_cfi->erase_region_info;
cfi_info->dev_size = non_cfi->dev_size;
Modified: trunk/src/flash/non_cfi.h
===================================================================
--- trunk/src/flash/non_cfi.h 2009-04-21 05:29:23 UTC (rev 1479)
+++ trunk/src/flash/non_cfi.h 2009-04-21 05:31:18 UTC (rev 1480)
@@ -32,6 +32,7 @@
u16 max_buf_write_size;
u8 num_erase_regions;
u32 erase_region_info[6];
+ u8 status_poll_mask;
} non_cfi_t;
extern non_cfi_t non_cfi_flashes[];
|
|
From: <oh...@ma...> - 2009-04-21 07:29:46
|
Author: oharboe
Date: 2009-04-21 07:29:23 +0200 (Tue, 21 Apr 2009)
New Revision: 1479
Modified:
trunk/src/jtag/amt_jtagaccel.c
trunk/src/jtag/arm-jtag-ew.c
trunk/src/jtag/at91rm9200.c
trunk/src/jtag/bitbang.c
trunk/src/jtag/bitq.c
trunk/src/jtag/dummy.c
trunk/src/jtag/ep93xx.c
trunk/src/jtag/ft2232.c
trunk/src/jtag/gw16012.c
trunk/src/jtag/jlink.c
trunk/src/jtag/jtag.c
trunk/src/jtag/parport.c
trunk/src/jtag/presto.c
trunk/src/jtag/usbprog.c
trunk/src/jtag/vsllink.c
Log:
Zach Welch <zw...@su...> use static keyword in jtag layer and drivers
Modified: trunk/src/jtag/amt_jtagaccel.c
===================================================================
--- trunk/src/jtag/amt_jtagaccel.c 2009-04-20 22:38:27 UTC (rev 1478)
+++ trunk/src/jtag/amt_jtagaccel.c 2009-04-21 05:29:23 UTC (rev 1479)
@@ -56,7 +56,7 @@
#include "log.h"
/* configuration */
-u16 amt_jtagaccel_port;
+static u16 amt_jtagaccel_port;
/* interface variables
*/
@@ -68,28 +68,33 @@
#if PARPORT_USE_PPDEV == 1
static int device_handle;
-int addr_mode = IEEE1284_MODE_EPP | IEEE1284_ADDR ;
-int data_mode = IEEE1284_MODE_EPP | IEEE1284_DATA ;
+
+static int addr_mode = IEEE1284_MODE_EPP | IEEE1284_ADDR ;
#define AMT_AW(val) do { ioctl(device_handle, PPSETMODE, &addr_mode); write(device_handle, &val, 1); } while (0)
#define AMT_AR(val) do { ioctl(device_handle, PPSETMODE, &addr_mode); read(device_handle, &val, 1); } while (0)
+
+static int data_mode = IEEE1284_MODE_EPP | IEEE1284_DATA ;
#define AMT_DW(val) do { ioctl(device_handle, PPSETMODE, &data_mode); write(device_handle, &val, 1); } while (0)
#define AMT_DR(val) do { ioctl(device_handle, PPSETMODE, &data_mode); read(device_handle, &val, 1); } while (0)
+
#else
+
#define AMT_AW(val) do { outb(val, amt_jtagaccel_port + 3); } while (0)
#define AMT_AR(val) do { val = inb(amt_jtagaccel_port + 3); } while (0)
#define AMT_DW(val) do { outb(val, amt_jtagaccel_port + 4); } while (0)
#define AMT_DR(val) do { val = inb(amt_jtagaccel_port + 4); } while (0)
-#endif
-int amt_jtagaccel_execute_queue(void);
-int amt_jtagaccel_register_commands(struct command_context_s *cmd_ctx);
-int amt_jtagaccel_speed(int speed);
-int amt_jtagaccel_init(void);
-int amt_jtagaccel_quit(void);
+#endif // PARPORT_USE_PPDEV
-int amt_jtagaccel_handle_parport_port_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc);
-int amt_jtagaccel_handle_rtck_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc);
+static int amt_jtagaccel_execute_queue(void);
+static int amt_jtagaccel_register_commands(struct command_context_s *cmd_ctx);
+static int amt_jtagaccel_speed(int speed);
+static int amt_jtagaccel_init(void);
+static int amt_jtagaccel_quit(void);
+static int amt_jtagaccel_handle_parport_port_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc);
+static int amt_jtagaccel_handle_rtck_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc);
+
/* tap_move[i][j]: tap movement command to go from state i to state j
* 0: Test-Logic-Reset
* 1: Run-Test/Idle
@@ -98,7 +103,7 @@
* 4: Shift-IR
* 5: Pause-IR
*/
-u8 amt_jtagaccel_tap_move[6][6][2] =
+static u8 amt_jtagaccel_tap_move[6][6][2] =
{
/* RESET IDLE DRSHIFT DRPAUSE IRSHIFT IRPAUSE */
{{0x1f, 0x00}, {0x0f, 0x00}, {0x8a, 0x04}, {0x0a, 0x00}, {0x06, 0x00}, {0x96, 0x00}}, /* RESET */
@@ -122,7 +127,7 @@
.quit = amt_jtagaccel_quit,
};
-int amt_jtagaccel_register_commands(struct command_context_s *cmd_ctx)
+static int amt_jtagaccel_register_commands(struct command_context_s *cmd_ctx)
{
register_command(cmd_ctx, NULL, "parport_port", amt_jtagaccel_handle_parport_port_command,
COMMAND_CONFIG, NULL);
@@ -132,7 +137,7 @@
return ERROR_OK;
}
-void amt_jtagaccel_reset(int trst, int srst)
+static void amt_jtagaccel_reset(int trst, int srst)
{
if (trst == 1)
aw_control_rst |= 0x4;
@@ -147,7 +152,7 @@
AMT_AW(aw_control_rst);
}
-int amt_jtagaccel_speed(int speed)
+static int amt_jtagaccel_speed(int speed)
{
aw_control_baudrate &= 0xf0;
aw_control_baudrate |= speed & 0x0f;
@@ -156,7 +161,7 @@
return ERROR_OK;
}
-void amt_jtagaccel_end_state(tap_state_t state)
+static void amt_jtagaccel_end_state(tap_state_t state)
{
if (tap_is_state_stable(state))
tap_set_end_state(state);
@@ -167,7 +172,7 @@
}
}
-void amt_wait_scan_busy(void)
+static void amt_wait_scan_busy(void)
{
int timeout = 4096;
u8 ar_status;
@@ -183,7 +188,7 @@
}
}
-void amt_jtagaccel_state_move(void)
+static void amt_jtagaccel_state_move(void)
{
u8 aw_scan_tms_5;
u8 tms_scan[2];
@@ -210,7 +215,7 @@
tap_set_state(end_state);
}
-void amt_jtagaccel_runtest(int num_cycles)
+static void amt_jtagaccel_runtest(int num_cycles)
{
int i = 0;
u8 aw_scan_tms_5;
@@ -243,7 +248,7 @@
amt_jtagaccel_state_move();
}
-void amt_jtagaccel_scan(int ir_scan, enum scan_type type, u8 *buffer, int scan_size)
+static void amt_jtagaccel_scan(int ir_scan, enum scan_type type, u8 *buffer, int scan_size)
{
int bits_left = scan_size;
int bit_count = 0;
@@ -325,7 +330,7 @@
tap_set_state(tap_get_end_state());
}
-int amt_jtagaccel_execute_queue(void)
+static int amt_jtagaccel_execute_queue(void)
{
jtag_command_t *cmd = jtag_command_queue; /* currently processed command */
int scan_size;
@@ -431,7 +436,7 @@
}
#endif
-int amt_jtagaccel_init(void)
+static int amt_jtagaccel_init(void)
{
#if PARPORT_USE_PPDEV == 1
char buffer[256];
@@ -536,13 +541,13 @@
return ERROR_OK;
}
-int amt_jtagaccel_quit(void)
+static int amt_jtagaccel_quit(void)
{
return ERROR_OK;
}
-int amt_jtagaccel_handle_parport_port_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc)
+static int amt_jtagaccel_handle_parport_port_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc)
{
if (argc == 0)
return ERROR_OK;
@@ -554,7 +559,7 @@
return ERROR_OK;
}
-int amt_jtagaccel_handle_rtck_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc)
+static int amt_jtagaccel_handle_rtck_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc)
{
if (argc == 0)
{
Modified: trunk/src/jtag/arm-jtag-ew.c
===================================================================
--- trunk/src/jtag/arm-jtag-ew.c 2009-04-20 22:38:27 UTC (rev 1478)
+++ trunk/src/jtag/arm-jtag-ew.c 2009-04-21 05:29:23 UTC (rev 1479)
@@ -77,32 +77,32 @@
static u8 usb_out_buffer[ARMJTAGEW_OUT_BUFFER_SIZE];
/* External interface functions */
-int armjtagew_execute_queue(void);
-int armjtagew_speed(int speed);
-int armjtagew_khz(int khz, int *jtag_speed);
-int armjtagew_register_commands(struct command_context_s *cmd_ctx);
-int armjtagew_init(void);
-int armjtagew_quit(void);
+static int armjtagew_execute_queue(void);
+static int armjtagew_speed(int speed);
+static int armjtagew_khz(int khz, int *jtag_speed);
+static int armjtagew_register_commands(struct command_context_s *cmd_ctx);
+static int armjtagew_init(void);
+static int armjtagew_quit(void);
/* CLI command handler functions */
-int armjtagew_handle_armjtagew_info_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc);
+static int armjtagew_handle_armjtagew_info_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc);
/* Queue command functions */
-void armjtagew_end_state(tap_state_t state);
-void armjtagew_state_move(void);
-void armjtagew_path_move(int num_states, tap_state_t *path);
-void armjtagew_runtest(int num_cycles);
-void armjtagew_scan(int ir_scan, enum scan_type type, u8 *buffer, int scan_size, scan_command_t *command);
-void armjtagew_reset(int trst, int srst);
-void armjtagew_simple_command(u8 command);
-int armjtagew_get_status(void);
+static void armjtagew_end_state(tap_state_t state);
+static void armjtagew_state_move(void);
+static void armjtagew_path_move(int num_states, tap_state_t *path);
+static void armjtagew_runtest(int num_cycles);
+static void armjtagew_scan(int ir_scan, enum scan_type type, u8 *buffer, int scan_size, scan_command_t *command);
+static void armjtagew_reset(int trst, int srst);
+//static void armjtagew_simple_command(u8 command);
+static int armjtagew_get_status(void);
/* tap buffer functions */
-void armjtagew_tap_init(void);
-int armjtagew_tap_execute(void);
-void armjtagew_tap_ensure_space(int scans, int bits);
-void armjtagew_tap_append_step(int tms, int tdi);
-void armjtagew_tap_append_scan(int length, u8 *buffer, scan_command_t *command);
+static void armjtagew_tap_init(void);
+static int armjtagew_tap_execute(void);
+static void armjtagew_tap_ensure_space(int scans, int bits);
+static void armjtagew_tap_append_step(int tms, int tdi);
+static void armjtagew_tap_append_scan(int length, u8 *buffer, scan_command_t *command);
/* ARM-JTAG-EW lowlevel functions */
typedef struct armjtagew_jtag
@@ -110,20 +110,20 @@
struct usb_dev_handle* usb_handle;
} armjtagew_jtag_t;
-armjtagew_jtag_t *armjtagew_usb_open(void);
-void armjtagew_usb_close(armjtagew_jtag_t *armjtagew_jtag);
-int armjtagew_usb_message(armjtagew_jtag_t *armjtagew_jtag, int out_length, int in_length);
-int armjtagew_usb_write(armjtagew_jtag_t *armjtagew_jtag, int out_length);
-int armjtagew_usb_read(armjtagew_jtag_t *armjtagew_jtag, int exp_in_length);
+static armjtagew_jtag_t *armjtagew_usb_open(void);
+static void armjtagew_usb_close(armjtagew_jtag_t *armjtagew_jtag);
+static int armjtagew_usb_message(armjtagew_jtag_t *armjtagew_jtag, int out_length, int in_length);
+static int armjtagew_usb_write(armjtagew_jtag_t *armjtagew_jtag, int out_length);
+static int armjtagew_usb_read(armjtagew_jtag_t *armjtagew_jtag, int exp_in_length);
/* helper functions */
-int armjtagew_get_version_info(void);
+static int armjtagew_get_version_info(void);
#ifdef _DEBUG_USB_COMMS_
-void armjtagew_debug_buffer(u8 *buffer, int length);
+static void armjtagew_debug_buffer(u8 *buffer, int length);
#endif
-armjtagew_jtag_t* armjtagew_jtag_handle;
+static armjtagew_jtag_t* armjtagew_jtag_handle;
@@ -142,7 +142,7 @@
};
-int armjtagew_execute_queue(void)
+static int armjtagew_execute_queue(void)
{
jtag_command_t *cmd = jtag_command_queue;
int scan_size;
@@ -239,7 +239,7 @@
/* Sets speed in kHz. */
-int armjtagew_speed(int speed)
+static int armjtagew_speed(int speed)
{
int result;
int speed_real;
@@ -273,21 +273,21 @@
}
-int armjtagew_khz(int khz, int *jtag_speed)
+static int armjtagew_khz(int khz, int *jtag_speed)
{
*jtag_speed = khz;
return ERROR_OK;
}
-int armjtagew_register_commands(struct command_context_s *cmd_ctx)
+static int armjtagew_register_commands(struct command_context_s *cmd_ctx)
{
register_command(cmd_ctx, NULL, "armjtagew_info", armjtagew_handle_armjtagew_info_command, COMMAND_EXEC,
"query armjtagew info");
return ERROR_OK;
}
-int armjtagew_init(void)
+static int armjtagew_init(void)
{
int check_cnt;
@@ -325,7 +325,7 @@
return ERROR_OK;
}
-int armjtagew_quit(void)
+static int armjtagew_quit(void)
{
armjtagew_usb_close(armjtagew_jtag_handle);
return ERROR_OK;
@@ -334,7 +334,7 @@
/***************************************************************************/
/* Queue command implementations */
-void armjtagew_end_state(tap_state_t state)
+static void armjtagew_end_state(tap_state_t state)
{
if (tap_is_state_stable(state))
{
@@ -348,7 +348,7 @@
}
/* Goes to the end state. */
-void armjtagew_state_move(void)
+static void armjtagew_state_move(void)
{
int i;
int tms = 0;
@@ -363,7 +363,7 @@
tap_set_state(tap_get_end_state());
}
-void armjtagew_path_move(int num_states, tap_state_t *path)
+static void armjtagew_path_move(int num_states, tap_state_t *path)
{
int i;
@@ -394,7 +394,7 @@
tap_set_end_state(tap_get_state());
}
-void armjtagew_runtest(int num_cycles)
+static void armjtagew_runtest(int num_cycles)
{
int i;
@@ -421,7 +421,7 @@
}
}
-void armjtagew_scan(int ir_scan, enum scan_type type, u8 *buffer, int scan_size, scan_command_t *command)
+static void armjtagew_scan(int ir_scan, enum scan_type type, u8 *buffer, int scan_size, scan_command_t *command)
{
tap_state_t saved_end_state;
@@ -449,7 +449,7 @@
}
}
-void armjtagew_reset(int trst, int srst)
+static void armjtagew_reset(int trst, int srst)
{
const u8 trst_mask = (1u<<5);
const u8 srst_mask = (1u<<6);
@@ -498,7 +498,7 @@
}
-int armjtagew_get_status(void)
+static int armjtagew_get_status(void)
{
int result;
@@ -530,7 +530,7 @@
return ERROR_OK;
}
-int armjtagew_get_version_info(void)
+static int armjtagew_get_version_info(void)
{
int result;
char sn[16];
@@ -559,7 +559,7 @@
return ERROR_OK;
}
-int armjtagew_handle_armjtagew_info_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc)
+static int armjtagew_handle_armjtagew_info_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc)
{
if (armjtagew_get_version_info() == ERROR_OK)
{
@@ -596,13 +596,13 @@
static int last_tms;
-void armjtagew_tap_init(void)
+static void armjtagew_tap_init(void)
{
tap_length = 0;
pending_scan_results_length = 0;
}
-void armjtagew_tap_ensure_space(int scans, int bits)
+static void armjtagew_tap_ensure_space(int scans, int bits)
{
int available_scans = MAX_PENDING_SCAN_RESULTS - pending_scan_results_length;
int available_bits = ARMJTAGEW_TAP_BUFFER_SIZE * 8 - tap_length;
@@ -613,7 +613,7 @@
}
}
-void armjtagew_tap_append_step(int tms, int tdi)
+static void armjtagew_tap_append_step(int tms, int tdi)
{
last_tms = tms;
int index = tap_length / 8;
@@ -668,7 +668,7 @@
/* Pad and send a tap sequence to the device, and receive the answer.
* For the purpose of padding we assume that we are in idle or pause state. */
-int armjtagew_tap_execute(void)
+static int armjtagew_tap_execute(void)
{
int byte_length;
int tms_offset;
@@ -764,7 +764,7 @@
/*****************************************************************************/
/* JLink USB low-level functions */
-armjtagew_jtag_t* armjtagew_usb_open()
+static armjtagew_jtag_t* armjtagew_usb_open()
{
struct usb_bus *busses;
struct usb_bus *bus;
@@ -812,14 +812,14 @@
return NULL;
}
-void armjtagew_usb_close(armjtagew_jtag_t *armjtagew_jtag)
+static void armjtagew_usb_close(armjtagew_jtag_t *armjtagew_jtag)
{
usb_close(armjtagew_jtag->usb_handle);
free(armjtagew_jtag);
}
/* Send a message and receive the reply. */
-int armjtagew_usb_message(armjtagew_jtag_t *armjtagew_jtag, int out_length, int in_length)
+static int armjtagew_usb_message(armjtagew_jtag_t *armjtagew_jtag, int out_length, int in_length)
{
int result;
@@ -842,7 +842,7 @@
}
/* Write data from out_buffer to USB. */
-int armjtagew_usb_write(armjtagew_jtag_t *armjtagew_jtag, int out_length)
+static int armjtagew_usb_write(armjtagew_jtag_t *armjtagew_jtag, int out_length)
{
int result;
@@ -864,7 +864,7 @@
}
/* Read data from USB into in_buffer. */
-int armjtagew_usb_read(armjtagew_jtag_t *armjtagew_jtag, int exp_in_length)
+static int armjtagew_usb_read(armjtagew_jtag_t *armjtagew_jtag, int exp_in_length)
{
int result = usb_bulk_read(armjtagew_jtag->usb_handle, ARMJTAGEW_EPT_BULK_IN, \
(char*)usb_in_buffer, exp_in_length, ARMJTAGEW_USB_TIMEOUT);
@@ -881,7 +881,7 @@
#ifdef _DEBUG_USB_COMMS_
#define BYTES_PER_LINE 16
-void armjtagew_debug_buffer(u8 *buffer, int length)
+static void armjtagew_debug_buffer(u8 *buffer, int length)
{
char line[81];
char s[4];
Modified: trunk/src/jtag/at91rm9200.c
===================================================================
--- trunk/src/jtag/at91rm9200.c 2009-04-20 22:38:27 UTC (rev 1478)
+++ trunk/src/jtag/at91rm9200.c 2009-04-21 05:29:23 UTC (rev 1479)
@@ -119,14 +119,14 @@
/* low level command set
*/
-int at91rm9200_read(void);
-void at91rm9200_write(int tck, int tms, int tdi);
-void at91rm9200_reset(int trst, int srst);
+static int at91rm9200_read(void);
+static void at91rm9200_write(int tck, int tms, int tdi);
+static void at91rm9200_reset(int trst, int srst);
-int at91rm9200_speed(int speed);
-int at91rm9200_register_commands(struct command_context_s *cmd_ctx);
-int at91rm9200_init(void);
-int at91rm9200_quit(void);
+static int at91rm9200_speed(int speed);
+static int at91rm9200_register_commands(struct command_context_s *cmd_ctx);
+static int at91rm9200_init(void);
+static int at91rm9200_quit(void);
jtag_interface_t at91rm9200_interface =
{
@@ -140,7 +140,7 @@
.quit = at91rm9200_quit,
};
-bitbang_interface_t at91rm9200_bitbang =
+static bitbang_interface_t at91rm9200_bitbang =
{
.read = at91rm9200_read,
.write = at91rm9200_write,
@@ -148,12 +148,12 @@
.blink = 0
};
-int at91rm9200_read(void)
+static int at91rm9200_read(void)
{
return (pio_base[device->TDO_PIO + PIO_PDSR] & device->TDO_MASK) != 0;
}
-void at91rm9200_write(int tck, int tms, int tdi)
+static void at91rm9200_write(int tck, int tms, int tdi)
{
if (tck)
pio_base[device->TCK_PIO + PIO_SODR] = device->TCK_MASK;
@@ -172,7 +172,7 @@
}
/* (1) assert or (0) deassert reset lines */
-void at91rm9200_reset(int trst, int srst)
+static void at91rm9200_reset(int trst, int srst)
{
if (trst == 0)
pio_base[device->TRST_PIO + PIO_SODR] = device->TRST_MASK;
@@ -185,13 +185,13 @@
pio_base[device->SRST_PIO + PIO_CODR] = device->SRST_MASK;
}
-int at91rm9200_speed(int speed)
+static int at91rm9200_speed(int speed)
{
return ERROR_OK;
}
-int at91rm9200_handle_device_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc)
+static int at91rm9200_handle_device_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc)
{
if (argc == 0)
return ERROR_OK;
@@ -206,14 +206,14 @@
return ERROR_OK;
}
-int at91rm9200_register_commands(struct command_context_s *cmd_ctx)
+static int at91rm9200_register_commands(struct command_context_s *cmd_ctx)
{
register_command(cmd_ctx, NULL, "at91rm9200_device", at91rm9200_handle_device_command,
COMMAND_CONFIG, NULL);
return ERROR_OK;
}
-int at91rm9200_init(void)
+static int at91rm9200_init(void)
{
struct device_t *cur_device;
@@ -284,7 +284,7 @@
return ERROR_OK;
}
-int at91rm9200_quit(void)
+static int at91rm9200_quit(void)
{
return ERROR_OK;
Modified: trunk/src/jtag/bitbang.c
===================================================================
--- trunk/src/jtag/bitbang.c 2009-04-20 22:38:27 UTC (rev 1478)
+++ trunk/src/jtag/bitbang.c 2009-04-21 05:29:23 UTC (rev 1479)
@@ -71,12 +71,9 @@
*/
#define CLOCK_IDLE() 0
-int bitbang_execute_queue(void);
-
/* The bitbang driver leaves the TCK 0 when in idle */
-
-void bitbang_end_state(tap_state_t state)
+static void bitbang_end_state(tap_state_t state)
{
if (tap_is_state_stable(state))
tap_set_end_state(state);
@@ -87,7 +84,7 @@
}
}
-void bitbang_state_move(void)
+static void bitbang_state_move(void)
{
int i=0, tms=0;
u8 tms_scan = tap_get_tms_path(tap_get_state(), tap_get_end_state());
@@ -103,7 +100,7 @@
tap_set_state(tap_get_end_state());
}
-void bitbang_path_move(pathmove_command_t *cmd)
+static void bitbang_path_move(pathmove_command_t *cmd)
{
int num_states = cmd->num_states;
int state_count;
@@ -139,7 +136,7 @@
tap_set_end_state(tap_get_state());
}
-void bitbang_runtest(int num_cycles)
+static void bitbang_runtest(int num_cycles)
{
int i;
@@ -182,7 +179,7 @@
-void bitbang_scan(int ir_scan, enum scan_type type, u8 *buffer, int scan_size)
+static void bitbang_scan(int ir_scan, enum scan_type type, u8 *buffer, int scan_size)
{
tap_state_t saved_end_state = tap_get_end_state();
int bit_cnt;
Modified: trunk/src/jtag/bitq.c
===================================================================
--- trunk/src/jtag/bitq.c 2009-04-20 22:38:27 UTC (rev 1478)
+++ trunk/src/jtag/bitq.c 2009-04-21 05:29:23 UTC (rev 1479)
@@ -36,10 +36,10 @@
bitq_interface_t* bitq_interface; /* low level bit queue interface */
-bitq_state_t bitq_in_state; /* state of input queue */
+static bitq_state_t bitq_in_state; /* state of input queue */
-u8* bitq_in_buffer; /* buffer dynamically reallocated as needed */
-int bitq_in_bufsize = 32; /* min. buffer size */
+static u8* bitq_in_buffer; /* buffer dynamically reallocated as needed */
+static int bitq_in_bufsize = 32; /* min. buffer size */
/*
* input queue processing does not use jtag_read_buffer() to avoid unnecessary overhead
Modified: trunk/src/jtag/dummy.c
===================================================================
--- trunk/src/jtag/dummy.c 2009-04-20 22:38:27 UTC (rev 1478)
+++ trunk/src/jtag/dummy.c 2009-04-21 05:29:23 UTC (rev 1479)
@@ -37,10 +37,10 @@
static u32 dummy_data;
-int dummy_speed(int speed);
-int dummy_register_commands(struct command_context_s *cmd_ctx);
-int dummy_init(void);
-int dummy_quit(void);
+static int dummy_speed(int speed);
+static int dummy_register_commands(struct command_context_s *cmd_ctx);
+static int dummy_init(void);
+static int dummy_quit(void);
static int dummy_khz(int khz, int *jtag_speed);
static int dummy_speed_div(int speed, int *khz);
@@ -63,12 +63,12 @@
.quit = dummy_quit,
};
-int dummy_read(void);
-void dummy_write(int tck, int tms, int tdi);
-void dummy_reset(int trst, int srst);
-void dummy_led(int on);
+static int dummy_read(void);
+static void dummy_write(int tck, int tms, int tdi);
+static void dummy_reset(int trst, int srst);
+static void dummy_led(int on);
-bitbang_interface_t dummy_bitbang =
+static bitbang_interface_t dummy_bitbang =
{
.read = dummy_read,
.write = dummy_write,
@@ -76,7 +76,7 @@
.blink = dummy_led
};
-int dummy_read(void)
+static int dummy_read(void)
{
int data = 1 & dummy_data;
dummy_data = (dummy_data >> 1) | (1<<31);
@@ -84,7 +84,7 @@
}
-void dummy_write(int tck, int tms, int tdi)
+static void dummy_write(int tck, int tms, int tdi)
{
/* TAP standard: "state transitions occur on rising edge of clock" */
if( tck != dummy_clock )
@@ -121,7 +121,7 @@
}
}
-void dummy_reset(int trst, int srst)
+static void dummy_reset(int trst, int srst)
{
dummy_clock = 0;
@@ -158,29 +158,29 @@
return ERROR_OK;
}
-int dummy_speed(int speed)
+static int dummy_speed(int speed)
{
return ERROR_OK;
}
-int dummy_register_commands(struct command_context_s *cmd_ctx)
+static int dummy_register_commands(struct command_context_s *cmd_ctx)
{
return ERROR_OK;
}
-int dummy_init(void)
+static int dummy_init(void)
{
bitbang_interface = &dummy_bitbang;
return ERROR_OK;
}
-int dummy_quit(void)
+static int dummy_quit(void)
{
return ERROR_OK;
}
-void dummy_led(int on)
+static void dummy_led(int on)
{
}
Modified: trunk/src/jtag/ep93xx.c
===================================================================
--- trunk/src/jtag/ep93xx.c 2009-04-20 22:38:27 UTC (rev 1478)
+++ trunk/src/jtag/ep93xx.c 2009-04-21 05:29:23 UTC (rev 1479)
@@ -50,14 +50,14 @@
/* low level command set
*/
-int ep93xx_read(void);
-void ep93xx_write(int tck, int tms, int tdi);
-void ep93xx_reset(int trst, int srst);
+static int ep93xx_read(void);
+static void ep93xx_write(int tck, int tms, int tdi);
+static void ep93xx_reset(int trst, int srst);
-int ep93xx_speed(int speed);
-int ep93xx_register_commands(struct command_context_s *cmd_ctx);
-int ep93xx_init(void);
-int ep93xx_quit(void);
+static int ep93xx_speed(int speed);
+static int ep93xx_register_commands(struct command_context_s *cmd_ctx);
+static int ep93xx_init(void);
+static int ep93xx_quit(void);
struct timespec ep93xx_zzzz;
@@ -73,7 +73,7 @@
.quit = ep93xx_quit,
};
-bitbang_interface_t ep93xx_bitbang =
+static bitbang_interface_t ep93xx_bitbang =
{
.read = ep93xx_read,
.write = ep93xx_write,
@@ -81,12 +81,12 @@
.blink = 0,
};
-int ep93xx_read(void)
+static int ep93xx_read(void)
{
return !!(*gpio_data_register & TDO_BIT);
}
-void ep93xx_write(int tck, int tms, int tdi)
+static void ep93xx_write(int tck, int tms, int tdi)
{
if (tck)
output_value |= TCK_BIT;
@@ -108,7 +108,7 @@
}
/* (1) assert or (0) deassert reset lines */
-void ep93xx_reset(int trst, int srst)
+static void ep93xx_reset(int trst, int srst)
{
if (trst == 0)
output_value |= TRST_BIT;
@@ -124,13 +124,13 @@
nanosleep(&ep93xx_zzzz, NULL);
}
-int ep93xx_speed(int speed)
+static int ep93xx_speed(int speed)
{
return ERROR_OK;
}
-int ep93xx_register_commands(struct command_context_s *cmd_ctx)
+static int ep93xx_register_commands(struct command_context_s *cmd_ctx)
{
return ERROR_OK;
@@ -157,7 +157,7 @@
return ERROR_OK;
}
-int ep93xx_init(void)
+static int ep93xx_init(void)
{
int ret;
@@ -231,7 +231,7 @@
return ERROR_OK;
}
-int ep93xx_quit(void)
+static int ep93xx_quit(void)
{
return ERROR_OK;
Modified: trunk/src/jtag/ft2232.c
===================================================================
--- trunk/src/jtag/ft2232.c 2009-04-20 22:38:27 UTC (rev 1478)
+++ trunk/src/jtag/ft2232.c 2009-04-21 05:29:23 UTC (rev 1479)
@@ -70,20 +70,20 @@
#define _DEBUG_USB_COMMS_
#endif
-int ft2232_execute_queue(void);
+static int ft2232_execute_queue(void);
-int ft2232_speed(int speed);
-int ft2232_speed_div(int speed, int* khz);
-int ft2232_khz(int khz, int* jtag_speed);
-int ft2232_register_commands(struct command_context_s* cmd_ctx);
-int ft2232_init(void);
-int ft2232_quit(void);
+static int ft2232_speed(int speed);
+static int ft2232_speed_div(int speed, int* khz);
+static int ft2232_khz(int khz, int* jtag_speed);
+static int ft2232_register_commands(struct command_context_s* cmd_ctx);
+static int ft2232_init(void);
+static int ft2232_quit(void);
-int ft2232_handle_device_desc_command(struct command_context_s* cmd_ctx, char* cmd, char** args, int argc);
-int ft2232_handle_serial_command(struct command_context_s* cmd_ctx, char* cmd, char** args, int argc);
-int ft2232_handle_layout_command(struct command_context_s* cmd_ctx, char* cmd, char** args, int argc);
-int ft2232_handle_vid_pid_command(struct command_context_s* cmd_ctx, char* cmd, char** args, int argc);
-int ft2232_handle_latency_command(struct command_context_s* cmd_ctx, char* cmd, char** args, int argc);
+static int ft2232_handle_device_desc_command(struct command_context_s* cmd_ctx, char* cmd, char** args, int argc);
+static int ft2232_handle_serial_command(struct command_context_s* cmd_ctx, char* cmd, char** args, int argc);
+static int ft2232_handle_layout_command(struct command_context_s* cmd_ctx, char* cmd, char** args, int argc);
+static int ft2232_handle_vid_pid_command(struct command_context_s* cmd_ctx, char* cmd, char** args, int argc);
+static int ft2232_handle_latency_command(struct command_context_s* cmd_ctx, char* cmd, char** args, int argc);
/**
@@ -97,11 +97,11 @@
static int ft2232_stableclocks(int num_cycles, jtag_command_t* cmd);
-char * ft2232_device_desc_A = NULL;
-char* ft2232_device_desc = NULL;
-char* ft2232_serial = NULL;
-char* ft2232_layout = NULL;
-unsigned char ft2232_latency = 2;
+static char * ft2232_device_desc_A = NULL;
+static char* ft2232_device_desc = NULL;
+static char* ft2232_serial = NULL;
+static char* ft2232_layout = NULL;
+static unsigned char ft2232_latency = 2;
#define MAX_USB_IDS 8
/* vid = pid = 0 marks the end of the list */
@@ -117,31 +117,31 @@
} ft2232_layout_t;
/* init procedures for supported layouts */
-int usbjtag_init(void);
-int jtagkey_init(void);
-int olimex_jtag_init(void);
-int flyswatter_init(void);
-int turtle_init(void);
-int comstick_init(void);
-int stm32stick_init(void);
-int axm0432_jtag_init(void);
-int sheevaplug_init(void);
+static int usbjtag_init(void);
+static int jtagkey_init(void);
+static int olimex_jtag_init(void);
+static int flyswatter_init(void);
+static int turtle_init(void);
+static int comstick_init(void);
+static int stm32stick_init(void);
+static int axm0432_jtag_init(void);
+static int sheevaplug_init(void);
/* reset procedures for supported layouts */
-void usbjtag_reset(int trst, int srst);
-void jtagkey_reset(int trst, int srst);
-void olimex_jtag_reset(int trst, int srst);
-void flyswatter_reset(int trst, int srst);
-void turtle_reset(int trst, int srst);
-void comstick_reset(int trst, int srst);
-void stm32stick_reset(int trst, int srst);
-void axm0432_jtag_reset(int trst, int srst);
-void sheevaplug_reset(int trst, int srst);
+static void usbjtag_reset(int trst, int srst);
+static void jtagkey_reset(int trst, int srst);
+static void olimex_jtag_reset(int trst, int srst);
+static void flyswatter_reset(int trst, int srst);
+static void turtle_reset(int trst, int srst);
+static void comstick_reset(int trst, int srst);
+static void stm32stick_reset(int trst, int srst);
+static void axm0432_jtag_reset(int trst, int srst);
+static void sheevaplug_reset(int trst, int srst);
/* blink procedures for layouts that support a blinking led */
-void olimex_jtag_blink(void);
-void flyswatter_jtag_blink(void);
-void turtle_jtag_blink(void);
+static void olimex_jtag_blink(void);
+static void flyswatter_jtag_blink(void);
+static void turtle_jtag_blink(void);
ft2232_layout_t ft2232_layouts[] =
{
@@ -200,7 +200,7 @@
.quit = ft2232_quit,
};
-int ft2232_write(u8* buf, int size, u32* bytes_written)
+static int ft2232_write(u8* buf, int size, u32* bytes_written)
{
#if BUILD_FT2232_FTD2XX == 1
FT_STATUS status;
@@ -233,7 +233,7 @@
}
-int ft2232_read(u8* buf, u32 size, u32* bytes_read)
+static int ft2232_read(u8* buf, u32 size, u32* bytes_read)
{
#if BUILD_FT2232_FTD2XX == 1
DWORD dw_bytes_read;
@@ -281,7 +281,7 @@
}
-int ft2232_speed(int speed)
+static int ft2232_speed(int speed)
{
u8 buf[3];
int retval;
@@ -302,7 +302,7 @@
}
-int ft2232_speed_div(int speed, int* khz)
+static int ft2232_speed_div(int speed, int* khz)
{
/* Take a look in the FT2232 manual,
* AN2232C-01 Command Processor for
@@ -314,7 +314,7 @@
}
-int ft2232_khz(int khz, int* jtag_speed)
+static int ft2232_khz(int khz, int* jtag_speed)
{
if (khz==0)
{
@@ -355,7 +355,7 @@
}
-int ft2232_register_commands(struct command_context_s* cmd_ctx)
+static int ft2232_register_commands(struct command_context_s* cmd_ctx)
{
register_command(cmd_ctx, NULL, "ft2232_device_desc", ft2232_handle_device_desc_command,
COMMAND_CONFIG, "the USB device description of the FTDI FT2232 device");
@@ -383,7 +383,7 @@
}
-void ft2232_read_scan(enum scan_type type, u8* buffer, int scan_size)
+static void ft2232_read_scan(enum scan_type type, u8* buffer, int scan_size)
{
int num_bytes = (scan_size + 7) / 8;
int bits_left = scan_size;
@@ -407,7 +407,7 @@
}
-void ft2232_debug_dump_buffer(void)
+static void ft2232_debug_dump_buffer(void)
{
int i;
char line[256];
@@ -428,7 +428,7 @@
}
-int ft2232_send_and_recv(jtag_command_t* first, jtag_command_t* last)
+static int ft2232_send_and_recv(jtag_command_t* first, jtag_command_t* last)
{
jtag_command_t* cmd;
u8* buffer;
@@ -546,7 +546,7 @@
}
-void ft2232_add_pathmove(pathmove_command_t* cmd)
+static void ft2232_add_pathmove(pathmove_command_t* cmd)
{
int num_states = cmd->num_states;
int state_count = 0;
@@ -742,7 +742,7 @@
}
-int ft2232_large_scan(scan_command_t* cmd, enum scan_type type, u8* buffer, int scan_size)
+static int ft2232_large_scan(scan_command_t* cmd, enum scan_type type, u8* buffer, int scan_size)
{
int num_bytes = (scan_size + 7) / 8;
int bits_left = scan_size;
@@ -952,7 +952,7 @@
}
-int ft2232_predict_scan_out(int scan_size, enum scan_type type)
+static int ft2232_predict_scan_out(int scan_size, enum scan_type type)
{
int predicted_size = 3;
int num_bytes = (scan_size - 1) / 8;
@@ -979,7 +979,7 @@
}
-int ft2232_predict_scan_in(int scan_size, enum scan_type type)
+static int ft2232_predict_scan_in(int scan_size, enum scan_type type)
{
int predicted_size = 0;
@@ -1001,7 +1001,7 @@
}
-void usbjtag_reset(int trst, int srst)
+static void usbjtag_reset(int trst, int srst)
{
if (trst == 1)
{
@@ -1040,7 +1040,7 @@
}
-void jtagkey_reset(int trst, int srst)
+static void jtagkey_reset(int trst, int srst)
{
if (trst == 1)
{
@@ -1081,7 +1081,7 @@
}
-void olimex_jtag_reset(int trst, int srst)
+static void olimex_jtag_reset(int trst, int srst)
{
if (trst == 1)
{
@@ -1116,7 +1116,7 @@
}
-void axm0432_jtag_reset(int trst, int srst)
+static void axm0432_jtag_reset(int trst, int srst)
{
if (trst == 1)
{
@@ -1146,7 +1146,7 @@
}
-void flyswatter_reset(int trst, int srst)
+static void flyswatter_reset(int trst, int srst)
{
if (trst == 1)
{
@@ -1174,7 +1174,7 @@
}
-void turtle_reset(int trst, int srst)
+static void turtle_reset(int trst, int srst)
{
trst = trst;
@@ -1195,7 +1195,7 @@
}
-void comstick_reset(int trst, int srst)
+static void comstick_reset(int trst, int srst)
{
if (trst == 1)
{
@@ -1224,7 +1224,7 @@
}
-void stm32stick_reset(int trst, int srst)
+static void stm32stick_reset(int trst, int srst)
{
if (trst == 1)
{
@@ -1259,7 +1259,7 @@
-void sheevaplug_reset(int trst, int srst)
+static void sheevaplug_reset(int trst, int srst)
{
if (trst == 1)
high_output &= ~nTRST;
@@ -1278,7 +1278,7 @@
LOG_DEBUG("trst: %i, srst: %i, high_output: 0x%2.2x, high_direction: 0x%2.2x", trst, srst, high_output, high_direction);
}
-int ft2232_execute_queue()
+static int ft2232_execute_queue()
{
jtag_command_t* cmd = jtag_command_queue; /* currently processed command */
u8* buffer;
@@ -1755,7 +1755,7 @@
#endif /* BUILD_FT2232_LIBFTDI == 1 */
-int ft2232_init(void)
+static int ft2232_init(void)
{
u8 buf[1];
int retval;
@@ -1837,7 +1837,7 @@
}
-int usbjtag_init(void)
+static int usbjtag_init(void)
{
u8 buf[3];
u32 bytes_written;
@@ -1912,7 +1912,7 @@
}
-int axm0432_jtag_init(void)
+static int axm0432_jtag_init(void)
{
u8 buf[3];
u32 bytes_written;
@@ -1982,7 +1982,7 @@
}
-int jtagkey_init(void)
+static int jtagkey_init(void)
{
u8 buf[3];
u32 bytes_written;
@@ -2064,7 +2064,7 @@
}
-int olimex_jtag_init(void)
+static int olimex_jtag_init(void)
{
u8 buf[3];
u32 bytes_written;
@@ -2131,7 +2131,7 @@
}
-int flyswatter_init(void)
+static int flyswatter_init(void)
{
u8 buf[3];
u32 bytes_written;
@@ -2178,7 +2178,7 @@
}
-int turtle_init(void)
+static int turtle_init(void)
{
u8 buf[3];
u32 bytes_written;
@@ -2219,7 +2219,7 @@
}
-int comstick_init(void)
+static int comstick_init(void)
{
u8 buf[3];
u32 bytes_written;
@@ -2263,7 +2263,7 @@
}
-int stm32stick_init(void)
+static int stm32stick_init(void)
{
u8 buf[3];
u32 bytes_written;
@@ -2307,7 +2307,7 @@
}
-int sheevaplug_init(void)
+static int sheevaplug_init(void)
{
u8 buf[3];
u32 bytes_written;
@@ -2358,7 +2358,7 @@
return ERROR_OK;
}
-void olimex_jtag_blink(void)
+static void olimex_jtag_blink(void)
{
/* Olimex ARM-USB-OCD has a LED connected to ACBUS3
* ACBUS3 is bit 3 of the GPIOH port
@@ -2380,7 +2380,7 @@
}
-void flyswatter_jtag_blink(void)
+static void flyswatter_jtag_blink(void)
{
/*
* Flyswatter has two LEDs connected to ACBUS2 and ACBUS3
@@ -2393,7 +2393,7 @@
}
-void turtle_jtag_blink(void)
+static void turtle_jtag_blink(void)
{
/*
* Turtelizer2 has two LEDs connected to ACBUS2 and ACBUS3
@@ -2413,7 +2413,7 @@
}
-int ft2232_quit(void)
+static int ft2232_quit(void)
{
#if BUILD_FT2232_FTD2XX == 1
FT_STATUS status;
@@ -2434,7 +2434,7 @@
}
-int ft2232_handle_device_desc_command(struct command_context_s* cmd_ctx, char* cmd, char** args, int argc)
+static int ft2232_handle_device_desc_command(struct command_context_s* cmd_ctx, char* cmd, char** args, int argc)
{
char *cp;
char buf[200];
@@ -2469,7 +2469,7 @@
}
-int ft2232_handle_serial_command(struct command_context_s* cmd_ctx, char* cmd, char** args, int argc)
+static int ft2232_handle_serial_command(struct command_context_s* cmd_ctx, char* cmd, char** args, int argc)
{
if (argc == 1)
{
@@ -2484,7 +2484,7 @@
}
-int ft2232_handle_layout_command(struct command_context_s* cmd_ctx, char* cmd, char** args, int argc)
+static int ft2232_handle_layout_command(struct command_context_s* cmd_ctx, char* cmd, char** args, int argc)
{
if (argc == 0)
return ERROR_OK;
@@ -2496,7 +2496,7 @@
}
-int ft2232_handle_vid_pid_command(struct command_context_s* cmd_ctx, char* cmd, char** args, int argc)
+static int ft2232_handle_vid_pid_command(struct command_context_s* cmd_ctx, char* cmd, char** args, int argc)
{
int i;
@@ -2529,7 +2529,7 @@
}
-int ft2232_handle_latency_command(struct command_context_s* cmd_ctx, char* cmd, char** args, int argc)
+static int ft2232_handle_latency_command(struct command_context_s* cmd_ctx, char* cmd, char** args, int argc)
{
if (argc == 1)
{
Modified: trunk/src/jtag/gw16012.c
===================================================================
--- trunk/src/jtag/gw16012.c 2009-04-20 22:38:27 UTC (rev 1478)
+++ trunk/src/jtag/gw16012.c 2009-04-21 05:29:23 UTC (rev 1479)
@@ -89,13 +89,13 @@
static int device_handle;
#endif
-int gw16012_execute_queue(void);
-int gw16012_register_commands(struct command_context_s *cmd_ctx);
-int gw16012_speed(int speed);
-int gw16012_init(void);
-int gw16012_quit(void);
+static int gw16012_execute_queue(void);
+static int gw16012_register_commands(struct command_context_s *cmd_ctx);
+static int gw16012_speed(int speed);
+static int gw16012_init(void);
+static int gw16012_quit(void);
-int gw16012_handle_parport_port_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc);
+static int gw16012_handle_parport_port_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc);
jtag_interface_t gw16012_interface =
{
@@ -109,7 +109,7 @@
.quit = gw16012_quit,
};
-int gw16012_register_commands(struct command_context_s *cmd_ctx)
+static int gw16012_register_commands(struct command_context_s *cmd_ctx)
{
register_command(cmd_ctx, NULL, "parport_port", gw16012_handle_parport_port_command,
COMMAND_CONFIG, NULL);
@@ -117,7 +117,7 @@
return ERROR_OK;
}
-void gw16012_data(u8 value)
+static void gw16012_data(u8 value)
{
value = (value & 0x7f) | gw16012_msb;
gw16012_msb ^= 0x80; /* toggle MSB */
@@ -137,7 +137,7 @@
#endif
}
-void gw16012_control(u8 value)
+static void gw16012_control(u8 value)
{
if (value != gw16012_control_value)
{
@@ -159,7 +159,7 @@
}
}
-void gw16012_input(u8 *value)
+static void gw16012_input(u8 *value)
{
#if PARPORT_USE_PPDEV == 1
ioctl(device_handle, PPRSTATUS, value);
@@ -173,7 +173,7 @@
}
/* (1) assert or (0) deassert reset lines */
-void gw16012_reset(int trst, int srst)
+static void gw16012_reset(int trst, int srst)
{
LOG_DEBUG("trst: %i, srst: %i", trst, srst);
@@ -188,13 +188,13 @@
gw16012_control(0x0b);
}
-int gw16012_speed(int speed)
+static int gw16012_speed(int speed)
{
return ERROR_OK;
}
-void gw16012_end_state(tap_state_t state)
+static void gw16012_end_state(tap_state_t state)
{
if (tap_is_state_stable(state))
tap_set_end_state(state);
@@ -205,7 +205,7 @@
}
}
-void gw16012_state_move(void)
+static void gw16012_state_move(void)
{
int i=0, tms=0;
u8 tms_scan = tap_get_tms_path(tap_get_state(), tap_get_end_state());
@@ -221,7 +221,7 @@
tap_set_state(tap_get_end_state());
}
-void gw16012_path_move(pathmove_command_t *cmd)
+static void gw16012_path_move(pathmove_command_t *cmd)
{
int num_states = cmd->num_states;
int state_count;
@@ -252,7 +252,7 @@
tap_set_end_state(tap_get_state());
}
-void gw16012_runtest(int num_cycles)
+static void gw16012_runtest(int num_cycles)
{
tap_state_t saved_end_state = tap_get_end_state();
int i;
@@ -275,7 +275,7 @@
gw16012_state_move();
}
-void gw16012_scan(int ir_scan, enum scan_type type, u8 *buffer, int scan_size)
+static void gw16012_scan(int ir_scan, enum scan_type type, u8 *buffer, int scan_size)
{
int bits_left = scan_size;
int bit_count = 0;
@@ -348,7 +348,7 @@
}
}
-int gw16012_execute_queue(void)
+static int gw16012_execute_queue(void)
{
jtag_command_t *cmd = jtag_command_queue; /* currently processed command */
int scan_size;
@@ -436,7 +436,7 @@
}
#if PARPORT_USE_GIVEIO == 1
-int gw16012_get_giveio_access()
+static int gw16012_get_giveio_access()
{
HANDLE h;
OSVERSIONINFO version;
@@ -461,7 +461,7 @@
}
#endif
-int gw16012_init(void)
+static int gw16012_init(void)
{
#if PARPORT_USE_PPDEV == 1
char buffer[256];
@@ -555,13 +555,13 @@
return ERROR_OK;
}
-int gw16012_quit(void)
+static int gw16012_quit(void)
{
return ERROR_OK;
}
-int gw16012_handle_parport_port_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc)
+static int gw16012_handle_parport_port_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc)
{
if (argc == 0)
return ERROR_OK;
Modified: trunk/src/jtag/jlink.c
===================================================================
--- trunk/src/jtag/jlink.c 2009-04-20 22:38:27 UTC (rev 1478)
+++ trunk/src/jtag/jlink.c 2009-04-21 05:29:23 UTC (rev 1479)
@@ -77,33 +77,33 @@
#define JLINK_MAX_SPEED 12000
/* External interface functions */
-int jlink_execute_queue(void);
-int jlink_speed(int speed);
-int jlink_speed_div(int speed, int* khz);
-int jlink_khz(int khz, int *jtag_speed);
-int jlink_register_commands(struct command_context_s *cmd_ctx);
-int jlink_init(void);
-int jlink_quit(void);
+static int jlink_execute_queue(void);
+static int jlink_speed(int speed);
+static int jlink_speed_div(int speed, int* khz);
+static int jlink_khz(int khz, int *jtag_speed);
+static int jlink_register_commands(struct command_context_s *cmd_ctx);
+static int jlink_init(void);
+static int jlink_quit(void);
/* CLI command handler functions */
-int jlink_handle_jlink_info_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc);
+static int jlink_handle_jlink_info_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc);
/* Queue command functions */
-void jlink_end_state(tap_state_t state);
-void jlink_state_move(void);
-void jlink_path_move(int num_states, tap_state_t *path);
-void jlink_runtest(int num_cycles);
-void jlink_scan(int ir_scan, enum scan_type type, u8 *buffer, int scan_size, scan_command_t *command);
-void jlink_reset(int trst, int srst);
-void jlink_simple_command(u8 command);
-int jlink_get_status(void);
+static void jlink_end_state(tap_state_t state);
+static void jlink_state_move(void);
+static void jlink_path_move(int num_states, tap_state_t *path);
+static void jlink_runtest(int num_cycles);
+static void jlink_scan(int ir_scan, enum scan_type type, u8 *buffer, int scan_size, scan_command_t *command);
+static void jlink_reset(int trst, int srst);
+static void jlink_simple_command(u8 command);
+static int jlink_get_status(void);
/* J-Link tap buffer functions */
-void jlink_tap_init(void);
-int jlink_tap_execute(void);
-void jlink_tap_ensure_space(int scans, int bits);
-void jlink_tap_append_step(int tms, int tdi);
-void jlink_tap_append_scan(int length, u8 *buffer, scan_command_t *command);
+static void jlink_tap_init(void);
+static int jlink_tap_execute(void);
+static void jlink_tap_ensure_space(int scans, int bits);
+static void jlink_tap_append_step(int tms, int tdi);
+static void jlink_tap_append_scan(int length, u8 *buffer, scan_command_t *command);
/* Jlink lowlevel functions */
typedef struct jlink_jtag
@@ -111,21 +111,21 @@
struct usb_dev_handle* usb_handle;
} jlink_jtag_t;
-jlink_jtag_t *jlink_usb_open(void);
-void jlink_usb_close(jlink_jtag_t *jlink_jtag);
-int jlink_usb_message(jlink_jtag_t *jlink_jtag, int out_length, int in_length);
-int jlink_usb_write(jlink_jtag_t *jlink_jtag, int out_length);
-int jlink_usb_read(jlink_jtag_t *jlink_jtag, int expected_size);
-int jlink_usb_read_emu_result(jlink_jtag_t *jlink_jtag);
+static jlink_jtag_t *jlink_usb_open(void);
+static void jlink_usb_close(jlink_jtag_t *jlink_jtag);
+static int jlink_usb_message(jlink_jtag_t *jlink_jtag, int out_length, int in_length);
+static int jlink_usb_write(jlink_jtag_t *jlink_jtag, int out_length);
+static int jlink_usb_read(jlink_jtag_t *jlink_jtag, int expected_size);
+static int jlink_usb_read_emu_result(jlink_jtag_t *jlink_jtag);
/* helper functions */
-int jlink_get_version_info(void);
+static int jlink_get_version_info(void);
#ifdef _DEBUG_USB_COMMS_
-void jlink_debug_buffer(u8 *buffer, int length);
+static void jlink_debug_buffer(u8 *buffer, int length);
#endif
-jlink_jtag_t* jlink_jtag_handle;
+static jlink_jtag_t* jlink_jtag_handle;
/***************************************************************************/
/* External interface implementation */
@@ -142,7 +142,7 @@
.quit = jlink_quit
};
-int jlink_execute_queue(void)
+static int jlink_execute_queue(void)
{
jtag_command_t *cmd = jtag_command_queue;
int scan_size;
@@ -238,7 +238,7 @@
}
/* Sets speed in kHz. */
-int jlink_speed(int speed)
+static int jlink_speed(int speed)
{
int result;
@@ -272,28 +272,28 @@
return ERROR_OK;
}
-int jlink_speed_div(int speed, int* khz)
+static int jlink_speed_div(int speed, int* khz)
{
*khz = speed;
return ERROR_OK;
}
-int jlink_khz(int khz, int *jtag_speed)
+static int jlink_khz(int khz, int *jtag_speed)
{
*jtag_speed = khz;
return ERROR_OK;
}
-int jlink_register_commands(struct command_context_s *cmd_ctx)
+static int jlink_register_commands(struct command_context_s *cmd_ctx)
{
register_command(cmd_ctx, NULL, "jlink_info", jlink_handle_jlink_info_command, COMMAND_EXEC,
"query jlink info");
return ERROR_OK;
}
-int jlink_init(void)
+static int jlink_init(void)
{
int check_cnt;
@@ -331,7 +331,7 @@
return ERROR_OK;
}
-int jlink_quit(void)
+static int jlink_quit(void)
{
jlink_usb_close(jlink_jtag_handle);
return ERROR_OK;
@@ -340,7 +340,7 @@
/***************************************************************************/
/* Queue command implementations */
-void jlink_end_state(tap_state_t state)
+static void jlink_end_state(tap_state_t state)
{
if (tap_is_state_stable(state))
{
@@ -354,7 +354,7 @@
}
/* Goes to the end state. */
-void jlink_state_move(void)
+static void jlink_state_move(void)
{
int i;
int tms = 0;
@@ -369,7 +369,7 @@
tap_set_state(tap_get_end_state());
}
-void jlink_path_move(int num_states, tap_state_t *path)
+static void jlink_path_move(int num_states, tap_state_t *path)
{
int i;
@@ -395,7 +395,7 @@
tap_set_end_state(tap_get_state());
}
-void jlink_runtest(int num_cycles)
+static void jlink_runtest(int num_cycles)
{
int i;
@@ -422,7 +422,7 @@
}
}
-void jlink_scan(int ir_scan, enum scan_type type, u8 *buffer, int scan_size, scan_command_t *command)
+static void jlink_scan(int ir_scan, enum scan_type type, u8 *buffer, int scan_size, scan_command_t *command)
{
tap_state_t saved_end_state;
@@ -453,7 +453,7 @@
}
}
-void jlink_reset(int trst, int srst)
+static void jlink_reset(int trst, int srst)
{
LOG_DEBUG("trst: %i, srst: %i", trst, srst);
@@ -477,7 +477,7 @@
}
}
-void jlink_simple_command(u8 command)
+static void jlink_simple_command(u8 command)
{
int result;
@@ -492,7 +492,7 @@
}
}
-int jlink_get_status(void)
+static int jlink_get_status(void)
{
int result;
@@ -520,7 +520,7 @@
return ERROR_OK;
}
-int jlink_get_version_info(void)
+static int jlink_get_version_info(void)
{
int result;
int len = 0;
@@ -546,7 +546,7 @@
return ERROR_JTAG_DEVICE_ERROR;
}
-int jlink_handle_jlink_info_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc)
+static int jlink_handle_jlink_info_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc)
{
if (jlink_get_version_info() == ERROR_OK)
{
@@ -583,13 +583,13 @@
static int last_tms;
-void jlink_tap_init(void)
+static void jlink_tap_init(void)
{
tap_length = 0;
pending_scan_results_length = 0;
}
-void jlink_tap_ensure_space(int scans, int bits)
+static void jlink_tap_ensure_space(int scans, int bits)
{
int available_scans = MAX_PENDING_SCAN_RESULTS - pending_scan_results_length;
int available_bits = JLINK_TAP_BUFFER_SIZE * 8 - tap_length;
@@ -600,7 +600,7 @@
}
}
-void jlink_tap_append_step(int tms, int tdi)
+static void jlink_tap_append_step(int tms, int tdi)
{
last_tms = tms;
int index = tap_length / 8;
@@ -636,7 +636,7 @@
}
}
-void jlink_tap_append_scan(int length, u8 *buffer, scan_command_t *command)
+static void jlink_tap_append_scan(int length, u8 *buffer, scan_command_t *command)
{
pending_scan_result_t *pending_scan_result = &pending_scan_results_buffer[pending_scan_results_length];
int i;
@@ -655,7 +655,7 @@
/* Pad and send a tap sequence to the device, and receive the answer.
* For the purpose of padding we assume that we are in idle or pause state. */
-int jlink_tap_execute(void)
+static int jlink_tap_execute(void)
{
int byte_length;
int tms_offset;
@@ -745,7 +745,7 @@
/*****************************************************************************/
/* JLink USB low-level functions */
-jlink_jtag_t* jlink_usb_open()
+static jlink_jtag_t* jlink_usb_open()
{
struct usb_bus *busses;
struct usb_bus *bus;
@@ -791,14 +791,14 @@
return NULL;
}
-void jlink_usb_close(jlink_jtag_t *jlink_jtag)
+static void jlink_usb_close(jlink_jtag_t *jlink_jtag)
{
usb_close(jlink_jtag->usb_handle);
free(jlink_jtag);
}
/* Send a message and receive the reply. */
-int jlink_usb_message(jlink_jtag_t *jlink_jtag, int out_length, int in_length)
+static int jlink_usb_message(jlink_jtag_t *jlink_jtag, int out_length, int in_length)
{
int result;
int result2;
@@ -859,7 +859,7 @@
}
}
-int usb_bulk_write_ex(usb_dev_handle *dev, int ep, char *bytes, int size,
+static int usb_bulk_write_ex(usb_dev_handle *dev, int ep, char *bytes, int size,
int timeout) {
int rc = 0, tries = 3, this_size;
@@ -883,7 +883,7 @@
}
-int usb_bulk_read_ex(usb_dev_handle *dev, int ep, char *bytes, int size,
+static int usb_bulk_read_ex(usb_dev_handle *dev, int ep, char *bytes, int size,
int timeout) {
int rc = 0, tries = 3, this_size;
@@ -908,7 +908,7 @@
/* Write data from out_buffer to USB. */
-int jlink_usb_write(jlink_jtag_t *jlink_jtag, int out_length)
+static int jlink_usb_write(jlink_jtag_t *jlink_jtag, int out_length)
{
int result;
@@ -930,7 +930,7 @@
}
/* Read data from USB into in_buffer. */
-int jlink_usb_read(jlink_jtag_t *jlink_jtag, int expected_size)
+static int jlink_usb_read(jlink_jtag_t *jlink_jtag, int expected_size)
{
int result = usb_bulk_read_ex(jlink_jtag->usb_handle, JLINK_READ_ENDPOINT,
(char *)usb_in_buffer, expected_size, JLINK_USB_TIMEOUT);
@@ -944,7 +944,7 @@
}
/* Read the result from the previous EMU cmd into result_buffer. */
-int jlink_usb_read_emu_result(jlink_jtag_t *jlink_jtag)
+static int jlink_usb_read_emu_result(jlink_jtag_t *jlink_jtag)
{
int result = usb_bulk_read_ex(jlink_jtag->usb_handle, JLINK_READ_ENDPOINT,
(char *)usb_emu_result_buffer, 1 /* JLINK_EMU_RESULT_BUFFER_SIZE */,
@@ -961,7 +961,7 @@
#ifdef _DEBUG_USB_COMMS_
#define BYTES_PER_LINE 16
-void jlink_debug_buffer(u8 *buffer, int length)
+static void jlink_debug_buffer(u8 *buffer, int length)
{
char line[81];
char s[4];
Modified: trunk/src/jtag/jtag.c
===================================================================
--- trunk/src/jtag/jtag.c 2009-04-20 22:38:27 UTC (rev 1478)
+++ trunk/src/jtag/jtag.c 2009-04-21 05:29:23 UTC (rev 1479)
@@ -80,8 +80,8 @@
int jtag_verify_capture_ir = 1;
/* how long the OpenOCD should wait before attempting JTAG communication after reset lines deasserted (in ms) */
-int jtag_nsrst_delay = 0; /* default to no nSRST delay */
-int jtag_ntrst_delay = 0; /* default to no nTRST delay */
+static int jtag_nsrst_delay = 0; /* default to no nSRST delay */
+static int jtag_ntrst_delay = 0; /* default to no nTRST delay */
/* maximum number of JTAG devices expected in the chain
*/
@@ -210,35 +210,35 @@
jtag_interface_t *jtag = NULL;
/* configuration */
-jtag_interface_t *jtag_interface = NULL;
+static jtag_interface_t *jtag_interface = NULL;
int jtag_speed = 0;
/* forward declarations */
-void jtag_add_pathmove(int num_states, tap_state_t *path);
-void jtag_add_runtest(int num_cycles, tap_state_t endstate);
-void jtag_add_end_state(tap_state_t endstate);
-void jtag_add_sleep(u32 us);
-int jtag_execute_queue(void);
-tap_state_t tap_state_by_name(const char *name);
+//void jtag_add_pathmove(int num_states, tap_state_t *path);
+//void jtag_add_runtest(int num_cycles, tap_state_t endstate);
+//void jtag_add_end_state(tap_state_t endstate);
+//void jtag_add_sleep(u32 us);
+//int jtag_execute_queue(void);
+static tap_state_t tap_state_by_name(const char *name);
/* jtag commands */
-int handle_interface_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc);
-int handle_jtag_speed_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc);
-int handle_jtag_khz_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc);
-int handle_jtag_device_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc);
-int handle_reset_config_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc);
-int handle_jtag_nsrst_delay_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc);
-int handle_jtag_ntrst_delay_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc);
+static int handle_interface_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc);
+static int handle_jtag_speed_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc);
+static int handle_jtag_khz_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc);
+static int handle_jtag_device_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc);
+static int handle_reset_config_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc);
+static int handle_jtag_nsrst_delay_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc);
+static int handle_jtag_ntrst_delay_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc);
-int handle_scan_chain_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc);
+static int handle_scan_chain_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc);
-int handle_endstate_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc);
-int handle_jtag_reset_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc);
-int handle_runtest_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc);
-int handle_irscan_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc);
-int Jim_Command_drscan(Jim_Interp *interp, int argc, Jim_Obj *const *argv);
+static int handle_endstate_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc);
+static int handle_jtag_reset_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc);
+static int handle_runtest_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc);
+static int handle_irscan_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc);
+static int Jim_Command_drscan(Jim_Interp *interp, int argc, Jim_Obj *const *argv);
-int handle_verify_ircapture_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc);
+static int handle_verify_ircapture_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc);
jtag_tap_t *jtag_AllTaps(void)
{
@@ -2305,7 +2305,7 @@
return ERROR_OK;
}
-int handle_interface_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc)
+static int handle_interface_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc)
{
int i;
int retval;
@@ -2368,7 +2368,7 @@
return ERROR_JTAG_INVALID_INTERFACE;
}
-int handle_jtag_device_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc)
+static int handle_jtag_device_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc)
{
int e;
char buf[1024];
@@ -2429,7 +2429,7 @@
return e;
}
-int handle_scan_chain_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc)
+static int handle_scan_chain_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc)
{
jtag_tap_t *tap;
@@ -2466,7 +2466,7 @@
return ERROR_OK;
}
-int handle_reset_config_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc)
+static int handle_reset_config_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc)
{
if (argc < 1)
return ERROR_COMMAND_SYNTAX_ERROR;
@@ -2542,7 +2542,7 @@
return ERROR_OK;
}
-int handle_jtag_nsrst_delay_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc)
+static int handle_jtag_nsrst_delay_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc)
{
if (argc < 1)
{
@@ -2557,7 +2557,7 @@
return ERROR_OK;
}
-int handle_jtag_ntrst_delay_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc)
+static int handle_jtag_ntrst_delay_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc)
{
if (argc < 1)
{
@@ -2572,7 +2572,7 @@
return ERROR_OK;
}
-int handle_jtag_speed_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc)
+static int handle_jtag_speed_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc)
{
int retval=ERROR_OK;
@@ -2600,7 +2600,7 @@
return retval;
}
-int handle_jtag_khz_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc)
+static int handle_jtag_khz_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc)
{
int retval=ERROR_OK;
LOG_DEBUG("handle jtag khz");
@@ -2650,7 +2650,7 @@
}
-int handle_endstate_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc)
+static int handle_endstate_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc)
{
tap_state_t state;
@@ -2673,7 +2673,7 @@
return ERROR_OK;
}
-int handle_jtag_reset_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc)
+static int handle_jtag_reset_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc)
{
int trst = -1;
int srst = -1;
@@ -2710,7 +2710,7 @@
return ERROR_OK;
}
-int handle_runtest_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc)
+static int handle_runtest_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc)
{
if (argc < 1)
{
@@ -2724,7 +2724,7 @@
}
-int handle_irscan_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc)
+static int handle_irscan_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc)
{
int i;
scan_field_t *fields;
@@ -2799,7 +2799,7 @@
return ERROR_OK;
}
-int Jim_Command_drscan(Jim_Interp *interp, int argc, Jim_Obj *const *args)
+static int Jim_Command_drscan(Jim_Interp *interp, int argc, Jim_Obj *const *args)
{
int retval;
scan_field_t *fields;
@@ -2936,7 +2936,7 @@
return JIM_OK;
}
-int handle_verify_ircapture_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc)
+static int handle_verify_ircapture_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc)
{
if (argc == 1)
{
@@ -3269,7 +3269,7 @@
return ret;
}
-tap_state_t tap_state_by_name( const char *name )
+static tap_state_t tap_state_by_name( const char *name )
{
tap_state_t x;
Modified: trunk/src/jtag/parport.c
===================================================================
--- trunk/src/jtag/parport.c 2009-04-20 22:38:27 UTC (rev 1478)
+++ trunk/src/jtag/parport.c 2009-04-21 05:29:23 UTC (rev 1479)
@@ -96,7 +96,7 @@
u8 LED_MASK; /* data port bit for LED */
} cable_t;
-cable_t cables[] =
+static cable_t cables[] =
...
[truncated message content] |
|
From: ntfreak at B. <nt...@ma...> - 2009-04-21 00:38:30
|
Author: ntfreak
Date: 2009-04-21 00:38:27 +0200 (Tue, 21 Apr 2009)
New Revision: 1478
Modified:
trunk/src/jtag/at91rm9200.c
trunk/src/target/target/lpc2124.cfg
trunk/src/target/target/lpc2378.cfg
Log:
- fix at91rm9200 warning. Thanks Zach Welch <zw...@su...>
- add missing svn props from previous commit
Modified: trunk/src/jtag/at91rm9200.c
===================================================================
--- trunk/src/jtag/at91rm9200.c 2009-04-20 10:52:08 UTC (rev 1477)
+++ trunk/src/jtag/at91rm9200.c 2009-04-20 22:38:27 UTC (rev 1478)
@@ -104,7 +104,7 @@
struct device_t devices[] =
{
{ "rea_ecr", PIOD, P27, PIOA, NC, PIOD, P23, PIOD, P24, PIOD, P26, PIOC, P5 },
- { NULL, 0 }
+ { .name = NULL },
};
/* configuration */
Modified: trunk/src/target/target/lpc2124.cfg
===================================================================
--- trunk/src/target/target/lpc2124.cfg 2009-04-20 10:52:08 UTC (rev 1477)
+++ trunk/src/target/target/lpc2124.cfg 2009-04-20 22:38:27 UTC (rev 1478)
@@ -1,38 +1,38 @@
-#LPC-2124 CPU
-
-if { [info exists CHIPNAME] } {
- set _CHIPNAME $CHIPNAME
-} else {
- set _CHIPNAME lpc2124
-}
-
-if { [info exists ENDIAN] } {
- set _ENDIAN $ENDIAN
-} else {
- set _ENDIAN little
-}
-
-if { [info exists CPUTAPID ] } {
- set _CPUTAPID $CPUTAPID
-} else {
- # force an error till we get a good number
- set _CPUTAPID 0x4f1f0f0f
-}
-
-
-#use combined on interfaces or targets that can't set TRST/SRST separately
-reset_config trst_and_srst srst_pulls_trst
-jtag_nsrst_delay 10
-jtag_khz 1000
-
-#jtag scan chain
-jtag newtap $_CHIPNAME cpu -irlen 4 -ircapture 0x1 -irmask 0xf -expected-id $_CPUTAPID
-
-set _TARGETNAME [format "%s.cpu" $_CHIPNAME]
-target create $_TARGETNAME arm7tdmi -endian $_ENDIAN -chain-position $_TARGETNAME -variant arm7tdmi-s_r4
-
-$_TARGETNAME configure -work-area-virt 0 -work-area-phys 0x40000000 -work-area-size 0x4000 -work-area-backup 0
-
-
-#flash bank <driver> <base> <size> <chip_width> <bus_width>
-flash bank lpc2000 0x0 0x40000 0 0 0 lpc2000_v1 14745 calc_checksum
+#LPC-2124 CPU
+
+if { [info exists CHIPNAME] } {
+ set _CHIPNAME $CHIPNAME
+} else {
+ set _CHIPNAME lpc2124
+}
+
+if { [info exists ENDIAN] } {
+ set _ENDIAN $ENDIAN
+} else {
+ set _ENDIAN little
+}
+
+if { [info exists CPUTAPID ] } {
+ set _CPUTAPID $CPUTAPID
+} else {
+ # force an error till we get a good number
+ set _CPUTAPID 0x4f1f0f0f
+}
+
+
+#use combined on interfaces or targets that can't set TRST/SRST separately
+reset_config trst_and_srst srst_pulls_trst
+jtag_nsrst_delay 10
+jtag_khz 1000
+
+#jtag scan chain
+jtag newtap $_CHIPNAME cpu -irlen 4 -ircapture 0x1 -irmask 0xf -expected-id $_CPUTAPID
+
+set _TARGETNAME [format "%s.cpu" $_CHIPNAME]
+target create $_TARGETNAME arm7tdmi -endian $_ENDIAN -chain-position $_TARGETNAME -variant arm7tdmi-s_r4
+
+$_TARGETNAME configure -work-area-virt 0 -work-area-phys 0x40000000 -work-area-size 0x4000 -work-area-backup 0
+
+
+#flash bank <driver> <base> <size> <chip_width> <bus_width>
+flash bank lpc2000 0x0 0x40000 0 0 0 lpc2000_v1 14745 calc_checksum
Property changes on: trunk/src/target/target/lpc2124.cfg
___________________________________________________________________
Name: svn:eol-style
+ native
Modified: trunk/src/target/target/lpc2378.cfg
===================================================================
--- trunk/src/target/target/lpc2378.cfg 2009-04-20 10:52:08 UTC (rev 1477)
+++ trunk/src/target/target/lpc2378.cfg 2009-04-20 22:38:27 UTC (rev 1478)
@@ -1,49 +1,49 @@
-# NXP LPC2378 ARM7TDMI-S with 512kB Flash and 32kB Local On-Chip SRAM (58kB total), clocked with 4MHz internal RC oscillator
-
-if { [info exists CHIPNAME] } {
- set _CHIPNAME $CHIPNAME
-} else {
- set _CHIPNAME lpc2378
-}
-
-if { [info exists ENDIAN] } {
- set _ENDIAN $ENDIAN
-} else {
- set _ENDIAN little
-}
-
-if { [info exists CPUTAPID ] } {
- set _CPUTAPID $CPUTAPID
-} else {
- set _CPUTAPID 0x4f1f0f0f
-}
-
-#delays on reset lines
-jtag_nsrst_delay 200
-jtag_ntrst_delay 200
-
-# LPC2000 -> SRST causes TRST
-reset_config trst_and_srst srst_pulls_trst
-
-jtag newtap $_CHIPNAME cpu -irlen 4 -ircapture 0x1 -irmask 0xf -expected-id $_CPUTAPID
-
-set _TARGETNAME [format "%s.cpu" $_CHIPNAME]
-target create $_TARGETNAME arm7tdmi -endian $_ENDIAN -chain-position $_TARGETNAME -variant arm7tdmi-s_r4
-
-# LPC2378 has 32kB of SRAM on its main system bus (so-called Local On-Chip SRAM)
-$_TARGETNAME configure -work-area-virt 0 -work-area-phys 0x40000000 -work-area-size 0x8000 -work-area-backup 0
-
-$_TARGETNAME configure -event reset-init {
- # Force target into ARM state
- soft_reset_halt
- #do not remap 0x0000-0x0020 to anything but the flash
- mwb 0xE01FC040 0x01
-}
-
-# LPC2378 has 512kB of FLASH, but upper 8kB are occupied by bootloader.
-# After reset the chip uses its internal 4MHz RC oscillator
-#flash bank lpc2000 <base> <size> 0 0 <target#> <variant>
-flash bank lpc2000 0x0 0x0007D000 0 0 0 lpc2000_v2 4000 calc_checksum
-
-# 4MHz / 6 = 666kHz, so use 500
-jtag_khz 500
+# NXP LPC2378 ARM7TDMI-S with 512kB Flash and 32kB Local On-Chip SRAM (58kB total), clocked with 4MHz internal RC oscillator
+
+if { [info exists CHIPNAME] } {
+ set _CHIPNAME $CHIPNAME
+} else {
+ set _CHIPNAME lpc2378
+}
+
+if { [info exists ENDIAN] } {
+ set _ENDIAN $ENDIAN
+} else {
+ set _ENDIAN little
+}
+
+if { [info exists CPUTAPID ] } {
+ set _CPUTAPID $CPUTAPID
+} else {
+ set _CPUTAPID 0x4f1f0f0f
+}
+
+#delays on reset lines
+jtag_nsrst_delay 200
+jtag_ntrst_delay 200
+
+# LPC2000 -> SRST causes TRST
+reset_config trst_and_srst srst_pulls_trst
+
+jtag newtap $_CHIPNAME cpu -irlen 4 -ircapture 0x1 -irmask 0xf -expected-id $_CPUTAPID
+
+set _TARGETNAME [format "%s.cpu" $_CHIPNAME]
+target create $_TARGETNAME arm7tdmi -endian $_ENDIAN -chain-position $_TARGETNAME -variant arm7tdmi-s_r4
+
+# LPC2378 has 32kB of SRAM on its main system bus (so-called Local On-Chip SRAM)
+$_TARGETNAME configure -work-area-virt 0 -work-area-phys 0x40000000 -work-area-size 0x8000 -work-area-backup 0
+
+$_TARGETNAME configure -event reset-init {
+ # Force target into ARM state
+ soft_reset_halt
+ #do not remap 0x0000-0x0020 to anything but the flash
+ mwb 0xE01FC040 0x01
+}
+
+# LPC2378 has 512kB of FLASH, but upper 8kB are occupied by bootloader.
+# After reset the chip uses its internal 4MHz RC oscillator
+#flash bank lpc2000 <base> <size> 0 0 <target#> <variant>
+flash bank lpc2000 0x0 0x0007D000 0 0 0 lpc2000_v2 4000 calc_checksum
+
+# 4MHz / 6 = 666kHz, so use 500
+jtag_khz 500
Property changes on: trunk/src/target/target/lpc2378.cfg
___________________________________________________________________
Name: svn:eol-style
+ native
|
|
From: oharboe at B. <oh...@ma...> - 2009-04-20 12:52:15
|
Author: oharboe
Date: 2009-04-20 12:52:08 +0200 (Mon, 20 Apr 2009)
New Revision: 1477
Modified:
trunk/src/target/arm7_9_common.c
Log:
Holger Freyther <ze...@se...> Attempt to fix arm7_9 breakpoint handling
Modified: trunk/src/target/arm7_9_common.c
===================================================================
--- trunk/src/target/arm7_9_common.c 2009-04-20 06:40:45 UTC (rev 1476)
+++ trunk/src/target/arm7_9_common.c 2009-04-20 10:52:08 UTC (rev 1477)
@@ -78,6 +78,26 @@
return jtag_execute_queue();
}
+static void arm7_9_assign_wp(arm7_9_common_t *arm7_9, breakpoint_t *breakpoint)
+{
+ if (!arm7_9->wp0_used)
+ {
+ arm7_9->wp0_used = 1;
+ breakpoint->set = 1;
+ arm7_9->wp_available--;
+ }
+ else if (!arm7_9->wp1_used)
+ {
+ arm7_9->wp1_used = 1;
+ breakpoint->set = 2;
+ arm7_9->wp_available--;
+ }
+ else
+ {
+ LOG_ERROR("BUG: no hardware comparator available");
+ }
+}
+
/* set up embedded ice registers */
static int arm7_9_set_software_breakpoints(arm7_9_common_t *arm7_9)
{
@@ -182,6 +202,13 @@
{
/* either an ARM (4 byte) or Thumb (2 byte) breakpoint */
u32 mask = (breakpoint->length == 4) ? 0x3u : 0x1u;
+
+ /* reassign a hw breakpoint */
+ if (breakpoint->set==0)
+ {
+ arm7_9_assign_wp(arm7_9, breakpoint);
+ }
+
if (breakpoint->set==1)
{
embeddedice_set_reg(&arm7_9->eice_cache->reg_list[EICE_W0_ADDR_VALUE], breakpoint->address);
@@ -288,11 +315,13 @@
{
embeddedice_set_reg(&arm7_9->eice_cache->reg_list[EICE_W0_CONTROL_VALUE], 0x0);
arm7_9->wp0_used = 0;
+ arm7_9->wp_available++;
}
else if (breakpoint->set == 2)
{
embeddedice_set_reg(&arm7_9->eice_cache->reg_list[EICE_W1_CONTROL_VALUE], 0x0);
arm7_9->wp1_used = 0;
+ arm7_9->wp_available++;
}
retval = jtag_execute_queue();
breakpoint->set = 0;
@@ -367,22 +396,7 @@
if (breakpoint->type == BKPT_HARD)
{
- arm7_9->wp_available--;
-
- if (!arm7_9->wp0_used)
- {
- arm7_9->wp0_used = 1;
- breakpoint->set = 1;
- }
- else if (!arm7_9->wp1_used)
- {
- arm7_9->wp1_used = 1;
- breakpoint->set = 2;
- }
- else
- {
- LOG_ERROR("BUG: no hardware comparator available");
- }
+ arm7_9_assign_wp(arm7_9, breakpoint);
}
arm7_9->breakpoint_count++;
|
|
From: oharboe at B. <oh...@ma...> - 2009-04-20 08:40:50
|
Author: oharboe
Date: 2009-04-20 08:40:45 +0200 (Mon, 20 Apr 2009)
New Revision: 1476
Modified:
trunk/src/jtag/bitq.c
trunk/src/jtag/ft2232.c
trunk/src/jtag/presto.c
Log:
Zach Welch <zw...@su...> fix ft2232/presto warnings
Modified: trunk/src/jtag/bitq.c
===================================================================
--- trunk/src/jtag/bitq.c 2009-04-19 23:30:15 UTC (rev 1475)
+++ trunk/src/jtag/bitq.c 2009-04-20 06:40:45 UTC (rev 1476)
@@ -39,7 +39,7 @@
bitq_state_t bitq_in_state; /* state of input queue */
u8* bitq_in_buffer; /* buffer dynamically reallocated as needed */
-unsigned long bitq_in_bufsize = 32; /* min. buffer size */
+int bitq_in_bufsize = 32; /* min. buffer size */
/*
* input queue processing does not use jtag_read_buffer() to avoid unnecessary overhead
Modified: trunk/src/jtag/ft2232.c
===================================================================
--- trunk/src/jtag/ft2232.c 2009-04-19 23:30:15 UTC (rev 1475)
+++ trunk/src/jtag/ft2232.c 2009-04-20 06:40:45 UTC (rev 1476)
@@ -158,7 +158,7 @@
{ "stm32stick", stm32stick_init, stm32stick_reset, NULL },
{ "axm0432_jtag", axm0432_jtag_init, axm0432_jtag_reset, NULL },
{"sheevaplug", sheevaplug_init, sheevaplug_reset, NULL },
- { NULL, NULL, NULL },
+ { NULL, NULL, NULL, NULL },
};
static u8 nTRST, nTRSTnOE, nSRST, nSRSTnOE;
@@ -233,7 +233,7 @@
}
-int ft2232_read(u8* buf, int size, u32* bytes_read)
+int ft2232_read(u8* buf, u32 size, u32* bytes_read)
{
#if BUILD_FT2232_FTD2XX == 1
DWORD dw_bytes_read;
@@ -1607,7 +1607,7 @@
if (status == FT_OK)
{
char** desc_array = malloc( sizeof(char*) * (num_devices + 1) );
- int i;
+ u32 i;
for (i = 0; i < num_devices; i++)
desc_array[i] = malloc(64);
Modified: trunk/src/jtag/presto.c
===================================================================
--- trunk/src/jtag/presto.c 2009-04-19 23:30:15 UTC (rev 1475)
+++ trunk/src/jtag/presto.c 2009-04-20 06:40:45 UTC (rev 1476)
@@ -138,7 +138,7 @@
0x80, 0xA0, 0xA8, 0xB0, 0xC0, 0xE0
};
-int presto_write(u8 *buf, int size)
+int presto_write(u8 *buf, u32 size)
{
#if BUILD_PRESTO_FTD2XX == 1
DWORD ftbytes;
@@ -160,14 +160,14 @@
if (ftbytes != size)
{
- LOG_ERROR("couldn't write the requested number of bytes to PRESTO (%i < %i)", ftbytes, size);
+ LOG_ERROR("couldn't write the requested number of bytes to PRESTO (%u < %u)", (u32)ftbytes, size);
return ERROR_JTAG_DEVICE_ERROR;
}
return ERROR_OK;
}
-int presto_read(u8* buf, int size)
+int presto_read(u8* buf, u32 size)
{
#if BUILD_PRESTO_FTD2XX == 1
DWORD ftbytes;
@@ -202,7 +202,7 @@
if (ftbytes != size)
{
/* this is just a warning, there might have been timeout when detecting PRESTO, which is not fatal */
- LOG_WARNING("couldn't read the requested number of bytes from PRESTO (%i < %i)", ftbytes, size);
+ LOG_WARNING("couldn't read the requested number of bytes from PRESTO (%u < %u)", (u32)ftbytes, size);
return ERROR_JTAG_DEVICE_ERROR;
}
@@ -212,7 +212,7 @@
#if BUILD_PRESTO_FTD2XX == 1
int presto_open_ftd2xx(char *req_serial)
{
- int i;
+ u32 i;
DWORD numdevs;
DWORD vidpid;
char devname[FT_DEVICE_NAME_LEN];
@@ -238,7 +238,7 @@
return ERROR_JTAG_DEVICE_ERROR;
}
- LOG_DEBUG("FTDI devices available: %i", numdevs);
+ LOG_DEBUG("FTDI devices available: %lu", numdevs);
for (i = 0; i < numdevs; i++)
{
if ((presto->status = FT_Open(i, &(presto->handle))) != FT_OK)
@@ -257,7 +257,7 @@
break;
}
else
- LOG_DEBUG("FT_GetDeviceInfo failed: %i", presto->status);
+ LOG_DEBUG("FT_GetDeviceInfo failed: %lu", presto->status);
LOG_DEBUG("FTDI device %i does not match, closing", i);
FT_Close(presto->handle);
|
|
From: <oh...@ma...> - 2009-04-20 01:30:18
|
Author: oharboe Date: 2009-04-20 01:30:15 +0200 (Mon, 20 Apr 2009) New Revision: 1475 Modified: trunk/src/jtag/jlink.c Log: Nikolay Shadrin whoney at gmail.com, Zach Welch <zw...@su...> unstable USB J-Link in OpenOCD (revised patch provided) Modified: trunk/src/jtag/jlink.c =================================================================== --- trunk/src/jtag/jlink.c 2009-04-19 23:27:17 UTC (rev 1474) +++ trunk/src/jtag/jlink.c 2009-04-19 23:30:15 UTC (rev 1475) @@ -115,7 +115,7 @@ void jlink_usb_close(jlink_jtag_t *jlink_jtag); int jlink_usb_message(jlink_jtag_t *jlink_jtag, int out_length, int in_length); int jlink_usb_write(jlink_jtag_t *jlink_jtag, int out_length); -int jlink_usb_read(jlink_jtag_t *jlink_jtag); +int jlink_usb_read(jlink_jtag_t *jlink_jtag, int expected_size); int jlink_usb_read_emu_result(jlink_jtag_t *jlink_jtag); /* helper functions */ @@ -497,7 +497,7 @@ int result; jlink_simple_command(EMU_CMD_GET_STATE); - result = jlink_usb_read(jlink_jtag_handle); + result = jlink_usb_read(jlink_jtag_handle, 8); if (result == 8) { @@ -527,12 +527,12 @@ /* query hardware version */ jlink_simple_command(EMU_CMD_VERSION); - result = jlink_usb_read(jlink_jtag_handle); + result = jlink_usb_read(jlink_jtag_handle, 2); if (result == 2) { len = buf_get_u32(usb_in_buffer, 0, 16); - result = jlink_usb_read(jlink_jtag_handle); + result = jlink_usb_read(jlink_jtag_handle, len); if (result == len) { @@ -806,7 +806,7 @@ result = jlink_usb_write(jlink_jtag, out_length); if (result == out_length) { - result = jlink_usb_read(jlink_jtag); + result = jlink_usb_read(jlink_jtag, in_length); if (result == in_length || result == in_length+1) { if (result == in_length) @@ -859,6 +859,54 @@ } } +int usb_bulk_write_ex(usb_dev_handle *dev, int ep, char *bytes, int size, + int timeout) { + + int rc = 0, tries = 3, this_size; + + while (tries && size) { + + this_size = usb_bulk_write (dev, ep, bytes, size, timeout); + + if (this_size > 0) { + + size -= this_size; + rc += this_size; + bytes += this_size; + + } else + tries --; + } + + return rc; + + +} + +int usb_bulk_read_ex(usb_dev_handle *dev, int ep, char *bytes, int size, + int timeout) { + + int rc = 0, tries = 3, this_size; + + while (tries && size) { + + this_size = usb_bulk_read (dev, ep, bytes, size, timeout); + + if (this_size > 0) { + + size -= this_size; + rc += this_size; + bytes += this_size; + + } else + tries --; + } + + return rc; + +} + + /* Write data from out_buffer to USB. */ int jlink_usb_write(jlink_jtag_t *jlink_jtag, int out_length) { @@ -870,7 +918,7 @@ return -1; } - result = usb_bulk_write(jlink_jtag->usb_handle, JLINK_WRITE_ENDPOINT, + result = usb_bulk_write_ex(jlink_jtag->usb_handle, JLINK_WRITE_ENDPOINT, (char *)usb_out_buffer, out_length, JLINK_USB_TIMEOUT); DEBUG_JTAG_IO("jlink_usb_write, out_length = %d, result = %d", out_length, result); @@ -882,10 +930,10 @@ } /* Read data from USB into in_buffer. */ -int jlink_usb_read(jlink_jtag_t *jlink_jtag) +int jlink_usb_read(jlink_jtag_t *jlink_jtag, int expected_size) { - int result = usb_bulk_read(jlink_jtag->usb_handle, JLINK_READ_ENDPOINT, - (char *)usb_in_buffer, JLINK_IN_BUFFER_SIZE, JLINK_USB_TIMEOUT); + int result = usb_bulk_read_ex(jlink_jtag->usb_handle, JLINK_READ_ENDPOINT, + (char *)usb_in_buffer, expected_size, JLINK_USB_TIMEOUT); DEBUG_JTAG_IO("jlink_usb_read, result = %d", result); @@ -898,8 +946,8 @@ /* Read the result from the previous EMU cmd into result_buffer. */ int jlink_usb_read_emu_result(jlink_jtag_t *jlink_jtag) { - int result = usb_bulk_read(jlink_jtag->usb_handle, JLINK_READ_ENDPOINT, - (char *)usb_emu_result_buffer, JLINK_EMU_RESULT_BUFFER_SIZE, + int result = usb_bulk_read_ex(jlink_jtag->usb_handle, JLINK_READ_ENDPOINT, + (char *)usb_emu_result_buffer, 1 /* JLINK_EMU_RESULT_BUFFER_SIZE */, JLINK_USB_TIMEOUT); DEBUG_JTAG_IO("jlink_usb_read_result, result = %d", result); |
|
From: <oh...@ma...> - 2009-04-20 01:27:19
|
Author: oharboe
Date: 2009-04-20 01:27:17 +0200 (Mon, 20 Apr 2009)
New Revision: 1474
Modified:
trunk/src/target/armv4_5.h
Log:
Zach Welch <zw...@su...> use ARM4_5_MODE_ANY instead of -1
Modified: trunk/src/target/armv4_5.h
===================================================================
--- trunk/src/target/armv4_5.h 2009-04-19 21:04:34 UTC (rev 1473)
+++ trunk/src/target/armv4_5.h 2009-04-19 23:27:17 UTC (rev 1474)
@@ -133,7 +133,7 @@
case 6: return ARMV4_5_MODE_SYS; break;
default:
LOG_ERROR("mode index out of bounds");
- return -1;
+ return ARMV4_5_MODE_ANY;
}
};
|
|
From: <oh...@ma...> - 2009-04-19 23:04:36
|
Author: oharboe
Date: 2009-04-19 23:04:34 +0200 (Sun, 19 Apr 2009)
New Revision: 1473
Modified:
trunk/configure.in
Log:
Zach Welch <zw...@su...> treat warnings as errors
Modified: trunk/configure.in
===================================================================
--- trunk/configure.in 2009-04-19 20:51:16 UTC (rev 1472)
+++ trunk/configure.in 2009-04-19 21:04:34 UTC (rev 1473)
@@ -178,9 +178,18 @@
)
AC_ARG_ENABLE(gccwarnings,
- AS_HELP_STRING([--enable-gccwarnings], [Enable compiler warnings, default yes]),
+ AS_HELP_STRING([--disable-gccwarnings], [Disable compiler warnings]),
[gcc_warnings=$enableval], [gcc_warnings=yes])
+AC_ARG_ENABLE(wextra,
+ AS_HELP_STRING([--disable-wextra], [Disable extra compiler warnings]),
+ [gcc_wextra=$enableval], [gcc_wextra=$gcc_warnings])
+
+AC_ARG_ENABLE(werror,
+ AS_HELP_STRING([--disable-werror], [Do not treat warnings as errors]),
+ [gcc_werror=$enableval], [gcc_werror=$gcc_warnings])
+
+
AC_ARG_ENABLE(parport,
AS_HELP_STRING([--enable-parport], [Enable building the pc parallel port driver]),
[build_parport=$enableval], [build_parport=no])
@@ -684,6 +693,12 @@
# set default gcc warnings
GCC_WARNINGS="-Wall -Wstrict-prototypes"
+if test "${gcc_wextra}" = yes; then
+ GCC_WARNINGS="${GCC_WARNINGS} -Wextra -Wno-unused-parameter"
+fi
+if test "${gcc_werror}" = yes; then
+ GCC_WARNINGS="${GCC_WARNINGS} -Werror"
+fi
# overide default gcc cflags
if test $gcc_warnings = yes; then
|
|
From: <oh...@ma...> - 2009-04-19 22:51:30
|
Author: oharboe
Date: 2009-04-19 22:51:16 +0200 (Sun, 19 Apr 2009)
New Revision: 1472
Modified:
trunk/src/helper/binarybuffer.c
trunk/src/jtag/jtag.c
trunk/src/jtag/rlink/rlink.c
trunk/src/pld/virtex2.c
trunk/src/pld/xilinx_bit.c
trunk/src/server/gdb_server.c
trunk/src/svf/svf.c
trunk/src/target/arm720t.h
trunk/src/target/arm7_9_common.c
trunk/src/target/arm7_9_common.h
trunk/src/target/arm920t.h
trunk/src/target/arm926ejs.h
trunk/src/target/arm_jtag.h
trunk/src/target/armv4_5.c
trunk/src/target/armv7m.c
trunk/src/target/cortex_m3.c
trunk/src/target/embeddedice.c
trunk/src/target/etb.c
trunk/src/target/etb.h
trunk/src/target/etm.c
trunk/src/target/feroceon.c
trunk/src/target/mips32.h
trunk/src/target/mips_ejtag.c
trunk/src/target/oocd_trace.c
trunk/src/target/register.h
trunk/src/target/target.c
trunk/src/target/target_request.c
trunk/src/target/trace.c
trunk/src/target/trace.h
trunk/src/target/xscale.c
trunk/src/xsvf/xsvf.c
Log:
Zach Welch <zw...@su...> fix -Werror warnings
Modified: trunk/src/helper/binarybuffer.c
===================================================================
--- trunk/src/helper/binarybuffer.c 2009-04-19 19:15:09 UTC (rev 1471)
+++ trunk/src/helper/binarybuffer.c 2009-04-19 20:51:16 UTC (rev 1472)
@@ -55,7 +55,7 @@
u8* buf_cpy(u8 *from, u8 *to, int size)
{
- int num_bytes = CEIL(size, 8);
+ unsigned int num_bytes = CEIL(size, 8);
unsigned int i;
if (from == NULL)
@@ -244,7 +244,7 @@
int str_to_buf(const char *str, int str_len, u8 *buf, int buf_len, int radix)
{
char *charbuf;
- u32 tmp;
+ char tmp;
float factor;
u8 *b256_buf;
int b256_len;
Modified: trunk/src/jtag/jtag.c
===================================================================
--- trunk/src/jtag/jtag.c 2009-04-19 19:15:09 UTC (rev 1471)
+++ trunk/src/jtag/jtag.c 2009-04-19 20:51:16 UTC (rev 1472)
@@ -1758,7 +1758,7 @@
jteap = tap->event_action;
/* replace existing? */
while (jteap) {
- if (jteap->event == n->value) {
+ if (jteap->event == (enum jtag_tap_event)n->value) {
break;
}
jteap = jteap->next;
Modified: trunk/src/jtag/rlink/rlink.c
===================================================================
--- trunk/src/jtag/rlink/rlink.c 2009-04-19 19:15:09 UTC (rev 1471)
+++ trunk/src/jtag/rlink/rlink.c 2009-04-19 20:51:16 UTC (rev 1472)
@@ -268,7 +268,7 @@
USB_TIMEOUT_MS
);
- if(usb_ret < sizeof(usb_buffer)) {
+ if((size_t)usb_ret < sizeof(usb_buffer)) {
break;
}
@@ -363,7 +363,7 @@
buffer += sizeof(*header);
length -= sizeof(*header);
- if(length < header->length + 1) {
+ if(length < (size_t)header->length + 1) {
LOG_ERROR("Malformed DTC image\n");
exit(1);
}
@@ -605,8 +605,8 @@
struct {
dtc_reply_queue_entry_t *rq_head;
dtc_reply_queue_entry_t *rq_tail;
- int cmd_index;
- int reply_index;
+ u32 cmd_index;
+ u32 reply_index;
u8 cmd_buffer[USB_EP2BANK_SIZE];
} dtc_queue;
@@ -617,7 +617,7 @@
static
struct {
- int length;
+ u32 length;
u32 buffer;
} tap_state_queue;
Modified: trunk/src/pld/virtex2.c
===================================================================
--- trunk/src/pld/virtex2.c 2009-04-19 19:15:09 UTC (rev 1471)
+++ trunk/src/pld/virtex2.c 2009-04-19 20:51:16 UTC (rev 1472)
@@ -161,7 +161,7 @@
virtex2_pld_device_t *virtex2_info = pld_device->driver_priv;
xilinx_bit_file_t bit_file;
int retval;
- int i;
+ unsigned int i;
scan_field_t field;
Modified: trunk/src/pld/xilinx_bit.c
===================================================================
--- trunk/src/pld/xilinx_bit.c 2009-04-19 19:15:09 UTC (rev 1471)
+++ trunk/src/pld/xilinx_bit.c 2009-04-19 20:51:16 UTC (rev 1472)
@@ -40,7 +40,7 @@
int read_section(FILE *input_file, int length_size, char section, u32 *buffer_length, u8 **buffer)
{
u8 length_buffer[4];
- u32 length;
+ int length;
char section_char;
int read_count;
Modified: trunk/src/server/gdb_server.c
===================================================================
--- trunk/src/server/gdb_server.c 2009-04-19 19:15:09 UTC (rev 1471)
+++ trunk/src/server/gdb_server.c 2009-04-19 20:51:16 UTC (rev 1472)
@@ -348,7 +348,7 @@
char local_buffer[1024];
local_buffer[0] = '$';
- if (len+4 <= sizeof(local_buffer))
+ if ((size_t)len + 4 <= sizeof(local_buffer))
{
/* performance gain on smaller packets by only a single call to gdb_write() */
memcpy(local_buffer+1, buffer, len++);
@@ -1213,7 +1213,7 @@
{
hex_buffer = malloc(len * 2 + 1);
- int i;
+ u32 i;
for (i = 0; i < len; i++)
{
u8 t = buffer[i];
@@ -1243,7 +1243,7 @@
u8 *buffer;
- int i;
+ u32 i;
int retval;
/* skip command character */
@@ -1540,12 +1540,12 @@
int gdb_calc_blocksize(flash_bank_t *bank)
{
- int i;
- int block_size = 0xffffffff;
+ u32 i;
+ u32 block_size = 0xffffffff;
/* loop through all sectors and return smallest sector size */
- for (i = 0; i < bank->num_sectors; i++)
+ for (i = 0; i < (u32)bank->num_sectors; i++)
{
if (bank->sectors[i].size < block_size)
block_size = bank->sectors[i].size;
Modified: trunk/src/svf/svf.c
===================================================================
--- trunk/src/svf/svf.c 2009-04-19 19:15:09 UTC (rev 1471)
+++ trunk/src/svf/svf.c 2009-04-19 20:51:16 UTC (rev 1472)
@@ -103,7 +103,7 @@
"ABSENT"
};
-char *svf_tap_state_name[16];
+char *svf_tap_state_name[TAP_NUM_STATES];
#define XXR_TDI (1 << 0)
#define XXR_TDO (1 << 1)
@@ -316,7 +316,7 @@
svf_buffer_size = 2 * SVF_MAX_BUFFER_SIZE_TO_COMMIT;
memcpy(&svf_para, &svf_para_init, sizeof(svf_para));
- for (i = 0; i < dimof(svf_tap_state_name); i++)
+ for (i = 0; i < (int)dimof(svf_tap_state_name); i++)
{
svf_tap_state_name[i] = (char *)tap_state_name(i);
}
@@ -515,7 +515,7 @@
static int svf_tap_state_is_valid(tap_state_t state)
{
- return ((state >= 0) && (state < sizeof(svf_tap_state_name)));
+ return state >= 0 && state < TAP_NUM_STATES;
}
static int svf_find_string_in_array(char *str, char **strs, int num_of_element)
Modified: trunk/src/target/arm720t.h
===================================================================
--- trunk/src/target/arm720t.h 2009-04-19 19:15:09 UTC (rev 1471)
+++ trunk/src/target/arm720t.h 2009-04-19 20:51:16 UTC (rev 1472)
@@ -32,7 +32,7 @@
typedef struct arm720t_common_s
{
- int common_magic;
+ u32 common_magic;
armv4_5_mmu_common_t armv4_5_mmu;
arm7tdmi_common_t arm7tdmi_common;
u32 cp15_control_reg;
Modified: trunk/src/target/arm7_9_common.c
===================================================================
--- trunk/src/target/arm7_9_common.c 2009-04-19 19:15:09 UTC (rev 1471)
+++ trunk/src/target/arm7_9_common.c 2009-04-19 20:51:16 UTC (rev 1472)
@@ -655,7 +655,8 @@
arm7_9_common_t *arm7_9 = armv4_5->arch_info;
arm_jtag_t *jtag_info = &arm7_9->jtag_info;
u32 *data;
- int i, retval = ERROR_OK;
+ int retval = ERROR_OK;
+ u32 i;
data = malloc(size * (sizeof(u32)));
@@ -1956,7 +1957,7 @@
arm7_9_common_t *arm7_9 = armv4_5->arch_info;
u32 reg[16];
- int num_accesses = 0;
+ u32 num_accesses = 0;
int thisrun_accesses;
int i;
u32 cpsr;
@@ -2133,7 +2134,7 @@
reg_t *dbg_ctrl = &arm7_9->eice_cache->reg_list[EICE_DBG_CTRL];
u32 reg[16];
- int num_accesses = 0;
+ u32 num_accesses = 0;
int thisrun_accesses;
int i;
u32 cpsr;
@@ -2466,7 +2467,7 @@
0x04C11DB7 /* CRC32XOR: .word 0x04C11DB7 */
};
- int i;
+ u32 i;
if (target_alloc_working_area(target, sizeof(arm7_9_crc_code), &crc_algorithm) != ERROR_OK)
{
@@ -2518,7 +2519,7 @@
reg_param_t reg_params[3];
armv4_5_algorithm_t armv4_5_info;
int retval;
- int i;
+ u32 i;
u32 erase_check_code[] =
{
Modified: trunk/src/target/arm7_9_common.h
===================================================================
--- trunk/src/target/arm7_9_common.h 2009-04-19 19:15:09 UTC (rev 1471)
+++ trunk/src/target/arm7_9_common.h 2009-04-19 20:51:16 UTC (rev 1472)
@@ -40,7 +40,7 @@
typedef struct arm7_9_common_s
{
- int common_magic;
+ u32 common_magic;
arm_jtag_t jtag_info;
reg_cache_t *eice_cache;
Modified: trunk/src/target/arm920t.h
===================================================================
--- trunk/src/target/arm920t.h 2009-04-19 19:15:09 UTC (rev 1471)
+++ trunk/src/target/arm920t.h 2009-04-19 20:51:16 UTC (rev 1472)
@@ -32,7 +32,7 @@
typedef struct arm920t_common_s
{
- int common_magic;
+ u32 common_magic;
armv4_5_mmu_common_t armv4_5_mmu;
arm9tdmi_common_t arm9tdmi_common;
u32 cp15_control_reg;
Modified: trunk/src/target/arm926ejs.h
===================================================================
--- trunk/src/target/arm926ejs.h 2009-04-19 19:15:09 UTC (rev 1471)
+++ trunk/src/target/arm926ejs.h 2009-04-19 20:51:16 UTC (rev 1472)
@@ -32,7 +32,7 @@
typedef struct arm926ejs_common_s
{
- int common_magic;
+ u32 common_magic;
armv4_5_mmu_common_t armv4_5_mmu;
arm9tdmi_common_t arm9tdmi_common;
int (*read_cp15)(target_t *target, u32 op1, u32 op2, u32 CRn, u32 CRm, u32 *value);
Modified: trunk/src/target/arm_jtag.h
===================================================================
--- trunk/src/target/arm_jtag.h 2009-04-19 19:15:09 UTC (rev 1471)
+++ trunk/src/target/arm_jtag.h 2009-04-19 20:51:16 UTC (rev 1472)
@@ -30,9 +30,9 @@
{
jtag_tap_t *tap;
- int scann_size;
+ u32 scann_size;
u32 scann_instr;
- int cur_scan_chain;
+ u32 cur_scan_chain;
u32 intest_instr;
} arm_jtag_t;
Modified: trunk/src/target/armv4_5.c
===================================================================
--- trunk/src/target/armv4_5.c 2009-04-19 19:15:09 UTC (rev 1471)
+++ trunk/src/target/armv4_5.c 2009-04-19 20:51:16 UTC (rev 1472)
@@ -231,7 +231,7 @@
}
}
- if (armv4_5_target->core_mode != (value & 0x1f))
+ if (armv4_5_target->core_mode != (enum armv4_5_mode)(value & 0x1f))
{
LOG_DEBUG("changing ARM core mode to '%s'", armv4_5_mode_strings[armv4_5_mode_to_number(value & 0x1f)]);
armv4_5_target->core_mode = value & 0x1f;
Modified: trunk/src/target/armv7m.c
===================================================================
--- trunk/src/target/armv7m.c 2009-04-19 19:15:09 UTC (rev 1471)
+++ trunk/src/target/armv7m.c 2009-04-19 20:51:16 UTC (rev 1472)
@@ -591,7 +591,7 @@
0x1DB7, 0x04C1 /* CRC32XOR: .word 0x04C11DB7 */
};
- int i;
+ u32 i;
if (target_alloc_working_area(target, sizeof(cortex_m3_crc_code), &crc_algorithm) != ERROR_OK)
{
@@ -640,7 +640,7 @@
reg_param_t reg_params[3];
armv7m_algorithm_t armv7m_info;
int retval;
- int i;
+ u32 i;
u16 erase_check_code[] =
{
Modified: trunk/src/target/cortex_m3.c
===================================================================
--- trunk/src/target/cortex_m3.c 2009-04-19 19:15:09 UTC (rev 1471)
+++ trunk/src/target/cortex_m3.c 2009-04-19 20:51:16 UTC (rev 1472)
@@ -1475,7 +1475,7 @@
swjdp_common_t *swjdp = &cortex_m3->swjdp_info;
u8 data;
u8 ctrl;
- int i;
+ u32 i;
for (i = 0; i < (size * 4); i++)
{
Modified: trunk/src/target/embeddedice.c
===================================================================
--- trunk/src/target/embeddedice.c 2009-04-19 19:15:09 UTC (rev 1471)
+++ trunk/src/target/embeddedice.c 2009-04-19 20:51:16 UTC (rev 1472)
@@ -484,7 +484,7 @@
u8 field1_out[1];
u8 field2_out[1];
int retval;
- int hsact;
+ u32 hsact;
struct timeval lap;
struct timeval now;
@@ -544,7 +544,7 @@
gettimeofday(&now, NULL);
}
- while ((now.tv_sec-lap.tv_sec)*1000 + (now.tv_usec-lap.tv_usec)/1000 <= timeout);
+ while ((u32)((now.tv_sec-lap.tv_sec)*1000 + (now.tv_usec-lap.tv_usec)/1000) <= timeout);
return ERROR_TARGET_TIMEOUT;
}
Modified: trunk/src/target/etb.c
===================================================================
--- trunk/src/target/etb.c 2009-04-19 19:15:09 UTC (rev 1471)
+++ trunk/src/target/etb.c 2009-04-19 20:51:16 UTC (rev 1472)
@@ -453,7 +453,7 @@
arm7_9->etm_ctx->capture_driver_priv = etb;
etb->tap = tap;
- etb->cur_scan_chain = -1;
+ etb->cur_scan_chain = ~0UL;
etb->reg_cache = NULL;
etb->ram_width = 0;
etb->ram_depth = 0;
Modified: trunk/src/target/etb.h
===================================================================
--- trunk/src/target/etb.h 2009-04-19 19:15:09 UTC (rev 1471)
+++ trunk/src/target/etb.h 2009-04-19 20:51:16 UTC (rev 1472)
@@ -46,17 +46,17 @@
{
etm_context_t *etm_ctx;
jtag_tap_t *tap;
- int cur_scan_chain;
+ u32 cur_scan_chain;
reg_cache_t *reg_cache;
/* ETB parameters */
- int ram_depth;
- int ram_width;
+ u32 ram_depth;
+ u32 ram_width;
} etb_t;
typedef struct etb_reg_s
{
- int addr;
+ u32 addr;
etb_t *etb;
} etb_reg_t;
Modified: trunk/src/target/etm.c
===================================================================
--- trunk/src/target/etm.c 2009-04-19 19:15:09 UTC (rev 1471)
+++ trunk/src/target/etm.c 2009-04-19 20:51:16 UTC (rev 1472)
@@ -647,7 +647,7 @@
u8 packet;
int shift = 0;
int apo;
- int i;
+ u32 i;
/* quit analysis if less than two cycles are left in the trace
* because we can't extract the APO */
@@ -998,7 +998,7 @@
if (((instruction.type == ARM_B) ||
(instruction.type == ARM_BL) ||
(instruction.type == ARM_BLX)) &&
- (instruction.info.b_bl_bx_blx.target_address != -1))
+ (instruction.info.b_bl_bx_blx.target_address != ~0UL))
{
next_pc = instruction.info.b_bl_bx_blx.target_address;
}
@@ -1543,7 +1543,7 @@
armv4_5_common_t *armv4_5;
arm7_9_common_t *arm7_9;
etm_context_t *etm_ctx;
- int i;
+ u32 i;
if (argc != 1)
{
@@ -1611,7 +1611,7 @@
armv4_5_common_t *armv4_5;
arm7_9_common_t *arm7_9;
etm_context_t *etm_ctx;
- int i;
+ u32 i;
if (argc != 1)
{
Modified: trunk/src/target/feroceon.c
===================================================================
--- trunk/src/target/feroceon.c 2009-04-19 19:15:09 UTC (rev 1471)
+++ trunk/src/target/feroceon.c 2009-04-19 20:51:16 UTC (rev 1472)
@@ -517,7 +517,7 @@
arm7_9_common_t *arm7_9 = armv4_5->arch_info;
enum armv4_5_state core_state = armv4_5->core_state;
u32 x, flip, shift, save[7];
- int i;
+ u32 i;
/*
* We can't use the dcc flow control bits, so let's transfer data
@@ -547,7 +547,7 @@
0xeafffff3, /* b 3b */
};
- int dcc_size = sizeof(dcc_code);
+ u32 dcc_size = sizeof(dcc_code);
if (!arm7_9->dcc_downloads)
return target->type->write_memory(target, address, 4, count, buffer);
Modified: trunk/src/target/mips32.h
===================================================================
--- trunk/src/target/mips32.h 2009-04-19 19:15:09 UTC (rev 1471)
+++ trunk/src/target/mips32.h 2009-04-19 20:51:16 UTC (rev 1472)
@@ -47,7 +47,7 @@
typedef struct mips32_common_s
{
- int common_magic;
+ u32 common_magic;
void *arch_info;
reg_cache_t *core_cache;
mips_ejtag_t ejtag_info;
Modified: trunk/src/target/mips_ejtag.c
===================================================================
--- trunk/src/target/mips_ejtag.c 2009-04-19 19:15:09 UTC (rev 1471)
+++ trunk/src/target/mips_ejtag.c 2009-04-19 20:51:16 UTC (rev 1472)
@@ -40,7 +40,7 @@
if (tap==NULL)
return ERROR_FAIL;
- if (buf_get_u32(tap->cur_instr, 0, tap->ir_length) != new_instr)
+ if (buf_get_u32(tap->cur_instr, 0, tap->ir_length) != (u32)new_instr)
{
scan_field_t field;
u8 t[4];
Modified: trunk/src/target/oocd_trace.c
===================================================================
--- trunk/src/target/oocd_trace.c 2009-04-19 19:15:09 UTC (rev 1471)
+++ trunk/src/target/oocd_trace.c 2009-04-19 20:51:16 UTC (rev 1472)
@@ -78,7 +78,8 @@
int oocd_trace_read_memory(oocd_trace_t *oocd_trace, u8 *data, u32 address, u32 size)
{
- size_t bytes_written, bytes_read, bytes_to_read;
+ size_t bytes_written, bytes_to_read;
+ ssize_t bytes_read;
u8 cmd;
oocd_trace_write_reg(oocd_trace, OOCD_TRACE_ADDRESS, address);
@@ -188,7 +189,7 @@
u32 first_frame = 0x0;
u32 num_frames = 1048576;
u8 *trace_data;
- int i;
+ u32 i;
oocd_trace_read_reg(oocd_trace, OOCD_TRACE_STATUS, &status);
oocd_trace_read_reg(oocd_trace, OOCD_TRACE_ADDRESS, &address);
Modified: trunk/src/target/register.h
===================================================================
--- trunk/src/target/register.h 2009-04-19 19:15:09 UTC (rev 1471)
+++ trunk/src/target/register.h 2009-04-19 20:51:16 UTC (rev 1472)
@@ -40,7 +40,7 @@
u8 *value;
int dirty;
int valid;
- int size;
+ u32 size;
bitfield_desc_t *bitfield_desc;
int num_bitfields;
void *arch_info;
Modified: trunk/src/target/target.c
===================================================================
--- trunk/src/target/target.c 2009-04-19 19:15:09 UTC (rev 1471)
+++ trunk/src/target/target.c 2009-04-19 20:51:16 UTC (rev 1472)
@@ -985,7 +985,7 @@
/* handle unaligned head bytes */
if (address % 4)
{
- int unaligned = 4 - (address % 4);
+ u32 unaligned = 4 - (address % 4);
if (unaligned > size)
unaligned = size;
@@ -1060,7 +1060,7 @@
/* handle unaligned head bytes */
if (address % 4)
{
- int unaligned = 4 - (address % 4);
+ u32 unaligned = 4 - (address % 4);
if (unaligned > size)
unaligned = size;
@@ -1100,7 +1100,7 @@
{
u8 *buffer;
int retval;
- int i;
+ u32 i;
u32 checksum = 0;
if (!target->type->examined)
{
@@ -2273,7 +2273,7 @@
retval = target->type->read_memory(target, image.sections[i].base_address, size, count, data);
if (retval == ERROR_OK)
{
- int t;
+ u32 t;
for (t = 0; t < buf_cnt; t++)
{
if (data[t] != buffer[t])
@@ -2508,9 +2508,9 @@
}
/* Dump a gmon.out histogram file. */
-static void writeGmon(u32 *samples, int sampleNum, char *filename)
+static void writeGmon(u32 *samples, u32 sampleNum, char *filename)
{
- int i;
+ u32 i;
FILE *f=fopen(filename, "w");
if (f==NULL)
return;
@@ -2539,8 +2539,8 @@
int addressSpace=(max-min+1);
- static int const maxBuckets=256*1024; /* maximum buckets. */
- int length=addressSpace;
+ static const u32 maxBuckets = 256 * 1024; /* maximum buckets. */
+ u32 length = addressSpace;
if (length > maxBuckets)
{
length=maxBuckets;
@@ -2747,7 +2747,8 @@
u32 v;
const char *varname;
u8 buffer[4096];
- int i, n, e, retval;
+ int n, e, retval;
+ u32 i;
/* argv[1] = name of array to receive the data
* argv[2] = desired width
@@ -2928,7 +2929,8 @@
u32 v;
const char *varname;
u8 buffer[4096];
- int i, n, e, retval;
+ int n, e, retval;
+ u32 i;
/* argv[1] = name of array to get the data
* argv[2] = desired width
@@ -3200,7 +3202,7 @@
teap = target->event_action;
/* replace existing? */
while( teap ){
- if( teap->event == n->value ){
+ if( teap->event == (enum target_event)n->value ){
break;
}
teap = teap->next;
Modified: trunk/src/target/target_request.c
===================================================================
--- trunk/src/target/target_request.c 2009-04-19 19:15:09 UTC (rev 1471)
+++ trunk/src/target/target_request.c 2009-04-19 20:51:16 UTC (rev 1472)
@@ -73,7 +73,7 @@
char line[128];
int line_len;
debug_msg_receiver_t *c = target->dbgmsg;
- int i;
+ u32 i;
LOG_DEBUG("size: %i, length: %i", size, length);
Modified: trunk/src/target/trace.c
===================================================================
--- trunk/src/target/trace.c 2009-04-19 19:15:09 UTC (rev 1471)
+++ trunk/src/target/trace.c 2009-04-19 20:51:16 UTC (rev 1472)
@@ -31,7 +31,7 @@
#include <string.h>
#include <inttypes.h>
-int trace_point(target_t *target, int number)
+int trace_point(target_t *target, u32 number)
{
trace_t *trace = target->trace_info;
@@ -60,7 +60,7 @@
if (argc == 0)
{
- int i;
+ u32 i;
for (i = 0; i < trace->num_trace_points; i++)
{
@@ -125,9 +125,9 @@
}
else
{
- int i;
- int first = 0;
- int last = trace->trace_history_pos;
+ u32 i;
+ u32 first = 0;
+ u32 last = trace->trace_history_pos;
if ( !trace->trace_history_size ) {
command_print(cmd_ctx, "trace history buffer is not allocated");
Modified: trunk/src/target/trace.h
===================================================================
--- trunk/src/target/trace.h 2009-04-19 19:15:09 UTC (rev 1471)
+++ trunk/src/target/trace.h 2009-04-19 20:51:16 UTC (rev 1472)
@@ -32,12 +32,12 @@
typedef struct trace_s
{
- int num_trace_points;
- int trace_points_size;
+ u32 num_trace_points;
+ u32 trace_points_size;
trace_point_t *trace_points;
- int trace_history_size;
+ u32 trace_history_size;
u32 *trace_history;
- int trace_history_pos;
+ u32 trace_history_pos;
int trace_history_overflowed;
} trace_t;
@@ -50,7 +50,7 @@
TRACE_OVERFLOWED = 0x8,
} trace_status_t;
-extern int trace_point(struct target_s *target, int number);
+extern int trace_point(struct target_s *target, u32 number);
extern int trace_register_commands(struct command_context_s *cmd_ctx);
#define ERROR_TRACE_IMAGE_UNAVAILABLE -(1500)
Modified: trunk/src/target/xscale.c
===================================================================
--- trunk/src/target/xscale.c 2009-04-19 19:15:09 UTC (rev 1471)
+++ trunk/src/target/xscale.c 2009-04-19 20:51:16 UTC (rev 1472)
@@ -1631,7 +1631,7 @@
u32 binary_size;
u32 buf_cnt;
- int i;
+ u32 i;
int retval;
breakpoint_t *breakpoint = target->breakpoints;
@@ -1928,7 +1928,7 @@
armv4_5_common_t *armv4_5 = target->arch_info;
xscale_common_t *xscale = armv4_5->arch_info;
u32 *buf32;
- int i;
+ u32 i;
int retval;
LOG_DEBUG("address: 0x%8.8x, size: 0x%8.8x, count: 0x%8.8x", address, size, count);
@@ -2933,7 +2933,7 @@
(((instruction.type == ARM_B) ||
(instruction.type == ARM_BL) ||
(instruction.type == ARM_BLX)) &&
- (instruction.info.b_bl_bx_blx.target_address != -1)))
+ (instruction.info.b_bl_bx_blx.target_address != ~0UL)))
{
xscale->trace.current_pc = instruction.info.b_bl_bx_blx.target_address;
}
Modified: trunk/src/xsvf/xsvf.c
===================================================================
--- trunk/src/xsvf/xsvf.c 2009-04-19 19:15:09 UTC (rev 1471)
+++ trunk/src/xsvf/xsvf.c 2009-04-19 20:51:16 UTC (rev 1472)
@@ -743,7 +743,7 @@
case XCOMMENT:
{
- int ndx = 0;
+ unsigned int ndx = 0;
char comment[128];
do
|
|
From: <mi...@ma...> - 2009-04-19 21:15:22
|
Author: mifi Date: 2009-04-19 21:15:09 +0200 (Sun, 19 Apr 2009) New Revision: 1471 Modified: trunk/src/jtag/jlink.c trunk/src/jtag/usbprog.c Log: Partially fix USBprog and JLink adapters on XScale target Thanks to Peter Denison <openwrt(at)marshadder.org> Modified: trunk/src/jtag/jlink.c =================================================================== --- trunk/src/jtag/jlink.c 2009-04-19 14:51:51 UTC (rev 1470) +++ trunk/src/jtag/jlink.c 2009-04-19 19:15:09 UTC (rev 1471) @@ -433,7 +433,10 @@ /* Move to appropriate scan state */ jlink_end_state(ir_scan ? TAP_IRSHIFT : TAP_DRSHIFT); - jlink_state_move(); + /* Only move if we're not already there */ + if (tap_get_state() != tap_get_end_state()) + jlink_state_move(); + jlink_end_state(saved_end_state); /* Scan */ Modified: trunk/src/jtag/usbprog.c =================================================================== --- trunk/src/jtag/usbprog.c 2009-04-19 14:51:51 UTC (rev 1470) +++ trunk/src/jtag/usbprog.c 2009-04-19 19:15:09 UTC (rev 1471) @@ -265,6 +265,10 @@ int num_states = cmd->num_states; int state_count; + /* There may be queued transitions, and before following a specified + path, we must flush those queued transitions */ + usbprog_jtag_tms_send(usbprog_jtag_handle); + state_count = 0; while (num_states) { @@ -323,6 +327,10 @@ usbprog_write(0, 0, 0); } +#ifdef _DEBUG_JTAG_IO_ + LOG_DEBUG("runtest: cur_state %s end_state %s", tap_state_name(tap_get_state()), tap_state_name(tap_get_end_state())); +#endif + /* finish in end_state */ /* usbprog_end_state(saved_end_state); @@ -340,9 +348,10 @@ else usbprog_end_state(TAP_DRSHIFT); - /* usbprog_jtag_tms_send(usbprog_jtag_handle); */ + /* Only move if we're not already there */ + if (tap_get_state() != tap_get_end_state()) + usbprog_state_move(); - usbprog_state_move(); usbprog_end_state(saved_end_state); usbprog_jtag_tms_send(usbprog_jtag_handle); @@ -358,6 +367,7 @@ } f(usbprog_jtag_handle, (char *)buffer, scan_size); + /* The adapter does the transition to PAUSE internally */ if (ir_scan) tap_set_state(TAP_IRPAUSE); else |
|
From: <mi...@ma...> - 2009-04-19 16:52:04
|
Author: mifi
Date: 2009-04-19 16:51:51 +0200 (Sun, 19 Apr 2009)
New Revision: 1470
Modified:
trunk/src/jtag/jlink.c
Log:
Added functionality to support jtag_khz for the jlink.
Modified: trunk/src/jtag/jlink.c
===================================================================
--- trunk/src/jtag/jlink.c 2009-04-19 12:06:49 UTC (rev 1469)
+++ trunk/src/jtag/jlink.c 2009-04-19 14:51:51 UTC (rev 1470)
@@ -79,6 +79,7 @@
/* External interface functions */
int jlink_execute_queue(void);
int jlink_speed(int speed);
+int jlink_speed_div(int speed, int* khz);
int jlink_khz(int khz, int *jtag_speed);
int jlink_register_commands(struct command_context_s *cmd_ctx);
int jlink_init(void);
@@ -134,6 +135,7 @@
.name = "jlink",
.execute_queue = jlink_execute_queue,
.speed = jlink_speed,
+ .speed_div = jlink_speed_div,
.khz = jlink_khz,
.register_commands = jlink_register_commands,
.init = jlink_init,
@@ -270,6 +272,13 @@
return ERROR_OK;
}
+int jlink_speed_div(int speed, int* khz)
+{
+ *khz = speed;
+
+ return ERROR_OK;
+}
+
int jlink_khz(int khz, int *jtag_speed)
{
*jtag_speed = khz;
|
|
From: <oh...@ma...> - 2009-04-19 14:06:53
|
Author: oharboe
Date: 2009-04-19 14:06:49 +0200 (Sun, 19 Apr 2009)
New Revision: 1469
Modified:
trunk/src/flash/cfi.c
trunk/src/flash/cfi.h
trunk/src/flash/non_cfi.c
trunk/src/flash/non_cfi.h
Log:
Michael Schwingen <rin...@di...> enhanced non-CFI flash support
Modified: trunk/src/flash/cfi.c
===================================================================
--- trunk/src/flash/cfi.c 2009-04-19 08:18:46 UTC (rev 1468)
+++ trunk/src/flash/cfi.c 2009-04-19 12:06:49 UTC (rev 1469)
@@ -1,6 +1,8 @@
/***************************************************************************
* Copyright (C) 2005, 2007 by Dominic Rath *
* Dom...@gm... *
+ * Copyright (C) 2009 Michael Schwingen *
+ * mi...@sc... *
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
@@ -82,24 +84,6 @@
static void cfi_fixup_0002_unlock_addresses(flash_bank_t *flash, void *param);
static void cfi_fixup_atmel_reversed_erase_regions(flash_bank_t *flash, void *param);
-/* fixup after identifying JEDEC manufactuer and ID */
-static cfi_fixup_t cfi_jedec_fixups[] = {
- {CFI_MFR_SST, 0x00D4, cfi_fixup_non_cfi, NULL},
- {CFI_MFR_SST, 0x00D5, cfi_fixup_non_cfi, NULL},
- {CFI_MFR_SST, 0x00D6, cfi_fixup_non_cfi, NULL},
- {CFI_MFR_SST, 0x00D7, cfi_fixup_non_cfi, NULL},
- {CFI_MFR_SST, 0x2780, cfi_fixup_non_cfi, NULL},
- {CFI_MFR_ST, 0x00D5, cfi_fixup_non_cfi, NULL},
- {CFI_MFR_ST, 0x00D6, cfi_fixup_non_cfi, NULL},
- {CFI_MFR_AMD, 0x2223, cfi_fixup_non_cfi, NULL},
- {CFI_MFR_AMD, 0x22ab, cfi_fixup_non_cfi, NULL},
- {CFI_MFR_FUJITSU, 0x226b, cfi_fixup_non_cfi, NULL},
- {CFI_MFR_AMIC, 0xb31a, cfi_fixup_non_cfi, NULL},
- {CFI_MFR_MX, 0x225b, cfi_fixup_non_cfi, NULL},
- {CFI_MFR_AMD, 0x225b, cfi_fixup_non_cfi, NULL},
- {0, 0, NULL, NULL}
-};
-
/* fixup after reading cmdset 0002 primary query table */
static cfi_fixup_t cfi_0002_fixups[] = {
{CFI_MFR_SST, 0x00D4, cfi_fixup_0002_unlock_addresses, &cfi_unlock_addresses[CFI_UNLOCK_5555_2AAA]},
@@ -633,6 +617,8 @@
{
cfi_flash_bank_t *cfi_info;
int i;
+ (void) cmd_ctx;
+ (void) cmd;
if (argc < 6)
{
@@ -964,7 +950,7 @@
cfi_intel_protect(bank, set, first, last);
break;
default:
- LOG_ERROR("cfi primary command set %i unsupported", cfi_info->pri_id);
+ LOG_ERROR("protect: cfi primary command set %i unsupported", cfi_info->pri_id);
break;
}
@@ -1843,7 +1829,7 @@
return cfi_intel_write_words(bank, word, wordcount, address);
break;
case 2:
- return cfi_spansion_write_words(bank, word, wordcount, address);
+ return cfi_spansion_write_words(bank, word, wordcount, address);
break;
default:
LOG_ERROR("cfi primary command set %i unsupported", cfi_info->pri_id);
@@ -1965,7 +1951,7 @@
LOG_ERROR("Unsupported chip width %d", bank->chip_width);
return ERROR_FLASH_OPERATION_FAILED;
}
-
+
bufferwsize/=(bank->bus_width / bank->chip_width);
/* fall back to memory writes */
@@ -2064,6 +2050,7 @@
static void cfi_fixup_atmel_reversed_erase_regions(flash_bank_t *bank, void *param)
{
+ (void) param;
cfi_flash_bank_t *cfi_info = bank->driver_priv;
cfi_spansion_pri_ext_t *pri_ext = cfi_info->pri_ext;
@@ -2075,6 +2062,7 @@
int i;
cfi_flash_bank_t *cfi_info = bank->driver_priv;
cfi_spansion_pri_ext_t *pri_ext = cfi_info->pri_ext;
+ (void) param;
if ((pri_ext->_reversed_geometry) || (pri_ext->TopBottom == 3))
{
@@ -2110,7 +2098,6 @@
int num_sectors = 0;
int i;
int sector = 0;
- u32 offset = 0;
u32 unlock1 = 0x555;
u32 unlock2 = 0x2aa;
int retval;
@@ -2175,6 +2162,7 @@
}
}
+ LOG_INFO("Flash Manufacturer/Device: 0x%04x 0x%04x", cfi_info->manufacturer, cfi_info->device_id);
/* switch back to read array mode */
cfi_command(bank, 0xf0, command);
if((retval = target->type->write_memory(target, flash_address(bank, 0, 0x00), bank->bus_width, 1, command)) != ERROR_OK)
@@ -2187,7 +2175,8 @@
return retval;
}
- cfi_fixup(bank, cfi_jedec_fixups);
+ /* check device/manufacturer ID for known non-CFI flashes. */
+ cfi_fixup_non_cfi(bank);
/* query only if this is a CFI compatible flash,
* otherwise the relevant info has already been filled in
@@ -2225,7 +2214,7 @@
{
return retval;
}
- LOG_ERROR("Could not probe bank");
+ LOG_ERROR("Could not probe bank: no QRY");
return ERROR_FLASH_BANK_INVALID;
}
@@ -2261,18 +2250,13 @@
(1 << cfi_info->block_erase_timeout_max) * (1 << cfi_info->block_erase_timeout_typ),
(1 << cfi_info->chip_erase_timeout_max) * (1 << cfi_info->chip_erase_timeout_typ));
- cfi_info->dev_size = cfi_query_u8(bank, 0, 0x27);
+ cfi_info->dev_size = 1<<cfi_query_u8(bank, 0, 0x27);
cfi_info->interface_desc = cfi_query_u16(bank, 0, 0x28);
cfi_info->max_buf_write_size = cfi_query_u16(bank, 0, 0x2a);
cfi_info->num_erase_regions = cfi_query_u8(bank, 0, 0x2c);
- LOG_DEBUG("size: 0x%x, interface desc: %i, max buffer write size: %x", 1 << cfi_info->dev_size, cfi_info->interface_desc, (1 << cfi_info->max_buf_write_size));
+ LOG_DEBUG("size: 0x%x, interface desc: %i, max buffer write size: %x", cfi_info->dev_size, cfi_info->interface_desc, (1 << cfi_info->max_buf_write_size));
- if ((u32)((1 << cfi_info->dev_size) * bank->bus_width / bank->chip_width) != bank->size)
- {
- LOG_WARNING("configuration specifies 0x%x size, but a 0x%x size flash was found", bank->size, 1 << cfi_info->dev_size);
- }
-
if (cfi_info->num_erase_regions)
{
cfi_info->erase_region_info = malloc(4 * cfi_info->num_erase_regions);
@@ -2338,6 +2322,11 @@
break;
}
+ if ((cfi_info->dev_size * bank->bus_width / bank->chip_width) != bank->size)
+ {
+ LOG_WARNING("configuration specifies 0x%x size, but a 0x%x size flash was found", bank->size, cfi_info->dev_size);
+ }
+
if (cfi_info->num_erase_regions == 0)
{
/* a device might have only one erase block, spanning the whole device */
@@ -2351,6 +2340,8 @@
}
else
{
+ u32 offset = 0;
+
for (i = 0; i < cfi_info->num_erase_regions; i++)
{
num_sectors += (cfi_info->erase_region_info[i] & 0xffff) + 1;
@@ -2372,8 +2363,12 @@
sector++;
}
}
+ if (offset != cfi_info->dev_size)
+ {
+ LOG_WARNING("CFI size is 0x%x, but total sector size is 0x%x", cfi_info->dev_size, offset);
+ }
}
-
+
cfi_info->probed = 1;
return ERROR_OK;
@@ -2504,7 +2499,7 @@
}
if (cfi_info->not_cfi == 0)
- printed = snprintf(buf, buf_size, "\ncfi information:\n");
+ printed = snprintf(buf, buf_size, "\ncfi information:\n");
else
printed = snprintf(buf, buf_size, "\nnon-cfi flash:\n");
buf += printed;
@@ -2546,7 +2541,7 @@
buf_size -= printed;
printed = snprintf(buf, buf_size, "size: 0x%x, interface desc: %i, max buffer write size: %x\n",
- 1 << cfi_info->dev_size,
+ cfi_info->dev_size,
cfi_info->interface_desc,
1 << cfi_info->max_buf_write_size);
buf += printed;
Modified: trunk/src/flash/cfi.h
===================================================================
--- trunk/src/flash/cfi.h 2009-04-19 08:18:46 UTC (rev 1468)
+++ trunk/src/flash/cfi.h 2009-04-19 12:06:49 UTC (rev 1469)
@@ -26,8 +26,8 @@
typedef struct cfi_flash_bank_s
{
working_area_t *write_algorithm;
-
+
int x16_as_x8;
int jedec_probe;
int not_cfi;
@@ -59,7 +59,7 @@
u8 chip_erase_timeout_max;
/* flash geometry */
- u8 dev_size;
+ u32 dev_size;
u16 interface_desc;
u16 max_buf_write_size;
u8 num_erase_regions;
Modified: trunk/src/flash/non_cfi.c
===================================================================
--- trunk/src/flash/non_cfi.c 2009-04-19 08:18:46 UTC (rev 1468)
+++ trunk/src/flash/non_cfi.c 2009-04-19 12:06:49 UTC (rev 1469)
@@ -1,6 +1,8 @@
/***************************************************************************
* Copyright (C) 2007 by Dominic Rath *
* Dom...@gm... *
+ * Copyright (C) 2009 Michael Schwingen *
+ * mi...@sc... *
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
@@ -29,212 +31,279 @@
#include "cfi.h"
#include "non_cfi.h"
+#define KB 1024
+#define MB (1024*1024)
+#define ERASE_REGION(num, size) (((size/256)<<16)|(num-1))
+
/* non-CFI compatible flashes */
non_cfi_t non_cfi_flashes[] = {
{
.mfr = CFI_MFR_SST,
.id = 0xd4,
.pri_id = 0x02,
- .dev_size = 0x10, /* 2^16 = 64KB */
+ .dev_size = 64*KB,
.interface_desc = 0x0, /* x8 only device */
.max_buf_write_size = 0x0,
.num_erase_regions = 1,
.erase_region_info =
{
- 0x0010000f, /* 16x 4KB */
- 0x00000000
+ ERASE_REGION(16, 4*KB)
}
},
{
.mfr = CFI_MFR_SST,
.id = 0xd5,
.pri_id = 0x02,
- .dev_size = 0x11, /* 2^17 = 128KB */
+ .dev_size = 128*KB,
.interface_desc = 0x0, /* x8 only device */
.max_buf_write_size = 0x0,
.num_erase_regions = 1,
.erase_region_info =
{
- 0x0010001f,
- 0x00000000
+ ERASE_REGION(32, 4*KB)
}
},
{
.mfr = CFI_MFR_SST,
.id = 0xd6,
.pri_id = 0x02,
- .dev_size = 0x12, /* 2^18 = 256KB */
+ .dev_size = 256*KB,
.interface_desc = 0x0, /* x8 only device */
.max_buf_write_size = 0x0,
.num_erase_regions = 1,
.erase_region_info =
{
- 0x0010003f,
- 0x00000000
+ ERASE_REGION(64, 4*KB)
}
},
{
.mfr = CFI_MFR_SST,
.id = 0xd7,
.pri_id = 0x02,
- .dev_size = 0x13, /* 2^19 = 512KB */
+ .dev_size = 512*KB,
.interface_desc = 0x0, /* x8 only device */
.max_buf_write_size = 0x0,
.num_erase_regions = 1,
.erase_region_info =
{
- 0x0010007f,
- 0x00000000
+ ERASE_REGION(128, 4*KB)
}
},
{
.mfr = CFI_MFR_SST,
.id = 0x2780,
.pri_id = 0x02,
- .dev_size = 0x13, /* 2^19 = 512KB */
+ .dev_size = 512*KB,
.interface_desc = 0x2, /* x8 or x16 device */
.max_buf_write_size = 0x0,
.num_erase_regions = 1,
.erase_region_info =
{
- 0x0010007f,
- 0x00000000
+ ERASE_REGION(128, 4*KB)
}
},
{
.mfr = CFI_MFR_ST,
.id = 0xd6, /* ST29F400BB */
.pri_id = 0x02,
- .dev_size = 0x13, /* 2^19 = 512KB */
+ .dev_size = 512*KB,
.interface_desc = 0x2, /* x8 or x16 device with nBYTE */
.max_buf_write_size = 0x0,
.num_erase_regions = 4,
.erase_region_info =
{
- 0x00400000, /* 1x 16KB */
- 0x00200001, /* 2x 8KB */
- 0x00800000, /* 1x 32KB */
- 0x01000006, /* 7x 64KB */
- 0x00000000
+ ERASE_REGION( 1, 16*KB),
+ ERASE_REGION( 2, 8*KB),
+ ERASE_REGION( 1, 32*KB),
+ ERASE_REGION( 7, 64*KB)
}
},
{
.mfr = CFI_MFR_ST,
.id = 0xd5, /* ST29F400BT */
.pri_id = 0x02,
- .dev_size = 0x13, /* 2^19 = 512KB */
+ .dev_size = 512*KB,
.interface_desc = 0x2, /* x8 or x16 device with nBYTE */
.max_buf_write_size = 0x0,
.num_erase_regions = 4,
.erase_region_info =
{
- 0x01000006, /* 7x 64KB */
- 0x00800000, /* 1x 32KB */
- 0x00200001, /* 2x 8KB */
- 0x00400000, /* 1x 16KB */
- 0x00000000
+ ERASE_REGION( 7, 64*KB),
+ ERASE_REGION( 1, 32*KB),
+ ERASE_REGION( 2, 8*KB),
+ ERASE_REGION( 1, 16*KB)
}
},
{
.mfr = CFI_MFR_AMD,
.id = 0x22ab, /* AM29F400BB */
.pri_id = 0x02,
- .dev_size = 0x13, /* 2^19 = 512KB */
+ .dev_size = 512*KB,
.interface_desc = 0x2, /* x8 or x16 device with nBYTE */
.max_buf_write_size = 0x0,
.num_erase_regions = 4,
.erase_region_info =
{
- 0x00400000, /* 1x 16KB */
- 0x00200001, /* 2x 8KB */
- 0x00800000, /* 1x 32KB */
- 0x01000006, /* 7x 64KB */
- 0x00000000
+ ERASE_REGION( 1, 16*KB),
+ ERASE_REGION( 2, 8*KB),
+ ERASE_REGION( 1, 32*KB),
+ ERASE_REGION( 7, 64*KB)
}
},
{
.mfr = CFI_MFR_AMD,
.id = 0x2223, /* AM29F400BT */
.pri_id = 0x02,
- .dev_size = 0x13, /* 2^19 = 512KB */
+ .dev_size = 512*KB,
.interface_desc = 0x2, /* x8 or x16 device with nBYTE */
.max_buf_write_size = 0x0,
.num_erase_regions = 4,
.erase_region_info =
{
- 0x01000006, /* 7x 64KB */
- 0x00800000, /* 1x 32KB */
- 0x00200001, /* 2x 8KB */
- 0x00400000, /* 1x 16KB */
- 0x00000000
+ ERASE_REGION( 7, 64*KB),
+ ERASE_REGION( 1, 32*KB),
+ ERASE_REGION( 2, 8*KB),
+ ERASE_REGION( 1, 16*KB)
}
},
{
.mfr = CFI_MFR_FUJITSU,
.id = 0x226b, /* AM29SL800DB */
.pri_id = 0x02,
- .dev_size = 0x14, /* 2^20 = 1MB */
+ .dev_size = 1*MB,
.interface_desc = 0x2, /* x8 or x16 device with nBYTE */
.max_buf_write_size = 0x0,
.num_erase_regions = 4,
.erase_region_info =
{
- 0x00400000, /* 1x 16KB */
- 0x00200001, /* 2x 8KB */
- 0x00800000, /* 1x 32KB */
- 0x0100000e, /* 15x 64KB */
- 0x00000000
+ ERASE_REGION( 1, 16*KB),
+ ERASE_REGION( 2, 8*KB),
+ ERASE_REGION( 1, 32*KB),
+ ERASE_REGION(15, 64*KB)
}
},
{
.mfr = CFI_MFR_AMIC,
.id = 0xb31a, /* A29L800A */
.pri_id = 0x02,
- .dev_size = 0x14,
+ .dev_size = 1*MB,
.interface_desc = 0x2,
.max_buf_write_size = 0x0,
.num_erase_regions = 4,
.erase_region_info =
{
- 0x00400000, /* 1x 16KB */
- 0x00200001, /* 2x 8KB */
- 0x00800000, /* 1x 32KB */
- 0x0100000e, /* 15x 64KB */
- 0x00000000
+ ERASE_REGION( 1, 16*KB),
+ ERASE_REGION( 2, 8*KB),
+ ERASE_REGION( 1, 32*KB),
+ ERASE_REGION(15, 64*KB)
}
},
{
.mfr = CFI_MFR_MX,
.id = 0x225b, /* MX29LV800B */
.pri_id = 0x02,
- .dev_size = 0x14, /* 2^20 = 1MB */
+ .dev_size = 1*MB,
.interface_desc = 0x2, /* x8 or x16 device with nBYTE */
.max_buf_write_size = 0x0,
.num_erase_regions = 4,
.erase_region_info =
{
- 0x00400000, /* 1x 16KB */
- 0x00200001, /* 2x 8KB */
- 0x00800000, /* 1x 32KB */
- 0x0100000e, /* 15x 64KB */
- 0x00000000
+ ERASE_REGION( 1, 16*KB),
+ ERASE_REGION( 2, 8*KB),
+ ERASE_REGION( 1, 32*KB),
+ ERASE_REGION(15, 64*KB)
}
},
+
{
+ .mfr = CFI_MFR_MX,
+ .id = 0x2249, /* MX29LV160AB: 2MB */
+ .pri_id = 0x02,
+ .dev_size = 2*MB,
+ .interface_desc = 0x2, /* x8 or x16 device with nBYTE */
+ .max_buf_write_size = 0x0,
+ .num_erase_regions = 4,
+ .erase_region_info =
+ {
+ ERASE_REGION( 1, 16*KB),
+ ERASE_REGION( 2, 8*KB),
+ ERASE_REGION( 1, 32*KB),
+ ERASE_REGION(31, 64*KB)
+ }
+ },
+ {
+ .mfr = CFI_MFR_MX,
+ .id = 0x22C4, /* MX29LV160AT: 2MB */
+ .pri_id = 0x02,
+ .dev_size = 2*MB,
+ .interface_desc = 0x2, /* x8 or x16 device with nBYTE */
+ .max_buf_write_size = 0x0,
+ .num_erase_regions = 4,
+ .erase_region_info =
+ {
+ ERASE_REGION(31, 64*KB),
+ ERASE_REGION( 1, 32*KB),
+ ERASE_REGION( 2, 8*KB),
+ ERASE_REGION( 1, 16*KB)
+ }
+ },
+ {
+ .mfr = CFI_MFR_SST,
+ .id = 0x2782, /* SST39xF160 */
+ .pri_id = 0x02,
+ .dev_size = 2*MB,
+ .interface_desc = 0x2, /* x8 or x16 device with nBYTE */
+ .max_buf_write_size = 0x0,
+ .num_erase_regions = 1,
+ .erase_region_info =
+ {
+ ERASE_REGION(512, 4*KB)
+ }
+ },
+ {
+ .mfr = CFI_MFR_ATMEL,
+ .id = 0x00c0, /* Atmel 49BV1614 */
+ .pri_id = 0x02,
+ .dev_size = 2*MB,
+ .interface_desc = 0x2, /* x8 or x16 device with nBYTE */
+ .max_buf_write_size = 0x0,
+ .num_erase_regions = 3,
+ .erase_region_info =
+ {
+ ERASE_REGION( 8, 8*KB),
+ ERASE_REGION( 2, 32*KB),
+ ERASE_REGION(30, 64*KB)
+ }
+ },
+ {
+ .mfr = CFI_MFR_ATMEL,
+ .id = 0xC2, /* Atmel 49BV1614T */
+ .pri_id = 0x02,
+ .dev_size = 2*MB,
+ .interface_desc = 0x2, /* x8 or x16 device with nBYTE */
+ .max_buf_write_size = 0x0,
+ .num_erase_regions = 3,
+ .erase_region_info =
+ {
+ ERASE_REGION(30, 64*KB),
+ ERASE_REGION( 2, 32*KB),
+ ERASE_REGION( 8, 8*KB)
+ }
+ },
+ {
.mfr = CFI_MFR_AMD,
.id = 0x225b, /* S29AL008D */
.pri_id = 0x02,
- .dev_size = 0x14, /* 2^20 = 1MB */
+ .dev_size = 1*MB,
.interface_desc = 0x2, /* x8 or x16 device with nBYTE */
.max_buf_write_size = 0x0,
.num_erase_regions = 4,
.erase_region_info =
{
- 0x00400000, /* 1x 16KB */
- 0x00200001, /* 2x 8KB */
- 0x00800000, /* 1x 32KB */
- 0x0100000e, /* 15x 64KB */
- 0x00000000
+ ERASE_REGION( 1, 16*KB),
+ ERASE_REGION( 2, 8*KB),
+ ERASE_REGION( 1, 32*KB),
+ ERASE_REGION(15, 64*KB)
}
},
{
@@ -243,23 +312,26 @@
}
};
-void cfi_fixup_non_cfi(flash_bank_t *bank, void *param)
+void cfi_fixup_non_cfi(flash_bank_t *bank)
{
cfi_flash_bank_t *cfi_info = bank->driver_priv;
non_cfi_t *non_cfi = non_cfi_flashes;
-
- while (non_cfi->mfr)
+
+ for (non_cfi = non_cfi_flashes; non_cfi->mfr; non_cfi++)
{
if ((cfi_info->manufacturer == non_cfi->mfr)
&& (cfi_info->device_id == non_cfi->id))
{
break;
}
- non_cfi++;
}
-
+
+ /* only fixup jedec flashs found in table */
+ if (!non_cfi->mfr)
+ return;
+
cfi_info->not_cfi = 1;
-
+
/* fill in defaults for non-critical data */
cfi_info->vcc_min = 0x0;
cfi_info->vcc_max = 0x0;
@@ -273,22 +345,23 @@
cfi_info->buf_write_timeout_max = 0x0;
cfi_info->block_erase_timeout_max = 0x0;
cfi_info->chip_erase_timeout_max = 0x0;
-
+
cfi_info->qry[0] = 'Q';
cfi_info->qry[1] = 'R';
cfi_info->qry[2] = 'Y';
-
+
cfi_info->pri_id = non_cfi->pri_id;
cfi_info->pri_addr = 0x0;
cfi_info->alt_id = 0x0;
cfi_info->alt_addr = 0x0;
cfi_info->alt_ext = NULL;
-
+
cfi_info->interface_desc = non_cfi->interface_desc;
cfi_info->max_buf_write_size = non_cfi->max_buf_write_size;
cfi_info->num_erase_regions = non_cfi->num_erase_regions;
cfi_info->erase_region_info = non_cfi->erase_region_info;
-
+ cfi_info->dev_size = non_cfi->dev_size;
+
if (cfi_info->pri_id == 0x2)
{
cfi_spansion_pri_ext_t *pri_ext = malloc(sizeof(cfi_spansion_pri_ext_t));
@@ -296,10 +369,10 @@
pri_ext->pri[0] = 'P';
pri_ext->pri[1] = 'R';
pri_ext->pri[2] = 'I';
-
+
pri_ext->major_version = '1';
pri_ext->minor_version = '0';
-
+
pri_ext->SiliconRevision = 0x0;
pri_ext->EraseSuspend = 0x0;
pri_ext->EraseSuspend = 0x0;
@@ -312,9 +385,11 @@
pri_ext->VppMin = 0x0;
pri_ext->VppMax = 0x0;
pri_ext->TopBottom = 0x0;
-
+
+ pri_ext->_unlock1 = 0x5555;
+ pri_ext->_unlock2 = 0x2AAA;
pri_ext->_reversed_geometry = 0;
-
+
cfi_info->pri_ext = pri_ext;
} else if ((cfi_info->pri_id == 0x1) || (cfi_info->pri_id == 0x3))
{
Modified: trunk/src/flash/non_cfi.h
===================================================================
--- trunk/src/flash/non_cfi.h 2009-04-19 08:18:46 UTC (rev 1468)
+++ trunk/src/flash/non_cfi.h 2009-04-19 12:06:49 UTC (rev 1469)
@@ -27,7 +27,7 @@
u16 mfr;
u16 id;
u16 pri_id;
- u8 dev_size;
+ u32 dev_size;
u16 interface_desc;
u16 max_buf_write_size;
u8 num_erase_regions;
@@ -35,6 +35,6 @@
} non_cfi_t;
extern non_cfi_t non_cfi_flashes[];
-extern void cfi_fixup_non_cfi(flash_bank_t *bank, void *param);
+extern void cfi_fixup_non_cfi(flash_bank_t *bank);
#endif /* NON_CFI_H */
|
|
From: <oh...@ma...> - 2009-04-19 10:18:48
|
Author: oharboe
Date: 2009-04-19 10:18:46 +0200 (Sun, 19 Apr 2009)
New Revision: 1468
Modified:
trunk/src/flash/nand.c
Log:
Zach Welch <zw...@su...> add missing initializers in nand.c
Modified: trunk/src/flash/nand.c
===================================================================
--- trunk/src/flash/nand.c 2009-04-19 08:18:01 UTC (rev 1467)
+++ trunk/src/flash/nand.c 2009-04-19 08:18:46 UTC (rev 1468)
@@ -165,7 +165,7 @@
{"NAND 2GiB 1,8V 16-bit", 0xB5, 0, 2048, 0, LP_OPTIONS16},
{"NAND 2GiB 3,3V 16-bit", 0xC5, 0, 2048, 0, LP_OPTIONS16},
- {NULL, 0,}
+ {NULL, 0, 0, 0, 0, 0 }
};
/* Manufacturer ID list
|
|
From: <oh...@ma...> - 2009-04-19 10:18:02
|
Author: oharboe
Date: 2009-04-19 10:18:01 +0200 (Sun, 19 Apr 2009)
New Revision: 1467
Modified:
trunk/src/flash/tms470.c
Log:
Zach Welch <zw...@su...> trim logic in tms470.c
Modified: trunk/src/flash/tms470.c
===================================================================
--- trunk/src/flash/tms470.c 2009-04-19 08:16:58 UTC (rev 1466)
+++ trunk/src/flash/tms470.c 2009-04-19 08:18:01 UTC (rev 1467)
@@ -196,7 +196,7 @@
case 0x2b:
part_name = "TMS470R1A288";
- if ((bank->base >= 0x00000000) && (bank->base < 0x00008000))
+ if (bank->base < 0x00008000)
{
tms470_info->ordinal = 0;
bank->base = 0x00000000;
@@ -232,7 +232,7 @@
case 0x2d:
part_name = "TMS470R1A384";
- if ((bank->base >= 0x00000000) && (bank->base < 0x00020000))
+ if (bank->base < 0x00020000)
{
tms470_info->ordinal = 0;
bank->base = 0x00000000;
|
|
From: <oh...@ma...> - 2009-04-19 10:17:06
|
Author: oharboe
Date: 2009-04-19 10:16:58 +0200 (Sun, 19 Apr 2009)
New Revision: 1466
Modified:
trunk/src/flash/aduc702x.c
trunk/src/flash/at91sam7.c
trunk/src/flash/cfi.c
trunk/src/flash/ecos.c
trunk/src/flash/flash.c
trunk/src/flash/lpc2000.c
trunk/src/flash/lpc2000.h
trunk/src/flash/lpc288x.c
trunk/src/flash/lpc3180_nand_controller.c
trunk/src/flash/nand.c
trunk/src/flash/ocl.c
trunk/src/flash/pic32mx.c
trunk/src/flash/stellaris.c
trunk/src/flash/stm32x.c
trunk/src/flash/str7x.c
trunk/src/flash/str9x.c
trunk/src/flash/str9xpec.c
trunk/src/flash/tms470.c
Log:
Zach Welch <zw...@su...> fix signed/unsigned comparisons
Modified: trunk/src/flash/aduc702x.c
===================================================================
--- trunk/src/flash/aduc702x.c 2009-04-19 08:15:32 UTC (rev 1465)
+++ trunk/src/flash/aduc702x.c 2009-04-19 08:16:58 UTC (rev 1466)
@@ -331,7 +331,7 @@
* working area available. */
static int aduc702x_write_single(struct flash_bank_s *bank, u8 *buffer, u32 offset, u32 count)
{
- int x;
+ u32 x;
u8 b;
target_t *target = bank->target;
Modified: trunk/src/flash/at91sam7.c
===================================================================
--- trunk/src/flash/at91sam7.c 2009-04-19 08:15:32 UTC (rev 1465)
+++ trunk/src/flash/at91sam7.c 2009-04-19 08:16:58 UTC (rev 1466)
@@ -937,7 +937,8 @@
static int at91sam7_protect(struct flash_bank_s *bank, int set, int first, int last)
{
u32 cmd;
- u32 sector, pagen;
+ int sector;
+ u32 pagen;
at91sam7_flash_bank_t *at91sam7_info = bank->driver_priv;
Modified: trunk/src/flash/cfi.c
===================================================================
--- trunk/src/flash/cfi.c 2009-04-19 08:15:32 UTC (rev 1465)
+++ trunk/src/flash/cfi.c 2009-04-19 08:16:58 UTC (rev 1466)
@@ -1113,7 +1113,7 @@
};
u8 target_code[4*CFI_MAX_INTEL_CODESIZE];
const u32 *target_code_src;
- int target_code_size;
+ u32 target_code_size;
int retval = ERROR_OK;
@@ -1969,7 +1969,7 @@
bufferwsize/=(bank->bus_width / bank->chip_width);
/* fall back to memory writes */
- while (count >= bank->bus_width)
+ while (count >= (u32)bank->bus_width)
{
int fallback;
if ((write_p & 0xff) == 0)
@@ -2268,7 +2268,7 @@
LOG_DEBUG("size: 0x%x, interface desc: %i, max buffer write size: %x", 1 << cfi_info->dev_size, cfi_info->interface_desc, (1 << cfi_info->max_buf_write_size));
- if (((1 << cfi_info->dev_size) * bank->bus_width / bank->chip_width) != bank->size)
+ if ((u32)((1 << cfi_info->dev_size) * bank->bus_width / bank->chip_width) != bank->size)
{
LOG_WARNING("configuration specifies 0x%x size, but a 0x%x size flash was found", bank->size, 1 << cfi_info->dev_size);
}
@@ -2361,7 +2361,7 @@
for (i = 0; i < cfi_info->num_erase_regions; i++)
{
- int j;
+ u32 j;
for (j = 0; j < (cfi_info->erase_region_info[i] & 0xffff) + 1; j++)
{
bank->sectors[sector].offset = offset;
Modified: trunk/src/flash/ecos.c
===================================================================
--- trunk/src/flash/ecos.c 2009-04-19 08:15:32 UTC (rev 1465)
+++ trunk/src/flash/ecos.c 2009-04-19 08:16:58 UTC (rev 1466)
@@ -328,7 +328,7 @@
return retval;
- int i;
+ u32 i;
for (i=0; i<len; i+=chunk)
{
int t=len-i;
Modified: trunk/src/flash/flash.c
===================================================================
--- trunk/src/flash/flash.c 2009-04-19 08:15:32 UTC (rev 1465)
+++ trunk/src/flash/flash.c 2009-04-19 08:16:58 UTC (rev 1466)
@@ -346,7 +346,7 @@
static int handle_flash_info_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc)
{
flash_bank_t *p;
- int i = 0;
+ u32 i = 0;
int j = 0;
int retval;
@@ -726,12 +726,12 @@
u8 chunk[1024];
u32 wrote = 0;
u32 cur_size = 0;
- int chunk_count;
+ u32 chunk_count;
char *duration_text;
duration_t duration;
target_t *target = get_current_target(cmd_ctx);
u32 i;
- int wordsize;
+ u32 wordsize;
if (argc != 3)
{
@@ -1129,7 +1129,7 @@
u8 buffer[1024];
int buffer_size = sizeof(buffer);
int i;
- int nBytes;
+ u32 nBytes;
if (bank->target->state != TARGET_HALTED)
{
@@ -1139,12 +1139,12 @@
for (i = 0; i < bank->num_sectors; i++)
{
- int j;
+ u32 j;
bank->sectors[i].is_erased = 1;
for (j = 0; j < bank->sectors[i].size; j += buffer_size)
{
- int chunk;
+ u32 chunk;
int retval;
chunk = buffer_size;
if (chunk > (j - bank->sectors[i].size))
Modified: trunk/src/flash/lpc2000.c
===================================================================
--- trunk/src/flash/lpc2000.c 2009-04-19 08:15:32 UTC (rev 1465)
+++ trunk/src/flash/lpc2000.c 2009-04-19 08:16:58 UTC (rev 1466)
@@ -587,7 +587,7 @@
else
{
u8 *last_buffer = malloc(thisrun_bytes);
- int i;
+ u32 i;
memcpy(last_buffer, buffer + bytes_written, bytes_remaining);
for (i = bytes_remaining; i < thisrun_bytes; i++)
last_buffer[i] = 0xff;
Modified: trunk/src/flash/lpc2000.h
===================================================================
--- trunk/src/flash/lpc2000.h 2009-04-19 08:15:32 UTC (rev 1465)
+++ trunk/src/flash/lpc2000.h 2009-04-19 08:16:58 UTC (rev 1466)
@@ -32,7 +32,7 @@
int cmd51_can_256b;
int cmd51_can_8192b;
int calc_checksum;
- int cmd51_max_buffer;
+ u32 cmd51_max_buffer;
} lpc2000_flash_bank_t;
enum lpc2000_status_codes
Modified: trunk/src/flash/lpc288x.c
===================================================================
--- trunk/src/flash/lpc288x.c 2009-04-19 08:15:32 UTC (rev 1465)
+++ trunk/src/flash/lpc288x.c 2009-04-19 08:16:58 UTC (rev 1466)
@@ -328,10 +328,11 @@
static int lpc288x_write(struct flash_bank_s *bank, u8 *buffer, u32 offset, u32 count)
{
u8 page_buffer[FLASH_PAGE_SIZE];
- u32 i, status, source_offset,dest_offset;
+ u32 status, source_offset,dest_offset;
target_t *target = bank->target;
u32 bytes_remaining = count;
u32 first_sector, last_sector, sector, page;
+ int i;
/* probed? halted? */
status = lpc288x_system_ready(bank);
Modified: trunk/src/flash/lpc3180_nand_controller.c
===================================================================
--- trunk/src/flash/lpc3180_nand_controller.c 2009-04-19 08:15:32 UTC (rev 1465)
+++ trunk/src/flash/lpc3180_nand_controller.c 2009-04-19 08:16:58 UTC (rev 1466)
@@ -546,7 +546,7 @@
return ERROR_NAND_OPERATION_NOT_SUPPORTED;
}
- if (data_size > device->page_size)
+ if (data_size > (u32)device->page_size)
{
LOG_ERROR("data size exceeds page size");
return ERROR_NAND_OPERATION_NOT_SUPPORTED;
@@ -681,7 +681,7 @@
}
#endif
- if (data_size > device->page_size)
+ if (data_size > (u32)device->page_size)
{
LOG_ERROR("data size exceeds page size");
return ERROR_NAND_OPERATION_NOT_SUPPORTED;
@@ -741,7 +741,7 @@
target_write_u32(target, 0x200b8000, NAND_CMD_READSTART);
}
- while (page_bytes_done < device->page_size)
+ while (page_bytes_done < (u32)device->page_size)
{
/* MLC_ECC_AUTO_DEC_REG = dummy */
target_write_u32(target, 0x200b8014, 0xaa55aa55);
Modified: trunk/src/flash/nand.c
===================================================================
--- trunk/src/flash/nand.c 2009-04-19 08:15:32 UTC (rev 1465)
+++ trunk/src/flash/nand.c 2009-04-19 08:16:58 UTC (rev 1466)
@@ -834,7 +834,7 @@
int nand_read_page_raw(struct nand_device_s *device, u32 page, u8 *data, u32 data_size, u8 *oob, u32 oob_size)
{
- int i;
+ u32 i;
if (!device->device)
return ERROR_NAND_DEVICE_NOT_PROBED;
@@ -948,7 +948,7 @@
int nand_write_page_raw(struct nand_device_s *device, u32 page, u8 *data, u32 data_size, u8 *oob, u32 oob_size)
{
- int i;
+ u32 i;
int retval;
u8 status;
@@ -1400,7 +1400,7 @@
if (oob_format & NAND_OOB_SW_ECC)
{
- int i, j;
+ u32 i, j;
u8 ecc[3];
memset(oob, 0xff, oob_size);
for (i = 0, j = 0; i < page_size; i += 256) {
Modified: trunk/src/flash/ocl.c
===================================================================
--- trunk/src/flash/ocl.c 2009-04-19 08:15:32 UTC (rev 1465)
+++ trunk/src/flash/ocl.c 2009-04-19 08:16:58 UTC (rev 1466)
@@ -66,8 +66,8 @@
typedef struct ocl_priv_s
{
arm_jtag_t *jtag_info;
- int buflen;
- int bufalign;
+ unsigned int buflen;
+ unsigned int bufalign;
} ocl_priv_t;
static int ocl_register_commands(struct command_context_s *cmd_ctx)
Modified: trunk/src/flash/pic32mx.c
===================================================================
--- trunk/src/flash/pic32mx.c 2009-04-19 08:15:32 UTC (rev 1465)
+++ trunk/src/flash/pic32mx.c 2009-04-19 08:16:58 UTC (rev 1466)
@@ -526,7 +526,7 @@
u32 address = bank->base + offset;
u32 bytes_written = 0;
u32 status;
- u32 retval;
+ int retval;
if (bank->target->state != TARGET_HALTED)
{
Modified: trunk/src/flash/stellaris.c
===================================================================
--- trunk/src/flash/stellaris.c 2009-04-19 08:15:32 UTC (rev 1465)
+++ trunk/src/flash/stellaris.c 2009-04-19 08:16:58 UTC (rev 1466)
@@ -570,12 +570,12 @@
return ERROR_FLASH_OPERATION_FAILED;
}
- if ((first < 0) || (last < first) || (last >= stellaris_info->num_pages))
+ if ((first < 0) || (last < first) || (last >= (int)stellaris_info->num_pages))
{
return ERROR_FLASH_SECTOR_INVALID;
}
- if ((first == 0) && (last == (stellaris_info->num_pages-1)))
+ if ((first == 0) && (last == ((int)stellaris_info->num_pages-1)))
{
return stellaris_mass_erase(bank);
}
@@ -821,7 +821,7 @@
u32 words_remaining = (count / 4);
u32 bytes_remaining = (count & 0x00000003);
u32 bytes_written = 0;
- u32 retval;
+ int retval;
if (bank->target->state != TARGET_HALTED)
{
Modified: trunk/src/flash/stm32x.c
===================================================================
--- trunk/src/flash/stm32x.c 2009-04-19 08:15:32 UTC (rev 1465)
+++ trunk/src/flash/stm32x.c 2009-04-19 08:16:58 UTC (rev 1466)
@@ -603,7 +603,7 @@
u32 address = bank->base + offset;
u32 bytes_written = 0;
u8 status;
- u32 retval;
+ int retval;
if (bank->target->state != TARGET_HALTED)
{
Modified: trunk/src/flash/str7x.c
===================================================================
--- trunk/src/flash/str7x.c 2009-04-19 08:15:32 UTC (rev 1465)
+++ trunk/src/flash/str7x.c 2009-04-19 08:16:58 UTC (rev 1466)
@@ -478,7 +478,7 @@
u32 address = bank->base + offset;
u32 bytes_written = 0;
u32 cmd;
- u32 retval;
+ int retval;
u32 check_address = offset;
int i;
Modified: trunk/src/flash/str9x.c
===================================================================
--- trunk/src/flash/str9x.c 2009-04-19 08:15:32 UTC (rev 1465)
+++ trunk/src/flash/str9x.c 2009-04-19 08:16:58 UTC (rev 1466)
@@ -509,7 +509,7 @@
u32 address = bank->base + offset;
u32 bytes_written = 0;
u8 status;
- u32 retval;
+ int retval;
u32 check_address = offset;
u32 bank_adr;
int i;
Modified: trunk/src/flash/str9xpec.c
===================================================================
--- trunk/src/flash/str9xpec.c 2009-04-19 08:15:32 UTC (rev 1465)
+++ trunk/src/flash/str9xpec.c 2009-04-19 08:16:58 UTC (rev 1466)
@@ -687,8 +687,8 @@
scan_field_t field;
u8 *scanbuf;
int i;
- u32 first_sector = 0;
- u32 last_sector = 0;
+ int first_sector = 0;
+ int last_sector = 0;
tap = str9xpec_info->tap;
Modified: trunk/src/flash/tms470.c
===================================================================
--- trunk/src/flash/tms470.c 2009-04-19 08:15:32 UTC (rev 1465)
+++ trunk/src/flash/tms470.c 2009-04-19 08:16:58 UTC (rev 1466)
@@ -955,7 +955,8 @@
{
target_t *target = bank->target;
u32 glbctrl, fmbac2, orig_fmregopt, fmbsea, fmbseb, fmmaxpp, fmmstat;
- int i, result = ERROR_OK;
+ int result = ERROR_OK;
+ u32 i;
if (target->state != TARGET_HALTED)
{
|
|
From: <oh...@ma...> - 2009-04-19 10:15:33
|
Author: oharboe
Date: 2009-04-19 10:15:32 +0200 (Sun, 19 Apr 2009)
New Revision: 1465
Modified:
trunk/src/jtag/usbprog.c
Log:
Zach Welch <zw...@su...> fix warnings in usbprog
Modified: trunk/src/jtag/usbprog.c
===================================================================
--- trunk/src/jtag/usbprog.c 2009-04-19 08:05:54 UTC (rev 1464)
+++ trunk/src/jtag/usbprog.c 2009-04-19 08:15:32 UTC (rev 1465)
@@ -347,18 +347,16 @@
usbprog_jtag_tms_send(usbprog_jtag_handle);
- if (type == SCAN_OUT)
- {
- usbprog_jtag_write_tdi(usbprog_jtag_handle,buffer, scan_size);
+ void (*f)(struct usbprog_jtag *usbprog_jtag, char * buffer, int size);
+ switch (type) {
+ case SCAN_OUT: f = &usbprog_jtag_write_tdi; break;
+ case SCAN_IN: f = &usbprog_jtag_read_tdo; break;
+ case SCAN_IO: f = &usbprog_jtag_write_and_read; break;
+ default:
+ LOG_ERROR("unknown scan type: %i", type);
+ exit(-1);
}
- if (type == SCAN_IN)
- {
- usbprog_jtag_read_tdo(usbprog_jtag_handle,buffer, scan_size);
- }
- if (type == SCAN_IO)
- {
- usbprog_jtag_write_and_read(usbprog_jtag_handle,buffer, scan_size);
- }
+ f(usbprog_jtag_handle, (char *)buffer, scan_size);
if (ir_scan)
tap_set_state(TAP_IRPAUSE);
|
|
From: <oh...@ma...> - 2009-04-19 10:05:58
|
Author: oharboe
Date: 2009-04-19 10:05:54 +0200 (Sun, 19 Apr 2009)
New Revision: 1464
Modified:
trunk/src/jtag/amt_jtagaccel.c
trunk/src/jtag/dummy.c
trunk/src/jtag/gw16012.c
trunk/src/jtag/jtag.c
Log:
Zach Welch <zw...@su...> use tap_state_t
Modified: trunk/src/jtag/amt_jtagaccel.c
===================================================================
--- trunk/src/jtag/amt_jtagaccel.c 2009-04-19 08:04:23 UTC (rev 1463)
+++ trunk/src/jtag/amt_jtagaccel.c 2009-04-19 08:05:54 UTC (rev 1464)
@@ -156,7 +156,7 @@
return ERROR_OK;
}
-void amt_jtagaccel_end_state(int state)
+void amt_jtagaccel_end_state(tap_state_t state)
{
if (tap_is_state_stable(state))
tap_set_end_state(state);
Modified: trunk/src/jtag/dummy.c
===================================================================
--- trunk/src/jtag/dummy.c 2009-04-19 08:04:23 UTC (rev 1463)
+++ trunk/src/jtag/dummy.c 2009-04-19 08:05:54 UTC (rev 1464)
@@ -91,7 +91,7 @@
{
if( tck )
{
- int old_state = dummy_state;
+ tap_state_t old_state = dummy_state;
dummy_state = tap_state_transition( old_state, tms );
if( old_state != dummy_state )
Modified: trunk/src/jtag/gw16012.c
===================================================================
--- trunk/src/jtag/gw16012.c 2009-04-19 08:04:23 UTC (rev 1463)
+++ trunk/src/jtag/gw16012.c 2009-04-19 08:05:54 UTC (rev 1464)
@@ -194,7 +194,7 @@
return ERROR_OK;
}
-void gw16012_end_state(int state)
+void gw16012_end_state(tap_state_t state)
{
if (tap_is_state_stable(state))
tap_set_end_state(state);
Modified: trunk/src/jtag/jtag.c
===================================================================
--- trunk/src/jtag/jtag.c 2009-04-19 08:04:23 UTC (rev 1463)
+++ trunk/src/jtag/jtag.c 2009-04-19 08:05:54 UTC (rev 1464)
@@ -219,7 +219,7 @@
void jtag_add_end_state(tap_state_t endstate);
void jtag_add_sleep(u32 us);
int jtag_execute_queue(void);
-int tap_state_by_name(const char *name);
+tap_state_t tap_state_by_name(const char *name);
/* jtag commands */
int handle_interface_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc);
@@ -2652,7 +2652,7 @@
int handle_endstate_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc)
{
- int state;
+ tap_state_t state;
if (argc < 1)
{
@@ -2665,7 +2665,7 @@
command_print( cmd_ctx, "Invalid state name: %s\n", args[0] );
return ERROR_COMMAND_SYNTAX_ERROR;
}
- jtag_add_end_state( (tap_state_t)(state));
+ jtag_add_end_state(state);
jtag_execute_queue();
}
command_print(cmd_ctx, "current endstate: %s", tap_state_name(cmd_queue_end_state));
@@ -2729,7 +2729,7 @@
int i;
scan_field_t *fields;
jtag_tap_t *tap;
- int endstate;
+ tap_state_t endstate;
if ((argc < 2) || (argc % 2))
{
@@ -2807,7 +2807,7 @@
int field_count = 0;
int i, e;
jtag_tap_t *tap;
- int endstate;
+ tap_state_t endstate;
/* args[1] = device
* args[2] = num_bits
@@ -3269,9 +3269,9 @@
return ret;
}
-int tap_state_by_name( const char *name )
+tap_state_t tap_state_by_name( const char *name )
{
- int x;
+ tap_state_t x;
for( x = 0 ; x < TAP_NUM_STATES ; x++ ){
/* be nice to the human */
|
|
From: <oh...@ma...> - 2009-04-19 10:04:25
|
Author: oharboe Date: 2009-04-19 10:04:23 +0200 (Sun, 19 Apr 2009) New Revision: 1463 Modified: trunk/configure.in Log: Zach Welch <zw...@su...> automake maintainer mode Modified: trunk/configure.in =================================================================== --- trunk/configure.in 2009-04-18 10:08:13 UTC (rev 1462) +++ trunk/configure.in 2009-04-19 08:04:23 UTC (rev 1463) @@ -649,6 +649,7 @@ AM_CONFIG_HEADER(config.h) AM_INIT_AUTOMAKE(openocd, 1.0) +AM_MAINTAINER_MODE AM_CONDITIONAL(RELEASE, test $build_release = yes) AM_CONDITIONAL(PARPORT, test $build_parport = yes) |
|
From: <mi...@ma...> - 2009-04-18 12:08:45
|
Author: mifi Date: 2009-04-18 12:08:13 +0200 (Sat, 18 Apr 2009) New Revision: 1462 Modified: trunk/src/flash/aduc702x.c trunk/src/flash/at91sam7.c trunk/src/flash/at91sam7_old.c trunk/src/flash/cfi.c trunk/src/flash/ecos.c trunk/src/flash/flash.c trunk/src/flash/lpc2000.c trunk/src/flash/lpc288x.c trunk/src/flash/lpc3180_nand_controller.c trunk/src/flash/nand.c trunk/src/flash/ocl.c trunk/src/flash/orion_nand.c trunk/src/flash/pic32mx.c trunk/src/flash/s3c2410_nand.c trunk/src/flash/s3c2412_nand.c trunk/src/flash/s3c2440_nand.c trunk/src/flash/s3c2443_nand.c trunk/src/flash/stellaris.c trunk/src/flash/stm32x.c trunk/src/flash/str7x.c trunk/src/flash/str9x.c trunk/src/flash/str9xpec.c trunk/src/flash/tms470.c trunk/src/helper/tclapi.c trunk/src/jtag/amt_jtagaccel.c trunk/src/jtag/arm-jtag-ew.c trunk/src/jtag/bitbang.c trunk/src/jtag/bitq.c trunk/src/jtag/ft2232.c trunk/src/jtag/gw16012.c trunk/src/jtag/jlink.c trunk/src/jtag/jtag.c trunk/src/jtag/jtag.h trunk/src/jtag/usbprog.c trunk/src/jtag/vsllink.c trunk/src/target/arm11.c trunk/src/target/arm11_dbgtap.c trunk/src/target/arm720t.c trunk/src/target/arm7tdmi.c trunk/src/target/arm920t.c trunk/src/target/arm926ejs.c trunk/src/target/arm966e.c trunk/src/target/arm9tdmi.c trunk/src/target/arm_jtag.c trunk/src/target/cortex_swjdp.c trunk/src/target/embeddedice.c trunk/src/target/embeddedice.h trunk/src/target/etb.c trunk/src/target/etm.c trunk/src/target/feroceon.c trunk/src/target/mips_ejtag.c trunk/src/target/xscale.c Log: The following patches was applied: - openocd-flash-static-keyword-v3.patch - openocd-lpc2000-fix-erase-obo.patch - openocd-jlink-fix-sign-ptr-warn.patch - openocd-wextra-etm.patch - openocd-wextra-jtag.patch - openocd-add-new-tap-symbols-v6.patch Many thanks to Zach Welch <zw(at)superlucidity.net> Modified: trunk/src/flash/aduc702x.c =================================================================== --- trunk/src/flash/aduc702x.c 2009-04-15 15:44:26 UTC (rev 1461) +++ trunk/src/flash/aduc702x.c 2009-04-18 10:08:13 UTC (rev 1462) @@ -36,19 +36,19 @@ #include <string.h> #include <unistd.h> -int aduc702x_flash_bank_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc, struct flash_bank_s *bank); -int aduc702x_register_commands(struct command_context_s *cmd_ctx); -int aduc702x_erase(struct flash_bank_s *bank, int first, int last); -int aduc702x_protect(struct flash_bank_s *bank, int set, int first, int last); -int aduc702x_write(struct flash_bank_s *bank, u8 *buffer, u32 offset, u32 count); -int aduc702x_write_single(struct flash_bank_s *bank, u8 *buffer, u32 offset, u32 count); -int aduc702x_write_block(struct flash_bank_s *bank, u8 *buffer, u32 offset, u32 count); -int aduc702x_probe(struct flash_bank_s *bank); -int aduc702x_info(struct flash_bank_s *bank, char *buf, int buf_size); -int aduc702x_protect_check(struct flash_bank_s *bank); -int aduc702x_build_sector_list(struct flash_bank_s *bank); -int aduc702x_check_flash_completion(target_t* target, unsigned int timeout_ms); -int aduc702x_set_write_enable(target_t *target, int enable); +static int aduc702x_flash_bank_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc, struct flash_bank_s *bank); +static int aduc702x_register_commands(struct command_context_s *cmd_ctx); +static int aduc702x_erase(struct flash_bank_s *bank, int first, int last); +static int aduc702x_protect(struct flash_bank_s *bank, int set, int first, int last); +static int aduc702x_write(struct flash_bank_s *bank, u8 *buffer, u32 offset, u32 count); +static int aduc702x_write_single(struct flash_bank_s *bank, u8 *buffer, u32 offset, u32 count); +static int aduc702x_write_block(struct flash_bank_s *bank, u8 *buffer, u32 offset, u32 count); +static int aduc702x_probe(struct flash_bank_s *bank); +static int aduc702x_info(struct flash_bank_s *bank, char *buf, int buf_size); +static int aduc702x_protect_check(struct flash_bank_s *bank); +static int aduc702x_build_sector_list(struct flash_bank_s *bank); +static int aduc702x_check_flash_completion(target_t* target, unsigned int timeout_ms); +static int aduc702x_set_write_enable(target_t *target, int enable); #define ADUC702x_FLASH 0xfffff800 #define ADUC702x_FLASH_FEESTA (0*4) @@ -91,14 +91,14 @@ .info = aduc702x_info }; -int aduc702x_register_commands(struct command_context_s *cmd_ctx) +static int aduc702x_register_commands(struct command_context_s *cmd_ctx) { return ERROR_OK; } /* flash bank aduc702x 0 0 0 0 <target#> * The ADC7019-28 devices all have the same flash layout */ -int aduc702x_flash_bank_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc, struct flash_bank_s *bank) +static int aduc702x_flash_bank_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc, struct flash_bank_s *bank) { aduc702x_flash_bank_t *nbank; @@ -113,7 +113,7 @@ return ERROR_OK; } -int aduc702x_build_sector_list(struct flash_bank_s *bank) +static int aduc702x_build_sector_list(struct flash_bank_s *bank) { //aduc7026_flash_bank_t *aduc7026_info = bank->driver_priv; @@ -135,13 +135,13 @@ return ERROR_OK; } -int aduc702x_protect_check(struct flash_bank_s *bank) +static int aduc702x_protect_check(struct flash_bank_s *bank) { printf("aduc702x_protect_check not implemented yet.\n"); return ERROR_OK; } -int aduc702x_erase(struct flash_bank_s *bank, int first, int last) +static int aduc702x_erase(struct flash_bank_s *bank, int first, int last) { //int res; int x; @@ -194,13 +194,13 @@ return ERROR_OK; } -int aduc702x_protect(struct flash_bank_s *bank, int set, int first, int last) +static int aduc702x_protect(struct flash_bank_s *bank, int set, int first, int last) { printf("aduc702x_protect not implemented yet.\n"); return ERROR_FLASH_OPERATION_FAILED; } -int aduc702x_write_block(struct flash_bank_s *bank, u8 *buffer, u32 offset, u32 count) +static int aduc702x_write_block(struct flash_bank_s *bank, u8 *buffer, u32 offset, u32 count) { aduc702x_flash_bank_t *aduc702x_info = bank->driver_priv; target_t *target = bank->target; @@ -329,7 +329,7 @@ /* All-JTAG, single-access method. Very slow. Used only if there is no * working area available. */ -int aduc702x_write_single(struct flash_bank_s *bank, u8 *buffer, u32 offset, u32 count) +static int aduc702x_write_single(struct flash_bank_s *bank, u8 *buffer, u32 offset, u32 count) { int x; u8 b; @@ -399,12 +399,12 @@ return ERROR_OK; } -int aduc702x_probe(struct flash_bank_s *bank) +static int aduc702x_probe(struct flash_bank_s *bank) { return ERROR_OK; } -int aduc702x_info(struct flash_bank_s *bank, char *buf, int buf_size) +static int aduc702x_info(struct flash_bank_s *bank, char *buf, int buf_size) { snprintf(buf, buf_size, "aduc702x flash driver info" ); return ERROR_OK; @@ -412,7 +412,7 @@ /* sets FEEMOD bit 3 * enable = 1 enables writes & erases, 0 disables them */ -int aduc702x_set_write_enable(target_t *target, int enable) +static int aduc702x_set_write_enable(target_t *target, int enable) { // don't bother to preserve int enable bit here target_write_u16(target, ADUC702x_FLASH + ADUC702x_FLASH_FEEMOD, enable ? 8 : 0); @@ -425,7 +425,7 @@ * * this function sleeps 1ms between checks (after the first one), * so in some cases may slow things down without a usleep after the first read */ -int aduc702x_check_flash_completion(target_t* target, unsigned int timeout_ms) +static int aduc702x_check_flash_completion(target_t* target, unsigned int timeout_ms) { u8 v = 4; Modified: trunk/src/flash/at91sam7.c =================================================================== --- trunk/src/flash/at91sam7.c 2009-04-15 15:44:26 UTC (rev 1461) +++ trunk/src/flash/at91sam7.c 2009-04-18 10:08:13 UTC (rev 1462) @@ -53,22 +53,22 @@ #include <string.h> #include <unistd.h> -int at91sam7_register_commands(struct command_context_s *cmd_ctx); -int at91sam7_flash_bank_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc, struct flash_bank_s *bank); -int at91sam7_erase(struct flash_bank_s *bank, int first, int last); -int at91sam7_protect(struct flash_bank_s *bank, int set, int first, int last); -int at91sam7_write(struct flash_bank_s *bank, u8 *buffer, u32 offset, u32 count); -int at91sam7_probe(struct flash_bank_s *bank); -int at91sam7_auto_probe(struct flash_bank_s *bank); -int at91sam7_erase_check(struct flash_bank_s *bank); -int at91sam7_protect_check(struct flash_bank_s *bank); -int at91sam7_info(struct flash_bank_s *bank, char *buf, int buf_size); +static int at91sam7_register_commands(struct command_context_s *cmd_ctx); +static int at91sam7_flash_bank_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc, struct flash_bank_s *bank); +static int at91sam7_erase(struct flash_bank_s *bank, int first, int last); +static int at91sam7_protect(struct flash_bank_s *bank, int set, int first, int last); +static int at91sam7_write(struct flash_bank_s *bank, u8 *buffer, u32 offset, u32 count); +static int at91sam7_probe(struct flash_bank_s *bank); +//static int at91sam7_auto_probe(struct flash_bank_s *bank); +static int at91sam7_erase_check(struct flash_bank_s *bank); +static int at91sam7_protect_check(struct flash_bank_s *bank); +static int at91sam7_info(struct flash_bank_s *bank, char *buf, int buf_size); -u32 at91sam7_get_flash_status(target_t *target, int bank_number); -void at91sam7_set_flash_mode(flash_bank_t *bank, int mode); -u32 at91sam7_wait_status_busy(flash_bank_t *bank, u32 waitbits, int timeout); -int at91sam7_flash_command(struct flash_bank_s *bank, u8 cmd, u16 pagen); -int at91sam7_handle_gpnvm_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc); +static u32 at91sam7_get_flash_status(target_t *target, int bank_number); +static void at91sam7_set_flash_mode(flash_bank_t *bank, int mode); +static u32 at91sam7_wait_status_busy(flash_bank_t *bank, u32 waitbits, int timeout); +static int at91sam7_flash_command(struct flash_bank_s *bank, u8 cmd, u16 pagen); +static int at91sam7_handle_gpnvm_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc); flash_driver_t at91sam7_flash = { @@ -85,13 +85,14 @@ .info = at91sam7_info }; -u32 MC_FMR[4] = { 0xFFFFFF60, 0xFFFFFF70, 0xFFFFFF80, 0xFFFFFF90 }; -u32 MC_FCR[4] = { 0xFFFFFF64, 0xFFFFFF74, 0xFFFFFF84, 0xFFFFFF94 }; -u32 MC_FSR[4] = { 0xFFFFFF68, 0xFFFFFF78, 0xFFFFFF88, 0xFFFFFF98 }; +static u32 MC_FMR[4] = { 0xFFFFFF60, 0xFFFFFF70, 0xFFFFFF80, 0xFFFFFF90 }; +static u32 MC_FCR[4] = { 0xFFFFFF64, 0xFFFFFF74, 0xFFFFFF84, 0xFFFFFF94 }; +static u32 MC_FSR[4] = { 0xFFFFFF68, 0xFFFFFF78, 0xFFFFFF88, 0xFFFFFF98 }; -char * EPROC[8]= {"Unknown","ARM946-E","ARM7TDMI","Unknown","ARM920T","ARM926EJ-S","Unknown","Unknown"}; +static char * EPROC[8]= {"Unknown","ARM946-E","ARM7TDMI","Unknown","ARM920T","ARM926EJ-S","Unknown","Unknown"}; -long SRAMSIZ[16] = { +#if 0 +static long SRAMSIZ[16] = { -1, 0x0400, /* 1K */ 0x0800, /* 2K */ @@ -109,8 +110,9 @@ 0x18000, /* 96K */ 0x80000, /* 512K */ }; +#endif -int at91sam7_register_commands(struct command_context_s *cmd_ctx) +static int at91sam7_register_commands(struct command_context_s *cmd_ctx) { command_t *at91sam7_cmd = register_command(cmd_ctx, NULL, "at91sam7_new", NULL, COMMAND_ANY, NULL); @@ -119,7 +121,7 @@ return ERROR_OK; } -u32 at91sam7_get_flash_status(target_t *target, int bank_number) +static u32 at91sam7_get_flash_status(target_t *target, int bank_number) { u32 fsr; target_read_u32(target, MC_FSR[bank_number], &fsr); @@ -128,7 +130,7 @@ } /* Read clock configuration and set at91sam7_info->mck_freq */ -void at91sam7_read_clock_info(flash_bank_t *bank) +static void at91sam7_read_clock_info(flash_bank_t *bank) { at91sam7_flash_bank_t *at91sam7_info = bank->driver_priv; target_t *target = bank->target; @@ -207,7 +209,7 @@ } /* Setup the timimg registers for nvbits or normal flash */ -void at91sam7_set_flash_mode(flash_bank_t *bank, int mode) +static void at91sam7_set_flash_mode(flash_bank_t *bank, int mode) { u32 fmr, fmcn = 0, fws = 0; at91sam7_flash_bank_t *at91sam7_info = bank->driver_priv; @@ -255,7 +257,7 @@ at91sam7_info->flashmode = mode; } -u32 at91sam7_wait_status_busy(flash_bank_t *bank, u32 waitbits, int timeout) +static u32 at91sam7_wait_status_busy(flash_bank_t *bank, u32 waitbits, int timeout) { u32 status; @@ -282,7 +284,7 @@ } /* Send one command to the AT91SAM flash controller */ -int at91sam7_flash_command(struct flash_bank_s *bank, u8 cmd, u16 pagen) +static int at91sam7_flash_command(struct flash_bank_s *bank, u8 cmd, u16 pagen) { u32 fcr; at91sam7_flash_bank_t *at91sam7_info = bank->driver_priv; @@ -311,7 +313,7 @@ } /* Read device id register, main clock frequency register and fill in driver info structure */ -int at91sam7_read_part_info(struct flash_bank_s *bank) +static int at91sam7_read_part_info(struct flash_bank_s *bank) { flash_bank_t *t_bank = bank; at91sam7_flash_bank_t *at91sam7_info; @@ -626,7 +628,7 @@ return ERROR_OK; } -int at91sam7_erase_check(struct flash_bank_s *bank) +static int at91sam7_erase_check(struct flash_bank_s *bank) { target_t *target = bank->target; u16 retval; @@ -692,7 +694,7 @@ return ERROR_OK; } -int at91sam7_protect_check(struct flash_bank_s *bank) +static int at91sam7_protect_check(struct flash_bank_s *bank) { u8 lock_pos, gpnvm_pos; u32 status; @@ -752,7 +754,7 @@ # flash bank at91sam7 0x00100000 0 0 4 0 0 AT91SAM7XC256 1 16 64 256 3 0 ==== NOT RECOMENDED !!! ==== # flash bank at91sam7 0 0 0 0 0 (old style, full auto-detection) ==== NOT RECOMENDED !!! ==== ****************************************************************************************************************************************************************************************/ -int at91sam7_flash_bank_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc, struct flash_bank_s *bank) +static int at91sam7_flash_bank_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc, struct flash_bank_s *bank) { flash_bank_t *t_bank = bank; at91sam7_flash_bank_t *at91sam7_info; @@ -864,7 +866,7 @@ return ERROR_OK; } -int at91sam7_erase(struct flash_bank_s *bank, int first, int last) +static int at91sam7_erase(struct flash_bank_s *bank, int first, int last) { at91sam7_flash_bank_t *at91sam7_info = bank->driver_priv; int sec; @@ -932,7 +934,7 @@ return ERROR_OK; } -int at91sam7_protect(struct flash_bank_s *bank, int set, int first, int last) +static int at91sam7_protect(struct flash_bank_s *bank, int set, int first, int last) { u32 cmd; u32 sector, pagen; @@ -981,7 +983,7 @@ return ERROR_OK; } -int at91sam7_write(struct flash_bank_s *bank, u8 *buffer, u32 offset, u32 count) +static int at91sam7_write(struct flash_bank_s *bank, u8 *buffer, u32 offset, u32 count) { int retval; at91sam7_flash_bank_t *at91sam7_info = bank->driver_priv; @@ -1050,7 +1052,7 @@ return ERROR_OK; } -int at91sam7_probe(struct flash_bank_s *bank) +static int at91sam7_probe(struct flash_bank_s *bank) { /* we can't probe on an at91sam7 * if this is an at91sam7, it has the configured flash */ @@ -1069,7 +1071,7 @@ return ERROR_OK; } -int at91sam7_info(struct flash_bank_s *bank, char *buf, int buf_size) +static int at91sam7_info(struct flash_bank_s *bank, char *buf, int buf_size) { int printed; at91sam7_flash_bank_t *at91sam7_info = bank->driver_priv; @@ -1130,7 +1132,7 @@ * The maximum number of write/erase cycles for Non volatile Memory bits is 100. this includes * Lock Bits (LOCKx), General Purpose NVM bits (GPNVMx) and the Security Bit. */ -int at91sam7_handle_gpnvm_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc) +static int at91sam7_handle_gpnvm_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc) { flash_bank_t *bank; int bit; Modified: trunk/src/flash/at91sam7_old.c =================================================================== --- trunk/src/flash/at91sam7_old.c 2009-04-15 15:44:26 UTC (rev 1461) +++ trunk/src/flash/at91sam7_old.c 2009-04-18 10:08:13 UTC (rev 1462) @@ -51,22 +51,22 @@ #include <string.h> #include <unistd.h> -int at91sam7_old_register_commands(struct command_context_s *cmd_ctx); -int at91sam7_old_flash_bank_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc, struct flash_bank_s *bank); -int at91sam7_old_erase(struct flash_bank_s *bank, int first, int last); -int at91sam7_old_protect(struct flash_bank_s *bank, int set, int first, int last); -int at91sam7_old_write(struct flash_bank_s *bank, u8 *buffer, u32 offset, u32 count); -int at91sam7_old_probe(struct flash_bank_s *bank); -int at91sam7_old_auto_probe(struct flash_bank_s *bank); -int at91sam7_old_erase_check(struct flash_bank_s *bank); -int at91sam7_old_protect_check(struct flash_bank_s *bank); -int at91sam7_old_info(struct flash_bank_s *bank, char *buf, int buf_size); +static int at91sam7_old_register_commands(struct command_context_s *cmd_ctx); +static int at91sam7_old_flash_bank_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc, struct flash_bank_s *bank); +static int at91sam7_old_erase(struct flash_bank_s *bank, int first, int last); +static int at91sam7_old_protect(struct flash_bank_s *bank, int set, int first, int last); +static int at91sam7_old_write(struct flash_bank_s *bank, u8 *buffer, u32 offset, u32 count); +static int at91sam7_old_probe(struct flash_bank_s *bank); +//static int at91sam7_old_auto_probe(struct flash_bank_s *bank); +static int at91sam7_old_erase_check(struct flash_bank_s *bank); +static int at91sam7_old_protect_check(struct flash_bank_s *bank); +static int at91sam7_old_info(struct flash_bank_s *bank, char *buf, int buf_size); -u32 at91sam7_old_get_flash_status(flash_bank_t *bank, u8 flashplane); -void at91sam7_old_set_flash_mode(flash_bank_t *bank, u8 flashplane, int mode); -u32 at91sam7_old_wait_status_busy(flash_bank_t *bank, u8 flashplane, u32 waitbits, int timeout); -int at91sam7_old_flash_command(struct flash_bank_s *bank, u8 flashplane, u8 cmd, u16 pagen); -int at91sam7_old_handle_gpnvm_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc); +static u32 at91sam7_old_get_flash_status(flash_bank_t *bank, u8 flashplane); +static void at91sam7_old_set_flash_mode(flash_bank_t *bank, u8 flashplane, int mode); +static u32 at91sam7_old_wait_status_busy(flash_bank_t *bank, u8 flashplane, u32 waitbits, int timeout); +static int at91sam7_old_flash_command(struct flash_bank_s *bank, u8 flashplane, u8 cmd, u16 pagen); +static int at91sam7_old_handle_gpnvm_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc); flash_driver_t at91sam7_old_flash = { @@ -83,12 +83,12 @@ .info = at91sam7_old_info }; -u32 MC_FMR_old[4] = { 0xFFFFFF60, 0xFFFFFF70, 0xFFFFFF80, 0xFFFFFF90 }; -u32 MC_FCR_old[4] = { 0xFFFFFF64, 0xFFFFFF74, 0xFFFFFF84, 0xFFFFFF94 }; -u32 MC_FSR_old[4] = { 0xFFFFFF68, 0xFFFFFF78, 0xFFFFFF88, 0xFFFFFF98 }; +static u32 MC_FMR_old[4] = { 0xFFFFFF60, 0xFFFFFF70, 0xFFFFFF80, 0xFFFFFF90 }; +static u32 MC_FCR_old[4] = { 0xFFFFFF64, 0xFFFFFF74, 0xFFFFFF84, 0xFFFFFF94 }; +static u32 MC_FSR_old[4] = { 0xFFFFFF68, 0xFFFFFF78, 0xFFFFFF88, 0xFFFFFF98 }; -char * EPROC_old[8]= {"Unknown","ARM946-E","ARM7TDMI","Unknown","ARM920T","ARM926EJ-S","Unknown","Unknown"}; -long NVPSIZ_old[16] = { +static char * EPROC_old[8]= {"Unknown","ARM946-E","ARM7TDMI","Unknown","ARM920T","ARM926EJ-S","Unknown","Unknown"}; +static long NVPSIZ_old[16] = { 0, 0x2000, /* 8K */ 0x4000, /* 16K */ @@ -107,7 +107,8 @@ -1 }; -long SRAMSIZ_old[16] = { +#if 0 +static long SRAMSIZ_old[16] = { -1, 0x0400, /* 1K */ 0x0800, /* 2K */ @@ -125,8 +126,9 @@ 0x18000, /* 96K */ 0x80000, /* 512K */ }; +#endif -int at91sam7_old_register_commands(struct command_context_s *cmd_ctx) +static int at91sam7_old_register_commands(struct command_context_s *cmd_ctx) { command_t *at91sam7_old_cmd = register_command(cmd_ctx, NULL, "at91sam7", NULL, COMMAND_ANY, NULL); register_command(cmd_ctx, at91sam7_old_cmd, "gpnvm", at91sam7_old_handle_gpnvm_command, COMMAND_EXEC, @@ -135,7 +137,7 @@ return ERROR_OK; } -u32 at91sam7_old_get_flash_status(flash_bank_t *bank, u8 flashplane) +static u32 at91sam7_old_get_flash_status(flash_bank_t *bank, u8 flashplane) { target_t *target = bank->target; u32 fsr; @@ -146,7 +148,7 @@ } /* Read clock configuration and set at91sam7_old_info->usec_clocks*/ -void at91sam7_old_read_clock_info(flash_bank_t *bank) +static void at91sam7_old_read_clock_info(flash_bank_t *bank) { at91sam7_old_flash_bank_t *at91sam7_old_info = bank->driver_priv; target_t *target = bank->target; @@ -210,7 +212,7 @@ } /* Setup the timimg registers for nvbits or normal flash */ -void at91sam7_old_set_flash_mode(flash_bank_t *bank, u8 flashplane, int mode) +static void at91sam7_old_set_flash_mode(flash_bank_t *bank, u8 flashplane, int mode) { u32 fmr, fmcn = 0, fws = 0; at91sam7_old_flash_bank_t *at91sam7_old_info = bank->driver_priv; @@ -251,7 +253,7 @@ at91sam7_old_info->flashmode[flashplane] = mode; } -u32 at91sam7_old_wait_status_busy(flash_bank_t *bank, u8 flashplane, u32 waitbits, int timeout) +static u32 at91sam7_old_wait_status_busy(flash_bank_t *bank, u8 flashplane, u32 waitbits, int timeout) { u32 status; @@ -279,7 +281,7 @@ /* Send one command to the AT91SAM flash controller */ -int at91sam7_old_flash_command(struct flash_bank_s *bank, u8 flashplane, u8 cmd, u16 pagen) +static int at91sam7_old_flash_command(struct flash_bank_s *bank, u8 flashplane, u8 cmd, u16 pagen) { u32 fcr; at91sam7_old_flash_bank_t *at91sam7_old_info = bank->driver_priv; @@ -307,7 +309,7 @@ } /* Read device id register, main clock frequency register and fill in driver info structure */ -int at91sam7_old_read_part_info(struct flash_bank_s *bank) +static int at91sam7_old_read_part_info(struct flash_bank_s *bank) { at91sam7_old_flash_bank_t *at91sam7_old_info = bank->driver_priv; target_t *target = bank->target; @@ -574,7 +576,7 @@ return ERROR_OK; } -int at91sam7_old_protect_check(struct flash_bank_s *bank) +static int at91sam7_old_protect_check(struct flash_bank_s *bank) { u32 status; int flashplane; @@ -625,7 +627,7 @@ return ERROR_OK; } -int at91sam7_old_erase(struct flash_bank_s *bank, int first, int last) +static int at91sam7_old_erase(struct flash_bank_s *bank, int first, int last) { at91sam7_old_flash_bank_t *at91sam7_old_info = bank->driver_priv; u8 flashplane; @@ -716,7 +718,7 @@ } -int at91sam7_old_write(struct flash_bank_s *bank, u8 *buffer, u32 offset, u32 count) +static int at91sam7_old_write(struct flash_bank_s *bank, u8 *buffer, u32 offset, u32 count) { at91sam7_old_flash_bank_t *at91sam7_old_info = bank->driver_priv; target_t *target = bank->target; @@ -784,7 +786,7 @@ } -int at91sam7_old_probe(struct flash_bank_s *bank) +static int at91sam7_old_probe(struct flash_bank_s *bank) { /* we can't probe on an at91sam7_old * if this is an at91sam7_old, it has the configured flash @@ -811,7 +813,7 @@ } -int at91sam7_old_info(struct flash_bank_s *bank, char *buf, int buf_size) +static int at91sam7_old_info(struct flash_bank_s *bank, char *buf, int buf_size) { int printed, flashplane; at91sam7_old_flash_bank_t *at91sam7_old_info = bank->driver_priv; @@ -871,7 +873,7 @@ * The maximum number of write/erase cycles for Non Volatile Memory bits is 100. This includes * Lock Bits (LOCKx), General Purpose NVM bits (GPNVMx) and the Security Bit. */ -int at91sam7_old_handle_gpnvm_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc) +static int at91sam7_old_handle_gpnvm_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc) { flash_bank_t *bank; int bit; Modified: trunk/src/flash/cfi.c =================================================================== --- trunk/src/flash/cfi.c 2009-04-15 15:44:26 UTC (rev 1461) +++ trunk/src/flash/cfi.c 2009-04-18 10:08:13 UTC (rev 1462) @@ -38,17 +38,17 @@ #include <string.h> #include <unistd.h> -int cfi_register_commands(struct command_context_s *cmd_ctx); -int cfi_flash_bank_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc, struct flash_bank_s *bank); -int cfi_erase(struct flash_bank_s *bank, int first, int last); -int cfi_protect(struct flash_bank_s *bank, int set, int first, int last); -int cfi_write(struct flash_bank_s *bank, u8 *buffer, u32 offset, u32 count); -int cfi_probe(struct flash_bank_s *bank); -int cfi_auto_probe(struct flash_bank_s *bank); -int cfi_protect_check(struct flash_bank_s *bank); -int cfi_info(struct flash_bank_s *bank, char *buf, int buf_size); +static int cfi_register_commands(struct command_context_s *cmd_ctx); +static int cfi_flash_bank_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc, struct flash_bank_s *bank); +static int cfi_erase(struct flash_bank_s *bank, int first, int last); +static int cfi_protect(struct flash_bank_s *bank, int set, int first, int last); +static int cfi_write(struct flash_bank_s *bank, u8 *buffer, u32 offset, u32 count); +static int cfi_probe(struct flash_bank_s *bank); +static int cfi_auto_probe(struct flash_bank_s *bank); +static int cfi_protect_check(struct flash_bank_s *bank); +static int cfi_info(struct flash_bank_s *bank, char *buf, int buf_size); -int cfi_handle_part_id_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc); +//static int cfi_handle_part_id_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc); #define CFI_MAX_BUS_WIDTH 4 #define CFI_MAX_CHIP_WIDTH 4 @@ -71,19 +71,19 @@ .info = cfi_info }; -cfi_unlock_addresses_t cfi_unlock_addresses[] = +static cfi_unlock_addresses_t cfi_unlock_addresses[] = { [CFI_UNLOCK_555_2AA] = { .unlock1 = 0x555, .unlock2 = 0x2aa }, [CFI_UNLOCK_5555_2AAA] = { .unlock1 = 0x5555, .unlock2 = 0x2aaa }, }; /* CFI fixups foward declarations */ -void cfi_fixup_0002_erase_regions(flash_bank_t *flash, void *param); -void cfi_fixup_0002_unlock_addresses(flash_bank_t *flash, void *param); -void cfi_fixup_atmel_reversed_erase_regions(flash_bank_t *flash, void *param); +static void cfi_fixup_0002_erase_regions(flash_bank_t *flash, void *param); +static void cfi_fixup_0002_unlock_addresses(flash_bank_t *flash, void *param); +static void cfi_fixup_atmel_reversed_erase_regions(flash_bank_t *flash, void *param); /* fixup after identifying JEDEC manufactuer and ID */ -cfi_fixup_t cfi_jedec_fixups[] = { +static cfi_fixup_t cfi_jedec_fixups[] = { {CFI_MFR_SST, 0x00D4, cfi_fixup_non_cfi, NULL}, {CFI_MFR_SST, 0x00D5, cfi_fixup_non_cfi, NULL}, {CFI_MFR_SST, 0x00D6, cfi_fixup_non_cfi, NULL}, @@ -101,7 +101,7 @@ }; /* fixup after reading cmdset 0002 primary query table */ -cfi_fixup_t cfi_0002_fixups[] = { +static cfi_fixup_t cfi_0002_fixups[] = { {CFI_MFR_SST, 0x00D4, cfi_fixup_0002_unlock_addresses, &cfi_unlock_addresses[CFI_UNLOCK_5555_2AAA]}, {CFI_MFR_SST, 0x00D5, cfi_fixup_0002_unlock_addresses, &cfi_unlock_addresses[CFI_UNLOCK_5555_2AAA]}, {CFI_MFR_SST, 0x00D6, cfi_fixup_0002_unlock_addresses, &cfi_unlock_addresses[CFI_UNLOCK_5555_2AAA]}, @@ -117,11 +117,11 @@ }; /* fixup after reading cmdset 0001 primary query table */ -cfi_fixup_t cfi_0001_fixups[] = { +static cfi_fixup_t cfi_0001_fixups[] = { {0, 0, NULL, NULL} }; -void cfi_fixup(flash_bank_t *bank, cfi_fixup_t *fixups) +static void cfi_fixup(flash_bank_t *bank, cfi_fixup_t *fixups) { cfi_flash_bank_t *cfi_info = bank->driver_priv; cfi_fixup_t *f; @@ -154,7 +154,7 @@ } -void cfi_command(flash_bank_t *bank, u8 cmd, u8 *cmd_buf) +static void cfi_command(flash_bank_t *bank, u8 cmd, u8 *cmd_buf) { int i; @@ -184,7 +184,7 @@ * flash banks are expected to be made of similar chips * the query result should be the same for all */ -u8 cfi_query_u8(flash_bank_t *bank, int sector, u32 offset) +static u8 cfi_query_u8(flash_bank_t *bank, int sector, u32 offset) { target_t *target = bank->target; u8 data[CFI_MAX_BUS_WIDTH]; @@ -201,7 +201,7 @@ * in case of a bank made of multiple chips, * the individual values are ORed */ -u8 cfi_get_u8(flash_bank_t *bank, int sector, u32 offset) +static u8 cfi_get_u8(flash_bank_t *bank, int sector, u32 offset) { target_t *target = bank->target; u8 data[CFI_MAX_BUS_WIDTH]; @@ -226,7 +226,7 @@ } } -u16 cfi_query_u16(flash_bank_t *bank, int sector, u32 offset) +static u16 cfi_query_u16(flash_bank_t *bank, int sector, u32 offset) { target_t *target = bank->target; u8 data[CFI_MAX_BUS_WIDTH * 2]; @@ -239,7 +239,7 @@ return data[bank->bus_width - 1] | data[(2 * bank->bus_width) - 1] << 8; } -u32 cfi_query_u32(flash_bank_t *bank, int sector, u32 offset) +static u32 cfi_query_u32(flash_bank_t *bank, int sector, u32 offset) { target_t *target = bank->target; u8 data[CFI_MAX_BUS_WIDTH * 4]; @@ -253,7 +253,7 @@ data[(3 * bank->bus_width) - 1] << 16 | data[(4 * bank->bus_width) - 1] << 24; } -void cfi_intel_clear_status_register(flash_bank_t *bank) +static void cfi_intel_clear_status_register(flash_bank_t *bank) { target_t *target = bank->target; u8 command[8]; @@ -343,7 +343,7 @@ return(ERROR_FLASH_BUSY); } -int cfi_read_intel_pri_ext(flash_bank_t *bank) +static int cfi_read_intel_pri_ext(flash_bank_t *bank) { int retval; cfi_flash_bank_t *cfi_info = bank->driver_priv; @@ -406,7 +406,7 @@ return ERROR_OK; } -int cfi_read_spansion_pri_ext(flash_bank_t *bank) +static int cfi_read_spansion_pri_ext(flash_bank_t *bank) { int retval; cfi_flash_bank_t *cfi_info = bank->driver_priv; @@ -471,7 +471,7 @@ return ERROR_OK; } -int cfi_read_atmel_pri_ext(flash_bank_t *bank) +static int cfi_read_atmel_pri_ext(flash_bank_t *bank) { int retval; cfi_atmel_pri_ext_t atmel_pri_ext; @@ -538,7 +538,7 @@ return ERROR_OK; } -int cfi_read_0002_pri_ext(flash_bank_t *bank) +static int cfi_read_0002_pri_ext(flash_bank_t *bank) { cfi_flash_bank_t *cfi_info = bank->driver_priv; @@ -552,7 +552,7 @@ } } -int cfi_spansion_info(struct flash_bank_s *bank, char *buf, int buf_size) +static int cfi_spansion_info(struct flash_bank_s *bank, char *buf, int buf_size) { int printed; cfi_flash_bank_t *cfi_info = bank->driver_priv; @@ -587,7 +587,7 @@ return ERROR_OK; } -int cfi_intel_info(struct flash_bank_s *bank, char *buf, int buf_size) +static int cfi_intel_info(struct flash_bank_s *bank, char *buf, int buf_size) { int printed; cfi_flash_bank_t *cfi_info = bank->driver_priv; @@ -616,7 +616,7 @@ return ERROR_OK; } -int cfi_register_commands(struct command_context_s *cmd_ctx) +static int cfi_register_commands(struct command_context_s *cmd_ctx) { /*command_t *cfi_cmd = */ register_command(cmd_ctx, NULL, "cfi", NULL, COMMAND_ANY, "flash bank cfi <base> <size> <chip_width> <bus_width> <targetNum> [jedec_probe/x16_as_x8]"); @@ -629,7 +629,7 @@ /* flash_bank cfi <base> <size> <chip_width> <bus_width> <target#> [options] */ -int cfi_flash_bank_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc, struct flash_bank_s *bank) +static int cfi_flash_bank_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc, struct flash_bank_s *bank) { cfi_flash_bank_t *cfi_info; int i; @@ -677,7 +677,7 @@ return ERROR_OK; } -int cfi_intel_erase(struct flash_bank_s *bank, int first, int last) +static int cfi_intel_erase(struct flash_bank_s *bank, int first, int last) { int retval; cfi_flash_bank_t *cfi_info = bank->driver_priv; @@ -721,7 +721,7 @@ } -int cfi_spansion_erase(struct flash_bank_s *bank, int first, int last) +static int cfi_spansion_erase(struct flash_bank_s *bank, int first, int last) { int retval; cfi_flash_bank_t *cfi_info = bank->driver_priv; @@ -787,7 +787,7 @@ return target->type->write_memory(target, flash_address(bank, 0, 0x0), bank->bus_width, 1, command); } -int cfi_erase(struct flash_bank_s *bank, int first, int last) +static int cfi_erase(struct flash_bank_s *bank, int first, int last) { cfi_flash_bank_t *cfi_info = bank->driver_priv; @@ -822,7 +822,7 @@ return ERROR_OK; } -int cfi_intel_protect(struct flash_bank_s *bank, int set, int first, int last) +static int cfi_intel_protect(struct flash_bank_s *bank, int set, int first, int last) { int retval; cfi_flash_bank_t *cfi_info = bank->driver_priv; @@ -939,7 +939,7 @@ return target->type->write_memory(target, flash_address(bank, 0, 0x0), bank->bus_width, 1, command); } -int cfi_protect(struct flash_bank_s *bank, int set, int first, int last) +static int cfi_protect(struct flash_bank_s *bank, int set, int first, int last) { cfi_flash_bank_t *cfi_info = bank->driver_priv; @@ -1018,7 +1018,7 @@ } } -u32 cfi_command_val(flash_bank_t *bank, u8 cmd) +static u32 cfi_command_val(flash_bank_t *bank, u8 cmd) { target_t *target = bank->target; @@ -1041,7 +1041,7 @@ } } -int cfi_intel_write_block(struct flash_bank_s *bank, u8 *buffer, u32 address, u32 count) +static int cfi_intel_write_block(struct flash_bank_s *bank, u8 *buffer, u32 address, u32 count) { cfi_flash_bank_t *cfi_info = bank->driver_priv; target_t *target = bank->target; @@ -1285,7 +1285,7 @@ return retval; } -int cfi_spansion_write_block(struct flash_bank_s *bank, u8 *buffer, u32 address, u32 count) +static int cfi_spansion_write_block(struct flash_bank_s *bank, u8 *buffer, u32 address, u32 count) { cfi_flash_bank_t *cfi_info = bank->driver_priv; cfi_spansion_pri_ext_t *pri_ext = cfi_info->pri_ext; @@ -1547,7 +1547,7 @@ return exit_code; } -int cfi_intel_write_word(struct flash_bank_s *bank, u8 *word, u32 address) +static int cfi_intel_write_word(struct flash_bank_s *bank, u8 *word, u32 address) { int retval; cfi_flash_bank_t *cfi_info = bank->driver_priv; @@ -1581,7 +1581,7 @@ return ERROR_OK; } -int cfi_intel_write_words(struct flash_bank_s *bank, u8 *word, u32 wordcount, u32 address) +static int cfi_intel_write_words(struct flash_bank_s *bank, u8 *word, u32 wordcount, u32 address) { int retval; cfi_flash_bank_t *cfi_info = bank->driver_priv; @@ -1673,7 +1673,7 @@ return ERROR_OK; } -int cfi_spansion_write_word(struct flash_bank_s *bank, u8 *word, u32 address) +static int cfi_spansion_write_word(struct flash_bank_s *bank, u8 *word, u32 address) { int retval; cfi_flash_bank_t *cfi_info = bank->driver_priv; @@ -1719,7 +1719,7 @@ return ERROR_OK; } -int cfi_spansion_write_words(struct flash_bank_s *bank, u8 *word, u32 wordcount, u32 address) +static int cfi_spansion_write_words(struct flash_bank_s *bank, u8 *word, u32 wordcount, u32 address) { int retval; cfi_flash_bank_t *cfi_info = bank->driver_priv; @@ -1811,7 +1811,7 @@ return ERROR_OK; } -int cfi_write_word(struct flash_bank_s *bank, u8 *word, u32 address) +static int cfi_write_word(struct flash_bank_s *bank, u8 *word, u32 address) { cfi_flash_bank_t *cfi_info = bank->driver_priv; @@ -1832,7 +1832,7 @@ return ERROR_FLASH_OPERATION_FAILED; } -int cfi_write_words(struct flash_bank_s *bank, u8 *word, u32 wordcount, u32 address) +static int cfi_write_words(struct flash_bank_s *bank, u8 *word, u32 wordcount, u32 address) { cfi_flash_bank_t *cfi_info = bank->driver_priv; @@ -2062,7 +2062,7 @@ return target->type->write_memory(target, flash_address(bank, 0, 0x0), bank->bus_width, 1, current_word); } -void cfi_fixup_atmel_reversed_erase_regions(flash_bank_t *bank, void *param) +static void cfi_fixup_atmel_reversed_erase_regions(flash_bank_t *bank, void *param) { cfi_flash_bank_t *cfi_info = bank->driver_priv; cfi_spansion_pri_ext_t *pri_ext = cfi_info->pri_ext; @@ -2070,7 +2070,7 @@ pri_ext->_reversed_geometry = 1; } -void cfi_fixup_0002_erase_regions(flash_bank_t *bank, void *param) +static void cfi_fixup_0002_erase_regions(flash_bank_t *bank, void *param) { int i; cfi_flash_bank_t *cfi_info = bank->driver_priv; @@ -2092,7 +2092,7 @@ } } -void cfi_fixup_0002_unlock_addresses(flash_bank_t *bank, void *param) +static void cfi_fixup_0002_unlock_addresses(flash_bank_t *bank, void *param) { cfi_flash_bank_t *cfi_info = bank->driver_priv; cfi_spansion_pri_ext_t *pri_ext = cfi_info->pri_ext; @@ -2102,7 +2102,7 @@ pri_ext->_unlock2 = unlock_addresses->unlock2; } -int cfi_probe(struct flash_bank_s *bank) +static int cfi_probe(struct flash_bank_s *bank) { cfi_flash_bank_t *cfi_info = bank->driver_priv; target_t *target = bank->target; @@ -2379,7 +2379,7 @@ return ERROR_OK; } -int cfi_auto_probe(struct flash_bank_s *bank) +static int cfi_auto_probe(struct flash_bank_s *bank) { cfi_flash_bank_t *cfi_info = bank->driver_priv; if (cfi_info->probed) @@ -2388,7 +2388,7 @@ } -int cfi_intel_protect_check(struct flash_bank_s *bank) +static int cfi_intel_protect_check(struct flash_bank_s *bank) { int retval; cfi_flash_bank_t *cfi_info = bank->driver_priv; @@ -2421,7 +2421,7 @@ return target->type->write_memory(target, flash_address(bank, 0, 0x0), bank->bus_width, 1, command); } -int cfi_spansion_protect_check(struct flash_bank_s *bank) +static int cfi_spansion_protect_check(struct flash_bank_s *bank) { int retval; cfi_flash_bank_t *cfi_info = bank->driver_priv; @@ -2462,7 +2462,7 @@ return target->type->write_memory(target, flash_address(bank, 0, 0x0), bank->bus_width, 1, command); } -int cfi_protect_check(struct flash_bank_s *bank) +static int cfi_protect_check(struct flash_bank_s *bank) { cfi_flash_bank_t *cfi_info = bank->driver_priv; @@ -2492,7 +2492,7 @@ return ERROR_OK; } -int cfi_info(struct flash_bank_s *bank, char *buf, int buf_size) +static int cfi_info(struct flash_bank_s *bank, char *buf, int buf_size) { int printed; cfi_flash_bank_t *cfi_info = bank->driver_priv; Modified: trunk/src/flash/ecos.c =================================================================== --- trunk/src/flash/ecos.c 2009-04-15 15:44:26 UTC (rev 1461) +++ trunk/src/flash/ecos.c 2009-04-18 10:08:13 UTC (rev 1462) @@ -36,19 +36,21 @@ #include "../target/embeddedice.h" #include "types.h" -int ecosflash_register_commands(struct command_context_s *cmd_ctx); -int ecosflash_flash_bank_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc, struct flash_bank_s *bank); -int ecosflash_erase(struct flash_bank_s *bank, int first, int last); -int ecosflash_protect(struct flash_bank_s *bank, int set, int first, int last); -int ecosflash_write(struct flash_bank_s *bank, u8 *buffer, u32 offset, u32 count); -int ecosflash_probe(struct flash_bank_s *bank); -int ecosflash_protect_check(struct flash_bank_s *bank); -int ecosflash_info(struct flash_bank_s *bank, char *buf, int buf_size); +static int ecosflash_register_commands(struct command_context_s *cmd_ctx); +static int ecosflash_flash_bank_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc, struct flash_bank_s *bank); +static int ecosflash_erase(struct flash_bank_s *bank, int first, int last); +static int ecosflash_protect(struct flash_bank_s *bank, int set, int first, int last); +static int ecosflash_write(struct flash_bank_s *bank, u8 *buffer, u32 offset, u32 count); +static int ecosflash_probe(struct flash_bank_s *bank); +static int ecosflash_protect_check(struct flash_bank_s *bank); +static int ecosflash_info(struct flash_bank_s *bank, char *buf, int buf_size); -u32 ecosflash_get_flash_status(flash_bank_t *bank); -void ecosflash_set_flash_mode(flash_bank_t *bank,int mode); -u32 ecosflash_wait_status_busy(flash_bank_t *bank, u32 waitbits, int timeout); -int ecosflash_handle_gpnvm_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc); +#if 0 +static u32 ecosflash_get_flash_status(flash_bank_t *bank); +static void ecosflash_set_flash_mode(flash_bank_t *bank,int mode); +static u32 ecosflash_wait_status_busy(flash_bank_t *bank, u32 waitbits, int timeout); +static int ecosflash_handle_gpnvm_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc); +#endif flash_driver_t ecosflash_flash = { @@ -136,7 +138,7 @@ /* flash bank ecosflash <base> <size> <chip_width> <bus_width> <target#> <driverPath> */ -int ecosflash_flash_bank_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc, struct flash_bank_s *bank) +static int ecosflash_flash_bank_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc, struct flash_bank_s *bank) { ecosflash_flash_bank_t *info; @@ -181,7 +183,7 @@ return ERROR_OK; } -int loadDriver(ecosflash_flash_bank_t *info) +static int loadDriver(ecosflash_flash_bank_t *info) { u32 buf_cnt; u32 image_size; @@ -230,7 +232,7 @@ static int const OFFSET_GET_WORKAREA=0x18; static int const OFFSET_GET_WORKAREA_SIZE=0x4; -int runCode(ecosflash_flash_bank_t *info, +static int runCode(ecosflash_flash_bank_t *info, u32 codeStart, u32 codeStop, u32 r0, u32 r1, u32 r2, u32 *result, /* timeout in ms */ @@ -271,7 +273,7 @@ return ERROR_OK; } -int eCosBoard_erase(ecosflash_flash_bank_t *info, u32 address, u32 len) +static int eCosBoard_erase(ecosflash_flash_bank_t *info, u32 address, u32 len) { int retval; int timeout = (len / 20480 + 1) * 1000; /*asume 20 KB/s*/ @@ -302,7 +304,7 @@ return ERROR_OK; } -int eCosBoard_flash(ecosflash_flash_bank_t *info, void *data, u32 address, u32 len) +static int eCosBoard_flash(ecosflash_flash_bank_t *info, void *data, u32 address, u32 len) { target_t *target=info->target; const int chunk=8192; @@ -361,12 +363,12 @@ return ERROR_OK; } -int ecosflash_probe(struct flash_bank_s *bank) +static int ecosflash_probe(struct flash_bank_s *bank) { return ERROR_OK; } -int ecosflash_register_commands(struct command_context_s *cmd_ctx) +static int ecosflash_register_commands(struct command_context_s *cmd_ctx) { register_command(cmd_ctx, NULL, "ecosflash", NULL, COMMAND_ANY, NULL); @@ -396,7 +398,8 @@ } #endif -u32 ecosflash_address(struct flash_bank_s *bank, u32 address) +#if 0 +static u32 ecosflash_address(struct flash_bank_s *bank, u32 address) { u32 retval = 0; switch(bank->bus_width) @@ -411,54 +414,57 @@ return retval + bank->base; } +#endif -int ecosflash_erase(struct flash_bank_s *bank, int first, int last) +static int ecosflash_erase(struct flash_bank_s *bank, int first, int last) { struct flash_bank_s *c=bank; ecosflash_flash_bank_t *info = bank->driver_priv; return eCosBoard_erase(info, c->base+first*sectorSize, sectorSize*(last-first+1)); } -int ecosflash_protect(struct flash_bank_s *bank, int set, int first, int last) +static int ecosflash_protect(struct flash_bank_s *bank, int set, int first, int last) { return ERROR_OK; } -int ecosflash_write(struct flash_bank_s *bank, u8 *buffer, u32 offset, u32 count) +static int ecosflash_write(struct flash_bank_s *bank, u8 *buffer, u32 offset, u32 count) { ecosflash_flash_bank_t *info = bank->driver_priv; struct flash_bank_s *c=bank; return eCosBoard_flash(info, buffer, c->base+offset, count); } -int ecosflash_protect_check(struct flash_bank_s *bank) +static int ecosflash_protect_check(struct flash_bank_s *bank) { return ERROR_OK; } -int ecosflash_info(struct flash_bank_s *bank, char *buf, int buf_size) +static int ecosflash_info(struct flash_bank_s *bank, char *buf, int buf_size) { ecosflash_flash_bank_t *info = bank->driver_priv; snprintf(buf, buf_size, "eCos flash driver: %s", info->driverPath); return ERROR_OK; } -u32 ecosflash_get_flash_status(flash_bank_t *bank) +#if 0 +static u32 ecosflash_get_flash_status(flash_bank_t *bank) { return ERROR_OK; } -void ecosflash_set_flash_mode(flash_bank_t *bank,int mode) +static void ecosflash_set_flash_mode(flash_bank_t *bank,int mode) { } -u32 ecosflash_wait_status_busy(flash_bank_t *bank, u32 waitbits, int timeout) +static u32 ecosflash_wait_status_busy(flash_bank_t *bank, u32 waitbits, int timeout) { return ERROR_OK; } -int ecosflash_handle_gpnvm_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc) +static int ecosflash_handle_gpnvm_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc) { return ERROR_OK; } +#endif Modified: trunk/src/flash/flash.c =================================================================== --- trunk/src/flash/flash.c 2009-04-15 15:44:26 UTC (rev 1461) +++ trunk/src/flash/flash.c 2009-04-18 10:08:13 UTC (rev 1462) @@ -48,19 +48,17 @@ #include <inttypes.h> /* command handlers */ -int handle_flash_bank_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc); -int handle_flash_info_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc); -int handle_flash_probe_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc); -int handle_flash_erase_check_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc); -int handle_flash_erase_address_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc); -int handle_flash_protect_check_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc); -int handle_flash_erase_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc); -int handle_flash_write_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc); -int handle_flash_write_bank_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc); -int handle_flash_write_image_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc); -int handle_flash_fill_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc); -int handle_flash_protect_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc); -flash_bank_t *get_flash_bank_by_addr(target_t *target, u32 addr); +static int handle_flash_bank_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc); +static int handle_flash_info_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc); +static int handle_flash_probe_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc); +static int handle_flash_erase_check_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc); +static int handle_flash_erase_address_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc); +static int handle_flash_protect_check_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc); +static int handle_flash_erase_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc); +static int handle_flash_write_bank_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc); +static int handle_flash_write_image_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc); +static int handle_flash_fill_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc); +static int handle_flash_protect_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc); /* flash drivers */ @@ -265,7 +263,7 @@ return p; } -int handle_flash_bank_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc) +static int handle_flash_bank_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc) { int retval; int i; @@ -345,7 +343,7 @@ return ERROR_OK; } -int handle_flash_info_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc) +static int handle_flash_info_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc) { flash_bank_t *p; int i = 0; @@ -396,7 +394,7 @@ return ERROR_OK; } -int handle_flash_probe_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc) +static int handle_flash_probe_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc) { flash_bank_t *p; int retval; @@ -432,7 +430,7 @@ return ERROR_OK; } -int handle_flash_erase_check_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc) +static int handle_flash_erase_check_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc) { flash_bank_t *p; int retval; @@ -476,7 +474,7 @@ return ERROR_OK; } -int handle_flash_erase_address_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc) +static int handle_flash_erase_address_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc) { flash_bank_t *p; int retval; @@ -524,7 +522,7 @@ return retval; } -int handle_flash_protect_check_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc) +static int handle_flash_protect_check_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc) { flash_bank_t *p; int retval; @@ -558,7 +556,7 @@ return ERROR_OK; } -int handle_flash_erase_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc) +static int handle_flash_erase_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc) { if (argc > 2) { @@ -595,7 +593,7 @@ return ERROR_OK; } -int handle_flash_protect_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc) +static int handle_flash_protect_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc) { if (argc > 3) { @@ -634,7 +632,7 @@ return ERROR_OK; } -int handle_flash_write_image_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc) +static int handle_flash_write_image_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc) { target_t *target = get_current_target(cmd_ctx); @@ -719,7 +717,7 @@ return retval; } -int handle_flash_fill_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc) +static int handle_flash_fill_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc) { int err = ERROR_OK, retval; u32 address; @@ -819,7 +817,7 @@ return ERROR_OK; } -int handle_flash_write_bank_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc) +static int handle_flash_write_bank_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc) { u32 offset; u8 *buffer; Modified: trunk/src/flash/lpc2000.c =================================================================== --- trunk/src/flash/lpc2000.c 2009-04-15 15:44:26 UTC (rev 1461) +++ trunk/src/flash/lpc2000.c 2009-04-18 10:08:13 UTC (rev 1462) @@ -51,17 +51,17 @@ * - 2378 */ -int lpc2000_register_commands(struct command_context_s *cmd_ctx); -int lpc2000_flash_bank_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc, struct flash_bank_s *bank); -int lpc2000_erase(struct flash_bank_s *bank, int first, int last); -int lpc2000_protect(struct flash_bank_s *bank, int set, int first, int last); -int lpc2000_write(struct flash_bank_s *bank, u8 *buffer, u32 offset, u32 count); -int lpc2000_probe(struct flash_bank_s *bank); -int lpc2000_erase_check(struct flash_bank_s *bank); -int lpc2000_protect_check(struct flash_bank_s *bank); -int lpc2000_info(struct flash_bank_s *bank, char *buf, int buf_size); +static int lpc2000_register_commands(struct command_context_s *cmd_ctx); +static int lpc2000_flash_bank_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc, struct flash_bank_s *bank); +static int lpc2000_erase(struct flash_bank_s *bank, int first, int last); +static int lpc2000_protect(struct flash_bank_s *bank, int set, int first, int last); +static int lpc2000_write(struct flash_bank_s *bank, u8 *buffer, u32 offset, u32 count); +static int lpc2000_probe(struct flash_bank_s *bank); +static int lpc2000_erase_check(struct flash_bank_s *bank); +static int lpc2000_protect_check(struct flash_bank_s *bank); +static int lpc2000_info(struct flash_bank_s *bank, char *buf, int buf_size); -int lpc2000_handle_part_id_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc); +static int lpc2000_handle_part_id_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc); flash_driver_t lpc2000_flash = { @@ -78,7 +78,7 @@ .info = lpc2000_info }; -int lpc2000_register_commands(struct command_context_s *cmd_ctx) +static int lpc2000_register_commands(struct command_context_s *cmd_ctx) { command_t *lpc2000_cmd = register_command(cmd_ctx, NULL, "lpc2000", NULL, COMMAND_ANY, NULL); @@ -88,7 +88,7 @@ return ERROR_OK; } -int lpc2000_build_sector_list(struct flash_bank_s *bank) +static int lpc2000_build_sector_list(struct flash_bank_s *bank) { lpc2000_flash_bank_t *lpc2000_info = bank->driver_priv; @@ -239,7 +239,7 @@ * 0x20 to 0x2b: command result table * 0x2c to 0xac: stack (only 128b needed) */ -int lpc2000_iap_call(flash_bank_t *bank, int code, u32 param_table[5], u32 result_table[2]) +static int lpc2000_iap_call(flash_bank_t *bank, int code, u32 param_table[5], u32 result_table[2]) { int retval; lpc2000_flash_bank_t *lpc2000_info = bank->driver_priv; @@ -322,14 +322,14 @@ return status_code; } -int lpc2000_iap_blank_check(struct flash_bank_s *bank, int first, int last) +static int lpc2000_iap_blank_check(struct flash_bank_s *bank, int first, int last) { u32 param_table[5]; u32 result_table[2]; int status_code; int i; - if ((first < 0) || (last > bank->num_sectors)) + if ((first < 0) || (last >= bank->num_sectors)) return ERROR_FLASH_SECTOR_INVALID; for (i = first; i <= last; i++) @@ -365,7 +365,7 @@ /* flash bank lpc2000 <base> <size> 0 0 <target#> <lpc_variant> <cclk> [calc_checksum] */ -int lpc2000_flash_bank_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc, struct flash_bank_s *bank) +static int lpc2000_flash_bank_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc, struct flash_bank_s *bank) { lpc2000_flash_bank_t *lpc2000_info; @@ -413,7 +413,7 @@ return ERROR_OK; } -int lpc2000_erase(struct flash_bank_s *bank, int first, int last) +static int lpc2000_erase(struct flash_bank_s *bank, int first, int last) { lpc2000_flash_bank_t *lpc2000_info = bank->driver_priv; u32 param_table[5]; @@ -465,13 +465,13 @@ return ERROR_OK; } -int lpc2000_protect(struct flash_bank_s *bank, int set, int first, int last) +static int lpc2000_protect(struct flash_bank_s *bank, int set, int first, int last) { /* can't protect/unprotect on the lpc2000 */ return ERROR_OK; } -int lpc2000_write(struct flash_bank_s *bank, u8 *buffer, u32 offset, u32 count) +static int lpc2000_write(struct flash_bank_s *bank, u8 *buffer, u32 offset, u32 count) { lpc2000_flash_bank_t *lpc2000_info = bank->driver_priv; target_t *target = bank->target; @@ -635,7 +635,7 @@ return retval; } -int lpc2000_probe(struct flash_bank_s *bank) +static int lpc2000_probe(struct flash_bank_s *bank) { /* we can't probe on an lpc2000 * if this is an lpc2xxx, it has the configured flash @@ -643,7 +643,7 @@ return ERROR_OK; } -int lpc2000_erase_check(struct flash_bank_s *bank) +static int lpc2000_erase_check(struct flash_bank_s *bank) { if (bank->target->state != TARGET_HALTED) { @@ -654,13 +654,13 @@ return lpc2000_iap_blank_check(bank, 0, bank->num_sectors - 1); } -int lpc2000_protect_check(struct flash_bank_s *bank) +static int lpc2000_protect_check(struct flash_bank_s *bank) { /* sectors are always protected */ return ERROR_OK; } -int lpc2000_info(struct flash_bank_s *bank, char *buf, int buf_size) +static int lpc2000_info(struct flash_bank_s *bank, char *buf, int buf_size) { lpc2000_flash_bank_t *lpc2000_info = bank->driver_priv; @@ -669,7 +669,7 @@ return ERROR_OK; } -int lpc2000_handle_part_id_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc) +static int lpc2000_handle_part_id_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc) { flash_bank_t *bank; u32 param_table[5]; Modified: trunk/src/flash/lpc288x.c =================================================================== --- trunk/src/flash/lpc288x.c 2009-04-15 15:44:26 UTC (rev 1461) +++ trunk/src/flash/lpc288x.c 2009-04-18 10:08:13 UTC (rev 1462) @@ -94,22 +94,19 @@ /* F_CLK_TIME */ #define FCT_CLK_DIV_MASK 0x0FFF -int lpc288x_register_commands(struct command_context_s *cmd_ctx); -int lpc288x_flash_bank_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc, struct flash_bank_s *bank); -int lpc288x_erase(struct flash_bank_s *bank, int first, int last); -int lpc288x_protect(struct flash_bank_s *bank, int set, int first, int last); -int lpc288x_write(struct flash_bank_s *bank, u8 *buffer, u32 offset, u32 count); -int lpc288x_probe(struct flash_bank_s *bank); -int lpc288x_auto_probe(struct flash_bank_s *bank); -int lpc288x_erase_check(struct flash_bank_s *bank); -int lpc288x_protect_check(struct flash_bank_s *bank); -int lpc288x_info(struct flash_bank_s *bank, char *buf, int buf_size); -void lpc288x_set_flash_mode(flash_bank_t *bank, u8 flashplane, int mode); -u32 lpc288x_wait_status_busy(flash_bank_t *bank, int timeout); -void lpc288x_load_timer(int erase, struct target_s *target); -void lpc288x_set_flash_clk(struct flash_bank_s *bank); -u32 lpc288x_system_ready(struct flash_bank_s *bank); -int lpc288x_handle_part_id_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc); +static int lpc288x_register_commands(struct command_context_s *cmd_ctx); +static int lpc288x_flash_bank_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc, struct flash_bank_s *bank); +static int lpc288x_erase(struct flash_bank_s *bank, int first, int last); +static int lpc288x_protect(struct flash_bank_s *bank, int set, int first, int last); +static int lpc288x_write(struct flash_bank_s *bank, u8 *buffer, u32 offset, u32 count); +static int lpc288x_probe(struct flash_bank_s *bank); +static int lpc288x_erase_check(struct flash_bank_s *bank); +static int lpc288x_protect_check(struct flash_bank_s *bank); +static int lpc288x_info(struct flash_bank_s *bank, char *buf, int buf_size); +static u32 lpc288x_wait_status_busy(flash_bank_t *bank, int timeout); +static void lpc288x_load_timer(int erase, struct target_s *target); +static void lpc288x_set_flash_clk(struct flash_bank_s *bank); +static u32 lpc288x_system_ready(struct flash_bank_s *bank); flash_driver_t lpc288x_flash = { @@ -126,12 +123,12 @@ .info = lpc288x_info }; -int lpc288x_register_commands(struct command_context_s *cmd_ctx) +static int lpc288x_register_commands(struct command_context_s *cmd_ctx) { return ERROR_OK; } -u32 lpc288x_wait_status_busy(flash_bank_t *bank, int timeout) +static u32 lpc288x_wait_status_busy(flash_bank_t *bank, int timeout) { u32 status; target_t *target = bank->target; @@ -151,7 +148,7 @@ } /* Read device id register and fill in driver info structure */ -int lpc288x_read_part_info(struct flash_bank_s *bank) +static int lpc288x_read_part_info(struct flash_bank_s *bank) { lpc288x_flash_bank_t *lpc288x_info = bank->driver_priv; target_t *target = bank->target; @@ -201,13 +198,13 @@ return ERROR_OK; } -int lpc288x_protect_check(struct flash_bank_s *bank) +static int lpc288x_protect_check(struct flash_bank_s *bank) { return ERROR_OK; } /* flash_bank LPC288x 0 0 0 0 <target#> <cclk> */ -int lpc288x_flash_bank_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc, struct flash_bank_s *bank) +static int lpc288x_flash_bank_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc, struct flash_bank_s *bank) { lpc288x_flash_bank_t *lpc288x_info; @@ -232,7 +229,7 @@ * AHB = 12 MHz ? * 12000000/66000 = 182 * CLK_DIV = 60 ? */ -void lpc288x_set_flash_clk(struct flash_bank_s *bank) +static void lpc288x_set_flash_clk(struct flash_bank_s *bank) { u32 clk_time; lpc288x_flash_bank_t *lpc288x_info = bank->driver_priv; @@ -247,7 +244,7 @@ * LOAD_TIMER_WRITE FPT_TIME = ((1,000,000 / AHB tcyc (in ns)) - 2) / 512 * = 23 (75) (AN10548 72 - is this wrong?) * TODO: Sort out timing calcs ... [truncated message content] |
|
From: <oh...@ma...> - 2009-04-15 17:44:29
|
Author: oharboe
Date: 2009-04-15 17:44:26 +0200 (Wed, 15 Apr 2009)
New Revision: 1461
Added:
trunk/src/target/target/lpc2124.cfg
Log:
Jesus Sanchez-Palencia <jes...@op...>
Added: trunk/src/target/target/lpc2124.cfg
===================================================================
--- trunk/src/target/target/lpc2124.cfg 2009-04-15 15:19:35 UTC (rev 1460)
+++ trunk/src/target/target/lpc2124.cfg 2009-04-15 15:44:26 UTC (rev 1461)
@@ -0,0 +1,38 @@
+#LPC-2124 CPU
+
+if { [info exists CHIPNAME] } {
+ set _CHIPNAME $CHIPNAME
+} else {
+ set _CHIPNAME lpc2124
+}
+
+if { [info exists ENDIAN] } {
+ set _ENDIAN $ENDIAN
+} else {
+ set _ENDIAN little
+}
+
+if { [info exists CPUTAPID ] } {
+ set _CPUTAPID $CPUTAPID
+} else {
+ # force an error till we get a good number
+ set _CPUTAPID 0x4f1f0f0f
+}
+
+
+#use combined on interfaces or targets that can't set TRST/SRST separately
+reset_config trst_and_srst srst_pulls_trst
+jtag_nsrst_delay 10
+jtag_khz 1000
+
+#jtag scan chain
+jtag newtap $_CHIPNAME cpu -irlen 4 -ircapture 0x1 -irmask 0xf -expected-id $_CPUTAPID
+
+set _TARGETNAME [format "%s.cpu" $_CHIPNAME]
+target create $_TARGETNAME arm7tdmi -endian $_ENDIAN -chain-position $_TARGETNAME -variant arm7tdmi-s_r4
+
+$_TARGETNAME configure -work-area-virt 0 -work-area-phys 0x40000000 -work-area-size 0x4000 -work-area-backup 0
+
+
+#flash bank <driver> <base> <size> <chip_width> <bus_width>
+flash bank lpc2000 0x0 0x40000 0 0 0 lpc2000_v1 14745 calc_checksum
|
|
From: <oh...@ma...> - 2009-04-15 17:19:37
|
Author: oharboe Date: 2009-04-15 17:19:35 +0200 (Wed, 15 Apr 2009) New Revision: 1460 Modified: trunk/src/target/board/olimex_stm32_h103.cfg Log: Piotr Esden-Tempski <pi...@es...> Corrected olimex_stm32_h103 board config Modified: trunk/src/target/board/olimex_stm32_h103.cfg =================================================================== --- trunk/src/target/board/olimex_stm32_h103.cfg 2009-04-15 15:17:44 UTC (rev 1459) +++ trunk/src/target/board/olimex_stm32_h103.cfg 2009-04-15 15:19:35 UTC (rev 1460) @@ -4,6 +4,7 @@ # http://olimex.com/dev/stm32-h103.html # +set BSTAPID 0x16410041 + source [find target/stm32.cfg] -set _BSTAPID 0x16410041 |
|
From: <oh...@ma...> - 2009-04-15 17:17:47
|
Author: oharboe
Date: 2009-04-15 17:17:44 +0200 (Wed, 15 Apr 2009)
New Revision: 1459
Modified:
trunk/src/flash/cfi.c
Log:
Nico Coesel <nc...@de...> Chip width / bus width bug in cfi driver
Modified: trunk/src/flash/cfi.c
===================================================================
--- trunk/src/flash/cfi.c 2009-04-15 15:13:36 UTC (rev 1458)
+++ trunk/src/flash/cfi.c 2009-04-15 15:17:44 UTC (rev 1459)
@@ -1589,7 +1589,7 @@
u8 command[8];
/* Calculate buffer size and boundary mask */
- u32 buffersize = 1UL << cfi_info->max_buf_write_size;
+ u32 buffersize = (1UL << cfi_info->max_buf_write_size) * (bank->bus_width / bank->chip_width);
u32 buffermask = buffersize-1;
u32 bufferwsize;
@@ -1609,6 +1609,9 @@
return ERROR_FLASH_OPERATION_FAILED;
}
+ bufferwsize/=(bank->bus_width / bank->chip_width);
+
+
/* Check for valid size */
if (wordcount > bufferwsize)
{
@@ -1725,7 +1728,7 @@
cfi_spansion_pri_ext_t *pri_ext = cfi_info->pri_ext;
/* Calculate buffer size and boundary mask */
- u32 buffersize = 1UL << cfi_info->max_buf_write_size;
+ u32 buffersize = (1UL << cfi_info->max_buf_write_size) * (bank->bus_width / bank->chip_width);
u32 buffermask = buffersize-1;
u32 bufferwsize;
@@ -1745,6 +1748,8 @@
return ERROR_FLASH_OPERATION_FAILED;
}
+ bufferwsize/=(bank->bus_width / bank->chip_width);
+
/* Check for valid size */
if (wordcount > bufferwsize)
{
@@ -1946,7 +1951,8 @@
{
if (retval == ERROR_TARGET_RESOURCE_NOT_AVAILABLE)
{
- u32 buffersize = 1UL << cfi_info->max_buf_write_size;
+ //adjust buffersize for chip width
+ u32 buffersize = (1UL << cfi_info->max_buf_write_size) * (bank->bus_width / bank->chip_width);
u32 buffermask = buffersize-1;
u32 bufferwsize;
@@ -1959,6 +1965,8 @@
LOG_ERROR("Unsupported chip width %d", bank->chip_width);
return ERROR_FLASH_OPERATION_FAILED;
}
+
+ bufferwsize/=(bank->bus_width / bank->chip_width);
/* fall back to memory writes */
while (count >= bank->bus_width)
|
|
From: <oh...@ma...> - 2009-04-15 17:13:39
|
Author: oharboe
Date: 2009-04-15 17:13:36 +0200 (Wed, 15 Apr 2009)
New Revision: 1458
Added:
trunk/src/target/target/lpc2378.cfg
Log:
Freddie Chopin <fre...@op...> LPC2378 config file
Added: trunk/src/target/target/lpc2378.cfg
===================================================================
--- trunk/src/target/target/lpc2378.cfg 2009-04-14 19:17:17 UTC (rev 1457)
+++ trunk/src/target/target/lpc2378.cfg 2009-04-15 15:13:36 UTC (rev 1458)
@@ -0,0 +1,49 @@
+# NXP LPC2378 ARM7TDMI-S with 512kB Flash and 32kB Local On-Chip SRAM (58kB total), clocked with 4MHz internal RC oscillator
+
+if { [info exists CHIPNAME] } {
+ set _CHIPNAME $CHIPNAME
+} else {
+ set _CHIPNAME lpc2378
+}
+
+if { [info exists ENDIAN] } {
+ set _ENDIAN $ENDIAN
+} else {
+ set _ENDIAN little
+}
+
+if { [info exists CPUTAPID ] } {
+ set _CPUTAPID $CPUTAPID
+} else {
+ set _CPUTAPID 0x4f1f0f0f
+}
+
+#delays on reset lines
+jtag_nsrst_delay 200
+jtag_ntrst_delay 200
+
+# LPC2000 -> SRST causes TRST
+reset_config trst_and_srst srst_pulls_trst
+
+jtag newtap $_CHIPNAME cpu -irlen 4 -ircapture 0x1 -irmask 0xf -expected-id $_CPUTAPID
+
+set _TARGETNAME [format "%s.cpu" $_CHIPNAME]
+target create $_TARGETNAME arm7tdmi -endian $_ENDIAN -chain-position $_TARGETNAME -variant arm7tdmi-s_r4
+
+# LPC2378 has 32kB of SRAM on its main system bus (so-called Local On-Chip SRAM)
+$_TARGETNAME configure -work-area-virt 0 -work-area-phys 0x40000000 -work-area-size 0x8000 -work-area-backup 0
+
+$_TARGETNAME configure -event reset-init {
+ # Force target into ARM state
+ soft_reset_halt
+ #do not remap 0x0000-0x0020 to anything but the flash
+ mwb 0xE01FC040 0x01
+}
+
+# LPC2378 has 512kB of FLASH, but upper 8kB are occupied by bootloader.
+# After reset the chip uses its internal 4MHz RC oscillator
+#flash bank lpc2000 <base> <size> 0 0 <target#> <variant>
+flash bank lpc2000 0x0 0x0007D000 0 0 0 lpc2000_v2 4000 calc_checksum
+
+# 4MHz / 6 = 666kHz, so use 500
+jtag_khz 500
|
|
From: <oh...@ma...> - 2009-04-14 21:17:20
|
Author: oharboe Date: 2009-04-14 21:17:17 +0200 (Tue, 14 Apr 2009) New Revision: 1457 Modified: trunk/src/xsvf/xsvf.c Log: Dick Hollenbeck <di...@so...> work in progress Modified: trunk/src/xsvf/xsvf.c =================================================================== --- trunk/src/xsvf/xsvf.c 2009-04-14 17:17:38 UTC (rev 1456) +++ trunk/src/xsvf/xsvf.c 2009-04-14 19:17:17 UTC (rev 1457) @@ -9,7 +9,7 @@ * pet...@ht... * * * * Copyright (C) 2009 SoftPLC Corporation. http://softplc.com * - * di...@so... * + * Dick Hollenbeck <di...@so...> * * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * @@ -352,659 +352,652 @@ switch (opcode) { - case XCOMPLETE: - LOG_DEBUG("XCOMPLETE"); + case XCOMPLETE: + LOG_DEBUG("XCOMPLETE"); - result = jtag_execute_queue(); - if (result != ERROR_OK) - { - tdo_mismatch = 1; - break; - } + result = jtag_execute_queue(); + if (result != ERROR_OK) + { + tdo_mismatch = 1; break; + } + break; - case XTDOMASK: - LOG_DEBUG("XTDOMASK"); - if (dr_in_mask && (xsvf_read_buffer(xsdrsize, xsvf_fd, dr_in_mask) != ERROR_OK)) - do_abort = 1; - break; + case XTDOMASK: + LOG_DEBUG("XTDOMASK"); + if (dr_in_mask && (xsvf_read_buffer(xsdrsize, xsvf_fd, dr_in_mask) != ERROR_OK)) + do_abort = 1; + break; - case XRUNTEST: + case XRUNTEST: + { + u8 xruntest_buf[4]; + + if (read(xsvf_fd, xruntest_buf, 4) < 0) { - u8 xruntest_buf[4]; + do_abort = 1; + break; + } - if (read(xsvf_fd, xruntest_buf, 4) < 0) - { - do_abort = 1; - break; - } + xruntest = be_to_h_u32(xruntest_buf); + LOG_DEBUG("XRUNTEST %d 0x%08X", xruntest, xruntest); + } + break; - xruntest = be_to_h_u32(xruntest_buf); - LOG_DEBUG("XRUNTEST %d 0x%08X", xruntest, xruntest); - } - break; + case XREPEAT: + { + u8 myrepeat; - case XREPEAT: + if (read(xsvf_fd, &myrepeat, 1) < 0) + do_abort = 1; + else { - u8 myrepeat; - - if (read(xsvf_fd, &myrepeat, 1) < 0) - do_abort = 1; - else - { - xrepeat = myrepeat; - LOG_DEBUG("XREPEAT %d", xrepeat ); - } + xrepeat = myrepeat; + LOG_DEBUG("XREPEAT %d", xrepeat ); } - break; + } + break; - case XSDRSIZE: + case XSDRSIZE: + { + u8 xsdrsize_buf[4]; + + if (read(xsvf_fd, xsdrsize_buf, 4) < 0) { - u8 xsdrsize_buf[4]; + do_abort = 1; + break; + } - if (read(xsvf_fd, xsdrsize_buf, 4) < 0) - { - do_abort = 1; - break; - } + xsdrsize = be_to_h_u32(xsdrsize_buf); + LOG_DEBUG("XSDRSIZE %d", xsdrsize); - xsdrsize = be_to_h_u32(xsdrsize_buf); - LOG_DEBUG("XSDRSIZE %d", xsdrsize); + if( dr_out_buf ) free(dr_out_buf); + if( dr_in_buf) free(dr_in_buf); + if( dr_in_mask) free(dr_in_mask); - if( dr_out_buf ) free(dr_out_buf); - if( dr_in_buf) free(dr_in_buf); - if( dr_in_mask) free(dr_in_mask); + dr_out_buf = malloc((xsdrsize + 7) / 8); + dr_in_buf = malloc((xsdrsize + 7) / 8); + dr_in_mask = malloc((xsdrsize + 7) / 8); + } + break; - dr_out_buf = malloc((xsdrsize + 7) / 8); - dr_in_buf = malloc((xsdrsize + 7) / 8); - dr_in_mask = malloc((xsdrsize + 7) / 8); - } - break; + case XSDR: /* these two are identical except for the dr_in_buf */ + case XSDRTDO: + { + int limit = xrepeat; + int matched = 0; + int attempt; - case XSDR: /* these two are identical except for the dr_in_buf */ - case XSDRTDO: + const char* op_name = (opcode == XSDR ? "XSDR" : "XSDRTDO"); + + if (xsvf_read_buffer(xsdrsize, xsvf_fd, dr_out_buf) != ERROR_OK) { - int limit = xrepeat; - int matched = 0; - int attempt; + do_abort = 1; + break; + } - const char* op_name = (opcode == XSDR ? "XSDR" : "XSDRTDO"); - - if (xsvf_read_buffer(xsdrsize, xsvf_fd, dr_out_buf) != ERROR_OK) + if (opcode == XSDRTDO) + { + if(xsvf_read_buffer(xsdrsize, xsvf_fd, dr_in_buf) != ERROR_OK ) { do_abort = 1; break; } + } - if (opcode == XSDRTDO) - { - if(xsvf_read_buffer(xsdrsize, xsvf_fd, dr_in_buf) != ERROR_OK ) - { - do_abort = 1; - break; - } - } + if (limit < 1) + limit = 1; - if (limit < 1) - limit = 1; + LOG_DEBUG("%s %d", op_name, xsdrsize); - LOG_DEBUG("%s %d", op_name, xsdrsize); + for( attempt=0; attempt<limit; ++attempt ) + { + scan_field_t field; - for( attempt=0; attempt<limit; ++attempt ) + if( attempt>0 ) { - scan_field_t field; + /* perform the XC9500 exception handling sequence shown in xapp067.pdf and + illustrated in psuedo code at end of this file. We start from state + DRPAUSE: + go to Exit2-DR + go to Shift-DR + go to Exit1-DR + go to Update-DR + go to Run-Test/Idle - if( attempt>0 ) - { - /* perform the XC9500 exception handling sequence shown in xapp067.pdf and - illustrated in psuedo code at end of this file. We start from state - DRPAUSE: - go to Exit2-DR - go to Shift-DR - go to Exit1-DR - go to Update-DR - go to Run-Test/Idle + This sequence should be harmless for other devices, and it + will be skipped entirely if xrepeat is set to zero. + */ - This sequence should be harmless for other devices, and it - will be skipped entirely if xrepeat is set to zero. - */ + static tap_state_t exception_path[] = { + TAP_DREXIT2, + TAP_DRSHIFT, + TAP_DREXIT1, + TAP_DRUPDATE, + TAP_IDLE, + }; - static tap_state_t exception_path[] = { - TAP_DREXIT2, - TAP_DRSHIFT, - TAP_DREXIT1, - TAP_DRUPDATE, - TAP_IDLE, - }; + jtag_add_pathmove( sizeof(exception_path)/sizeof(exception_path[0]), exception_path); - jtag_add_pathmove( sizeof(exception_path)/sizeof(exception_path[0]), exception_path); + if (verbose) + LOG_USER("%s mismatch, xsdrsize=%d retry=%d", op_name, xsdrsize, attempt); + } - if (verbose) - LOG_USER("%s %d retry %d", op_name, xsdrsize, attempt); - } + field.tap = tap; + field.num_bits = xsdrsize; + field.out_value = dr_out_buf; + field.out_mask = NULL; + field.in_value = NULL; - field.tap = tap; - field.num_bits = xsdrsize; - field.out_value = dr_out_buf; - field.out_mask = NULL; - field.in_value = NULL; + jtag_set_check_value(&field, dr_in_buf, dr_in_mask, NULL); - jtag_set_check_value(&field, dr_in_buf, dr_in_mask, NULL); + if (tap == NULL) + jtag_add_plain_dr_scan(1, &field, TAP_DRPAUSE); + else + jtag_add_dr_scan(1, &field, TAP_DRPAUSE); - if (tap == NULL) - jtag_add_plain_dr_scan(1, &field, TAP_DRPAUSE); - else - jtag_add_dr_scan(1, &field, TAP_DRPAUSE); - - /* LOG_DEBUG("FLUSHING QUEUE"); */ - result = jtag_execute_queue(); - if (result == ERROR_OK) - { - matched = 1; - break; - } - } - - if (!matched) + /* LOG_DEBUG("FLUSHING QUEUE"); */ + result = jtag_execute_queue(); + if (result == ERROR_OK) { - LOG_USER( "%s mismatch", op_name); - tdo_mismatch = 1; + matched = 1; break; } + } - /* See page 19 of XSVF spec regarding opcode "XSDR" */ - if (xruntest) - { - xsvf_add_statemove(TAP_IDLE); + if (!matched) + { + LOG_USER( "%s mismatch", op_name); + tdo_mismatch = 1; + break; + } - if (runtest_requires_tck) - jtag_add_clocks(xruntest); - else - jtag_add_sleep(xruntest); - } - else if (xendir != TAP_DRPAUSE) /* we are already in TAP_DRPAUSE */ - xsvf_add_statemove(xenddr); + /* See page 19 of XSVF spec regarding opcode "XSDR" */ + if (xruntest) + { + xsvf_add_statemove(TAP_IDLE); + + if (runtest_requires_tck) + jtag_add_clocks(xruntest); + else + jtag_add_sleep(xruntest); } - break; + else if (xendir != TAP_DRPAUSE) /* we are already in TAP_DRPAUSE */ + xsvf_add_statemove(xenddr); + } + break; - case XSETSDRMASKS: - LOG_ERROR("unsupported XSETSDRMASKS\n"); - unsupported = 1; - break; + case XSETSDRMASKS: + LOG_ERROR("unsupported XSETSDRMASKS\n"); + unsupported = 1; + break; - case XSDRINC: - LOG_ERROR("unsupported XSDRINC\n"); - unsupported = 1; - break; + case XSDRINC: + LOG_ERROR("unsupported XSDRINC\n"); + unsupported = 1; + break; - case XSDRB: - LOG_ERROR("unsupported XSDRB\n"); - unsupported = 1; - break; + case XSDRB: + LOG_ERROR("unsupported XSDRB\n"); + unsupported = 1; + break; - case XSDRC: - LOG_ERROR("unsupported XSDRC\n"); - unsupported = 1; - break; + case XSDRC: + LOG_ERROR("unsupported XSDRC\n"); + unsupported = 1; + break; - case XSDRE: - LOG_ERROR("unsupported XSDRE\n"); - unsupported = 1; - break; + case XSDRE: + LOG_ERROR("unsupported XSDRE\n"); + unsupported = 1; + break; - case XSDRTDOB: - LOG_ERROR("unsupported XSDRTDOB\n"); - unsupported = 1; - break; + case XSDRTDOB: + LOG_ERROR("unsupported XSDRTDOB\n"); + unsupported = 1; + break; - case XSDRTDOC: - LOG_ERROR("unsupported XSDRTDOC\n"); - unsupported = 1; - break; + case XSDRTDOC: + LOG_ERROR("unsupported XSDRTDOC\n"); + unsupported = 1; + break; - case XSDRTDOE: - LOG_ERROR("unsupported XSDRTDOE\n"); - unsupported = 1; - break; + case XSDRTDOE: + LOG_ERROR("unsupported XSDRTDOE\n"); + unsupported = 1; + break; - case XSTATE: + case XSTATE: + { + tap_state_t mystate; + tap_state_t* path; + int path_len; + + if (read(xsvf_fd, &uc, 1) < 0) { - tap_state_t mystate; - tap_state_t *path; - int path_len; + do_abort = 1; + break; + } - if (read(xsvf_fd, &uc, 1) < 0) - { - do_abort = 1; - break; - } + mystate = xsvf_to_tap(uc); - mystate = xsvf_to_tap(uc); + LOG_DEBUG("XSTATE 0x%02X %s", uc, tap_state_name(mystate) ); - LOG_DEBUG("XSTATE 0x%02X %s", uc, tap_state_name(mystate) ); + path = calloc(XSTATE_MAX_PATH, 4); + path_len = 1; - path = calloc(XSTATE_MAX_PATH, 4); - path_len = 1; + path[0] = mystate; + if (xsvf_read_xstates(xsvf_fd, path, XSTATE_MAX_PATH, &path_len) != ERROR_OK) + do_abort = 1; + else + { + int i,lasti; - path[0] = mystate; - if (xsvf_read_xstates(xsvf_fd, path, XSTATE_MAX_PATH, &path_len) != ERROR_OK) - do_abort = 1; - else + /* here the trick is that jtag_add_pathmove() must end in a stable + * state, so we must only invoke jtag_add_tlr() when we absolutely + * have to + */ + for(i=0,lasti=0; i<path_len; i++) { - int i,lasti; - - /* here the trick is that jtag_add_pathmove() must end in a stable - * state, so we must only invoke jtag_add_tlr() when we absolutely - * have to - */ - for(i=0,lasti=0; i<path_len; i++) + if(path[i]==TAP_RESET) { - if(path[i]==TAP_RESET) + if(i>lasti) { - if(i>lasti) - { - jtag_add_pathmove(i-lasti,path+lasti); - } - lasti=i+1; - jtag_add_tlr(); + jtag_add_pathmove(i-lasti,path+lasti); } + lasti=i+1; + jtag_add_tlr(); } - if(i>=lasti) - { - jtag_add_pathmove(i-lasti, path+lasti); - } } - free(path); + if(i>=lasti) + { + jtag_add_pathmove(i-lasti, path+lasti); + } } + free(path); + } + break; + + case XENDIR: + + if (read(xsvf_fd, &uc, 1) < 0) + { + do_abort = 1; break; + } - case XENDIR: - { - tap_state_t mystate; + /* see page 22 of XSVF spec */ + if( uc == 0 ) + xendir = TAP_IDLE; + else if( uc == 1 ) + xendir = TAP_IRPAUSE; + else + { + LOG_ERROR("illegial XENDIR argument: 0x%02X", uc); + unsupported = 1; + break; + } - if (read(xsvf_fd, &uc, 1) < 0) - { - do_abort = 1; - break; - } + LOG_DEBUG("XENDIR 0x%02X %s", uc, tap_state_name(xendir)); + break; - /* see page 22 of XSVF spec */ - mystate = uc == 1 ? TAP_IRPAUSE : TAP_IDLE; + case XENDDR: - LOG_DEBUG("XENDIR 0x%02X %s", uc, tap_state_name(mystate)); + if (read(xsvf_fd, &uc, 1) < 0) + { + do_abort = 1; + break; + } - /* assuming that the XRUNTEST comes from SVF RUNTEST, then only these states - * should come here because the SVF spec only allows these with a RUNTEST - */ - if (mystate != TAP_IRPAUSE && mystate != TAP_DRPAUSE && mystate != TAP_RESET && mystate != TAP_IDLE ) - { - LOG_ERROR("illegal XENDIR endstate: \"%s\"", tap_state_name(mystate)); - unsupported = 1; - break; - } - xendir = mystate; - } + /* see page 22 of XSVF spec */ + if( uc == 0 ) + xenddr = TAP_IDLE; + else if( uc == 1 ) + xenddr = TAP_DRPAUSE; + else + { + LOG_ERROR("illegial XENDDR argument: 0x%02X", uc); + unsupported = 1; break; + } - case XENDDR: - { - tap_state_t mystate; + LOG_DEBUG("XENDDR %02X %s", uc, tap_state_name(xenddr)); + break; - if (read(xsvf_fd, &uc, 1) < 0) + case XSIR: + case XSIR2: + { + u8 short_buf[2]; + u8* ir_buf; + int bitcount; + tap_state_t my_end_state = xruntest ? TAP_IDLE : xendir; + + if( opcode == XSIR ) + { + /* one byte bitcount */ + if (read(xsvf_fd, short_buf, 1) < 0) { do_abort = 1; break; } - - /* see page 22 of XSVF spec */ - mystate = uc == 1 ? TAP_DRPAUSE : TAP_IDLE; - - LOG_DEBUG("XENDDR %02X %s", uc, tap_state_name(mystate)); - - if (mystate != TAP_IRPAUSE && mystate != TAP_DRPAUSE && mystate != TAP_RESET && mystate != TAP_IDLE ) + bitcount = short_buf[0]; + LOG_DEBUG("XSIR %d", bitcount); + } + else + { + if (read(xsvf_fd, short_buf, 2) < 0) { - LOG_ERROR("illegal XENDDR endstate: \"%s\"", tap_state_name( mystate )); - unsupported = 1; + do_abort = 1; break; } - xenddr = mystate; + bitcount = be_to_h_u16(short_buf); + LOG_DEBUG("XSIR2 %d", bitcount); } - break; - case XSIR: - case XSIR2: + ir_buf = malloc((bitcount+7) / 8); + + if (xsvf_read_buffer(bitcount, xsvf_fd, ir_buf) != ERROR_OK) + do_abort = 1; + else { - u8 short_buf[2]; - u8* ir_buf; - int bitcount; - tap_state_t my_end_state = xruntest ? TAP_IDLE : xendir; + scan_field_t field; - if( opcode == XSIR ) - { - /* one byte bitcount */ - if (read(xsvf_fd, short_buf, 1) < 0) - { - do_abort = 1; - break; - } - bitcount = short_buf[0]; - LOG_DEBUG("XSIR %d", bitcount); - } - else - { - if (read(xsvf_fd, short_buf, 2) < 0) - { - do_abort = 1; - break; - } - bitcount = be_to_h_u16(short_buf); - LOG_DEBUG("XSIR2 %d", bitcount); - } + field.tap = tap; + field.num_bits = bitcount; + field.out_value = ir_buf; + field.out_mask = NULL; + field.in_value = NULL; + field.in_check_value = NULL; + field.in_check_mask = NULL; + field.in_handler = NULL; + field.in_handler_priv = NULL; - ir_buf = malloc((bitcount+7) / 8); - - if (xsvf_read_buffer(bitcount, xsvf_fd, ir_buf) != ERROR_OK) - do_abort = 1; + if (tap == NULL) + jtag_add_plain_ir_scan(1, &field, my_end_state); else - { - scan_field_t field; + jtag_add_ir_scan(1, &field, my_end_state); - field.tap = tap; - field.num_bits = bitcount; - field.out_value = ir_buf; - field.out_mask = NULL; - field.in_value = NULL; - field.in_check_value = NULL; - field.in_check_mask = NULL; - field.in_handler = NULL; - field.in_handler_priv = NULL; - - if (tap == NULL) - jtag_add_plain_ir_scan(1, &field, my_end_state); + if (xruntest) + { + if (runtest_requires_tck) + jtag_add_clocks(xruntest); else - jtag_add_ir_scan(1, &field, my_end_state); + jtag_add_sleep(xruntest); + } - if (xruntest) - { - if (runtest_requires_tck) - jtag_add_clocks(xruntest); - else - jtag_add_sleep(xruntest); - } + /* Note that an -irmask of non-zero in your config file + * can cause this to fail. Setting -irmask to zero cand work + * around the problem. + */ - /* Note that an -irmask of non-zero in your config file - * can cause this to fail. Setting -irmask to zero cand work - * around the problem. - */ - - /* LOG_DEBUG("FLUSHING QUEUE"); */ - result = jtag_execute_queue(); - if(result != ERROR_OK) - { - tdo_mismatch = 1; - } + /* LOG_DEBUG("FLUSHING QUEUE"); */ + result = jtag_execute_queue(); + if(result != ERROR_OK) + { + tdo_mismatch = 1; } - free(ir_buf); } - break; + free(ir_buf); + } + break; - case XCOMMENT: - { - int ndx = 0; - char comment[128]; + case XCOMMENT: + { + int ndx = 0; + char comment[128]; - do + do + { + if (read(xsvf_fd, &uc, 1) < 0) { - if (read(xsvf_fd, &uc, 1) < 0) - { - do_abort = 1; - break; - } + do_abort = 1; + break; + } - if ( ndx < sizeof(comment)-1 ) - comment[ndx++] = uc; + if ( ndx < sizeof(comment)-1 ) + comment[ndx++] = uc; - } while (uc != 0); + } while (uc != 0); - comment[sizeof(comment)-1] = 0; /* regardless, terminate */ - if (verbose) - LOG_USER(comment); - } - break; + comment[sizeof(comment)-1] = 0; /* regardless, terminate */ + if (verbose) + LOG_USER(comment); + } + break; - case XWAIT: - { - /* expected in stream: - XWAIT <u8 wait_state> <u8 end_state> <u32 usecs> - */ + case XWAIT: + { + /* expected in stream: + XWAIT <u8 wait_state> <u8 end_state> <u32 usecs> + */ - u8 wait; - u8 end; - u8 delay_buf[4]; + u8 wait; + u8 end; + u8 delay_buf[4]; - tap_state_t wait_state; - tap_state_t end_state; - int delay; + tap_state_t wait_state; + tap_state_t end_state; + int delay; - if ( read(xsvf_fd, &wait, 1) < 0 - || read(xsvf_fd, &end, 1) < 0 - || read(xsvf_fd, delay_buf, 4) < 0) - { - do_abort = 1; - break; - } + if ( read(xsvf_fd, &wait, 1) < 0 + || read(xsvf_fd, &end, 1) < 0 + || read(xsvf_fd, delay_buf, 4) < 0) + { + do_abort = 1; + break; + } - wait_state = xsvf_to_tap(wait); - end_state = xsvf_to_tap(end); - delay = be_to_h_u32(delay_buf); + wait_state = xsvf_to_tap(wait); + end_state = xsvf_to_tap(end); + delay = be_to_h_u32(delay_buf); - LOG_DEBUG("XWAIT %s %s usecs:%d", tap_state_name(wait_state), tap_state_name(end_state), delay); + LOG_DEBUG("XWAIT %s %s usecs:%d", tap_state_name(wait_state), tap_state_name(end_state), delay); - if (runtest_requires_tck && wait_state == TAP_IDLE ) - { - jtag_add_runtest(delay, end_state); - } - else - { - xsvf_add_statemove( wait_state ); - jtag_add_sleep(delay); - xsvf_add_statemove( end_state ); - } + if (runtest_requires_tck && wait_state == TAP_IDLE ) + { + jtag_add_runtest(delay, end_state); } - break; - - case XWAITSTATE: + else { - /* expected in stream: - XWAITSTATE <u8 wait_state> <u8 end_state> <u32 clock_count> <u32 usecs> - */ + xsvf_add_statemove( wait_state ); + jtag_add_sleep(delay); + xsvf_add_statemove( end_state ); + } + } + break; - u8 clock_buf[4]; - u8 usecs_buf[4]; - u8 wait; - u8 end; - tap_state_t wait_state; - tap_state_t end_state; - int clock_count; - int usecs; + case XWAITSTATE: + { + /* expected in stream: + XWAITSTATE <u8 wait_state> <u8 end_state> <u32 clock_count> <u32 usecs> + */ - if ( read(xsvf_fd, &wait, 1) < 0 - || read(xsvf_fd, &end, 1) < 0 - || read(xsvf_fd, clock_buf, 4) < 0 - || read(xsvf_fd, usecs_buf, 4) < 0 ) - { - do_abort = 1; - break; - } + u8 clock_buf[4]; + u8 usecs_buf[4]; + u8 wait; + u8 end; + tap_state_t wait_state; + tap_state_t end_state; + int clock_count; + int usecs; - wait_state = xsvf_to_tap( wait ); - end_state = xsvf_to_tap( end ); + if ( read(xsvf_fd, &wait, 1) < 0 + || read(xsvf_fd, &end, 1) < 0 + || read(xsvf_fd, clock_buf, 4) < 0 + || read(xsvf_fd, usecs_buf, 4) < 0 ) + { + do_abort = 1; + break; + } - clock_count = be_to_h_u32(clock_buf); - usecs = be_to_h_u32(usecs_buf); + wait_state = xsvf_to_tap( wait ); + end_state = xsvf_to_tap( end ); - LOG_DEBUG("XWAITSTATE %s %s clocks:%i usecs:%i", - tap_state_name(wait_state), - tap_state_name(end_state), - clock_count, usecs); + clock_count = be_to_h_u32(clock_buf); + usecs = be_to_h_u32(usecs_buf); - /* the following states are 'stable', meaning that they have a transition - * in the state diagram back to themselves. This is necessary because we will - * be issuing a number of clocks in this state. This set of allowed states is also - * determined by the SVF RUNTEST command's allowed states. - */ - if (wait_state != TAP_IRPAUSE && wait_state != TAP_DRPAUSE && wait_state != TAP_RESET && wait_state != TAP_IDLE) - { - LOG_ERROR("illegal XWAITSTATE wait_state: \"%s\"", tap_state_name( wait_state )); - unsupported = 1; - } + LOG_DEBUG("XWAITSTATE %s %s clocks:%i usecs:%i", + tap_state_name(wait_state), + tap_state_name(end_state), + clock_count, usecs); - xsvf_add_statemove( wait_state ); + /* the following states are 'stable', meaning that they have a transition + * in the state diagram back to themselves. This is necessary because we will + * be issuing a number of clocks in this state. This set of allowed states is also + * determined by the SVF RUNTEST command's allowed states. + */ + if (wait_state != TAP_IRPAUSE && wait_state != TAP_DRPAUSE && wait_state != TAP_RESET && wait_state != TAP_IDLE) + { + LOG_ERROR("illegal XWAITSTATE wait_state: \"%s\"", tap_state_name( wait_state )); + unsupported = 1; + } - jtag_add_clocks( clock_count ); + xsvf_add_statemove( wait_state ); - jtag_add_sleep( usecs ); + jtag_add_clocks( clock_count ); - xsvf_add_statemove( end_state ); - } - break; + jtag_add_sleep( usecs ); - case LCOUNT: - { - /* expected in stream: - LCOUNT <u32 loop_count> - */ - u8 count_buf[4]; + xsvf_add_statemove( end_state ); + } + break; - if ( read(xsvf_fd, count_buf, 4) < 0 ) - { - do_abort = 1; - break; - } + case LCOUNT: + { + /* expected in stream: + LCOUNT <u32 loop_count> + */ + u8 count_buf[4]; - loop_count = be_to_h_u32(count_buf); - LOG_DEBUG("LCOUNT %d", loop_count); + if ( read(xsvf_fd, count_buf, 4) < 0 ) + { + do_abort = 1; + break; } - break; - case LDELAY: - { - /* expected in stream: - LDELAY <u8 wait_state> <u32 clock_count> <u32 usecs_to_sleep> - */ - u8 state; - u8 clock_buf[4]; - u8 usecs_buf[4]; + loop_count = be_to_h_u32(count_buf); + LOG_DEBUG("LCOUNT %d", loop_count); + } + break; - if ( read(xsvf_fd, &state, 1) < 0 - || read(xsvf_fd, clock_buf, 4) < 0 - || read(xsvf_fd, usecs_buf, 4) < 0 ) - { - do_abort = 1; - break; - } + case LDELAY: + { + /* expected in stream: + LDELAY <u8 wait_state> <u32 clock_count> <u32 usecs_to_sleep> + */ + u8 state; + u8 clock_buf[4]; + u8 usecs_buf[4]; - loop_state = xsvf_to_tap(state); - loop_clocks = be_to_h_u32(clock_buf); - loop_usecs = be_to_h_u32(usecs_buf); - - LOG_DEBUG("LDELAY %s clocks:%d usecs:%d", tap_state_name(loop_state), loop_clocks, loop_usecs); + if ( read(xsvf_fd, &state, 1) < 0 + || read(xsvf_fd, clock_buf, 4) < 0 + || read(xsvf_fd, usecs_buf, 4) < 0 ) + { + do_abort = 1; + break; } - break; - /* LSDR is more like XSDRTDO than it is like XSDR. It uses LDELAY which - * comes with clocks !AND! sleep requirements. - */ - case LSDR: - { - int limit = loop_count; - int matched = 0; - int attempt; + loop_state = xsvf_to_tap(state); + loop_clocks = be_to_h_u32(clock_buf); + loop_usecs = be_to_h_u32(usecs_buf); - LOG_DEBUG("LSDR"); + LOG_DEBUG("LDELAY %s clocks:%d usecs:%d", tap_state_name(loop_state), loop_clocks, loop_usecs); + } + break; - if ( xsvf_read_buffer(xsdrsize, xsvf_fd, dr_out_buf) != ERROR_OK - || xsvf_read_buffer(xsdrsize, xsvf_fd, dr_in_buf) != ERROR_OK ) - { - do_abort = 1; - break; - } + /* LSDR is more like XSDRTDO than it is like XSDR. It uses LDELAY which + * comes with clocks !AND! sleep requirements. + */ + case LSDR: + { + int limit = loop_count; + int matched = 0; + int attempt; - if (limit < 1) - limit = 1; + LOG_DEBUG("LSDR"); - for( attempt=0; attempt<limit; ++attempt ) - { - scan_field_t field; + if ( xsvf_read_buffer(xsdrsize, xsvf_fd, dr_out_buf) != ERROR_OK + || xsvf_read_buffer(xsdrsize, xsvf_fd, dr_in_buf) != ERROR_OK ) + { + do_abort = 1; + break; + } - xsvf_add_statemove( loop_state ); - jtag_add_clocks(loop_clocks); - jtag_add_sleep(loop_usecs); + if (limit < 1) + limit = 1; - field.tap = tap; - field.num_bits = xsdrsize; - field.out_value = dr_out_buf; - field.out_mask = NULL; - field.in_value = NULL; + for( attempt=0; attempt<limit; ++attempt ) + { + scan_field_t field; - if (attempt > 0 && verbose) - LOG_USER("LSDR retry %d", attempt); + xsvf_add_statemove( loop_state ); + jtag_add_clocks(loop_clocks); + jtag_add_sleep(loop_usecs); - jtag_set_check_value(&field, dr_in_buf, dr_in_mask, NULL); - if (tap == NULL) - jtag_add_plain_dr_scan(1, &field, TAP_DRPAUSE); - else - jtag_add_dr_scan(1, &field, TAP_DRPAUSE); + field.tap = tap; + field.num_bits = xsdrsize; + field.out_value = dr_out_buf; + field.out_mask = NULL; + field.in_value = NULL; - /* LOG_DEBUG("FLUSHING QUEUE"); */ - result = jtag_execute_queue(); - if(result == ERROR_OK) - { - matched = 1; - break; - } - } + if (attempt > 0 && verbose) + LOG_USER("LSDR retry %d", attempt); - if (!matched ) + jtag_set_check_value(&field, dr_in_buf, dr_in_mask, NULL); + if (tap == NULL) + jtag_add_plain_dr_scan(1, &field, TAP_DRPAUSE); + else + jtag_add_dr_scan(1, &field, TAP_DRPAUSE); + + /* LOG_DEBUG("FLUSHING QUEUE"); */ + result = jtag_execute_queue(); + if(result == ERROR_OK) { - LOG_USER( "LSDR mismatch" ); - tdo_mismatch = 1; + matched = 1; break; } } - break; - case XTRST: + if (!matched ) { - u8 trst_mode; + LOG_USER( "LSDR mismatch" ); + tdo_mismatch = 1; + break; + } + } + break; - if (read(xsvf_fd, &trst_mode, 1) < 0) - { - do_abort = 1; - break; - } + case XTRST: + { + u8 trst_mode; - switch( trst_mode ) - { - case XTRST_ON: - jtag_add_reset(1, 0); - break; - case XTRST_OFF: - case XTRST_Z: - jtag_add_reset(0, 0); - break; - case XTRST_ABSENT: - break; - default: - LOG_ERROR( "XTRST mode argument (0x%02X) out of range", trst_mode ); - do_abort = 1; - } + if (read(xsvf_fd, &trst_mode, 1) < 0) + { + do_abort = 1; + break; } - break; - default: - LOG_ERROR("unknown xsvf command (0x%02X)\n", uc); - unsupported = 1; + switch( trst_mode ) + { + case XTRST_ON: + jtag_add_reset(1, 0); + break; + case XTRST_OFF: + case XTRST_Z: + jtag_add_reset(0, 0); + break; + case XTRST_ABSENT: + break; + default: + LOG_ERROR( "XTRST mode argument (0x%02X) out of range", trst_mode ); + do_abort = 1; + } + } + break; + + default: + LOG_ERROR("unknown xsvf command (0x%02X)\n", uc); + unsupported = 1; } if (do_abort || unsupported || tdo_mismatch) @@ -1058,8 +1051,10 @@ } -/* PSUEDO-Code from Xilinx Appnote XAPP067.pdf: +#if 0 /* this comment style used to try and keep uncrustify from adding * at begin of line */ +PSUEDO-Code from Xilinx Appnote XAPP067.pdf: + the following pseudo code clarifies the intent of the xrepeat support. The flow given is for the entire processing of an SVF file, not an XSVF file. No idea if this is just for the XC9500/XL/XV devices or all Xilinx parts. @@ -1106,4 +1101,4 @@ store <TCK value> as <current pause time> end if -*/ +#endif |