1# Makefile.riscv -- with config changes. 2# Copyright 1990 W. Jolitz 3# from: @(#)Makefile.i386 7.1 5/10/91 4# from FreeBSD: src/sys/conf/Makefile.i386,v 1.255 2002/02/20 23:35:49 5# $FreeBSD$ 6# 7# Makefile for FreeBSD 8# 9# RISCVTODO: copy pasted from aarch64, needs to be 10# constructed from a machine description: 11# config machineid 12# Most changes should be made in the machine description 13# /sys/riscv/conf/``machineid'' 14# after which you should do 15# config machineid 16# Generic makefile changes should be made in 17# /sys/conf/Makefile.riscv 18# after which config should be rerun for all machines. 19# 20 21# Which version of config(8) is required. 22%VERSREQ= 600017 23 24.if !defined(S) 25S= ../../.. 26.endif 27.include "$S/conf/kern.pre.mk" 28 29INCLUDES+= -I$S/contrib/libfdt 30 31# Set the ELF LMA to the address that OpenSBI's fw_jump jumps to. This allows 32# us to load the kernel with the -kernel flag in QEMU without having to embed 33# it inside BBL or OpenSBI's fw_payload first. 34# Note: For rv32 the start address is different (0x80400000). 35# We set this value using --defsym rather than hardcoding it in ldscript.riscv 36# so that different kernel configs can override the load address. 37KERNEL_LMA?= 0x80200000 38 39SYSTEM_LD= @${LD} -N -m ${LD_EMULATION} -Bdynamic -T ${LDSCRIPT} ${_LDFLAGS} \ 40 --no-warn-mismatch --warn-common --export-dynamic \ 41 --defsym='kernel_lma=${KERNEL_LMA}' \ 42 --dynamic-linker /red/herring \ 43 -o ${.TARGET} -X ${SYSTEM_OBJS} vers.o 44 45.if !empty(DDB_ENABLED) 46CFLAGS += -fno-omit-frame-pointer -fno-optimize-sibling-calls 47.endif 48 49# hack because genassym.c includes sys/bus.h which includes these. 50genassym.o: bus_if.h device_if.h 51 52%BEFORE_DEPEND 53 54%OBJS 55 56%FILES.c 57 58%FILES.s 59 60%FILES.m 61 62%CLEAN 63 64%RULES 65 66.include "$S/conf/kern.post.mk" 67