diff --git a/repos/base-hw/lib/mk/spec/arm_v7/bootstrap-hw-imx53_qsb.inc b/repos/base-hw/lib/mk/spec/arm_v7/bootstrap-hw-imx53_qsb.inc index aa986ca441..ceffe7f593 100644 --- a/repos/base-hw/lib/mk/spec/arm_v7/bootstrap-hw-imx53_qsb.inc +++ b/repos/base-hw/lib/mk/spec/arm_v7/bootstrap-hw-imx53_qsb.inc @@ -1,11 +1,7 @@ REP_INC_DIR += src/bootstrap/board/imx53_qsb -SRC_S += bootstrap/spec/arm/crt0.s - SRC_CC += bootstrap/spec/arm/cortex_a8_mmu.cc SRC_CC += bootstrap/spec/arm/cpu.cc SRC_CC += bootstrap/spec/arm/imx_tzic.cc -SRC_CC += bootstrap/spec/arm/arm_v7_cpu.cc -SRC_CC += hw/spec/32bit/memory_map.cc -include $(call select_from_repositories,lib/mk/bootstrap-hw.inc) +include $(call select_from_repositories,lib/mk/spec/arm_v7/bootstrap-hw.inc) diff --git a/repos/base-hw/lib/mk/spec/arm_v7/bootstrap-hw-imx6q_sabrelite.mk b/repos/base-hw/lib/mk/spec/arm_v7/bootstrap-hw-imx6q_sabrelite.mk index d1e16e1c87..8a99962a81 100644 --- a/repos/base-hw/lib/mk/spec/arm_v7/bootstrap-hw-imx6q_sabrelite.mk +++ b/repos/base-hw/lib/mk/spec/arm_v7/bootstrap-hw-imx6q_sabrelite.mk @@ -1,12 +1,8 @@ REP_INC_DIR += src/bootstrap/board/imx6q_sabrelite -SRC_S += bootstrap/spec/arm/crt0.s - SRC_CC += bootstrap/spec/arm/cpu.cc SRC_CC += bootstrap/spec/arm/cortex_a9_mmu.cc SRC_CC += bootstrap/spec/arm/gicv2.cc SRC_CC += bootstrap/spec/arm/imx6_platform.cc -SRC_CC += bootstrap/spec/arm/arm_v7_cpu.cc -SRC_CC += hw/spec/32bit/memory_map.cc -include $(call select_from_repositories,lib/mk/bootstrap-hw.inc) +include $(call select_from_repositories,lib/mk/spec/arm_v7/bootstrap-hw.inc) diff --git a/repos/base-hw/lib/mk/spec/arm_v7/bootstrap-hw-imx7d_sabre.mk b/repos/base-hw/lib/mk/spec/arm_v7/bootstrap-hw-imx7d_sabre.mk index 6d0686bfe1..0fac879149 100644 --- a/repos/base-hw/lib/mk/spec/arm_v7/bootstrap-hw-imx7d_sabre.mk +++ b/repos/base-hw/lib/mk/spec/arm_v7/bootstrap-hw-imx7d_sabre.mk @@ -3,14 +3,11 @@ REP_INC_DIR += src/bootstrap/board/imx7d_sabre SRC_CC += bootstrap/spec/arm/cortex_a15_cpu.cc SRC_CC += bootstrap/spec/arm/gicv2.cc SRC_CC += bootstrap/board/imx7d_sabre/platform.cc -SRC_CC += bootstrap/spec/arm/arm_v7_cpu.cc -SRC_CC += hw/spec/32bit/memory_map.cc -SRC_S += bootstrap/spec/arm/crt0.s + +include $(call select_from_repositories,lib/mk/spec/arm_v7/bootstrap-hw.inc) # # we need more specific compiler hints for some 'special' assembly code # override -march=armv7-a because it conflicts with -mcpu=cortex-a7 # -CC_MARCH = -mcpu=cortex-a7 -mfpu=vfpv3 -mfloat-abi=softfp - -include $(call select_from_repositories,lib/mk/bootstrap-hw.inc) +CC_MARCH = -mcpu=cortex-a7+nofp -mfpu=vfpv3 diff --git a/repos/base-hw/lib/mk/spec/arm_v7/bootstrap-hw-nit6_solox.mk b/repos/base-hw/lib/mk/spec/arm_v7/bootstrap-hw-nit6_solox.mk index e89221e775..9d66cb6293 100644 --- a/repos/base-hw/lib/mk/spec/arm_v7/bootstrap-hw-nit6_solox.mk +++ b/repos/base-hw/lib/mk/spec/arm_v7/bootstrap-hw-nit6_solox.mk @@ -1,12 +1,8 @@ REP_INC_DIR += src/bootstrap/board/nit6_solox -SRC_S += bootstrap/spec/arm/crt0.s - SRC_CC += bootstrap/spec/arm/cpu.cc SRC_CC += bootstrap/spec/arm/cortex_a9_mmu.cc SRC_CC += bootstrap/spec/arm/gicv2.cc SRC_CC += bootstrap/spec/arm/imx6_platform.cc -SRC_CC += bootstrap/spec/arm/arm_v7_cpu.cc -SRC_CC += hw/spec/32bit/memory_map.cc -include $(call select_from_repositories,lib/mk/bootstrap-hw.inc) +include $(call select_from_repositories,lib/mk/spec/arm_v7/bootstrap-hw.inc) diff --git a/repos/base-hw/lib/mk/spec/arm_v7/bootstrap-hw-pbxa9.mk b/repos/base-hw/lib/mk/spec/arm_v7/bootstrap-hw-pbxa9.mk index 81228ab8c2..bbb67f8b95 100644 --- a/repos/base-hw/lib/mk/spec/arm_v7/bootstrap-hw-pbxa9.mk +++ b/repos/base-hw/lib/mk/spec/arm_v7/bootstrap-hw-pbxa9.mk @@ -1,12 +1,8 @@ REP_INC_DIR += src/bootstrap/board/pbxa9 -SRC_S += bootstrap/spec/arm/crt0.s - SRC_CC += bootstrap/spec/arm/cpu.cc SRC_CC += bootstrap/spec/arm/cortex_a9_mmu.cc SRC_CC += bootstrap/spec/arm/gicv2.cc SRC_CC += bootstrap/board/pbxa9/platform.cc -SRC_CC += bootstrap/spec/arm/arm_v7_cpu.cc -SRC_CC += hw/spec/32bit/memory_map.cc -include $(call select_from_repositories,lib/mk/bootstrap-hw.inc) +include $(call select_from_repositories,lib/mk/spec/arm_v7/bootstrap-hw.inc) diff --git a/repos/base-hw/lib/mk/spec/arm_v7/bootstrap-hw-usb_armory.mk b/repos/base-hw/lib/mk/spec/arm_v7/bootstrap-hw-usb_armory.mk index 7912174d65..4fec6b733e 100644 --- a/repos/base-hw/lib/mk/spec/arm_v7/bootstrap-hw-usb_armory.mk +++ b/repos/base-hw/lib/mk/spec/arm_v7/bootstrap-hw-usb_armory.mk @@ -1,12 +1,8 @@ REP_INC_DIR += src/bootstrap/board/usb_armory -SRC_S += bootstrap/spec/arm/crt0.s - SRC_CC += bootstrap/board/usb_armory/platform.cc SRC_CC += bootstrap/spec/arm/cortex_a8_mmu.cc SRC_CC += bootstrap/spec/arm/cpu.cc SRC_CC += bootstrap/spec/arm/imx_tzic.cc -SRC_CC += bootstrap/spec/arm/arm_v7_cpu.cc -SRC_CC += hw/spec/32bit/memory_map.cc -include $(call select_from_repositories,lib/mk/bootstrap-hw.inc) +include $(call select_from_repositories,lib/mk/spec/arm_v7/bootstrap-hw.inc) diff --git a/repos/base-hw/lib/mk/spec/arm_v7/bootstrap-hw-virt_qemu_arm_v7a.mk b/repos/base-hw/lib/mk/spec/arm_v7/bootstrap-hw-virt_qemu_arm_v7a.mk index 7cb4f677ef..dc7b49c260 100644 --- a/repos/base-hw/lib/mk/spec/arm_v7/bootstrap-hw-virt_qemu_arm_v7a.mk +++ b/repos/base-hw/lib/mk/spec/arm_v7/bootstrap-hw-virt_qemu_arm_v7a.mk @@ -1,12 +1,9 @@ REP_INC_DIR += src/bootstrap/board/virt_qemu_arm_v7a SRC_CC += bootstrap/board/virt_qemu_arm_v7a/platform.cc -SRC_CC += bootstrap/spec/arm/arm_v7_cpu.cc SRC_CC += bootstrap/spec/arm/cortex_a15_cpu.cc SRC_CC += bootstrap/spec/arm/gicv2.cc -SRC_CC += hw/spec/32bit/memory_map.cc -SRC_S += bootstrap/spec/arm/crt0.s -CC_MARCH = -march=armv7ve -mtune=cortex-a15 -mfpu=vfpv3 -mfloat-abi=softfp +include $(call select_from_repositories,lib/mk/spec/arm_v7/bootstrap-hw.inc) -include $(call select_from_repositories,lib/mk/bootstrap-hw.inc) +CC_MARCH = -march=armv7ve+nofp -mtune=cortex-a15 -mfpu=vfpv3 diff --git a/repos/base-hw/lib/mk/spec/arm_v7/bootstrap-hw-wand_quad.mk b/repos/base-hw/lib/mk/spec/arm_v7/bootstrap-hw-wand_quad.mk index c39493e5f9..bf23fd3e53 100644 --- a/repos/base-hw/lib/mk/spec/arm_v7/bootstrap-hw-wand_quad.mk +++ b/repos/base-hw/lib/mk/spec/arm_v7/bootstrap-hw-wand_quad.mk @@ -1,12 +1,8 @@ REP_INC_DIR += src/bootstrap/board/wand_quad -SRC_S += bootstrap/spec/arm/crt0.s - SRC_CC += bootstrap/spec/arm/cpu.cc SRC_CC += bootstrap/spec/arm/cortex_a9_mmu.cc SRC_CC += bootstrap/spec/arm/gicv2.cc SRC_CC += bootstrap/spec/arm/imx6_platform.cc -SRC_CC += bootstrap/spec/arm/arm_v7_cpu.cc -SRC_CC += hw/spec/32bit/memory_map.cc -include $(call select_from_repositories,lib/mk/bootstrap-hw.inc) +include $(call select_from_repositories,lib/mk/spec/arm_v7/bootstrap-hw.inc) diff --git a/repos/base-hw/lib/mk/spec/arm_v7/bootstrap-hw.inc b/repos/base-hw/lib/mk/spec/arm_v7/bootstrap-hw.inc new file mode 100644 index 0000000000..c8281a63d7 --- /dev/null +++ b/repos/base-hw/lib/mk/spec/arm_v7/bootstrap-hw.inc @@ -0,0 +1,11 @@ +SRC_CC += bootstrap/spec/arm/arm_v7_cpu.cc +SRC_CC += hw/spec/32bit/memory_map.cc +SRC_S += bootstrap/spec/arm/crt0.s + +# +# Disable FPU instructions generated by GCC until MMU is enabled +# and alignment restrictions are relaxed +# +CC_MARCH = -march=armv7-a+nofp -mfpu=vfpv3 + +include $(call select_from_repositories,lib/mk/bootstrap-hw.inc) diff --git a/repos/base-hw/lib/mk/spec/arm_v8/bootstrap-hw-virt_qemu_arm_v8a.mk b/repos/base-hw/lib/mk/spec/arm_v8/bootstrap-hw-virt_qemu_arm_v8a.mk index e9c640237c..b78795913d 100644 --- a/repos/base-hw/lib/mk/spec/arm_v8/bootstrap-hw-virt_qemu_arm_v8a.mk +++ b/repos/base-hw/lib/mk/spec/arm_v8/bootstrap-hw-virt_qemu_arm_v8a.mk @@ -3,10 +3,5 @@ REP_INC_DIR += src/bootstrap/board/virt_qemu_arm_v8a SRC_CC += bootstrap/spec/arm/gicv3.cc SRC_CC += bootstrap/spec/arm_64/cortex_a53_mmu.cc SRC_CC += bootstrap/board/virt_qemu_arm_v8a/platform.cc -SRC_CC += lib/base/arm_64/kernel/interface.cc -SRC_CC += spec/64bit/memory_map.cc -SRC_S += bootstrap/spec/arm_64/crt0.s -vpath spec/64bit/memory_map.cc $(call select_from_repositories,src/lib/hw) - -include $(call select_from_repositories,lib/mk/bootstrap-hw.inc) +include $(call select_from_repositories,lib/mk/spec/arm_v8/bootstrap-hw.inc) diff --git a/repos/base-hw/lib/mk/spec/arm_v8/bootstrap-hw.inc b/repos/base-hw/lib/mk/spec/arm_v8/bootstrap-hw.inc new file mode 100644 index 0000000000..acb96c2669 --- /dev/null +++ b/repos/base-hw/lib/mk/spec/arm_v8/bootstrap-hw.inc @@ -0,0 +1,9 @@ +CC_MARCH = -march=armv8-a -mstrict-align + +SRC_CC += lib/base/arm_64/kernel/interface.cc +SRC_CC += spec/64bit/memory_map.cc +SRC_S += bootstrap/spec/arm_64/crt0.s + +vpath spec/64bit/memory_map.cc $(call select_from_repositories,src/lib/hw) + +include $(call select_from_repositories,lib/mk/bootstrap-hw.inc)