export ROMABLE = 1

include $(RIOTCPU)/mips_pic32_common/Makefile.include
include $(RIOTMAKE)/arch/mips.inc.mk

# define build specific options
CFLAGS += -march=m5101 -mmicromips -DSKIP_COPY_TO_RAM
CFLAGS += -DMIPS_MICROMIPS

LINKFLAGS += -Wl,--defsym,__use_excpt_boot=0 $(CFLAGS)
LINKFLAGS += -Tpic32mz2048_uhi.ld

# the pickit programmer (MPLAB-IPE) wants physical addresses in the hex file!!
OBJCOPY = objcopy #use system objcopy as toolchain one is broken.
OFLAGS += \
    --change-section-lma .lowerbootflashalias-0xA0000000 \
    --change-section-lma .bootflash1-0xA0000000 \
    --change-section-lma .bootflash2-0xA0000000 \
    --change-section-lma .exception_vector-0x80000000 \
    --change-section-lma .text-0x80000000 \
    --change-section-lma .init-0x80000000 \
    --change-section-lma .fini-0x80000000 \
    --change-section-lma .eh_frame-0x80000000 \
    --change-section-lma .ctors-0x80000000 \
    --change-section-lma .dtors-0x80000000 \
    --change-section-lma .rodata-0x80000000 \
    --change-section-lma .data-0x80000000 \
    --change-section-lma .bss-0x80000000 \
    --change-section-lma .startdata-0x80000000

ifneq (,$(filter cpp,$(FEATURES_USED)))
OFLAGS += --change-section-lma .gcc_except_table-0x80000000
endif

# system objcopy is not able to generate a binfile for MIPS
BINFILE =