From 169e13589fdf1f7e8df5a49b91b2e5c87184c1dc Mon Sep 17 00:00:00 2001
From: "Brian S. Dean" <bsd@bsdhome.com>
Date: Tue, 4 Mar 2003 14:33:19 +0000
Subject: [PATCH] Don't try to set extended device programming parameters if
 they haven't been specified in the config file for the part.

git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk/avrdude@250 81a1dc3b-b13d-400b-aceb-764788c761c2
---
 stk500.c | 51 ++++++++++++++++++++++++++++++---------------------
 1 file changed, 30 insertions(+), 21 deletions(-)

diff --git a/stk500.c b/stk500.c
index 3c9135cc..a44b46cf 100644
--- a/stk500.c
+++ b/stk500.c
@@ -633,29 +633,38 @@ static int stk500_initialize(PROGRAMMER * pgm, AVRPART * p)
   }
 
   if (n_extparms) {
-    buf[0] = n_extparms+1;
-    /*
-     * m is currently pointing to eeprom memory if the part has it
-     */
-    if (m)
-      buf[1] = m->page_size;
-    else
-      buf[1] = 0;
-
-    buf[2] = p->pagel;
-    buf[3] = p->bs2;
-
-    if (n_extparms == 4) {
-      if (p->reset_disposition == RESET_DEDICATED)
-        buf[4] = 0;
-      else
-        buf[4] = 1;
+    if ((p->pagel == 0) || (p->bs2 == 0)) {
+      fprintf(stderr, 
+              "%s: please define PAGEL and BS2 signals in the configuration "
+              "file for part %s\n", 
+              progname, p->desc);
     }
+    else {
+      buf[0] = n_extparms+1;
 
-    rc = stk500_set_extended_parms(pgm, n_extparms+1, buf);
-    if (rc) {
-      fprintf(stderr, "%s: stk500_initialize(): failed\n", progname);
-      exit(1);
+      /*
+       * m is currently pointing to eeprom memory if the part has it
+       */
+      if (m)
+        buf[1] = m->page_size;
+      else
+        buf[1] = 0;
+      
+      buf[2] = p->pagel;
+      buf[3] = p->bs2;
+      
+      if (n_extparms == 4) {
+        if (p->reset_disposition == RESET_DEDICATED)
+          buf[4] = 0;
+        else
+          buf[4] = 1;
+      }
+      
+      rc = stk500_set_extended_parms(pgm, n_extparms+1, buf);
+      if (rc) {
+        fprintf(stderr, "%s: stk500_initialize(): failed\n", progname);
+        exit(1);
+      }
     }
   }