summaryrefslogtreecommitdiffstats
path: root/arch/riscv/kernel/head.S
diff options
context:
space:
mode:
authorAnup Patel2018-11-12 06:55:15 +0100
committerPalmer Dabbelt2018-11-20 14:19:09 +0100
commitc0fbcd9918607e85c9598bfa3dd0a84ed77ea210 (patch)
tree5e88da40c8c0781e1dd6417123ead07ba47ceabd /arch/riscv/kernel/head.S
parentRISC-V: Fix raw_copy_{to,from}_user() (diff)
downloadkernel-qcow2-linux-c0fbcd9918607e85c9598bfa3dd0a84ed77ea210.tar.gz
kernel-qcow2-linux-c0fbcd9918607e85c9598bfa3dd0a84ed77ea210.tar.xz
kernel-qcow2-linux-c0fbcd9918607e85c9598bfa3dd0a84ed77ea210.zip
RISC-V: Build flat and compressed kernel images
This patch extends Linux RISC-V build system to build and install: Image - Flat uncompressed kernel image Image.gz - Flat and GZip compressed kernel image Quiet a few bootloaders (such as Uboot, UEFI, etc) are capable of booting flat and compressed kernel images. In case of Uboot, booting Image or Image.gz is achieved using bootm command. The flat and uncompressed kernel image (i.e. Image) is very useful in pre-silicon developent and testing because we can create back-door HEX files for RAM on FPGAs from Image. Signed-off-by: Anup Patel <anup@brainfault.org> Signed-off-by: Palmer Dabbelt <palmer@sifive.com>
Diffstat (limited to 'arch/riscv/kernel/head.S')
-rw-r--r--arch/riscv/kernel/head.S10
1 files changed, 10 insertions, 0 deletions
diff --git a/arch/riscv/kernel/head.S b/arch/riscv/kernel/head.S
index 711190d473d4..fe884cd69abd 100644
--- a/arch/riscv/kernel/head.S
+++ b/arch/riscv/kernel/head.S
@@ -44,6 +44,16 @@ ENTRY(_start)
amoadd.w a3, a2, (a3)
bnez a3, .Lsecondary_start
+ /* Clear BSS for flat non-ELF images */
+ la a3, __bss_start
+ la a4, __bss_stop
+ ble a4, a3, clear_bss_done
+clear_bss:
+ REG_S zero, (a3)
+ add a3, a3, RISCV_SZPTR
+ blt a3, a4, clear_bss
+clear_bss_done:
+
/* Save hart ID and DTB physical address */
mv s0, a0
mv s1, a1