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; | ... | ... |