Updating AVRdude under windows:
Find the latest version (I just installed winAVR needed it anyway)
Update avrdude.exe found in arduino-0018/hardware/tools/avr/bin
Update avrdude.conf found in arduino-0018/hardware/tools/avr/etc
If you have a recent version of winAVR installed both files can be found in [winAVR install directory]/bin
As far as what I did to the boot loader I started with the standard standard version that comes with the arduino environment and modified the make file adding:
atmega1284p: TARGET = atmega1284p
atmega1284p: MCU_TARGET = atmega1284p
atmega1284p: CFLAGS += '-DMAX_TIME_COUNT=F_CPU>>4' '-DNUM_LED_FLASHES=0' '-DBAUD_RATE=57600'
atmega1284p: AVR_FREQ = 16000000L
atmega1284p: LDSECTION = --section-start=.text=0x1F800
atmega1284p: $(PROGRAM)_atmega1284p.hex
atmega1284p_isp: atmega1284p
atmega1284p_isp: TARGET = atmega1284p
atmega1284p_isp: MCU_TARGET = atmega1284p
atmega1284p_isp: HFUSE = DC
atmega1284p_isp: LFUSE = FF
atmega1284p_isp: EFUSE = FD
atmega1284p_isp: isp
after the mega definitions.
as far as the bootloader itself all I did was add the devices signature, and then looked for where the m1280 specific code was and also made that code compile for the m1284 ex:
#if defined __AVR_ATmega1280__
was changed to were applicable
#if defined __AVR_ATmega1280__ || defined __AVR_ATmega1284P__
All the code was already there its was just a matter of using the correct bits.
The sanguino board.txt additions:
##############################################################
atmega1284.name=Sanguino W/ ATmega1284p
atmega1284.upload.protocol=stk500
atmega1284.upload.maximum_size=131072
atmega1284.upload.speed=56700
atmega1284.bootloader.low_fuses=0xFF
atmega1284.bootloader.high_fuses=0xDC
atmega1284.bootloader.extended_fuses=0xFD
atmega1284.bootloader.path=atmega
atmega1284.bootloader.file=ATmegaBOOT_168_atmega1284p.hex
atmega1284.bootloader.unlock_bits=0x3F
atmega1284.bootloader.lock_bits=0x0F
atmega1284.build.mcu=atmega1284p
atmega1284.build.f_cpu=16000000L
atmega1284.build.core=arduino