1*7dd8f6fdSPhilippe Mathieu-Daudé /* 2*7dd8f6fdSPhilippe Mathieu-Daudé * AVR loader helpers 3*7dd8f6fdSPhilippe Mathieu-Daudé * 4*7dd8f6fdSPhilippe Mathieu-Daudé * Copyright (c) 2019-2020 Philippe Mathieu-Daudé 5*7dd8f6fdSPhilippe Mathieu-Daudé * 6*7dd8f6fdSPhilippe Mathieu-Daudé * This work is licensed under the terms of the GNU GPLv2 or later. 7*7dd8f6fdSPhilippe Mathieu-Daudé * See the COPYING file in the top-level directory. 8*7dd8f6fdSPhilippe Mathieu-Daudé * SPDX-License-Identifier: GPL-2.0-or-later 9*7dd8f6fdSPhilippe Mathieu-Daudé */ 10*7dd8f6fdSPhilippe Mathieu-Daudé 11*7dd8f6fdSPhilippe Mathieu-Daudé #ifndef HW_AVR_BOOT_H 12*7dd8f6fdSPhilippe Mathieu-Daudé #define HW_AVR_BOOT_H 13*7dd8f6fdSPhilippe Mathieu-Daudé 14*7dd8f6fdSPhilippe Mathieu-Daudé #include "hw/boards.h" 15*7dd8f6fdSPhilippe Mathieu-Daudé #include "cpu.h" 16*7dd8f6fdSPhilippe Mathieu-Daudé 17*7dd8f6fdSPhilippe Mathieu-Daudé /** 18*7dd8f6fdSPhilippe Mathieu-Daudé * avr_load_firmware: load an image into a memory region 19*7dd8f6fdSPhilippe Mathieu-Daudé * 20*7dd8f6fdSPhilippe Mathieu-Daudé * @cpu: Handle a AVR CPU object 21*7dd8f6fdSPhilippe Mathieu-Daudé * @ms: A MachineState 22*7dd8f6fdSPhilippe Mathieu-Daudé * @mr: Memory Region to load into 23*7dd8f6fdSPhilippe Mathieu-Daudé * @firmware: Path to the firmware file (raw binary or ELF format) 24*7dd8f6fdSPhilippe Mathieu-Daudé * 25*7dd8f6fdSPhilippe Mathieu-Daudé * Load a firmware supplied by the machine or by the user with the 26*7dd8f6fdSPhilippe Mathieu-Daudé * '-bios' command line option, and put it in target memory. 27*7dd8f6fdSPhilippe Mathieu-Daudé * 28*7dd8f6fdSPhilippe Mathieu-Daudé * Returns: true on success, false on error. 29*7dd8f6fdSPhilippe Mathieu-Daudé */ 30*7dd8f6fdSPhilippe Mathieu-Daudé bool avr_load_firmware(AVRCPU *cpu, MachineState *ms, 31*7dd8f6fdSPhilippe Mathieu-Daudé MemoryRegion *mr, const char *firmware); 32*7dd8f6fdSPhilippe Mathieu-Daudé 33*7dd8f6fdSPhilippe Mathieu-Daudé #endif 34