diff --git a/mote/v2/avr/makefile b/mote/v2/avr/makefile index b56856a..ac05f36 100644 --- a/mote/v2/avr/makefile +++ b/mote/v2/avr/makefile @@ -264,12 +264,12 @@ AVRDUDE_WRITE_FUSES = -U lfuse:w:0xEC:m -U hfuse:w:0xD6:m -U efuse:w:0x01:m # to submit bug reports. #AVRDUDE_VERBOSE = -v -v -AVRDUDE_FLAGS = -p $(MCU) -P $(AVRDUDE_PORT) -c $(AVRDUDE_PROGRAMMER) +AVRDUDE_FLAGS = -p $(MCU)p -P $(AVRDUDE_PORT) -c $(AVRDUDE_PROGRAMMER) AVRDUDE_FLAGS += $(AVRDUDE_NO_VERIFY) AVRDUDE_FLAGS += $(AVRDUDE_VERBOSE) AVRDUDE_FLAGS += $(AVRDUDE_ERASE_COUNTER) -AVRDUDE_FLAGS_R = -p $(MCU) -c $(AVRDUDE_PROGRAMMER_R) +AVRDUDE_FLAGS_R = -p $(MCU)p -c $(AVRDUDE_PROGRAMMER_R) AVRDUDE_FLAGS_R += $(AVRDUDE_NO_VERIFY) AVRDUDE_FLAGS_R += $(AVRDUDE_VERBOSE) AVRDUDE_FLAGS_R += $(AVRDUDE_ERASE_COUNTER) diff --git a/mote/v2/openwrt/package/avrdude/patches/150-add_atmega168P_support.patch b/mote/v2/openwrt/package/avrdude/patches/150-add_atmega168P_support.patch new file mode 100644 index 0000000..f998b70 --- /dev/null +++ b/mote/v2/openwrt/package/avrdude/patches/150-add_atmega168P_support.patch @@ -0,0 +1,197 @@ +--- /tmp/avrdude-5.10/avrdude.conf.in 2011-01-31 22:17:05.060017389 +0100 ++++ avrdude-5.10/avrdude.conf.in 2011-01-31 22:22:03.792017389 +0100 +@@ -4772,6 +4772,194 @@ + ; + + #------------------------------------------------------------ ++# ATmega168P ++#------------------------------------------------------------ ++ ++part ++ id = "m168p"; ++ desc = "ATMEGA168P"; ++ has_debugwire = yes; ++ flash_instr = 0xB6, 0x01, 0x11; ++ eeprom_instr = 0xBD, 0xF2, 0xBD, 0xE1, 0xBB, 0xCF, 0xB4, 0x00, ++ 0xBE, 0x01, 0xB6, 0x01, 0xBC, 0x00, 0xBB, 0xBF, ++ 0x99, 0xF9, 0xBB, 0xAF; ++ stk500_devcode = 0x86; ++ # avr910_devcode = 0x; ++ signature = 0x1e 0x94 0x0b; ++ pagel = 0xd7; ++ bs2 = 0xc2; ++ chip_erase_delay = 9000; ++ 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"; ++ ++ 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; ++ resetdelay = 15; ++ chiperasepulsewidth = 0; ++ chiperasepolltimeout = 10; ++ programfusepulsewidth = 0; ++ programfusepolltimeout = 5; ++ programlockpulsewidth = 0; ++ programlockpolltimeout = 5; ++ ++ memory "eeprom" ++ paged = no; ++ page_size = 4; ++ size = 512; ++ min_write_delay = 3600; ++ max_write_delay = 3600; ++ readback_p1 = 0xff; ++ readback_p2 = 0xff; ++ read = " 1 0 1 0 0 0 0 0", ++ " 0 0 0 x x x x 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 x x x x 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 x x x x x a8", ++ " a7 a6 a5 a4 a3 a2 0 0", ++ " x x x x x x x x"; ++ ++ mode = 0x41; ++ delay = 5; ++ blocksize = 4; ++ readsize = 256; ++ ; ++ ++ memory "flash" ++ paged = yes; ++ size = 16384; ++ page_size = 128; ++ num_pages = 128; ++ min_write_delay = 4500; ++ max_write_delay = 4500; ++ readback_p1 = 0xff; ++ readback_p2 = 0xff; ++ read_lo = " 0 0 1 0 0 0 0 0", ++ " 0 0 0 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", ++ " 0 0 0 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", ++ " 0 0 0 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", ++ " 0 0 0 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", ++ " 0 0 0 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; ++ min_write_delay = 4500; ++ max_write_delay = 4500; ++ 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"; ++ ++ 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"; ++ ; ++ ++ memory "hfuse" ++ size = 1; ++ min_write_delay = 4500; ++ max_write_delay = 4500; ++ 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"; ++ ++ 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"; ++ ; ++ ++ memory "efuse" ++ size = 1; ++ min_write_delay = 4500; ++ max_write_delay = 4500; ++ 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 x x x x x o o o"; ++ ++ 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 x x x x x i i i"; ++ ; ++ ++ memory "lock" ++ size = 1; ++ min_write_delay = 4500; ++ max_write_delay = 4500; ++ 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"; ++ ; ++ ++ 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"; ++ ; ++; ++ ++#------------------------------------------------------------ + # ATmega328P + #------------------------------------------------------------ +