aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gdb/ChangeLog12
-rw-r--r--gdb/monitor.h4
-rw-r--r--gdb/remote-est.c3
-rw-r--r--gdb/sh3-rom.c4
-rw-r--r--gdb/srec.h2
5 files changed, 21 insertions, 4 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 47b557b..2efe979 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,15 @@
+Mon May 20 22:52:00 1996 Mark Alexander <marka@cygnus.com>
+
+ * dsrec.c (load_srec): Add WAITACK parameter, for machines
+ like EST visionICE that send back an ACK after each S-record.
+ * monitor.c (monitor_wait_srec_ack): New function.
+ (monitor_load): Pass monitor_wait_srec_ack to load_srec
+ if the monitor's MO_SREC_ACK flag is set.
+ * monitor.h: Define MO_SREC_ACK flag.
+ * remote-est.c (est_cmds): Add MO_SREC_ACK flag.
+ * sh3-rom.c (sh3_load): Accomodate change in load_srec prototype.
+ * srec.h: Add WAITACK parameter to load_srec prototype.
+
Sun May 19 21:22:00 1996 Rob Savoye <rob@chinadoll>
* config/sparc/sparclite.mt: Add the sparc simulator.
diff --git a/gdb/monitor.h b/gdb/monitor.h
index e61dc96..dc2f124 100644
--- a/gdb/monitor.h
+++ b/gdb/monitor.h
@@ -148,6 +148,10 @@ struct monitor_ops
#define MO_SEND_BREAK_ON_STOP 0x80
+/* If set, target sends an ACK after each S-record */
+
+#define MO_SREC_ACK 0x100
+
#define SREC_SIZE 160
extern void monitor_open PARAMS ((char *args, struct monitor_ops *ops,
diff --git a/gdb/remote-est.c b/gdb/remote-est.c
index cfa9731..25c25ac 100644
--- a/gdb/remote-est.c
+++ b/gdb/remote-est.c
@@ -97,7 +97,8 @@ static char *est_inits[] = {"he\r", /* Resets the prompt, and clears repeated cm
static struct monitor_ops est_cmds =
{
- MO_CLR_BREAK_USES_ADDR | MO_FILL_USES_ADDR | MO_NEED_REGDUMP_AFTER_CONT,
+ MO_CLR_BREAK_USES_ADDR | MO_FILL_USES_ADDR | MO_NEED_REGDUMP_AFTER_CONT |
+ MO_SREC_ACK,
est_inits, /* Init strings */
"go\r", /* continue command */
"sidr\r", /* single step */
diff --git a/gdb/sh3-rom.c b/gdb/sh3-rom.c
index 701bf28..6279c9a 100644
--- a/gdb/sh3-rom.c
+++ b/gdb/sh3-rom.c
@@ -123,7 +123,7 @@ sh3_load (desc, file, hashmark)
if (parallel_in_use)
{
monitor_printf("pl;s\r");
- load_srec (parallel, file, 80, SREC_ALL, hashmark);
+ load_srec (parallel, file, 80, SREC_ALL, hashmark, NULL);
monitor_expect_prompt (NULL, 0);
}
else
@@ -133,7 +133,7 @@ sh3_load (desc, file, hashmark)
SERIAL_WRITE (desc, "\006", 1); /* Send ACK */
monitor_expect ("LO x\r", NULL, 0); /* Look for filename */
- load_srec (desc, file, 80, SREC_ALL, hashmark);
+ load_srec (desc, file, 80, SREC_ALL, hashmark, NULL);
monitor_expect ("\005", NULL, 0); /* Look for ENQ */
SERIAL_WRITE (desc, "\006", 1); /* Send ACK */
diff --git a/gdb/srec.h b/gdb/srec.h
index 1446bda..eb69360 100644
--- a/gdb/srec.h
+++ b/gdb/srec.h
@@ -18,7 +18,7 @@ along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
void load_srec PARAMS ((serial_t desc, const char *file, int maxrecsize,
- int flags, int hashmark));
+ int flags, int hashmark, int (*waitack)(void)));
/* S-record capability flags */