Revision 1931e260 hw/gt64xxx.c
b/hw/gt64xxx.c | ||
---|---|---|
306 | 306 |
GT64120State *s = opaque; |
307 | 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 | 312 |
saddr = (addr & 0xfff) >> 2; |
314 | 313 |
switch (saddr) { |
... | ... | |
528 | 527 |
s->pci->config_reg = val & 0x80fffffc; |
529 | 528 |
break; |
530 | 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 | 531 |
break; |
534 | 532 |
|
535 | 533 |
/* Interrupts */ |
... | ... | |
585 | 583 |
uint32_t val; |
586 | 584 |
uint32_t saddr; |
587 | 585 |
|
588 |
val = 0; |
|
589 | 586 |
saddr = (addr & 0xfff) >> 2; |
590 |
|
|
591 | 587 |
switch (saddr) { |
592 | 588 |
|
593 | 589 |
/* CPU Configuration */ |
... | ... | |
768 | 764 |
val = s->pci->config_reg; |
769 | 765 |
break; |
770 | 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 | 768 |
break; |
776 | 769 |
|
777 | 770 |
case GT_PCI0_CMD: |
... | ... | |
844 | 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 | 843 |
return val; |
851 | 844 |
} |
852 | 845 |
|
... | ... | |
1083 | 1076 |
|
1084 | 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 | 1082 |
static void gt64120_write_config(PCIDevice *d, uint32_t address, uint32_t val, |
1094 | 1083 |
int len) |
1095 | 1084 |
{ |
1096 |
#ifdef TARGET_WORDS_BIGENDIAN |
|
1097 |
val = bswap32(val); |
|
1098 |
#endif |
|
1099 | 1085 |
pci_default_write_config(d, address, val, len); |
1100 | 1086 |
} |
1101 | 1087 |
|
Also available in: Unified diff