diff --git a/Makefile b/Makefile index a62eb0ef..38f18d84 100644 --- a/Makefile +++ b/Makefile @@ -59,7 +59,7 @@ export platform_src_dir=$(platform_parent_dir)/$(platform_subdir) export platform_build_dir=$(build_dir)/platform/$(platform_subdir) export platform_common_src_dir=$(src_dir)/platform/common export include_dir=$(CURDIR)/include -export lib_dir=$(CURDIR)/lib +export libsbi_dir=$(CURDIR)/lib/sbi export firmware_dir=$(CURDIR)/firmware # Find library version @@ -100,7 +100,7 @@ ifdef PLATFORM platform-object-mks=$(shell if [ -d $(platform_src_dir)/ ]; then find $(platform_src_dir) -iname "objects.mk" | sort -r; fi) platform-common-object-mks=$(shell if [ -d $(platform_common_src_dir) ]; then find $(platform_common_src_dir) -iname "objects.mk" | sort -r; fi) endif -lib-object-mks=$(shell if [ -d $(lib_dir) ]; then find $(lib_dir) -iname "objects.mk" | sort -r; fi) +libsbi-object-mks=$(shell if [ -d $(libsbi_dir) ]; then find $(libsbi_dir) -iname "objects.mk" | sort -r; fi) firmware-object-mks=$(shell if [ -d $(firmware_dir) ]; then find $(firmware_dir) -iname "objects.mk" | sort -r; fi) # Include platform specifig config.mk @@ -113,11 +113,11 @@ ifdef PLATFORM include $(platform-object-mks) include $(platform-common-object-mks) endif -include $(lib-object-mks) +include $(libsbi-object-mks) include $(firmware-object-mks) # Setup list of objects -lib-objs-path-y=$(foreach obj,$(lib-objs-y),$(build_dir)/lib/$(obj)) +libsbi-objs-path-y=$(foreach obj,$(libsbi-objs-y),$(build_dir)/lib/sbi/$(obj)) ifdef PLATFORM platform-objs-path-y=$(foreach obj,$(platform-objs-y),$(platform_build_dir)/$(obj)) platform-dtb-path-y=$(foreach obj,$(platform-dtb-y),$(platform_build_dir)/$(obj)) @@ -130,7 +130,7 @@ firmware-objs-path-y=$(firmware-bins-path-y:.bin=.o) # Setup list of deps files for objects deps-y=$(platform-objs-path-y:.o=.dep) deps-y+=$(platform-common-objs-path-y:.o=.dep) -deps-y+=$(lib-objs-path-y:.o=.dep) +deps-y+=$(libsbi-objs-path-y:.o=.dep) deps-y+=$(firmware-objs-path-y:.o=.dep) # Setup platform ABI, ISA and Code Model @@ -276,10 +276,10 @@ $(build_dir)/%.elf: $(build_dir)/%.o $(build_dir)/%.elf.ld $(platform_build_dir) $(platform_build_dir)/%.ld: $(src_dir)/%.ldS $(call compile_cpp,$@,$<) -$(build_dir)/lib/libsbi.a: $(lib-objs-path-y) +$(build_dir)/lib/libsbi.a: $(libsbi-objs-path-y) $(call compile_ar,$@,$^) -$(platform_build_dir)/lib/libplatsbi.a: $(lib-objs-path-y) $(platform-common-objs-path-y) $(platform-objs-path-y) +$(platform_build_dir)/lib/libplatsbi.a: $(libsbi-objs-path-y) $(platform-common-objs-path-y) $(platform-objs-path-y) $(call compile_ar,$@,$^) $(build_dir)/%.dep: $(src_dir)/%.c diff --git a/lib/objects.mk b/lib/objects.mk deleted file mode 100644 index 35a8bacf..00000000 --- a/lib/objects.mk +++ /dev/null @@ -1,32 +0,0 @@ -# -# SPDX-License-Identifier: BSD-2-Clause -# -# Copyright (c) 2019 Western Digital Corporation or its affiliates. -# -# Authors: -# Anup Patel -# - -lib-objs-y += riscv_asm.o -lib-objs-y += riscv_atomic.o -lib-objs-y += riscv_hardfp.o -lib-objs-y += riscv_locks.o -lib-objs-y += riscv_unpriv.o - -lib-objs-y += sbi_console.o -lib-objs-y += sbi_ecall.o -lib-objs-y += sbi_emulate_csr.o -lib-objs-y += sbi_fifo.o -lib-objs-y += sbi_hart.o -lib-objs-y += sbi_illegal_insn.o -lib-objs-y += sbi_init.o -lib-objs-y += sbi_ipi.o -lib-objs-y += sbi_misaligned_ldst.o -lib-objs-y += sbi_scratch.o -lib-objs-y += sbi_system.o -lib-objs-y += sbi_timer.o -lib-objs-y += sbi_tlb.o -lib-objs-y += sbi_trap.o - -# External Libraries to include -PLATFORM_INCLUDE_LIBC=y diff --git a/lib/sbi/objects.mk b/lib/sbi/objects.mk new file mode 100644 index 00000000..817e8059 --- /dev/null +++ b/lib/sbi/objects.mk @@ -0,0 +1,32 @@ +# +# SPDX-License-Identifier: BSD-2-Clause +# +# Copyright (c) 2019 Western Digital Corporation or its affiliates. +# +# Authors: +# Anup Patel +# + +libsbi-objs-y += riscv_asm.o +libsbi-objs-y += riscv_atomic.o +libsbi-objs-y += riscv_hardfp.o +libsbi-objs-y += riscv_locks.o +libsbi-objs-y += riscv_unpriv.o + +libsbi-objs-y += sbi_console.o +libsbi-objs-y += sbi_ecall.o +libsbi-objs-y += sbi_emulate_csr.o +libsbi-objs-y += sbi_fifo.o +libsbi-objs-y += sbi_hart.o +libsbi-objs-y += sbi_illegal_insn.o +libsbi-objs-y += sbi_init.o +libsbi-objs-y += sbi_ipi.o +libsbi-objs-y += sbi_misaligned_ldst.o +libsbi-objs-y += sbi_scratch.o +libsbi-objs-y += sbi_system.o +libsbi-objs-y += sbi_timer.o +libsbi-objs-y += sbi_tlb.o +libsbi-objs-y += sbi_trap.o + +# External Libraries to include +PLATFORM_INCLUDE_LIBC=y diff --git a/lib/riscv_asm.c b/lib/sbi/riscv_asm.c similarity index 100% rename from lib/riscv_asm.c rename to lib/sbi/riscv_asm.c diff --git a/lib/riscv_atomic.c b/lib/sbi/riscv_atomic.c similarity index 100% rename from lib/riscv_atomic.c rename to lib/sbi/riscv_atomic.c diff --git a/lib/riscv_hardfp.S b/lib/sbi/riscv_hardfp.S similarity index 100% rename from lib/riscv_hardfp.S rename to lib/sbi/riscv_hardfp.S diff --git a/lib/riscv_locks.c b/lib/sbi/riscv_locks.c similarity index 100% rename from lib/riscv_locks.c rename to lib/sbi/riscv_locks.c diff --git a/lib/riscv_unpriv.c b/lib/sbi/riscv_unpriv.c similarity index 100% rename from lib/riscv_unpriv.c rename to lib/sbi/riscv_unpriv.c diff --git a/lib/sbi_console.c b/lib/sbi/sbi_console.c similarity index 100% rename from lib/sbi_console.c rename to lib/sbi/sbi_console.c diff --git a/lib/sbi_ecall.c b/lib/sbi/sbi_ecall.c similarity index 100% rename from lib/sbi_ecall.c rename to lib/sbi/sbi_ecall.c diff --git a/lib/sbi_emulate_csr.c b/lib/sbi/sbi_emulate_csr.c similarity index 100% rename from lib/sbi_emulate_csr.c rename to lib/sbi/sbi_emulate_csr.c diff --git a/lib/sbi_fifo.c b/lib/sbi/sbi_fifo.c similarity index 100% rename from lib/sbi_fifo.c rename to lib/sbi/sbi_fifo.c diff --git a/lib/sbi_hart.c b/lib/sbi/sbi_hart.c similarity index 100% rename from lib/sbi_hart.c rename to lib/sbi/sbi_hart.c diff --git a/lib/sbi_illegal_insn.c b/lib/sbi/sbi_illegal_insn.c similarity index 100% rename from lib/sbi_illegal_insn.c rename to lib/sbi/sbi_illegal_insn.c diff --git a/lib/sbi_init.c b/lib/sbi/sbi_init.c similarity index 100% rename from lib/sbi_init.c rename to lib/sbi/sbi_init.c diff --git a/lib/sbi_ipi.c b/lib/sbi/sbi_ipi.c similarity index 100% rename from lib/sbi_ipi.c rename to lib/sbi/sbi_ipi.c diff --git a/lib/sbi_misaligned_ldst.c b/lib/sbi/sbi_misaligned_ldst.c similarity index 100% rename from lib/sbi_misaligned_ldst.c rename to lib/sbi/sbi_misaligned_ldst.c diff --git a/lib/sbi_scratch.c b/lib/sbi/sbi_scratch.c similarity index 100% rename from lib/sbi_scratch.c rename to lib/sbi/sbi_scratch.c diff --git a/lib/sbi_system.c b/lib/sbi/sbi_system.c similarity index 100% rename from lib/sbi_system.c rename to lib/sbi/sbi_system.c diff --git a/lib/sbi_timer.c b/lib/sbi/sbi_timer.c similarity index 100% rename from lib/sbi_timer.c rename to lib/sbi/sbi_timer.c diff --git a/lib/sbi_tlb.c b/lib/sbi/sbi_tlb.c similarity index 100% rename from lib/sbi_tlb.c rename to lib/sbi/sbi_tlb.c diff --git a/lib/sbi_trap.c b/lib/sbi/sbi_trap.c similarity index 100% rename from lib/sbi_trap.c rename to lib/sbi/sbi_trap.c