xref: /qemu/include/hw/mips/bootloader.h (revision 36d7487b2aa033e9792fb310c39d106ffcadaa4f)
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