6060# defaults
6161# Set this explicitly in your make rules!
6262# MCU_TARGET = atmega168
63- LDSECTIONS = -Wl,--section-start=.text=0x3e00 -Wl,--section-start=.version=0x3ffe
63+ LDSECTIONS = -Wl,--section-start=.text=0x3e00 -Wl,--section-start=.osccal=0x3ffd -Wl,--section-start=. version=0x3ffe
6464
6565# Build environments
6666# Start of some ugly makefile-isms to allow optiboot to be built
@@ -198,8 +198,19 @@ ifdef SINGLESPEED
198198SS_CMD = -DSINGLESPEED=1
199199endif
200200
201+ ifdef OSCCAL_EEPROM_ADDR
202+ OSCCAL_CMD = -DOSCCAL_EEPROM_ADDR=$(OSCCAL_EEPROM_ADDR )
203+ dummy = FORCE
204+ endif
205+
206+ ifdef OSCCAL_PROGMEM
207+ OSCCAL_CMD = -DOSCCAL_PROGMEM
208+ dummy = FORCE
209+ endif
210+
201211COMMON_OPTIONS = $(BAUD_RATE_CMD ) $(LED_START_FLASHES_CMD ) $(BIGBOOT_CMD )
202212COMMON_OPTIONS += $(SOFT_UART_CMD ) $(LED_DATA_FLASH_CMD ) $(LED_CMD ) $(SS_CMD )
213+ COMMON_OPTIONS += $(OSCCAL_CMD )
203214
204215# UART is handled separately and only passed for devices with more than one.
205216ifdef UART
@@ -248,7 +259,7 @@ virboot8: TARGET = atmega8
248259virboot8 : MCU_TARGET = atmega8
249260virboot8 : CFLAGS += $(COMMON_OPTIONS ) '-DVIRTUAL_BOOT_PARTITION' '-Dsave_vect_num=EE_RDY_vect_num'
250261virboot8 : AVR_FREQ ?= 16000000L
251- virboot8 : LDSECTIONS = -Wl,--section-start=.text=0x1c00 -Wl,--section-start=.version=0x1ffe
262+ virboot8 : LDSECTIONS = -Wl,--section-start=.text=0x1c00 -Wl,--section-start=.osccal=0x1ffd -Wl,--section-start=. version=0x1ffe
252263virboot8 : $(PROGRAM ) _virboot8.hex
253264virboot8 : $(PROGRAM ) _virboot8.lst
254265
@@ -257,7 +268,7 @@ virboot328: TARGET = atmega328
257268virboot328 : MCU_TARGET = atmega328p
258269virboot328 : CFLAGS += $(COMMON_OPTIONS ) '-DVIRTUAL_BOOT_PARTITION'
259270virboot328 : AVR_FREQ ?= 16000000L
260- virboot328 : LDSECTIONS = -Wl,--section-start=.text=0x7d80 -Wl,--section-start=.version=0x7ffe
271+ virboot328 : LDSECTIONS = -Wl,--section-start=.text=0x7d80 -Wl,--section-start=.osccal=0x7ffd -Wl,--section-start=. version=0x7ffe
261272virboot328 : $(PROGRAM ) _virboot328.hex
262273virboot328 : $(PROGRAM ) _virboot328.lst
263274
@@ -272,7 +283,6 @@ virboot328_isp: LFUSE ?= FF
272283virboot328_isp : EFUSE ?= 05
273284virboot328_isp : isp
274285
275-
276286# ---------------------------------------------------------------------------
277287# "Board-level Platform" targets.
278288# A "Board-level Platform" implies a manufactured platform with a particular
@@ -474,10 +484,10 @@ clean:
474484 $(OBJDUMP ) -h -S $< > $@
475485
476486% .hex : % .elf
477- $(OBJCOPY ) -j .text -j .data -j .version -- set-section-flags .version=alloc,load -O ihex $< $@
487+ $(OBJCOPY ) -j .text -j .data -j .version -j .osccal -- set-section-flags .version=alloc,load --set-section-flags .osccal =alloc,load -O ihex $< $@
478488
479489% .srec : % .elf
480- $(OBJCOPY ) -j .text -j .data -j .version --set-section-flags .version=alloc,load -O srec $< $@
490+ $(OBJCOPY ) -j .text -j .data -j .version -j .osccal -set-section-flags .version=alloc,load --set-section-flags .osccal =alloc,load -O srec $< $@
481491
482492% .bin : % .elf
483- $(OBJCOPY ) -j .text -j .data -j .version -- set-section-flags .version=alloc,load -O binary $< $@
493+ $(OBJCOPY ) -j .text -j .data -j .version -j .osccal -- set-section-flags .version=alloc,load --set-section-flags .osccal =alloc,load -O binary $< $@
0 commit comments