mirror of
https://github.com/xemu-project/xemu.git
synced 2024-11-28 14:00:44 +00:00
Fix UniNorth
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6562 c046a42c-6fe2-441c-8c8c-71466251a162
This commit is contained in:
parent
4f3f238b42
commit
e972b3ad26
@ -44,22 +44,13 @@ static void pci_unin_main_config_writel (void *opaque, target_phys_addr_t addr,
|
|||||||
uint32_t val)
|
uint32_t val)
|
||||||
{
|
{
|
||||||
UNINState *s = opaque;
|
UNINState *s = opaque;
|
||||||
int i;
|
|
||||||
|
|
||||||
UNIN_DPRINTF("config_writel addr " TARGET_FMT_plx " val %x\n", addr, val);
|
UNIN_DPRINTF("config_writel addr " TARGET_FMT_plx " val %x\n", addr, val);
|
||||||
#ifdef TARGET_WORDS_BIGENDIAN
|
#ifdef TARGET_WORDS_BIGENDIAN
|
||||||
val = bswap32(val);
|
val = bswap32(val);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
for (i = 11; i < 32; i++) {
|
s->config_reg = val;
|
||||||
if ((val & (1 << i)) != 0)
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
#if 0
|
|
||||||
s->config_reg = 0x80000000 | (1 << 16) | (val & 0x7FC) | (i << 11);
|
|
||||||
#else
|
|
||||||
s->config_reg = 0x80000000 | (0 << 16) | (val & 0x7FC) | (i << 11);
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static uint32_t pci_unin_main_config_readl (void *opaque,
|
static uint32_t pci_unin_main_config_readl (void *opaque,
|
||||||
@ -67,10 +58,8 @@ static uint32_t pci_unin_main_config_readl (void *opaque,
|
|||||||
{
|
{
|
||||||
UNINState *s = opaque;
|
UNINState *s = opaque;
|
||||||
uint32_t val;
|
uint32_t val;
|
||||||
int devfn;
|
|
||||||
|
|
||||||
devfn = (s->config_reg >> 8) & 0xFF;
|
val = s->config_reg;
|
||||||
val = (1 << (devfn >> 3)) | ((devfn & 0x07) << 8) | (s->config_reg & 0xFC);
|
|
||||||
#ifdef TARGET_WORDS_BIGENDIAN
|
#ifdef TARGET_WORDS_BIGENDIAN
|
||||||
val = bswap32(val);
|
val = bswap32(val);
|
||||||
#endif
|
#endif
|
||||||
|
Loading…
Reference in New Issue
Block a user