13ebbf861SJiaxun Yang /* 23ebbf861SJiaxun Yang * Utility for QEMU MIPS to generate it's simple bootloader 33ebbf861SJiaxun Yang * 43ebbf861SJiaxun Yang * Copyright (C) 2020 Jiaxun Yang <jiaxun.yang@flygoat.com> 53ebbf861SJiaxun Yang * 63ebbf861SJiaxun Yang * SPDX-License-Identifier: GPL-2.0-or-later 73ebbf861SJiaxun Yang */ 83ebbf861SJiaxun Yang 93ebbf861SJiaxun Yang #ifndef HW_MIPS_BOOTLOADER_H 103ebbf861SJiaxun Yang #define HW_MIPS_BOOTLOADER_H 113ebbf861SJiaxun Yang 123ebbf861SJiaxun Yang #include "exec/cpu-defs.h" 133ebbf861SJiaxun Yang 143ebbf861SJiaxun Yang void bl_gen_jump_to(uint32_t **p, target_ulong jump_addr); 15*36d7487bSPhilippe Mathieu-Daudé void bl_gen_jump_kernel(uint32_t **p, 16*36d7487bSPhilippe Mathieu-Daudé bool set_sp, target_ulong sp, 17*36d7487bSPhilippe Mathieu-Daudé bool set_a0, target_ulong a0, 18*36d7487bSPhilippe Mathieu-Daudé bool set_a1, target_ulong a1, 19*36d7487bSPhilippe Mathieu-Daudé bool set_a2, target_ulong a2, 20*36d7487bSPhilippe Mathieu-Daudé bool set_a3, target_ulong a3, 213ebbf861SJiaxun Yang target_ulong kernel_addr); 223ebbf861SJiaxun Yang void bl_gen_write_ulong(uint32_t **p, target_ulong addr, target_ulong val); 233ebbf861SJiaxun Yang void bl_gen_write_u32(uint32_t **p, target_ulong addr, uint32_t val); 243ebbf861SJiaxun Yang void bl_gen_write_u64(uint32_t **p, target_ulong addr, uint64_t val); 253ebbf861SJiaxun Yang 263ebbf861SJiaxun Yang #endif 27