diff --git a/uart/avrdude/patches/nanonote-uart.patch b/uart/avrdude/patches/nanonote-uart.patch index 1073656..f2226e8 100644 --- a/uart/avrdude/patches/nanonote-uart.patch +++ b/uart/avrdude/patches/nanonote-uart.patch @@ -1,7 +1,7 @@ Index: avrdude/avrdude-5.10/avrdude.conf.in =================================================================== ---- avrdude.orig/avrdude-5.10/avrdude.conf.in 2011-02-03 21:08:13.000000000 -0300 -+++ avrdude/avrdude-5.10/avrdude.conf.in 2011-02-03 21:16:34.000000000 -0300 +--- avrdude.orig/avrdude-5.10/avrdude.conf.in 2011-02-04 17:26:06.000000000 -0300 ++++ avrdude/avrdude-5.10/avrdude.conf.in 2011-02-04 17:26:07.000000000 -0300 @@ -592,6 +592,29 @@ type = avr910; ; @@ -12,7 +12,7 @@ Index: avrdude/avrdude-5.10/avrdude.conf.in +# DAT1 1 +# DAT0 2 +# VSS - -+# CLK 4 ++# CLK - (reserved for clock output) +# VDD - +# CMD 5 +# DAT3 7 diff --git a/uart/avrdude/patches/nanonote.patch b/uart/avrdude/patches/nanonote.patch index f756b3b..f8361d1 100644 --- a/uart/avrdude/patches/nanonote.patch +++ b/uart/avrdude/patches/nanonote.patch @@ -1,7 +1,7 @@ Index: avrdude/avrdude-5.10/Makefile.am =================================================================== ---- avrdude.orig/avrdude-5.10/Makefile.am 2011-02-01 20:25:15.000000000 -0300 -+++ avrdude/avrdude-5.10/Makefile.am 2011-02-01 20:25:54.000000000 -0300 +--- avrdude.orig/avrdude-5.10/Makefile.am 2011-02-04 17:40:39.000000000 -0300 ++++ avrdude/avrdude-5.10/Makefile.am 2011-02-04 17:40:48.000000000 -0300 @@ -111,6 +111,8 @@ lists.c \ lists.h \ @@ -13,8 +13,8 @@ Index: avrdude/avrdude-5.10/Makefile.am pgm.c \ Index: avrdude/avrdude-5.10/config_gram.y =================================================================== ---- avrdude.orig/avrdude-5.10/config_gram.y 2011-02-01 18:50:48.000000000 -0300 -+++ avrdude/avrdude-5.10/config_gram.y 2011-02-01 20:27:31.000000000 -0300 +--- avrdude.orig/avrdude-5.10/config_gram.y 2011-02-04 17:40:39.000000000 -0300 ++++ avrdude/avrdude-5.10/config_gram.y 2011-02-04 17:40:48.000000000 -0300 @@ -48,6 +48,7 @@ #include "avr.h" #include "jtagmkI.h" @@ -46,8 +46,8 @@ Index: avrdude/avrdude-5.10/config_gram.y current_prog->desc[PGM_DESCLEN-1] = 0; Index: avrdude/avrdude-5.10/lexer.l =================================================================== ---- avrdude.orig/avrdude-5.10/lexer.l 2011-02-01 18:53:11.000000000 -0300 -+++ avrdude/avrdude-5.10/lexer.l 2011-02-01 18:53:40.000000000 -0300 +--- avrdude.orig/avrdude-5.10/lexer.l 2011-02-04 17:40:39.000000000 -0300 ++++ avrdude/avrdude-5.10/lexer.l 2011-02-04 17:40:48.000000000 -0300 @@ -164,6 +164,7 @@ min_write_delay { yylval=NULL; return K_MIN_WRITE_DELAY; } miso { yylval=NULL; return K_MISO; } @@ -59,8 +59,8 @@ Index: avrdude/avrdude-5.10/lexer.l Index: avrdude/avrdude-5.10/nanonote.c =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ avrdude/avrdude-5.10/nanonote.c 2011-02-01 21:33:19.000000000 -0300 -@@ -0,0 +1,302 @@ ++++ avrdude/avrdude-5.10/nanonote.c 2011-02-04 17:48:11.000000000 -0300 +@@ -0,0 +1,295 @@ +/* + * avrdude - A Downloader/Uploader for AVR device programmers + * Copyright (C) 2000, 2001, 2002, 2003 Brian S. Dean @@ -128,6 +128,7 @@ Index: avrdude/avrdude-5.10/nanonote.c + unsigned port; + unsigned bit; +} pin_map[] = { ++ { 0, 0}, /* 0: not assigned */ + { 3, 11 }, /* 1: PD11, DAT1 */ + { 3, 10 }, /* 2: PD12, DAT0 */ + { 0, 0 }, /* 3: VSS */ @@ -197,31 +198,22 @@ Index: avrdude/avrdude-5.10/nanonote.c + pin &= PIN_MASK; + } + -+ if (pin < 1 || pin > sizeof(pin_map)/sizeof(*pin_map)) ++ if (pin < 1 || pin >= sizeof(pin_map)/sizeof(*pin_map)) + return -1; -+ if (!pin_map[pin-1].port) ++ if (!pin_map[pin].port) + return -1; + +#if 0 +fprintf(stderr, "pin %d (%u, %u) = %d\n", -+pin, pin_map[pin-1].port, pin_map[pin-1].bit, value); ++pin, pin_map[pin].port, pin_map[pin].bit, value); +#endif -+ gpio_set(pin_map[pin-1].port, pin_map[pin-1].bit, value); ++ gpio_set(pin_map[pin].port, pin_map[pin].bit, value); + -+ { -+ int i; -+ -+ /* -+ * @@@ investigate later -+ * We get unstable results with values <= 15 but stable results -+ * with 16. -+ */ -+ for (i = 0; i != 100; i++) -+ gpio_get(pin_map[pin-1].port, pin_map[pin-1].bit); -+ } -+ -+ if (pgm->ispdelay > 1) -+ bitbang_delay(pgm->ispdelay); ++ /* ++ * We get unstable results with values <= 16 but stable results ++ * with 17 and above. ++ */ ++ bitbang_delay(pgm->ispdelay+100); + + return 0; +} @@ -237,15 +229,16 @@ Index: avrdude/avrdude-5.10/nanonote.c + pin &= PIN_MASK; + } + -+ if (pin < 1 || pin > sizeof(pin_map)/sizeof(*pin_map)) ++ if (pin < 1 || pin >= sizeof(pin_map)/sizeof(*pin_map)) + return -1; + if (!pin_map[pin].port) + return -1; + -+ v = gpio_get(pin_map[pin-1].port, pin_map[pin-1].bit); ++ gpio_input(pin_map[pin].port, pin_map[pin].bit); /* @@@ hack */ ++ v = gpio_get(pin_map[pin].port, pin_map[pin].bit); +#if 0 +fprintf(stderr, "pin %d (%u, %u): %d\n", -+pin, pin_map[pin-1].port, pin_map[pin-1].bit, v); ++pin, pin_map[pin].port, pin_map[pin].bit, v); +#endif + return pin & PIN_INVERSE ? !v : v; +} @@ -323,7 +316,7 @@ Index: avrdude/avrdude-5.10/nanonote.c + gpio_output(CMD); + gpio_output(DAT3); + gpio_output(DAT2); -+ gpio_input(DAT1); /* @@@ hack */ ++ gpio_output(DAT1); + + nanonote_disable(pgm); + @@ -366,7 +359,7 @@ Index: avrdude/avrdude-5.10/nanonote.c Index: avrdude/avrdude-5.10/nanonote.h =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ avrdude/avrdude-5.10/nanonote.h 2011-02-01 20:27:11.000000000 -0300 ++++ avrdude/avrdude-5.10/nanonote.h 2011-02-04 17:40:48.000000000 -0300 @@ -0,0 +1,6 @@ +#ifndef nanonote_h +#define nanonote_h