xref: /rk3399_rockchip-uboot/arch/mips/config.mk (revision 07f5b966aa2a4fe3a9bed8e90103cb0fe83c8748)
1ea0364f1SPeter Tyser#
2ea0364f1SPeter Tyser# (C) Copyright 2003
3ea0364f1SPeter Tyser# Wolfgang Denk, DENX Software Engineering, wd@denx.de.
4ea0364f1SPeter Tyser#
51a459660SWolfgang Denk# SPDX-License-Identifier:	GPL-2.0+
6ea0364f1SPeter Tyser#
7ea0364f1SPeter Tyser
8837cad1eSDaniel Schwierzeckifdef CONFIG_SYS_BIG_ENDIAN
9837cad1eSDaniel Schwierzeck32bit-emul		:= elf32btsmip
10837cad1eSDaniel Schwierzeck64bit-emul		:= elf64btsmip
11837cad1eSDaniel Schwierzeck32bit-bfd		:= elf32-tradbigmips
12837cad1eSDaniel Schwierzeck64bit-bfd		:= elf64-tradbigmips
13837cad1eSDaniel SchwierzeckPLATFORM_CPPFLAGS	+= -EB
14837cad1eSDaniel SchwierzeckPLATFORM_LDFLAGS	+= -EB
152c0e3de3SDaniel Schwierzeckendif
162c0e3de3SDaniel Schwierzeck
172c0e3de3SDaniel Schwierzeckifdef CONFIG_SYS_LITTLE_ENDIAN
18837cad1eSDaniel Schwierzeck32bit-emul		:= elf32ltsmip
19837cad1eSDaniel Schwierzeck64bit-emul		:= elf64ltsmip
20837cad1eSDaniel Schwierzeck32bit-bfd		:= elf32-tradlittlemips
21837cad1eSDaniel Schwierzeck64bit-bfd		:= elf64-tradlittlemips
22837cad1eSDaniel SchwierzeckPLATFORM_CPPFLAGS	+= -EL
23837cad1eSDaniel SchwierzeckPLATFORM_LDFLAGS	+= -EL
242c0e3de3SDaniel Schwierzeckendif
252c0e3de3SDaniel Schwierzeck
26837cad1eSDaniel Schwierzeckifdef CONFIG_32BIT
27837cad1eSDaniel SchwierzeckPLATFORM_CPPFLAGS	+= -mabi=32
28837cad1eSDaniel SchwierzeckPLATFORM_LDFLAGS	+= -m $(32bit-emul)
29837cad1eSDaniel SchwierzeckOBJCOPYFLAGS		+= -O $(32bit-bfd)
302c0e3de3SDaniel Schwierzeckendif
312c0e3de3SDaniel Schwierzeck
32837cad1eSDaniel Schwierzeckifdef CONFIG_64BIT
33837cad1eSDaniel SchwierzeckPLATFORM_CPPFLAGS	+= -mabi=64
34837cad1eSDaniel SchwierzeckPLATFORM_LDFLAGS	+= -m$(64bit-emul)
35837cad1eSDaniel SchwierzeckOBJCOPYFLAGS		+= -O $(64bit-bfd)
36837cad1eSDaniel Schwierzeckendif
37837cad1eSDaniel Schwierzeck
3890f984e3SMasahiro YamadaPLATFORM_CPPFLAGS += -D__MIPS__
39ea0364f1SPeter Tyser
40ea0364f1SPeter Tyser#
41ea0364f1SPeter Tyser# From Linux arch/mips/Makefile
42ea0364f1SPeter Tyser#
43ea0364f1SPeter Tyser# GCC uses -G 0 -mabicalls -fpic as default.  We don't want PIC in the kernel
44ea0364f1SPeter Tyser# code since it only slows down the whole thing.  At some point we might make
45ea0364f1SPeter Tyser# use of global pointer optimizations but their use of $28 conflicts with
46ea0364f1SPeter Tyser# the current pointer optimization.
47ea0364f1SPeter Tyser#
48ea0364f1SPeter Tyser# The DECStation requires an ECOFF kernel for remote booting, other MIPS
49ea0364f1SPeter Tyser# machines may also.  Since BFD is incredibly buggy with respect to
50ea0364f1SPeter Tyser# crossformat linking we rely on the elf2ecoff tool for format conversion.
51ea0364f1SPeter Tyser#
52ea0364f1SPeter Tyser# cflags-y			+= -G 0 -mno-abicalls -fno-pic -pipe
53ea0364f1SPeter Tyser# cflags-y			+= -msoft-float
54ea0364f1SPeter Tyser# LDFLAGS_vmlinux		+= -G 0 -static -n -nostdlib
55ea0364f1SPeter Tyser# MODFLAGS			+= -mlong-calls
56ea0364f1SPeter Tyser#
57ea0364f1SPeter Tyser# On the other hand, we want PIC in the U-Boot code to relocate it from ROM
58ea0364f1SPeter Tyser# to RAM. $28 is always used as gp.
59ea0364f1SPeter Tyser#
60e92d9124SDaniel Schwierzeckifdef CONFIG_SPL_BUILD
61e92d9124SDaniel SchwierzeckPF_ABICALLS			:= -mno-abicalls
62e92d9124SDaniel SchwierzeckPF_PIC				:= -fno-pic
63e92d9124SDaniel SchwierzeckPF_PIE				:=
64e92d9124SDaniel Schwierzeckelse
65e92d9124SDaniel SchwierzeckPF_ABICALLS			:= -mabicalls
66e92d9124SDaniel SchwierzeckPF_PIC				:= -fpic
67e92d9124SDaniel SchwierzeckPF_PIE				:= -pie
68*07f5b966SDaniel SchwierzeckPF_OBJCOPY			:= -j .got -j .rel.dyn -j .padding
690fc13a90SDaniel SchwierzeckPF_OBJCOPY			+= -j .dtb.init.rodata
70e92d9124SDaniel Schwierzeckendif
71e92d9124SDaniel Schwierzeck
72e92d9124SDaniel SchwierzeckPLATFORM_CPPFLAGS		+= -G 0 $(PF_ABICALLS) $(PF_PIC)
73ea0364f1SPeter TyserPLATFORM_CPPFLAGS		+= -msoft-float
74837cad1eSDaniel SchwierzeckPLATFORM_LDFLAGS		+= -G 0 -static -n -nostdlib
75660da094SDaniel SchwierzeckPLATFORM_RELFLAGS		+= -ffunction-sections -fdata-sections
76e92d9124SDaniel SchwierzeckLDFLAGS_FINAL			+= --gc-sections $(PF_PIE)
77*07f5b966SDaniel SchwierzeckOBJCOPYFLAGS			+= -j .text -j .rodata -j .data -j .u_boot_list
78*07f5b966SDaniel SchwierzeckOBJCOPYFLAGS			+= $(PF_OBJCOPY)
79