1c4293333SXiaojuan Yang/* SPDX-License-Identifier: GPL-2.0-or-later */ 2c4293333SXiaojuan Yang/* 3c4293333SXiaojuan Yang * Minimal LoongArch system boot code. 4c4293333SXiaojuan Yang * 5c4293333SXiaojuan Yang * Copyright (c) 2021 Loongson Technology Corporation Limited 6c4293333SXiaojuan Yang */ 7c4293333SXiaojuan Yang 8c4293333SXiaojuan Yang#include "regdef.h" 9c4293333SXiaojuan Yang 10c4293333SXiaojuan Yang .global _start 11c4293333SXiaojuan Yang .align 16 12c4293333SXiaojuan Yang_start: 13c4293333SXiaojuan Yang la.local t0, stack_end 14c4293333SXiaojuan Yang move sp, t0 15c4293333SXiaojuan Yang bl main 16c4293333SXiaojuan Yang 17c4293333SXiaojuan Yang .type _start 2 18c4293333SXiaojuan Yang .size _start, .-_start 19c4293333SXiaojuan Yang 20c4293333SXiaojuan Yang .global _exit 21c4293333SXiaojuan Yang .align 16 22c4293333SXiaojuan Yang_exit: 23c4293333SXiaojuan Yang2: /* QEMU ACPI poweroff */ 24*89daabe3SSong Gao li.w t0, 0x34 25*89daabe3SSong Gao li.w t1, 0x100e001c 26*89daabe3SSong Gao st.b t0, t1, 0 27*89daabe3SSong Gao 28c4293333SXiaojuan Yang idle 0 29c4293333SXiaojuan Yang bl 2b 30c4293333SXiaojuan Yang 31c4293333SXiaojuan Yang .type _exit 2 32c4293333SXiaojuan Yang .size _exit, .-_exit 33c4293333SXiaojuan Yang 34c4293333SXiaojuan Yang .global __sys_outc 35c4293333SXiaojuan Yang__sys_outc: 36c4293333SXiaojuan Yang li.d t1, 1000000 37c4293333SXiaojuan Yangloop: 38c4293333SXiaojuan Yang lu12i.w t2, 0x1fe00 39c4293333SXiaojuan Yang ori t0, t2, 0x1e5 40c4293333SXiaojuan Yang ld.bu t0, t0, 0 41c4293333SXiaojuan Yang andi t0, t0, 0x20 42c4293333SXiaojuan Yang ext.w.b t0, t0 43c4293333SXiaojuan Yang bnez t0, in 44c4293333SXiaojuan Yang addi.w t1, t1, -1 45c4293333SXiaojuan Yang bnez t1, loop 46c4293333SXiaojuan Yangin: 47c4293333SXiaojuan Yang ext.w.b a0, a0 48c4293333SXiaojuan Yang lu12i.w t0, 0x1fe00 49c4293333SXiaojuan Yang ori t0, t0, 0x1e0 50c4293333SXiaojuan Yang st.b a0, t0, 0 51c4293333SXiaojuan Yang jirl $r0, ra, 0 52c4293333SXiaojuan Yang 53c4293333SXiaojuan Yang .data 54c4293333SXiaojuan Yang .align 4 55c4293333SXiaojuan Yangstack: 56c4293333SXiaojuan Yang .space 65536 57c4293333SXiaojuan Yangstack_end: 58