diff --git a/uart/avrdude/patches/atmega32u2.patch b/uart/avrdude/patches/atmega32u2.patch new file mode 100644 index 0000000..3e79ad1 --- /dev/null +++ b/uart/avrdude/patches/atmega32u2.patch @@ -0,0 +1,196 @@ +Index: avrdude/avrdude-5.10/avrdude.conf.in +=================================================================== +--- avrdude.orig/avrdude-5.10/avrdude.conf.in 2011-02-11 00:33:27.000000000 -0300 ++++ avrdude/avrdude-5.10/avrdude.conf.in 2011-02-11 08:43:53.000000000 -0300 +@@ -13033,6 +13033,191 @@ + ; + + #------------------------------------------------------------ ++# ATmega32U2 ++#------------------------------------------------------------ ++ ++# ++# This is a rough adaptation of the AT90USB162 definition. May contain all ++# sorts of errors. ++# ++ ++part ++ id = "m32u2"; ++ desc = "ATmega32U2"; ++ has_jtag = no; ++ has_debugwire = yes; ++ signature = 0x1e 0x95 0x8a; ++ chip_erase_delay = 9000; ++ reset = io; ++ pgm_enable = "1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1", ++ "x x x x x x x x x x x x x x x x"; ++ chip_erase = "1 0 1 0 1 1 0 0 1 0 0 x x x x x", ++ "x x x x x x x x x x x x x x x x"; ++ pagel = 0xD7; ++ bs2 = 0xC6; ++ ++ timeout = 200; ++ stabdelay = 100; ++ cmdexedelay = 25; ++ synchloops = 32; ++ bytedelay = 0; ++ pollindex = 3; ++ pollvalue = 0x53; ++ predelay = 1; ++ postdelay = 1; ++ pollmethod = 1; ++ pp_controlstack = ++ 0x0E, 0x1E, 0x0F, 0x1F, 0x2E, 0x3E, 0x2F, 0x3F, ++ 0x4E, 0x5E, 0x4F, 0x5F, 0x6E, 0x7E, 0x6F, 0x7F, ++ 0x66, 0x76, 0x67, 0x77, 0x6A, 0x7A, 0x6B, 0x7B, ++ 0xBE, 0xFD, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00; ++ hventerstabdelay = 100; ++ progmodedelay = 0; ++ latchcycles = 5; ++ togglevtg = 1; ++ poweroffdelay = 15; ++ resetdelayms = 1; ++ resetdelayus = 0; ++ hvleavestabdelay = 15; ++ chiperasepulsewidth = 0; ++ chiperasepolltimeout = 10; ++ programfusepulsewidth = 0; ++ programfusepolltimeout = 5; ++ programlockpulsewidth = 0; ++ programlockpolltimeout = 5; ++ ++ memory "eeprom" ++ paged = no; /* leave this "no" */ ++ page_size = 4; /* for parallel programming */ ++ size = 1024; ++ num_pages = 256; ++ min_write_delay = 9000; ++ max_write_delay = 9000; ++ readback_p1 = 0x00; ++ readback_p2 = 0x00; ++ read = " 1 0 1 0 0 0 0 0", ++ " 0 0 0 0 a11 a10 a9 a8", ++ " a7 a6 a5 a4 a3 a2 a1 a0", ++ " o o o o o o o o"; ++ ++ write = " 1 1 0 0 0 0 0 0", ++ " 0 0 0 0 a11 a10 a9 a8", ++ " a7 a6 a5 a4 a3 a2 a1 a0", ++ " i i i i i i i i"; ++ ++ loadpage_lo = " 1 1 0 0 0 0 0 1", ++ " 0 0 0 0 0 0 0 0", ++ " 0 0 0 0 0 0 a1 a0", ++ " i i i i i i i i"; ++ ++ writepage = " 1 1 0 0 0 0 1 0", ++ " 0 0 0 0 a11 a10 a9 a8", ++ " a7 a6 a5 a4 a3 a2 0 0", ++ " x x x x x x x x"; ++ ++ mode = 0x41; ++ delay = 20; ++ blocksize = 4; ++ readsize = 256; ++ ; ++ ++ memory "flash" ++ paged = yes; ++ size = 32768; ++ page_size = 128; ++ num_pages = 256; ++ min_write_delay = 4500; ++ max_write_delay = 4500; ++ readback_p1 = 0x00; ++ readback_p2 = 0x00; ++ read_lo = " 0 0 1 0 0 0 0 0", ++ "a15 a14 a13 a12 a11 a10 a9 a8", ++ " a7 a6 a5 a4 a3 a2 a1 a0", ++ " o o o o o o o o"; ++ ++ read_hi = " 0 0 1 0 1 0 0 0", ++ "a15 a14 a13 a12 a11 a10 a9 a8", ++ " a7 a6 a5 a4 a3 a2 a1 a0", ++ " o o o o o o o o"; ++ ++ loadpage_lo = " 0 1 0 0 0 0 0 0", ++ " x x x x x x x x", ++ " x x a5 a4 a3 a2 a1 a0", ++ " i i i i i i i i"; ++ ++ loadpage_hi = " 0 1 0 0 1 0 0 0", ++ " x x x x x x x x", ++ " x x a5 a4 a3 a2 a1 a0", ++ " i i i i i i i i"; ++ ++ writepage = " 0 1 0 0 1 1 0 0", ++ "a15 a14 a13 a12 a11 a10 a9 a8", ++ " a7 a6 x x x x x x", ++ " x x x x x x x x"; ++ ++ mode = 0x41; ++ delay = 6; ++ blocksize = 128; ++ readsize = 256; ++ ; ++ ++ memory "lfuse" ++ size = 1; ++ write = "1 0 1 0 1 1 0 0 1 0 1 0 0 0 0 0", ++ "x x x x x x x x i i i i i i i i"; ++ ++ read = "0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0", ++ "x x x x x x x x o o o o o o o o"; ++ min_write_delay = 9000; ++ max_write_delay = 9000; ++ ; ++ ++ memory "hfuse" ++ size = 1; ++ write = "1 0 1 0 1 1 0 0 1 0 1 0 1 0 0 0", ++ "x x x x x x x x i i i i i i i i"; ++ ++ read = "0 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0", ++ "x x x x x x x x o o o o o o o o"; ++ min_write_delay = 9000; ++ max_write_delay = 9000; ++ ; ++ ++ memory "efuse" ++ size = 1; ++ write = "1 0 1 0 1 1 0 0 1 0 1 0 0 1 0 0", ++ "x x x x x x x x i i i i i i i i"; ++ ++ read = "0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0", ++ "x x x x x x x x o o o o o o o o"; ++ min_write_delay = 9000; ++ max_write_delay = 9000; ++ ; ++ ++ memory "lock" ++ size = 1; ++ read = "0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0", ++ "x x x x x x x x x x o o o o o o"; ++ ++ write = "1 0 1 0 1 1 0 0 1 1 1 x x x x x", ++ "x x x x x x x x 1 1 i i i i i i"; ++ min_write_delay = 9000; ++ max_write_delay = 9000; ++ ; ++ ++ memory "calibration" ++ size = 1; ++ read = "0 0 1 1 1 0 0 0 0 0 0 x x x x x", ++ "0 0 0 0 0 0 0 0 o o o o o o o o"; ++ ; ++ memory "signature" ++ size = 3; ++ read = "0 0 1 1 0 0 0 0 0 0 0 x x x x x", ++ "x x x x x x a1 a0 o o o o o o o o"; ++ ; ++ ; ++ ++#------------------------------------------------------------ + # AT90USB82 + #------------------------------------------------------------ + # Changes against AT90USB162 (beside IDs) diff --git a/uart/avrdude/patches/series b/uart/avrdude/patches/series index 27d314b..7a62b36 100644 --- a/uart/avrdude/patches/series +++ b/uart/avrdude/patches/series @@ -1,3 +1,4 @@ nanonote.patch nanonote-uart.patch nanonote-atusb.patch +atmega32u2.patch