Commit 1931e26054fdf2b1b84091f0b9662979eb6931ec
1 parent
647de6ca
Check the Galilleo config register instead of hardcoding the endianness.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3417 c046a42c-6fe2-441c-8c8c-71466251a162
Showing
1 changed file
with
8 additions
and
22 deletions
hw/gt64xxx.c
| @@ -306,9 +306,8 @@ static void gt64120_writel (void *opaque, target_phys_addr_t addr, | @@ -306,9 +306,8 @@ static void gt64120_writel (void *opaque, target_phys_addr_t addr, | ||
| 306 | GT64120State *s = opaque; | 306 | GT64120State *s = opaque; |
| 307 | uint32_t saddr; | 307 | uint32_t saddr; |
| 308 | 308 | ||
| 309 | -#ifdef TARGET_WORDS_BIGENDIAN | ||
| 310 | - val = bswap32(val); | ||
| 311 | -#endif | 309 | + if (!(s->regs[GT_PCI0_CMD] & 1)) |
| 310 | + val = bswap32(val); | ||
| 312 | 311 | ||
| 313 | saddr = (addr & 0xfff) >> 2; | 312 | saddr = (addr & 0xfff) >> 2; |
| 314 | switch (saddr) { | 313 | switch (saddr) { |
| @@ -528,8 +527,7 @@ static void gt64120_writel (void *opaque, target_phys_addr_t addr, | @@ -528,8 +527,7 @@ static void gt64120_writel (void *opaque, target_phys_addr_t addr, | ||
| 528 | s->pci->config_reg = val & 0x80fffffc; | 527 | s->pci->config_reg = val & 0x80fffffc; |
| 529 | break; | 528 | break; |
| 530 | case GT_PCI0_CFGDATA: | 529 | case GT_PCI0_CFGDATA: |
| 531 | - if (s->pci->config_reg & (1u << 31)) | ||
| 532 | - pci_host_data_writel(s->pci, 0, val); | 530 | + pci_host_data_writel(s->pci, 0, val); |
| 533 | break; | 531 | break; |
| 534 | 532 | ||
| 535 | /* Interrupts */ | 533 | /* Interrupts */ |
| @@ -585,9 +583,7 @@ static uint32_t gt64120_readl (void *opaque, | @@ -585,9 +583,7 @@ static uint32_t gt64120_readl (void *opaque, | ||
| 585 | uint32_t val; | 583 | uint32_t val; |
| 586 | uint32_t saddr; | 584 | uint32_t saddr; |
| 587 | 585 | ||
| 588 | - val = 0; | ||
| 589 | saddr = (addr & 0xfff) >> 2; | 586 | saddr = (addr & 0xfff) >> 2; |
| 590 | - | ||
| 591 | switch (saddr) { | 587 | switch (saddr) { |
| 592 | 588 | ||
| 593 | /* CPU Configuration */ | 589 | /* CPU Configuration */ |
| @@ -768,10 +764,7 @@ static uint32_t gt64120_readl (void *opaque, | @@ -768,10 +764,7 @@ static uint32_t gt64120_readl (void *opaque, | ||
| 768 | val = s->pci->config_reg; | 764 | val = s->pci->config_reg; |
| 769 | break; | 765 | break; |
| 770 | case GT_PCI0_CFGDATA: | 766 | case GT_PCI0_CFGDATA: |
| 771 | - if (!(s->pci->config_reg & (1u << 31))) | ||
| 772 | - val = 0xffffffff; | ||
| 773 | - else | ||
| 774 | - val = pci_host_data_readl(s->pci, 0); | 767 | + val = pci_host_data_readl(s->pci, 0); |
| 775 | break; | 768 | break; |
| 776 | 769 | ||
| 777 | case GT_PCI0_CMD: | 770 | case GT_PCI0_CMD: |
| @@ -844,9 +837,9 @@ static uint32_t gt64120_readl (void *opaque, | @@ -844,9 +837,9 @@ static uint32_t gt64120_readl (void *opaque, | ||
| 844 | break; | 837 | break; |
| 845 | } | 838 | } |
| 846 | 839 | ||
| 847 | -#ifdef TARGET_WORDS_BIGENDIAN | ||
| 848 | - val = bswap32(val); | ||
| 849 | -#endif | 840 | + if (!(s->regs[GT_PCI0_CMD] & 1)) |
| 841 | + val = bswap32(val); | ||
| 842 | + | ||
| 850 | return val; | 843 | return val; |
| 851 | } | 844 | } |
| 852 | 845 | ||
| @@ -1083,19 +1076,12 @@ void gt64120_reset(void *opaque) | @@ -1083,19 +1076,12 @@ void gt64120_reset(void *opaque) | ||
| 1083 | 1076 | ||
| 1084 | static uint32_t gt64120_read_config(PCIDevice *d, uint32_t address, int len) | 1077 | static uint32_t gt64120_read_config(PCIDevice *d, uint32_t address, int len) |
| 1085 | { | 1078 | { |
| 1086 | - uint32_t val = pci_default_read_config(d, address, len); | ||
| 1087 | -#ifdef TARGET_WORDS_BIGENDIAN | ||
| 1088 | - val = bswap32(val); | ||
| 1089 | -#endif | ||
| 1090 | - return val; | 1079 | + return pci_default_read_config(d, address, len); |
| 1091 | } | 1080 | } |
| 1092 | 1081 | ||
| 1093 | static void gt64120_write_config(PCIDevice *d, uint32_t address, uint32_t val, | 1082 | static void gt64120_write_config(PCIDevice *d, uint32_t address, uint32_t val, |
| 1094 | int len) | 1083 | int len) |
| 1095 | { | 1084 | { |
| 1096 | -#ifdef TARGET_WORDS_BIGENDIAN | ||
| 1097 | - val = bswap32(val); | ||
| 1098 | -#endif | ||
| 1099 | pci_default_write_config(d, address, val, len); | 1085 | pci_default_write_config(d, address, val, len); |
| 1100 | } | 1086 | } |
| 1101 | 1087 |