xref: /rk3399_rockchip-uboot/arch/mips/config.mk (revision e92d9124f8c398405af51aa0bb0277e2dfc68b3d)
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
38837cad1eSDaniel Schwierzeckcpuflags-$(CONFIG_CPU_MIPS32_R1) += -march=mips32 -Wa,-mips32
39837cad1eSDaniel Schwierzeckcpuflags-$(CONFIG_CPU_MIPS32_R2) += -march=mips32r2 -Wa,-mips32r2
40837cad1eSDaniel Schwierzeckcpuflags-$(CONFIG_CPU_MIPS64_R1) += -march=mips64 -Wa,-mips64
41837cad1eSDaniel Schwierzeckcpuflags-$(CONFIG_CPU_MIPS64_R2) += -march=mips64r2 -Wa,-mips64r2
42837cad1eSDaniel SchwierzeckPLATFORM_CPPFLAGS += $(cpuflags-y)
432c0e3de3SDaniel Schwierzeck
4490f984e3SMasahiro YamadaPLATFORM_CPPFLAGS += -D__MIPS__
45ea0364f1SPeter Tyser
46ea0364f1SPeter Tyser#
47ea0364f1SPeter Tyser# From Linux arch/mips/Makefile
48ea0364f1SPeter Tyser#
49ea0364f1SPeter Tyser# GCC uses -G 0 -mabicalls -fpic as default.  We don't want PIC in the kernel
50ea0364f1SPeter Tyser# code since it only slows down the whole thing.  At some point we might make
51ea0364f1SPeter Tyser# use of global pointer optimizations but their use of $28 conflicts with
52ea0364f1SPeter Tyser# the current pointer optimization.
53ea0364f1SPeter Tyser#
54ea0364f1SPeter Tyser# The DECStation requires an ECOFF kernel for remote booting, other MIPS
55ea0364f1SPeter Tyser# machines may also.  Since BFD is incredibly buggy with respect to
56ea0364f1SPeter Tyser# crossformat linking we rely on the elf2ecoff tool for format conversion.
57ea0364f1SPeter Tyser#
58ea0364f1SPeter Tyser# cflags-y			+= -G 0 -mno-abicalls -fno-pic -pipe
59ea0364f1SPeter Tyser# cflags-y			+= -msoft-float
60ea0364f1SPeter Tyser# LDFLAGS_vmlinux		+= -G 0 -static -n -nostdlib
61ea0364f1SPeter Tyser# MODFLAGS			+= -mlong-calls
62ea0364f1SPeter Tyser#
63ea0364f1SPeter Tyser# On the other hand, we want PIC in the U-Boot code to relocate it from ROM
64ea0364f1SPeter Tyser# to RAM. $28 is always used as gp.
65ea0364f1SPeter Tyser#
66*e92d9124SDaniel Schwierzeckifdef CONFIG_SPL_BUILD
67*e92d9124SDaniel SchwierzeckPF_ABICALLS			:= -mno-abicalls
68*e92d9124SDaniel SchwierzeckPF_PIC				:= -fno-pic
69*e92d9124SDaniel SchwierzeckPF_PIE				:=
70*e92d9124SDaniel Schwierzeckelse
71*e92d9124SDaniel SchwierzeckPF_ABICALLS			:= -mabicalls
72*e92d9124SDaniel SchwierzeckPF_PIC				:= -fpic
73*e92d9124SDaniel SchwierzeckPF_PIE				:= -pie
74*e92d9124SDaniel SchwierzeckPF_OBJCOPY			:= -j .got -j .u_boot_list -j .rel.dyn -j .padding
75*e92d9124SDaniel Schwierzeckendif
76*e92d9124SDaniel Schwierzeck
77*e92d9124SDaniel SchwierzeckPLATFORM_CPPFLAGS		+= -G 0 $(PF_ABICALLS) $(PF_PIC)
78ea0364f1SPeter TyserPLATFORM_CPPFLAGS		+= -msoft-float
79837cad1eSDaniel SchwierzeckPLATFORM_LDFLAGS		+= -G 0 -static -n -nostdlib
80660da094SDaniel SchwierzeckPLATFORM_RELFLAGS		+= -ffunction-sections -fdata-sections
81*e92d9124SDaniel SchwierzeckLDFLAGS_FINAL			+= --gc-sections $(PF_PIE)
82*e92d9124SDaniel SchwierzeckOBJCOPYFLAGS			+= -j .text -j .rodata -j .data $(PF_OBJCOPY)
83