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,7 +550,7 @@ void gt64120_reset(void *opaque) | ||
550 | #ifdef TARGET_WORDS_BIGENDIAN | 550 | #ifdef TARGET_WORDS_BIGENDIAN |
551 | s->regs[GT_CPU] = 0x00000000; | 551 | s->regs[GT_CPU] = 0x00000000; |
552 | #else | 552 | #else |
553 | - s->regs[GT_CPU] = 0x00000800; | 553 | + s->regs[GT_CPU] = 0x00001000; |
554 | #endif | 554 | #endif |
555 | s->regs[GT_MULTI] = 0x00000000; | 555 | s->regs[GT_MULTI] = 0x00000000; |
556 | 556 | ||
@@ -608,6 +608,24 @@ void gt64120_reset(void *opaque) | @@ -608,6 +608,24 @@ void gt64120_reset(void *opaque) | ||
608 | gt64120_pci_mapping(s); | 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 | PCIBus *pci_gt64120_init(qemu_irq *pic) | 629 | PCIBus *pci_gt64120_init(qemu_irq *pic) |
612 | { | 630 | { |
613 | GT64120State *s; | 631 | GT64120State *s; |
@@ -626,12 +644,12 @@ PCIBus *pci_gt64120_init(qemu_irq *pic) | @@ -626,12 +644,12 @@ PCIBus *pci_gt64120_init(qemu_irq *pic) | ||
626 | cpu_register_physical_memory(0x1be00000LL, 0x1000, gt64120); | 644 | cpu_register_physical_memory(0x1be00000LL, 0x1000, gt64120); |
627 | 645 | ||
628 | d = pci_register_device(s->pci->bus, "GT64120 PCI Bus", sizeof(PCIDevice), | 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 | d->config[0x00] = 0xab; // vendor_id | 649 | d->config[0x00] = 0xab; // vendor_id |
632 | d->config[0x01] = 0x11; | 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 | d->config[0x04] = 0x06; | 653 | d->config[0x04] = 0x06; |
636 | d->config[0x05] = 0x00; | 654 | d->config[0x05] = 0x00; |
637 | d->config[0x06] = 0x80; | 655 | d->config[0x06] = 0x80; |