summaryrefslogtreecommitdiffstats
path: root/bsps/i386/pc386/config/pc386.cfg
diff options
context:
space:
mode:
Diffstat (limited to 'bsps/i386/pc386/config/pc386.cfg')
-rw-r--r--bsps/i386/pc386/config/pc386.cfg58
1 files changed, 58 insertions, 0 deletions
diff --git a/bsps/i386/pc386/config/pc386.cfg b/bsps/i386/pc386/config/pc386.cfg
new file mode 100644
index 0000000000..dd7f554cbc
--- /dev/null
+++ b/bsps/i386/pc386/config/pc386.cfg
@@ -0,0 +1,58 @@
+#
+# Config file for the PC 386 BSP
+#
+
+include $(RTEMS_ROOT)/make/custom/default.cfg
+
+RTEMS_CPU=i386
+
+# This contains the compiler options necessary to select the CPU model
+# and (hopefully) optimize for it.
+#
+# NOTE: CPU_CFLAGS is set by pc386 variants.
+ifeq ($(CPU_CFLAGS),)
+ CPU_CFLAGS = -mtune=i386
+endif
+
+# optimize flag: typically -O2
+CFLAGS_OPTIMIZE_V = -O2 -g
+# Per function sections disabled per https://devel.rtems.org/ticket/2638
+CFLAGS_OPTIMIZE_V += -ffunction-sections -fdata-sections
+
+LDFLAGS = -Wl,--gc-sections
+
+# Here is the rule to actually build a $(ARCH)/foo$(EXEEXT)
+# It also builds $(ARCH)/foo.sr and $(ARCH)/foo.nm
+# Usage ref: src/tests/sptest/sp1/Makefile
+
+#+--------------------------------------------------------------------------+
+#| Set the value of RELOCADDR to the address where you want your image to
+#| load. If you'll be using GRUB to load the images it will have to be >=
+#| 0x100000 (1024K). If you are using NetBoot to load the images it can be
+#| >= 0x10000 (64K) AND <= 0x97C00 (607K) OR >= 0x100000 (1024K). The memory
+#| top is of course another limit. Make sure there is enough space before the
+#| upper memory limits for the image and the memory allocated by it to fit.
+#| Make sure the value you choose is aligned to 4 bytes.
+#+--------------------------------------------------------------------------+
+ RELOCADDR=0x00100000
+
+START16FILE=$(PROJECT_RELEASE)/lib/start16$(LIB_VARIANT).bin
+START16ADDR=0x00097C00
+HEADERADDR=0x00097E00
+
+LDFLAGS += -Wl,-Ttext,$(RELOCADDR)
+
+define bsp-post-link
+ $(default-bsp-post-link)
+ $(OBJCOPY) -O elf32-i386 \
+ --remove-section=.comment \
+ --remove-section=.note \
+ --strip-unneeded $(basename $@)$(EXEEXT) $(basename $@).nxe
+ $(OBJCOPY) -O binary $(basename $@).nxe $(basename $@).bin
+ $(PROJECT_TOOLS)/bin2boot -v $(basename $@)$(DOWNEXT) $(HEADERADDR)\
+ $(START16FILE) $(START16ADDR) 0 $(basename $@).bin $(RELOCADDR) 0
+ rm -f $(basename $@).nxe
+endef
+
+# BSP-specific tools
+BIN2BOOT=$(PROJECT_TOOLS)/bin2boot