Commit bc687ec92249437eac5997de881e130d28736b0a
1 parent
2a1094cd
Gallileo fixes, by Stefan Weil.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@2670 c046a42c-6fe2-441c-8c8c-71466251a162
Showing
1 changed file
with
22 additions
and
4 deletions
hw/gt64xxx.c
... | ... | @@ -550,7 +550,7 @@ void gt64120_reset(void *opaque) |
550 | 550 | #ifdef TARGET_WORDS_BIGENDIAN |
551 | 551 | s->regs[GT_CPU] = 0x00000000; |
552 | 552 | #else |
553 | - s->regs[GT_CPU] = 0x00000800; | |
553 | + s->regs[GT_CPU] = 0x00001000; | |
554 | 554 | #endif |
555 | 555 | s->regs[GT_MULTI] = 0x00000000; |
556 | 556 | |
... | ... | @@ -608,6 +608,24 @@ void gt64120_reset(void *opaque) |
608 | 608 | gt64120_pci_mapping(s); |
609 | 609 | } |
610 | 610 | |
611 | +static uint32_t gt64120_read_config(PCIDevice *d, uint32_t address, int len) | |
612 | +{ | |
613 | + uint32_t val = pci_default_read_config(d, address, len); | |
614 | +#ifdef TARGET_WORDS_BIGENDIAN | |
615 | + val = bswap32(val); | |
616 | +#endif | |
617 | + return val; | |
618 | +} | |
619 | + | |
620 | +static void gt64120_write_config(PCIDevice *d, uint32_t address, uint32_t val, | |
621 | + int len) | |
622 | +{ | |
623 | +#ifdef TARGET_WORDS_BIGENDIAN | |
624 | + val = bswap32(val); | |
625 | +#endif | |
626 | + pci_default_write_config(d, address, val, len); | |
627 | +} | |
628 | + | |
611 | 629 | PCIBus *pci_gt64120_init(qemu_irq *pic) |
612 | 630 | { |
613 | 631 | GT64120State *s; |
... | ... | @@ -626,12 +644,12 @@ PCIBus *pci_gt64120_init(qemu_irq *pic) |
626 | 644 | cpu_register_physical_memory(0x1be00000LL, 0x1000, gt64120); |
627 | 645 | |
628 | 646 | d = pci_register_device(s->pci->bus, "GT64120 PCI Bus", sizeof(PCIDevice), |
629 | - 0, NULL, NULL); | |
647 | + 0, gt64120_read_config, gt64120_write_config); | |
630 | 648 | |
631 | 649 | d->config[0x00] = 0xab; // vendor_id |
632 | 650 | d->config[0x01] = 0x11; |
633 | - d->config[0x02] = 0x46; // device_id | |
634 | - d->config[0x03] = 0x20; | |
651 | + d->config[0x02] = 0x20; // device_id | |
652 | + d->config[0x03] = 0x46; | |
635 | 653 | d->config[0x04] = 0x06; |
636 | 654 | d->config[0x05] = 0x00; |
637 | 655 | d->config[0x06] = 0x80; | ... | ... |