diff options
author | Palmer Dabbelt <palmer@dabbelt.com> | 2017-07-11 03:00:26 +0200 |
---|---|---|
committer | Palmer Dabbelt <palmer@dabbelt.com> | 2017-09-27 00:26:44 +0200 |
commit | 76d2a0493a17d4c8ecc781366850c3c4f8e1a446 (patch) | |
tree | 5612f17472f4f3bd6fb49e217cb998f5c32836c4 /arch/riscv/kernel/reset.c | |
parent | dt-bindings: RISC-V CPU Bindings (diff) | |
download | linux-76d2a0493a17d4c8ecc781366850c3c4f8e1a446.tar.xz linux-76d2a0493a17d4c8ecc781366850c3c4f8e1a446.zip |
RISC-V: Init and Halt Code
This contains the various __init C functions, the initial assembly
kernel entry point, and the code to reset the system. When a file was
init-related this patch contains the entire file.
Signed-off-by: Palmer Dabbelt <palmer@dabbelt.com>
Diffstat (limited to 'arch/riscv/kernel/reset.c')
-rw-r--r-- | arch/riscv/kernel/reset.c | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/arch/riscv/kernel/reset.c b/arch/riscv/kernel/reset.c new file mode 100644 index 000000000000..2a53d26ffdd6 --- /dev/null +++ b/arch/riscv/kernel/reset.c @@ -0,0 +1,36 @@ +/* + * Copyright (C) 2012 Regents of the University of California + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation, version 2. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +#include <linux/reboot.h> +#include <linux/export.h> +#include <asm/sbi.h> + +void (*pm_power_off)(void) = machine_power_off; +EXPORT_SYMBOL(pm_power_off); + +void machine_restart(char *cmd) +{ + do_kernel_restart(cmd); + while (1); +} + +void machine_halt(void) +{ + machine_power_off(); +} + +void machine_power_off(void) +{ + sbi_shutdown(); + while (1); +} |