mirror of https://github.com/proxmox/mirror_qemu
omap: Wire up the DMA request line to the GPMC
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>master
parent
ef20677ca6
commit
eee0a1c67e
|
@ -119,7 +119,8 @@ void omap_sdrc_reset(struct omap_sdrc_s *s);
|
||||||
/* OMAP2 general purpose memory controller */
|
/* OMAP2 general purpose memory controller */
|
||||||
struct omap_gpmc_s;
|
struct omap_gpmc_s;
|
||||||
struct omap_gpmc_s *omap_gpmc_init(struct omap_mpu_state_s *mpu,
|
struct omap_gpmc_s *omap_gpmc_init(struct omap_mpu_state_s *mpu,
|
||||||
target_phys_addr_t base, qemu_irq irq);
|
target_phys_addr_t base,
|
||||||
|
qemu_irq irq, qemu_irq drq);
|
||||||
void omap_gpmc_reset(struct omap_gpmc_s *s);
|
void omap_gpmc_reset(struct omap_gpmc_s *s);
|
||||||
void omap_gpmc_attach(struct omap_gpmc_s *s, int cs, MemoryRegion *iomem);
|
void omap_gpmc_attach(struct omap_gpmc_s *s, int cs, MemoryRegion *iomem);
|
||||||
void omap_gpmc_attach_nand(struct omap_gpmc_s *s, int cs, DeviceState *nand);
|
void omap_gpmc_attach_nand(struct omap_gpmc_s *s, int cs, DeviceState *nand);
|
||||||
|
|
|
@ -2402,7 +2402,8 @@ struct omap_mpu_state_s *omap2420_mpu_init(unsigned long sdram_size,
|
||||||
sysbus_mmio_map(busdev, 4, omap_l4_region_base(ta, 5));
|
sysbus_mmio_map(busdev, 4, omap_l4_region_base(ta, 5));
|
||||||
|
|
||||||
s->sdrc = omap_sdrc_init(0x68009000);
|
s->sdrc = omap_sdrc_init(0x68009000);
|
||||||
s->gpmc = omap_gpmc_init(s, 0x6800a000, s->irq[0][OMAP_INT_24XX_GPMC_IRQ]);
|
s->gpmc = omap_gpmc_init(s, 0x6800a000, s->irq[0][OMAP_INT_24XX_GPMC_IRQ],
|
||||||
|
s->drq[OMAP24XX_DMA_GPMC]);
|
||||||
|
|
||||||
dinfo = drive_get(IF_SD, 0, 0);
|
dinfo = drive_get(IF_SD, 0, 0);
|
||||||
if (!dinfo) {
|
if (!dinfo) {
|
||||||
|
|
|
@ -27,6 +27,7 @@
|
||||||
/* General-Purpose Memory Controller */
|
/* General-Purpose Memory Controller */
|
||||||
struct omap_gpmc_s {
|
struct omap_gpmc_s {
|
||||||
qemu_irq irq;
|
qemu_irq irq;
|
||||||
|
qemu_irq drq;
|
||||||
MemoryRegion iomem;
|
MemoryRegion iomem;
|
||||||
int accept_256;
|
int accept_256;
|
||||||
|
|
||||||
|
@ -564,7 +565,8 @@ static const MemoryRegionOps omap_gpmc_ops = {
|
||||||
};
|
};
|
||||||
|
|
||||||
struct omap_gpmc_s *omap_gpmc_init(struct omap_mpu_state_s *mpu,
|
struct omap_gpmc_s *omap_gpmc_init(struct omap_mpu_state_s *mpu,
|
||||||
target_phys_addr_t base, qemu_irq irq)
|
target_phys_addr_t base,
|
||||||
|
qemu_irq irq, qemu_irq drq)
|
||||||
{
|
{
|
||||||
int cs;
|
int cs;
|
||||||
struct omap_gpmc_s *s = (struct omap_gpmc_s *)
|
struct omap_gpmc_s *s = (struct omap_gpmc_s *)
|
||||||
|
@ -574,6 +576,7 @@ struct omap_gpmc_s *omap_gpmc_init(struct omap_mpu_state_s *mpu,
|
||||||
memory_region_add_subregion(get_system_memory(), base, &s->iomem);
|
memory_region_add_subregion(get_system_memory(), base, &s->iomem);
|
||||||
|
|
||||||
s->irq = irq;
|
s->irq = irq;
|
||||||
|
s->drq = drq;
|
||||||
s->accept_256 = cpu_is_omap3630(mpu);
|
s->accept_256 = cpu_is_omap3630(mpu);
|
||||||
s->revision = cpu_class_omap3(mpu) ? 0x50 : 0x20;
|
s->revision = cpu_class_omap3(mpu) ? 0x50 : 0x20;
|
||||||
omap_gpmc_reset(s);
|
omap_gpmc_reset(s);
|
||||||
|
|
Loading…
Reference in New Issue