Fixed ACPI.
This commit is contained in:
34
src/acpi.c
34
src/acpi.c
@@ -286,12 +286,11 @@ static uint32_t
|
|||||||
acpi_reg_readl(uint16_t addr, void *p)
|
acpi_reg_readl(uint16_t addr, void *p)
|
||||||
{
|
{
|
||||||
uint32_t ret = 0x00000000;
|
uint32_t ret = 0x00000000;
|
||||||
int i;
|
|
||||||
|
|
||||||
for (i = 0; i < 4; i++) {
|
ret = acpi_reg_read_common(4, addr, p);
|
||||||
ret <<= 8;
|
ret |= (acpi_reg_read_common(4, addr + 1, p) << 8);
|
||||||
ret |= acpi_reg_read_common(4, addr + i, p);
|
ret |= (acpi_reg_read_common(4, addr + 2, p) << 16);
|
||||||
}
|
ret |= (acpi_reg_read_common(4, addr + 3, p) << 24);
|
||||||
|
|
||||||
acpi_log("ACPI: Read L %08X from %04X\n", ret, addr);
|
acpi_log("ACPI: Read L %08X from %04X\n", ret, addr);
|
||||||
|
|
||||||
@@ -303,12 +302,9 @@ static uint16_t
|
|||||||
acpi_reg_readw(uint16_t addr, void *p)
|
acpi_reg_readw(uint16_t addr, void *p)
|
||||||
{
|
{
|
||||||
uint16_t ret = 0x0000;
|
uint16_t ret = 0x0000;
|
||||||
int i;
|
|
||||||
|
|
||||||
for (i = 0; i < 2; i++) {
|
ret = acpi_reg_read_common(2, addr, p);
|
||||||
ret <<= 8;
|
ret |= (acpi_reg_read_common(2, addr + 1, p) << 8);
|
||||||
ret |= acpi_reg_read_common(2, addr + i, p);
|
|
||||||
}
|
|
||||||
|
|
||||||
acpi_log("ACPI: Read W %08X from %04X\n", ret, addr);
|
acpi_log("ACPI: Read W %08X from %04X\n", ret, addr);
|
||||||
|
|
||||||
@@ -330,24 +326,18 @@ acpi_reg_read(uint16_t addr, void *p)
|
|||||||
static void
|
static void
|
||||||
acpi_reg_writel(uint16_t addr, uint32_t val, void *p)
|
acpi_reg_writel(uint16_t addr, uint32_t val, void *p)
|
||||||
{
|
{
|
||||||
int i = 0;
|
acpi_reg_write_common(4, addr, val & 0xff, p);
|
||||||
|
acpi_reg_write_common(4, addr + 1, (val >> 8) & 0xff, p);
|
||||||
for (i = 0; i < 4; i++) {
|
acpi_reg_write_common(4, addr + 1, (val >> 16) & 0xff, p);
|
||||||
acpi_reg_write_common(4, addr + i, val & 0xff, p);
|
acpi_reg_write_common(4, addr + 1, (val >> 24) & 0xff, p);
|
||||||
val >>= 8;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
acpi_reg_writew(uint16_t addr, uint16_t val, void *p)
|
acpi_reg_writew(uint16_t addr, uint16_t val, void *p)
|
||||||
{
|
{
|
||||||
int i = 0;
|
acpi_reg_write_common(2, addr, val & 0xff, p);
|
||||||
|
acpi_reg_write_common(2, addr + 1, (val >> 8) & 0xff, p);
|
||||||
for (i = 0; i < 2; i++) {
|
|
||||||
acpi_reg_write_common(2, addr + i, val & 0xff, p);
|
|
||||||
val >>= 8;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@@ -406,9 +406,9 @@ usb_smsc_mmio_read(uint32_t addr, void *p)
|
|||||||
piix_t *dev = (piix_t *) p;
|
piix_t *dev = (piix_t *) p;
|
||||||
uint8_t ret = 0x00;
|
uint8_t ret = 0x00;
|
||||||
|
|
||||||
/* addr &= 0x00000fff;
|
addr &= 0x00000fff;
|
||||||
|
|
||||||
ret = dev->usb_smsc_mmio[addr]; */
|
ret = dev->usb_smsc_mmio[addr];
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
@@ -460,7 +460,7 @@ nvr_update_io_mapping(piix_t *dev)
|
|||||||
dev->nvr_io_base = (dev->regs[0][0xd5] << 8) | (dev->regs[0][0xd4] & 0xf0);
|
dev->nvr_io_base = (dev->regs[0][0xd5] << 8) | (dev->regs[0][0xd4] & 0xf0);
|
||||||
else
|
else
|
||||||
dev->nvr_io_base = 0x70;
|
dev->nvr_io_base = 0x70;
|
||||||
pclog("New NVR I/O base: %04X\n", dev->nvr_io_base);
|
piix_log("New NVR I/O base: %04X\n", dev->nvr_io_base);
|
||||||
|
|
||||||
/* if (dev->type == 4)
|
/* if (dev->type == 4)
|
||||||
enabled2 = (dev->regs[2][0xff] & 0x10); */
|
enabled2 = (dev->regs[2][0xff] & 0x10); */
|
||||||
|
Reference in New Issue
Block a user