arch: add support for ATmega88A

Aside from having 8kB of program flash, the hardware is identical to
ATmega48A.  As a result, the support looks very much like an alias.

Signed-off-by: Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
4 files changed, 13 insertions(+), 2 deletions(-)

M Makefile
M arch.h
M arch/atmega48p.h
M mcu.mk
M Makefile +1 -1
@@ 21,7 21,7 @@ 
 #
 
 NAME=CHANGEME
-MCUS=atmega48a atmega48p attiny13a
+MCUS=atmega48a atmega48p atmega88a attiny13a
 
 SRCS=\
 	start.S \

          
M arch.h +1 -1
@@ 43,7 43,7 @@ 
 
 #include "arch/generic_types.h"
 
-#if defined(MCU_ATMEGA48A) || defined(MCU_ATMEGA48P)
+#if defined(MCU_ATMEGA48A) || defined(MCU_ATMEGA48P) || defined(MCU_ATMEGA88A)
 #include "arch/atmega48p.h"
 #include "arch/atmega48p_i2c.h"
 #include "arch/atmega48p_spi.h"

          
M arch/atmega48p.h +7 -0
@@ 28,8 28,15 @@ 
 #define MCU_RAW_FREQ	8000000
 #endif
 
+#if defined(MCU_ATMEGA48A) || defined(MCU_ATMEGA48P)
 #define RAM_START_ADDR	0x100
 #define RAM_END_ADDR	0x2ff
+#elif defined(MCU_ATMEGA88A)
+#define RAM_START_ADDR	0x100
+#define RAM_END_ADDR	0x4ff
+#else
+#error "Unknown MCU"
+#endif
 
 #include "atmega48p_pins.h"
 

          
M mcu.mk +4 -0
@@ 23,6 23,7 @@ 
 # flash output sizes for the various MCUs
 OUTPUT_SIZE_ATMEGA48P=4096
 OUTPUT_SIZE_ATMEGA48A=${OUTPUT_SIZE_ATMEGA48P}
+OUTPUT_SIZE_ATMEGA88A=8192
 OUTPUT_SIZE_ATTINY12=1024
 OUTPUT_SIZE_ATTINY13A=1024
 

          
@@ 32,6 33,7 @@ IVEC_ATMEGA48P=\
 	timer0compb timer0ovf spi_stc usart_rx usart_udre usart_tx adc \
 	ee_ready analog_comp twi spm_ready
 IVEC_ATMEGA48A=${IVEC_ATMEGA48P}
+IVEC_ATMEGA88A=${IVEC_ATMEGA48P}
 IVEC_ATTINY12=\
 	int0 pinchange timer0ovf ee_ready analog_comp
 IVEC_ATTINY13A=\

          
@@ 42,6 44,7 @@ LD_FLAGS_ATMEGA48P=\
 	-mavr4 \
 	-Tdata 0x800100
 LD_FLAGS_ATMEGA48A=${LD_FLAGS_ATMEGA48P}
+LD_FLAGS_ATMEGA88A=${LD_FLAGS_ATMEGA48P}
 LD_FLAGS_ATTINY12=\
 	-mavr1
 LD_FLAGS_ATTINY13A=\

          
@@ 78,6 81,7 @@ PIN_D6_ATMEGA48P = PCINT22 OC0A AIN0
 PIN_D7_ATMEGA48P = PCINT23 AIN1
 
 # ATmega48A uses the same pins header as ATmega48P
+# ATmega88A uses the same pins header as ATmega48P
 
 PORTS_ATTINY12 = B
 PINS_B_ATTINY12 = 0 1 2 3 4 5