mirror of https://github.com/xqemu/xqemu.git
Compile ide/macio only once
Replace TARGET_PAGE_SIZE with 4096. Make byte swapping unconditional since PPC is big endian. Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
This commit is contained in:
parent
3d08ff698b
commit
02c7c992f0
|
@ -171,6 +171,7 @@ hw-obj-$(CONFIG_IDE_PCI) += ide/pci.o
|
||||||
hw-obj-$(CONFIG_IDE_ISA) += ide/isa.o
|
hw-obj-$(CONFIG_IDE_ISA) += ide/isa.o
|
||||||
hw-obj-$(CONFIG_IDE_PIIX) += ide/piix.o
|
hw-obj-$(CONFIG_IDE_PIIX) += ide/piix.o
|
||||||
hw-obj-$(CONFIG_IDE_CMD646) += ide/cmd646.o
|
hw-obj-$(CONFIG_IDE_CMD646) += ide/cmd646.o
|
||||||
|
hw-obj-$(CONFIG_IDE_MACIO) += ide/macio.o
|
||||||
|
|
||||||
# SCSI layer
|
# SCSI layer
|
||||||
hw-obj-y += lsi53c895a.o
|
hw-obj-y += lsi53c895a.o
|
||||||
|
|
|
@ -190,7 +190,7 @@ obj-i386-y += device-hotplug.o pci-hotplug.o smbios.o wdt_ib700.o
|
||||||
obj-i386-y += debugcon.o multiboot.o
|
obj-i386-y += debugcon.o multiboot.o
|
||||||
|
|
||||||
# shared objects
|
# shared objects
|
||||||
obj-ppc-y = ppc.o ide/macio.o
|
obj-ppc-y = ppc.o
|
||||||
obj-ppc-y += vga.o dma.o openpic.o
|
obj-ppc-y += vga.o dma.o openpic.o
|
||||||
# PREP target
|
# PREP target
|
||||||
obj-ppc-y += pckbd.o i8259.o mc146818rtc.o
|
obj-ppc-y += pckbd.o i8259.o mc146818rtc.o
|
||||||
|
|
|
@ -14,6 +14,7 @@ CONFIG_IDE_QDEV=y
|
||||||
CONFIG_IDE_PCI=y
|
CONFIG_IDE_PCI=y
|
||||||
CONFIG_IDE_ISA=y
|
CONFIG_IDE_ISA=y
|
||||||
CONFIG_IDE_CMD646=y
|
CONFIG_IDE_CMD646=y
|
||||||
|
CONFIG_IDE_MACIO=y
|
||||||
CONFIG_NE2000_ISA=y
|
CONFIG_NE2000_ISA=y
|
||||||
CONFIG_SOUND=y
|
CONFIG_SOUND=y
|
||||||
CONFIG_VIRTIO_PCI=y
|
CONFIG_VIRTIO_PCI=y
|
||||||
|
|
|
@ -14,6 +14,7 @@ CONFIG_IDE_QDEV=y
|
||||||
CONFIG_IDE_PCI=y
|
CONFIG_IDE_PCI=y
|
||||||
CONFIG_IDE_ISA=y
|
CONFIG_IDE_ISA=y
|
||||||
CONFIG_IDE_CMD646=y
|
CONFIG_IDE_CMD646=y
|
||||||
|
CONFIG_IDE_MACIO=y
|
||||||
CONFIG_NE2000_ISA=y
|
CONFIG_NE2000_ISA=y
|
||||||
CONFIG_SOUND=y
|
CONFIG_SOUND=y
|
||||||
CONFIG_VIRTIO_PCI=y
|
CONFIG_VIRTIO_PCI=y
|
||||||
|
|
|
@ -14,6 +14,7 @@ CONFIG_IDE_QDEV=y
|
||||||
CONFIG_IDE_PCI=y
|
CONFIG_IDE_PCI=y
|
||||||
CONFIG_IDE_ISA=y
|
CONFIG_IDE_ISA=y
|
||||||
CONFIG_IDE_CMD646=y
|
CONFIG_IDE_CMD646=y
|
||||||
|
CONFIG_IDE_MACIO=y
|
||||||
CONFIG_NE2000_ISA=y
|
CONFIG_NE2000_ISA=y
|
||||||
CONFIG_SOUND=y
|
CONFIG_SOUND=y
|
||||||
CONFIG_VIRTIO_PCI=y
|
CONFIG_VIRTIO_PCI=y
|
||||||
|
|
|
@ -40,6 +40,8 @@ typedef struct MACIOIDEState {
|
||||||
BlockDriverAIOCB *aiocb;
|
BlockDriverAIOCB *aiocb;
|
||||||
} MACIOIDEState;
|
} MACIOIDEState;
|
||||||
|
|
||||||
|
#define MACIO_PAGE_SIZE 4096
|
||||||
|
|
||||||
static void pmac_ide_atapi_transfer_cb(void *opaque, int ret)
|
static void pmac_ide_atapi_transfer_cb(void *opaque, int ret)
|
||||||
{
|
{
|
||||||
DBDMA_io *io = opaque;
|
DBDMA_io *io = opaque;
|
||||||
|
@ -77,7 +79,7 @@ static void pmac_ide_atapi_transfer_cb(void *opaque, int ret)
|
||||||
|
|
||||||
s->io_buffer_size = io->len;
|
s->io_buffer_size = io->len;
|
||||||
|
|
||||||
qemu_sglist_init(&s->sg, io->len / TARGET_PAGE_SIZE + 1);
|
qemu_sglist_init(&s->sg, io->len / MACIO_PAGE_SIZE + 1);
|
||||||
qemu_sglist_add(&s->sg, io->addr, io->len);
|
qemu_sglist_add(&s->sg, io->addr, io->len);
|
||||||
io->addr += io->len;
|
io->addr += io->len;
|
||||||
io->len = 0;
|
io->len = 0;
|
||||||
|
@ -139,7 +141,7 @@ static void pmac_ide_transfer_cb(void *opaque, int ret)
|
||||||
s->io_buffer_index = 0;
|
s->io_buffer_index = 0;
|
||||||
s->io_buffer_size = io->len;
|
s->io_buffer_size = io->len;
|
||||||
|
|
||||||
qemu_sglist_init(&s->sg, io->len / TARGET_PAGE_SIZE + 1);
|
qemu_sglist_init(&s->sg, io->len / MACIO_PAGE_SIZE + 1);
|
||||||
qemu_sglist_add(&s->sg, io->addr, io->len);
|
qemu_sglist_add(&s->sg, io->addr, io->len);
|
||||||
io->addr += io->len;
|
io->addr += io->len;
|
||||||
io->len = 0;
|
io->len = 0;
|
||||||
|
@ -223,9 +225,7 @@ static void pmac_ide_writew (void *opaque,
|
||||||
MACIOIDEState *d = opaque;
|
MACIOIDEState *d = opaque;
|
||||||
|
|
||||||
addr = (addr & 0xFFF) >> 4;
|
addr = (addr & 0xFFF) >> 4;
|
||||||
#ifdef TARGET_WORDS_BIGENDIAN
|
|
||||||
val = bswap16(val);
|
val = bswap16(val);
|
||||||
#endif
|
|
||||||
if (addr == 0) {
|
if (addr == 0) {
|
||||||
ide_data_writew(&d->bus, 0, val);
|
ide_data_writew(&d->bus, 0, val);
|
||||||
}
|
}
|
||||||
|
@ -242,9 +242,7 @@ static uint32_t pmac_ide_readw (void *opaque,target_phys_addr_t addr)
|
||||||
} else {
|
} else {
|
||||||
retval = 0xFFFF;
|
retval = 0xFFFF;
|
||||||
}
|
}
|
||||||
#ifdef TARGET_WORDS_BIGENDIAN
|
|
||||||
retval = bswap16(retval);
|
retval = bswap16(retval);
|
||||||
#endif
|
|
||||||
return retval;
|
return retval;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -254,9 +252,7 @@ static void pmac_ide_writel (void *opaque,
|
||||||
MACIOIDEState *d = opaque;
|
MACIOIDEState *d = opaque;
|
||||||
|
|
||||||
addr = (addr & 0xFFF) >> 4;
|
addr = (addr & 0xFFF) >> 4;
|
||||||
#ifdef TARGET_WORDS_BIGENDIAN
|
|
||||||
val = bswap32(val);
|
val = bswap32(val);
|
||||||
#endif
|
|
||||||
if (addr == 0) {
|
if (addr == 0) {
|
||||||
ide_data_writel(&d->bus, 0, val);
|
ide_data_writel(&d->bus, 0, val);
|
||||||
}
|
}
|
||||||
|
@ -273,9 +269,7 @@ static uint32_t pmac_ide_readl (void *opaque,target_phys_addr_t addr)
|
||||||
} else {
|
} else {
|
||||||
retval = 0xFFFFFFFF;
|
retval = 0xFFFFFFFF;
|
||||||
}
|
}
|
||||||
#ifdef TARGET_WORDS_BIGENDIAN
|
|
||||||
retval = bswap32(retval);
|
retval = bswap32(retval);
|
||||||
#endif
|
|
||||||
return retval;
|
return retval;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue