uninorth: remove token register from uninorth device
>From observation of various OS sources it can be seen that the token register
introduced in 4e46dcdbd3
"PPC: Newworld: Add uninorth token register" is not
required, since the only register currently implemented is the uninorth hardware
version which is read-only.
Remove the token register implementation and instead return the uninorth
version corresponding to the hardware.
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
This commit is contained in:
parent
56e7404bc1
commit
45fefe7c4d
@ -524,19 +524,18 @@ static void unin_write(void *opaque, hwaddr addr, uint64_t value,
|
|||||||
unsigned size)
|
unsigned size)
|
||||||
{
|
{
|
||||||
trace_unin_write(addr, value);
|
trace_unin_write(addr, value);
|
||||||
if (addr == 0x0) {
|
|
||||||
*(int *)opaque = value;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static uint64_t unin_read(void *opaque, hwaddr addr, unsigned size)
|
static uint64_t unin_read(void *opaque, hwaddr addr, unsigned size)
|
||||||
{
|
{
|
||||||
uint32_t value;
|
uint32_t value;
|
||||||
|
|
||||||
value = 0;
|
|
||||||
switch (addr) {
|
switch (addr) {
|
||||||
case 0:
|
case 0:
|
||||||
value = *(int *)opaque;
|
value = UNINORTH_VERSION_10A;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
value = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
trace_unin_read(addr, value);
|
trace_unin_read(addr, value);
|
||||||
@ -555,7 +554,7 @@ static void unin_init(Object *obj)
|
|||||||
UNINState *s = UNI_NORTH(obj);
|
UNINState *s = UNI_NORTH(obj);
|
||||||
SysBusDevice *sbd = SYS_BUS_DEVICE(obj);
|
SysBusDevice *sbd = SYS_BUS_DEVICE(obj);
|
||||||
|
|
||||||
memory_region_init_io(&s->mem, obj, &unin_ops, &s->token, "unin", 0x1000);
|
memory_region_init_io(&s->mem, obj, &unin_ops, s, "unin", 0x1000);
|
||||||
|
|
||||||
sysbus_init_mmio(sbd, &s->mem);
|
sysbus_init_mmio(sbd, &s->mem);
|
||||||
}
|
}
|
||||||
|
@ -29,6 +29,9 @@
|
|||||||
|
|
||||||
#include "hw/ppc/openpic.h"
|
#include "hw/ppc/openpic.h"
|
||||||
|
|
||||||
|
/* UniNorth version */
|
||||||
|
#define UNINORTH_VERSION_10A 0x7
|
||||||
|
|
||||||
#define TYPE_UNI_NORTH_PCI_HOST_BRIDGE "uni-north-pci-pcihost"
|
#define TYPE_UNI_NORTH_PCI_HOST_BRIDGE "uni-north-pci-pcihost"
|
||||||
#define TYPE_UNI_NORTH_AGP_HOST_BRIDGE "uni-north-agp-pcihost"
|
#define TYPE_UNI_NORTH_AGP_HOST_BRIDGE "uni-north-agp-pcihost"
|
||||||
#define TYPE_UNI_NORTH_INTERNAL_PCI_HOST_BRIDGE "uni-north-internal-pci-pcihost"
|
#define TYPE_UNI_NORTH_INTERNAL_PCI_HOST_BRIDGE "uni-north-internal-pci-pcihost"
|
||||||
@ -57,7 +60,6 @@ typedef struct UNINState {
|
|||||||
SysBusDevice parent_obj;
|
SysBusDevice parent_obj;
|
||||||
|
|
||||||
MemoryRegion mem;
|
MemoryRegion mem;
|
||||||
int token[1];
|
|
||||||
} UNINState;
|
} UNINState;
|
||||||
|
|
||||||
#define TYPE_UNI_NORTH "uni-north"
|
#define TYPE_UNI_NORTH "uni-north"
|
||||||
|
Loading…
Reference in New Issue
Block a user