Misc HW patches
- Remove uses of &first_cpu in rx-gdbsim and loongson3_virt machines (Philippe) - Convert few legacy qemu_allocate_irqs to qemu_init_irqs (Philippe) - Add tracing events in i2c-echo device (Titus) - Fix debug format string in USB EHCI (Zoltan) - Rework loader API to remove its target_words_bigendian() call (Philippe) - QOMify OMAP MMC device (Peter) - Remove legacy SD Card APIs (Peter) -----BEGIN PGP SIGNATURE----- iQIzBAABCAAdFiEE+qvnXhKRciHc/Wuy4+MsLN6twN4FAmedOmkACgkQ4+MsLN6t wN4qHhAAtL3vmk6hQgKD76bSaB3CDEdHsnS7qqeRVVmbr7pQL9D6yyXzkjJBzZtk nG7ubhoS5WFeKswzD8tY/mgP25hntnq38TNrRxDrpRNdFYF+a2cncpRGfgzk0z/9 nme/BuUx6fNowV8MVGLNOLvaDCeDHl9biTLJmcQyqwlHy9l9Wi6DSa6Xi9ZQWlHi fxYVeuQ7HYlKwhiu3mqpfNeauIgMSWz8V48ETCrFnjMWmiF1k1L0GccWDS8zpPDk QkdOxHC4eVMxk0d2458eUXeqo/izfzoc7Z9hW6W8cyI69y4m011xqANd/udTS03E HMcG9Ks0E+Yw8NGoErOP7zu8yFVEzCn2BKhH/wrUHBC2UfP99vNR/b8LNkg25y19 IItOkMban0Oyr9KaNb1Ga+3pZIsyyil+shSYNHpWkfqk+TUpZkMUSaVHA9r1oB3V u/dOO/lPLaWMvftKVXRl3K/Lfz4WF5cWjza5RratnzbBqqwr03CwjjBEuZIX/5ww ATj/fV10OSHScxCqauYp8uuNSgEOKaJCJe2uEMaLvxn/O9ka0FQZ5CLUJ0yIKs/t Tg4sS0QLgmpaXwSnscKoVE7aHWNFT1WomHI4SjWbwUQhmm0DmPizBZ2yX8dnSR24 ubtzmxNYFWScrUTGQvbMhkU6I+Sc0Ca8APmPxErNV2mzF4p3CPE= =Jvwi -----END PGP SIGNATURE----- Merge tag 'hw-misc-20250131' of https://github.com/philmd/qemu into staging Misc HW patches - Remove uses of &first_cpu in rx-gdbsim and loongson3_virt machines (Philippe) - Convert few legacy qemu_allocate_irqs to qemu_init_irqs (Philippe) - Add tracing events in i2c-echo device (Titus) - Fix debug format string in USB EHCI (Zoltan) - Rework loader API to remove its target_words_bigendian() call (Philippe) - QOMify OMAP MMC device (Peter) - Remove legacy SD Card APIs (Peter) # -----BEGIN PGP SIGNATURE----- # # iQIzBAABCAAdFiEE+qvnXhKRciHc/Wuy4+MsLN6twN4FAmedOmkACgkQ4+MsLN6t # wN4qHhAAtL3vmk6hQgKD76bSaB3CDEdHsnS7qqeRVVmbr7pQL9D6yyXzkjJBzZtk # nG7ubhoS5WFeKswzD8tY/mgP25hntnq38TNrRxDrpRNdFYF+a2cncpRGfgzk0z/9 # nme/BuUx6fNowV8MVGLNOLvaDCeDHl9biTLJmcQyqwlHy9l9Wi6DSa6Xi9ZQWlHi # fxYVeuQ7HYlKwhiu3mqpfNeauIgMSWz8V48ETCrFnjMWmiF1k1L0GccWDS8zpPDk # QkdOxHC4eVMxk0d2458eUXeqo/izfzoc7Z9hW6W8cyI69y4m011xqANd/udTS03E # HMcG9Ks0E+Yw8NGoErOP7zu8yFVEzCn2BKhH/wrUHBC2UfP99vNR/b8LNkg25y19 # IItOkMban0Oyr9KaNb1Ga+3pZIsyyil+shSYNHpWkfqk+TUpZkMUSaVHA9r1oB3V # u/dOO/lPLaWMvftKVXRl3K/Lfz4WF5cWjza5RratnzbBqqwr03CwjjBEuZIX/5ww # ATj/fV10OSHScxCqauYp8uuNSgEOKaJCJe2uEMaLvxn/O9ka0FQZ5CLUJ0yIKs/t # Tg4sS0QLgmpaXwSnscKoVE7aHWNFT1WomHI4SjWbwUQhmm0DmPizBZ2yX8dnSR24 # ubtzmxNYFWScrUTGQvbMhkU6I+Sc0Ca8APmPxErNV2mzF4p3CPE= # =Jvwi # -----END PGP SIGNATURE----- # gpg: Signature made Fri 31 Jan 2025 16:02:33 EST # gpg: using RSA key FAABE75E12917221DCFD6BB2E3E32C2CDEADC0DE # gpg: Good signature from "Philippe Mathieu-Daudé (F4BUG) <f4bug@amsat.org>" [full] # Primary key fingerprint: FAAB E75E 1291 7221 DCFD 6BB2 E3E3 2C2C DEAD C0DE * tag 'hw-misc-20250131' of https://github.com/philmd/qemu: (36 commits) hw/sd: Remove unused SDState::enable hw/sd: Remove unused legacy functions, stop killing mammoths hw/sd: Remove unused 'enable' method from SDCardClass hw/sd/omap_mmc: Untabify hw/sd/omap_mmc: Remove unused coverswitch qemu_irq hw/arm/omap1: Inline creation of MMC hw/sd/omap_mmc: Use similar API for "wire up omap_clk" to other OMAP devices hw/sd/omap_mmc: Convert to SDBus API hw/sd/omap_mmc: Convert output qemu_irqs to gpio and sysbus IRQ APIs hw/sd/omap_mmc: Convert remaining 'struct omap_mmc_s' uses to OMAPMMCState hw/sd/omap_mmc: Do a minimal conversion to QDev hw/loader: Pass ELFDATA endian order argument to load_elf() hw/loader: Pass ELFDATA endian order argument to load_elf_as() hw/loader: Pass ELFDATA endian order argument to load_elf_ram_sym() hw/loader: Clarify local variable name in load_elf_ram_sym() hw/loader: Remove unused load_elf_ram() hw/avr/boot: Replace load_elf_ram_sym() -> load_elf_as() hw/usb/hcd-ehci: Fix debug printf format string hw/misc/i2c-echo: add tracing hw/char/pci-multi: Convert legacy qemu_allocate_irqs to qemu_init_irq ... Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
This commit is contained in:
commit
f65f326113
68 changed files with 408 additions and 455 deletions
|
|
@ -529,12 +529,15 @@ struct omap_lcd_panel_s *omap_lcdc_init(MemoryRegion *sysmem,
|
|||
omap_clk clk);
|
||||
|
||||
/* omap_mmc.c */
|
||||
struct omap_mmc_s;
|
||||
struct omap_mmc_s *omap_mmc_init(hwaddr base,
|
||||
MemoryRegion *sysmem,
|
||||
BlockBackend *blk,
|
||||
qemu_irq irq, qemu_irq dma[], omap_clk clk);
|
||||
void omap_mmc_reset(struct omap_mmc_s *s);
|
||||
#define TYPE_OMAP_MMC "omap-mmc"
|
||||
OBJECT_DECLARE_SIMPLE_TYPE(OMAPMMCState, OMAP_MMC)
|
||||
|
||||
DeviceState *omap_mmc_init(hwaddr base,
|
||||
MemoryRegion *sysmem,
|
||||
qemu_irq irq, qemu_irq dma[], omap_clk clk);
|
||||
/* TODO: clock framework (see above) */
|
||||
void omap_mmc_set_clk(DeviceState *dev, omap_clk clk);
|
||||
|
||||
|
||||
/* omap_i2c.c */
|
||||
I2CBus *omap_i2c_bus(DeviceState *omap_i2c);
|
||||
|
|
@ -601,7 +604,7 @@ struct omap_mpu_state_s {
|
|||
/* MPU public TIPB peripherals */
|
||||
struct omap_32khz_timer_s *os_timer;
|
||||
|
||||
struct omap_mmc_s *mmc;
|
||||
DeviceState *mmc;
|
||||
|
||||
struct omap_mpuio_s *mpuio;
|
||||
|
||||
|
|
|
|||
|
|
@ -12,6 +12,7 @@
|
|||
#define QEMU_IPACK_H
|
||||
|
||||
#include "hw/qdev-core.h"
|
||||
#include "hw/irq.h"
|
||||
#include "qom/object.h"
|
||||
|
||||
|
||||
|
|
@ -19,10 +20,8 @@
|
|||
OBJECT_DECLARE_SIMPLE_TYPE(IPackBus, IPACK_BUS)
|
||||
|
||||
struct IPackBus {
|
||||
/*< private >*/
|
||||
BusState parent_obj;
|
||||
|
||||
/* All fields are private */
|
||||
uint8_t n_slots;
|
||||
uint8_t free_slot;
|
||||
qemu_irq_handler set_irq;
|
||||
|
|
@ -58,13 +57,11 @@ struct IPackDeviceClass {
|
|||
};
|
||||
|
||||
struct IPackDevice {
|
||||
/*< private >*/
|
||||
DeviceState parent_obj;
|
||||
/*< public >*/
|
||||
|
||||
int32_t slot;
|
||||
/* IRQ objects for the IndustryPack INT0# and INT1# */
|
||||
qemu_irq *irq;
|
||||
IRQState irq[2];
|
||||
};
|
||||
|
||||
extern const VMStateDescription vmstate_ipack_device;
|
||||
|
|
|
|||
|
|
@ -41,6 +41,17 @@ static inline void qemu_irq_pulse(qemu_irq irq)
|
|||
void qemu_init_irq(IRQState *irq, qemu_irq_handler handler, void *opaque,
|
||||
int n);
|
||||
|
||||
/**
|
||||
* qemu_init_irqs: Initialize an array of IRQs.
|
||||
*
|
||||
* @irq: Array of IRQs to initialize
|
||||
* @count: number of IRQs to initialize
|
||||
* @handler: handler to assign to each IRQ
|
||||
* @opaque: opaque data to pass to @handler
|
||||
*/
|
||||
void qemu_init_irqs(IRQState irq[], size_t count,
|
||||
qemu_irq_handler handler, void *opaque);
|
||||
|
||||
/* Returns an array of N IRQs. Each IRQ is assigned the argument handler and
|
||||
* opaque data.
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -120,7 +120,7 @@ const char *load_elf_strerror(ssize_t error);
|
|||
* @lowaddr: Populated with lowest loaded address. Ignored if NULL.
|
||||
* @highaddr: Populated with highest loaded address. Ignored if NULL.
|
||||
* @pflags: Populated with ELF processor-specific flags. Ignore if NULL.
|
||||
* @bigendian: Expected ELF endianness. 0 for LE otherwise BE
|
||||
* @elf_data_order: Expected ELF endianness (ELFDATA2LSB or ELFDATA2MSB).
|
||||
* @elf_machine: Expected ELF machine type
|
||||
* @clear_lsb: Set to mask off LSB of addresses (Some architectures use
|
||||
* this for non-address data)
|
||||
|
|
@ -151,30 +151,18 @@ ssize_t load_elf_ram_sym(const char *filename,
|
|||
uint64_t (*translate_fn)(void *, uint64_t),
|
||||
void *translate_opaque, uint64_t *pentry,
|
||||
uint64_t *lowaddr, uint64_t *highaddr,
|
||||
uint32_t *pflags, int big_endian, int elf_machine,
|
||||
uint32_t *pflags, int elf_data_order, int elf_machine,
|
||||
int clear_lsb, int data_swab,
|
||||
AddressSpace *as, bool load_rom, symbol_fn_t sym_cb);
|
||||
|
||||
/** load_elf_ram:
|
||||
* Same as load_elf_ram_sym(), but doesn't allow the caller to specify a
|
||||
* symbol callback function
|
||||
*/
|
||||
ssize_t load_elf_ram(const char *filename,
|
||||
uint64_t (*elf_note_fn)(void *, void *, bool),
|
||||
uint64_t (*translate_fn)(void *, uint64_t),
|
||||
void *translate_opaque, uint64_t *pentry,
|
||||
uint64_t *lowaddr, uint64_t *highaddr, uint32_t *pflags,
|
||||
int big_endian, int elf_machine, int clear_lsb,
|
||||
int data_swab, AddressSpace *as, bool load_rom);
|
||||
|
||||
/** load_elf_as:
|
||||
* Same as load_elf_ram(), but always loads the elf as ROM
|
||||
* Same as load_elf_ram_sym(), but always loads the elf as ROM
|
||||
*/
|
||||
ssize_t load_elf_as(const char *filename,
|
||||
uint64_t (*elf_note_fn)(void *, void *, bool),
|
||||
uint64_t (*translate_fn)(void *, uint64_t),
|
||||
void *translate_opaque, uint64_t *pentry, uint64_t *lowaddr,
|
||||
uint64_t *highaddr, uint32_t *pflags, int big_endian,
|
||||
uint64_t *highaddr, uint32_t *pflags, int elf_data_order,
|
||||
int elf_machine, int clear_lsb, int data_swab,
|
||||
AddressSpace *as);
|
||||
|
||||
|
|
@ -186,7 +174,7 @@ ssize_t load_elf(const char *filename,
|
|||
uint64_t (*elf_note_fn)(void *, void *, bool),
|
||||
uint64_t (*translate_fn)(void *, uint64_t),
|
||||
void *translate_opaque, uint64_t *pentry, uint64_t *lowaddr,
|
||||
uint64_t *highaddr, uint32_t *pflags, int big_endian,
|
||||
uint64_t *highaddr, uint32_t *pflags, int elf_data_order,
|
||||
int elf_machine, int clear_lsb, int data_swab);
|
||||
|
||||
/** load_elf_hdr:
|
||||
|
|
|
|||
|
|
@ -119,7 +119,6 @@ struct SDCardClass {
|
|||
void (*set_voltage)(SDState *sd, uint16_t millivolts);
|
||||
uint8_t (*get_dat_lines)(SDState *sd);
|
||||
bool (*get_cmd_line)(SDState *sd);
|
||||
void (*enable)(SDState *sd, bool enable);
|
||||
bool (*get_inserted)(SDState *sd);
|
||||
bool (*get_readonly)(SDState *sd);
|
||||
void (*set_cid)(SDState *sd);
|
||||
|
|
|
|||
|
|
@ -1,50 +0,0 @@
|
|||
/*
|
||||
* SD Memory Card emulation (deprecated legacy API)
|
||||
*
|
||||
* Copyright (c) 2006 Andrzej Zaborowski <balrog@zabor.org>
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in
|
||||
* the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS''
|
||||
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
|
||||
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
|
||||
* PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR
|
||||
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
||||
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
||||
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
|
||||
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
|
||||
* OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
#ifndef HW_SDCARD_LEGACY_H
|
||||
#define HW_SDCARD_LEGACY_H
|
||||
|
||||
#include "hw/sd/sd.h"
|
||||
|
||||
/* Legacy functions to be used only by non-qdevified callers */
|
||||
SDState *sd_init(BlockBackend *blk, bool is_spi);
|
||||
int sd_do_command(SDState *card, SDRequest *request, uint8_t *response);
|
||||
void sd_write_byte(SDState *card, uint8_t value);
|
||||
uint8_t sd_read_byte(SDState *card);
|
||||
void sd_set_cb(SDState *card, qemu_irq readonly, qemu_irq insert);
|
||||
|
||||
/* sd_enable should not be used -- it is only used on the nseries boards,
|
||||
* where it is part of a broken implementation of the MMC card slot switch
|
||||
* (there should be two card slots which are multiplexed to a single MMC
|
||||
* controller, but instead we model it with one card and controller and
|
||||
* disable the card when the second slot is selected, so it looks like the
|
||||
* second slot is always empty).
|
||||
*/
|
||||
void sd_enable(SDState *card, bool enable);
|
||||
|
||||
#endif /* HW_SDCARD_LEGACY_H */
|
||||
Loading…
Add table
Add a link
Reference in a new issue