Revision 5c4532ee

b/Makefile.objs
149 149
hw-obj-$(CONFIG_USB_OHCI) += usb-ohci.o
150 150
hw-obj-$(CONFIG_FDC) += fdc.o
151 151
hw-obj-$(CONFIG_ACPI) += acpi.o
152
hw-obj-$(CONFIG_OPENPIC) += openpic.o
152 153

  
153 154
# PCI watchdog devices
154 155
hw-obj-y += wdt_i6300esb.o
b/Makefile.target
191 191

  
192 192
# shared objects
193 193
obj-ppc-y = ppc.o
194
obj-ppc-y += vga.o dma.o openpic.o
194
obj-ppc-y += vga.o dma.o
195 195
# PREP target
196 196
obj-ppc-y += pckbd.o i8259.o mc146818rtc.o
197 197
obj-ppc-y += prep_pci.o ppc_prep.o
b/default-configs/ppc-softmmu.mak
9 9
CONFIG_SERIAL=y
10 10
CONFIG_I8254=y
11 11
CONFIG_FDC=y
12
CONFIG_OPENPIC=y
12 13
CONFIG_IDE_CORE=y
13 14
CONFIG_IDE_QDEV=y
14 15
CONFIG_IDE_PCI=y
b/default-configs/ppc64-softmmu.mak
9 9
CONFIG_SERIAL=y
10 10
CONFIG_I8254=y
11 11
CONFIG_FDC=y
12
CONFIG_OPENPIC=y
12 13
CONFIG_IDE_CORE=y
13 14
CONFIG_IDE_QDEV=y
14 15
CONFIG_IDE_PCI=y
b/default-configs/ppcemb-softmmu.mak
9 9
CONFIG_SERIAL=y
10 10
CONFIG_I8254=y
11 11
CONFIG_FDC=y
12
CONFIG_OPENPIC=y
12 13
CONFIG_IDE_CORE=y
13 14
CONFIG_IDE_QDEV=y
14 15
CONFIG_IDE_PCI=y
b/hw/openpic.c
141 141
#error "Please select which OpenPic implementation is to be emulated"
142 142
#endif
143 143

  
144
#define OPENPIC_PAGE_SIZE 4096
145

  
144 146
#define BF_WIDTH(_bits_) \
145 147
(((_bits_) + (sizeof(uint32_t) * 8) - 1) / (sizeof(uint32_t) * 8))
146 148

  
......
597 599
    DPRINTF("%s: addr " TARGET_FMT_plx " <= %08x\n", __func__, addr, val);
598 600
    if (addr & 0xF)
599 601
        return;
600
#if defined TARGET_WORDS_BIGENDIAN
601 602
    val = openpic_swap32(opp, val);
602
#endif
603 603
    addr &= 0xFF;
604 604
    switch (addr) {
605 605
    case 0x00: /* FREP */
......
693 693
        break;
694 694
    }
695 695
    DPRINTF("%s: => %08x\n", __func__, retval);
696
#if defined TARGET_WORDS_BIGENDIAN
697 696
    retval = openpic_swap32(opp, retval);
698
#endif
699 697

  
700 698
    return retval;
701 699
}
......
708 706
    DPRINTF("%s: addr %08x <= %08x\n", __func__, addr, val);
709 707
    if (addr & 0xF)
710 708
        return;
711
#if defined TARGET_WORDS_BIGENDIAN
712 709
    val = openpic_swap32(opp, val);
713
#endif
714 710
    addr -= 0x1100;
715 711
    addr &= 0xFFFF;
716 712
    idx = (addr & 0xFFF0) >> 6;
......
763 759
        break;
764 760
    }
765 761
    DPRINTF("%s: => %08x\n", __func__, retval);
766
#if defined TARGET_WORDS_BIGENDIAN
767 762
    retval = openpic_swap32(opp, retval);
768
#endif
769 763

  
770 764
    return retval;
771 765
}
......
778 772
    DPRINTF("%s: addr %08x <= %08x\n", __func__, addr, val);
779 773
    if (addr & 0xF)
780 774
        return;
781
#if defined TARGET_WORDS_BIGENDIAN
782 775
    val = openpic_swap32(opp, val);
783
#endif
784 776
    addr = addr & 0xFFF0;
785 777
    idx = addr >> 5;
786 778
    if (addr & 0x10) {
......
812 804
        retval = read_IRQreg(opp, idx, IRQ_IPVP);
813 805
    }
814 806
    DPRINTF("%s: => %08x\n", __func__, retval);
815
#if defined TARGET_WORDS_BIGENDIAN
816 807
    retval = openpic_swap32(opp, retval);
817
#endif
818 808

  
819 809
    return retval;
820 810
}
......
829 819
    DPRINTF("%s: addr " TARGET_FMT_plx " <= %08x\n", __func__, addr, val);
830 820
    if (addr & 0xF)
831 821
        return;
832
#if defined TARGET_WORDS_BIGENDIAN
833 822
    val = openpic_swap32(opp, val);
834
#endif
835 823
    addr &= 0x1FFF0;
836 824
    idx = addr / 0x1000;
837 825
    dst = &opp->dst[idx];
......
949 937
        break;
950 938
    }
951 939
    DPRINTF("%s: => %08x\n", __func__, retval);
952
#if defined TARGET_WORDS_BIGENDIAN
953 940
    retval = openpic_swap32(opp, retval);
954
#endif
955 941

  
956 942
    return retval;
957 943
}
......
1384 1370
    if (addr & 0xF)
1385 1371
        return;
1386 1372

  
1387
    addr -= MPIC_EXT_REG_START & (TARGET_PAGE_SIZE - 1);
1373
    addr -= MPIC_EXT_REG_START & (OPENPIC_PAGE_SIZE - 1);
1388 1374
    if (addr < MPIC_EXT_REG_SIZE) {
1389 1375
        idx += (addr & 0xFFF0) >> 5;
1390 1376
        if (addr & 0x10) {
......
1408 1394
    if (addr & 0xF)
1409 1395
        return retval;
1410 1396

  
1411
    addr -= MPIC_EXT_REG_START & (TARGET_PAGE_SIZE - 1);
1397
    addr -= MPIC_EXT_REG_START & (OPENPIC_PAGE_SIZE - 1);
1412 1398
    if (addr < MPIC_EXT_REG_SIZE) {
1413 1399
        idx += (addr & 0xFFF0) >> 5;
1414 1400
        if (addr & 0x10) {
......
1434 1420
    if (addr & 0xF)
1435 1421
        return;
1436 1422

  
1437
    addr -= MPIC_INT_REG_START & (TARGET_PAGE_SIZE - 1);
1423
    addr -= MPIC_INT_REG_START & (OPENPIC_PAGE_SIZE - 1);
1438 1424
    if (addr < MPIC_INT_REG_SIZE) {
1439 1425
        idx += (addr & 0xFFF0) >> 5;
1440 1426
        if (addr & 0x10) {
......
1458 1444
    if (addr & 0xF)
1459 1445
        return retval;
1460 1446

  
1461
    addr -= MPIC_INT_REG_START & (TARGET_PAGE_SIZE - 1);
1447
    addr -= MPIC_INT_REG_START & (OPENPIC_PAGE_SIZE - 1);
1462 1448
    if (addr < MPIC_INT_REG_SIZE) {
1463 1449
        idx += (addr & 0xFFF0) >> 5;
1464 1450
        if (addr & 0x10) {
......
1484 1470
    if (addr & 0xF)
1485 1471
        return;
1486 1472

  
1487
    addr -= MPIC_MSG_REG_START & (TARGET_PAGE_SIZE - 1);
1473
    addr -= MPIC_MSG_REG_START & (OPENPIC_PAGE_SIZE - 1);
1488 1474
    if (addr < MPIC_MSG_REG_SIZE) {
1489 1475
        idx += (addr & 0xFFF0) >> 5;
1490 1476
        if (addr & 0x10) {
......
1508 1494
    if (addr & 0xF)
1509 1495
        return retval;
1510 1496

  
1511
    addr -= MPIC_MSG_REG_START & (TARGET_PAGE_SIZE - 1);
1497
    addr -= MPIC_MSG_REG_START & (OPENPIC_PAGE_SIZE - 1);
1512 1498
    if (addr < MPIC_MSG_REG_SIZE) {
1513 1499
        idx += (addr & 0xFFF0) >> 5;
1514 1500
        if (addr & 0x10) {
......
1534 1520
    if (addr & 0xF)
1535 1521
        return;
1536 1522

  
1537
    addr -= MPIC_MSI_REG_START & (TARGET_PAGE_SIZE - 1);
1523
    addr -= MPIC_MSI_REG_START & (OPENPIC_PAGE_SIZE - 1);
1538 1524
    if (addr < MPIC_MSI_REG_SIZE) {
1539 1525
        idx += (addr & 0xFFF0) >> 5;
1540 1526
        if (addr & 0x10) {
......
1557 1543
    if (addr & 0xF)
1558 1544
        return retval;
1559 1545

  
1560
    addr -= MPIC_MSI_REG_START & (TARGET_PAGE_SIZE - 1);
1546
    addr -= MPIC_MSI_REG_START & (OPENPIC_PAGE_SIZE - 1);
1561 1547
    if (addr < MPIC_MSI_REG_SIZE) {
1562 1548
        idx += (addr & 0xFFF0) >> 5;
1563 1549
        if (addr & 0x10) {

Also available in: Unified diff