summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDanny Holman <dholman@gymli.org>2025-10-15 19:53:50 -0500
committerDanny Holman <dholman@gymli.org>2025-10-15 19:53:50 -0500
commit5057c439be750f778400953bbd864849521b9fc8 (patch)
treeffea2f6a85af8d62025562c632e389fc3d101e2c
parentbootstrap: stage1: create a baseline environment (diff)
downloadbox-5057c439be750f778400953bbd864849521b9fc8.tar.gz
box-5057c439be750f778400953bbd864849521b9fc8.tar.zst
box-5057c439be750f778400953bbd864849521b9fc8.zip
bootstrap: stage2: create build filesHEADmaster
Create the baseline build files from templates in the project root. Since the second stage is *mostly* standardized, overrides should be kept to a minimum unless a specific architecture/platform requires it. Signed-off-by: Danny Holman <dholman@gymli.org>
-rw-r--r--bootstrap/stage2/Makefile7
-rw-r--r--bootstrap/stage2/arch/x86_64/linker.ld2
-rw-r--r--bootstrap/stage2/arch/x86_64/make.conf17
3 files changed, 24 insertions, 2 deletions
diff --git a/bootstrap/stage2/Makefile b/bootstrap/stage2/Makefile
index 2b3951d..1799157 100644
--- a/bootstrap/stage2/Makefile
+++ b/bootstrap/stage2/Makefile
@@ -17,7 +17,7 @@
include $(ROOTDIR)/common.mk
-ifeq (BS_DEBUG,YES)
+ifeq ($(BS_DEBUG),YES)
AFLAGS+=-g
CFLAGS+=-g
endif
@@ -28,7 +28,12 @@ CFLAGS+=-ffreestanding -fno-stack-protector $(BS_OPLVL)
BINARY=bootstrap-stage2
include $(ARCHDIR)/make.conf
+FIRMWARE_DIR=firmware/$(FIRMWARE)
+include $(FIRMWARE_DIR)/make.conf
+COMMON_DIR=firmware/common
OBJS=$(ARCH_OBJS) \
+ $(COMMON_OBJS) \
+ $(FIRMWARE_OBJS) \
include $(ROOTDIR)/patterns.mk
diff --git a/bootstrap/stage2/arch/x86_64/linker.ld b/bootstrap/stage2/arch/x86_64/linker.ld
index 7bd0460..f5489e5 100644
--- a/bootstrap/stage2/arch/x86_64/linker.ld
+++ b/bootstrap/stage2/arch/x86_64/linker.ld
@@ -1,7 +1,7 @@
ENTRY(_start)
SECTIONS {
- . = 0x2000;
+ . = 0x100000;
__bstart = .;
.text : {
diff --git a/bootstrap/stage2/arch/x86_64/make.conf b/bootstrap/stage2/arch/x86_64/make.conf
index 930b95e..4e4ab6f 100644
--- a/bootstrap/stage2/arch/x86_64/make.conf
+++ b/bootstrap/stage2/arch/x86_64/make.conf
@@ -1,3 +1,20 @@
+# Copyright (C) 2025 Danny Holman <dholman@gymli.org>
+#
+# This file is part of BoxOS, a free and open-source Unix-like operating
+# system.
+#
+# BoxOS is free software; you can redistribute it and/or modify under the
+# terms of the GNU General Public License as published by the Free Software
+# Foundation; either version 2 of the License, or (at your option) any later
+# version.
+#
+# BoxOS is distributed in the hope it will be useful, but WITHOUT ANY WARRANTY;
+# without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE. See the GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# BoxOS; if not, see <https://www.gnu.org/licenses/>.
+
AFLAGS+=-target $(ARCH)-none-elf
CFLAGS+=-target $(ARCH)-none-elf -mno-red-zone -mno-mmx -mno-sse -mno-sse2
LDFLAGS+=--script=$(ARCHDIR)/linker.ld