Loading...
# SPDX-License-Identifier: GPL-2.0+
#
# (C) Copyright 2000-2002
# Wolfgang Denk, DENX Software Engineering, wd@denx.de.
#
# Copyright (c) 2017 Microsemi Corporation.
# Padmarao Begari, Microsemi Corporation <padmarao.begari@microsemi.com>
#
# Copyright (C) 2017 Andes Technology Corporation
# Rick Chen, Andes Technology Corporation <rick@andestech.com>
#

ifdef CONFIG_SYS_BIG_ENDIAN
small-endian		:= b
large-endian		:= big
PLATFORM_CPPFLAGS       += -mbig-endian
KBUILD_LDFLAGS          += -mbig-endian
else
small-endian		:= l
large-endian		:= little
endif

32bit-emul		:= elf32$(small-endian)riscv
64bit-emul		:= elf64$(small-endian)riscv

ifdef CONFIG_32BIT
KBUILD_LDFLAGS		+= -m $(32bit-emul)
EFI_LDS			:= elf_riscv32_efi.lds
PLATFORM_ELFFLAGS	+= -B riscv -O elf32-$(large-endian)riscv
endif

ifdef CONFIG_64BIT
KBUILD_LDFLAGS		+= -m $(64bit-emul)
EFI_LDS			:= elf_riscv64_efi.lds
PLATFORM_ELFFLAGS	+= -B riscv -O elf64-$(large-endian)riscv
endif

PLATFORM_CPPFLAGS	+= -ffixed-x3 -fpic
PLATFORM_RELFLAGS	+= -fno-common -ffunction-sections -fdata-sections
ifndef CONFIG_EFI_APP
LDFLAGS_u-boot		+= --gc-sections -static -pie
endif

EFI_CRT0		:= crt0_riscv_efi.o
EFI_RELOC		:= reloc_riscv_efi.o

OBJCOPYFLAGS_EFI += -j .text -j .rodata -j .data -j .sdata -j .dynamic \
	-j .dynsym -j .rela -j .reloc -j .got -j .got.plt \
	-j __u_boot_list -j .embedded_dtb -O binary

ifeq ($(CONFIG_EFI_APP),y)

LDFLAGS_FINAL += -znocombreloc -shared -Bsymbolic --gc-sections
LDSCRIPT := $(srctree)/arch/riscv/lib/elf_riscv64_efi_app.lds

# The EFI app linker script places all data sections contiguously
# between _data and _edata so the PE .data section covers them.
OBJCOPYFLAGS_EFI := -j .text -j .rela.dyn \
	-j .dynsym -j .dynstr -j .embedded_dtb -j .data \
	-O binary

endif