xref: /rk3399_rockchip-uboot/arch/mips/config.mk (revision 47cf465c25d4c121d4b2befc67aabfa044a52389)
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__
39*47cf465cSÁlvaro Fernández RojasPLATFORM_ELFENTRY = "__start"
40*47cf465cSÁlvaro Fernández RojasPLATFORM_ELFFLAGS += -B mips $(OBJCOPYFLAGS)
41ea0364f1SPeter Tyser
42ea0364f1SPeter Tyser#
43ea0364f1SPeter Tyser# From Linux arch/mips/Makefile
44ea0364f1SPeter Tyser#
45ea0364f1SPeter Tyser# GCC uses -G 0 -mabicalls -fpic as default.  We don't want PIC in the kernel
46ea0364f1SPeter Tyser# code since it only slows down the whole thing.  At some point we might make
47ea0364f1SPeter Tyser# use of global pointer optimizations but their use of $28 conflicts with
48ea0364f1SPeter Tyser# the current pointer optimization.
49ea0364f1SPeter Tyser#
50ea0364f1SPeter Tyser# The DECStation requires an ECOFF kernel for remote booting, other MIPS
51ea0364f1SPeter Tyser# machines may also.  Since BFD is incredibly buggy with respect to
52ea0364f1SPeter Tyser# crossformat linking we rely on the elf2ecoff tool for format conversion.
53ea0364f1SPeter Tyser#
54ea0364f1SPeter Tyser# cflags-y			+= -G 0 -mno-abicalls -fno-pic -pipe
55ea0364f1SPeter Tyser# cflags-y			+= -msoft-float
56ea0364f1SPeter Tyser# LDFLAGS_vmlinux		+= -G 0 -static -n -nostdlib
57ea0364f1SPeter Tyser# MODFLAGS			+= -mlong-calls
58ea0364f1SPeter Tyser#
59ea0364f1SPeter Tyser# On the other hand, we want PIC in the U-Boot code to relocate it from ROM
60ea0364f1SPeter Tyser# to RAM. $28 is always used as gp.
61ea0364f1SPeter Tyser#
62e92d9124SDaniel Schwierzeckifdef CONFIG_SPL_BUILD
63e92d9124SDaniel SchwierzeckPF_ABICALLS			:= -mno-abicalls
64e92d9124SDaniel SchwierzeckPF_PIC				:= -fno-pic
65e92d9124SDaniel SchwierzeckPF_PIE				:=
66e92d9124SDaniel Schwierzeckelse
67e92d9124SDaniel SchwierzeckPF_ABICALLS			:= -mabicalls
68e92d9124SDaniel SchwierzeckPF_PIC				:= -fpic
69e92d9124SDaniel SchwierzeckPF_PIE				:= -pie
7007f5b966SDaniel SchwierzeckPF_OBJCOPY			:= -j .got -j .rel.dyn -j .padding
710fc13a90SDaniel SchwierzeckPF_OBJCOPY			+= -j .dtb.init.rodata
72e92d9124SDaniel Schwierzeckendif
73e92d9124SDaniel Schwierzeck
74e92d9124SDaniel SchwierzeckPLATFORM_CPPFLAGS		+= -G 0 $(PF_ABICALLS) $(PF_PIC)
75ea0364f1SPeter TyserPLATFORM_CPPFLAGS		+= -msoft-float
76837cad1eSDaniel SchwierzeckPLATFORM_LDFLAGS		+= -G 0 -static -n -nostdlib
77660da094SDaniel SchwierzeckPLATFORM_RELFLAGS		+= -ffunction-sections -fdata-sections
78e92d9124SDaniel SchwierzeckLDFLAGS_FINAL			+= --gc-sections $(PF_PIE)
7907f5b966SDaniel SchwierzeckOBJCOPYFLAGS			+= -j .text -j .rodata -j .data -j .u_boot_list
8007f5b966SDaniel SchwierzeckOBJCOPYFLAGS			+= $(PF_OBJCOPY)
81