Diff for /qemu/hw/openpic.c between versions 1.1.1.9 and 1.1.1.10

version 1.1.1.9, 2018/04/24 19:26:53 version 1.1.1.10, 2018/04/24 19:46:39
Line 713  static void openpic_timer_write (void *o Line 713  static void openpic_timer_write (void *o
     DPRINTF("%s: addr %08x <= %08x\n", __func__, addr, val);      DPRINTF("%s: addr %08x <= %08x\n", __func__, addr, val);
     if (addr & 0xF)      if (addr & 0xF)
         return;          return;
     addr -= 0x1100;      addr -= 0x10;
     addr &= 0xFFFF;      addr &= 0xFFFF;
     idx = (addr & 0xFFF0) >> 6;      idx = (addr & 0xFFF0) >> 6;
     addr = addr & 0x30;      addr = addr & 0x30;
Line 746  static uint32_t openpic_timer_read (void Line 746  static uint32_t openpic_timer_read (void
     retval = 0xFFFFFFFF;      retval = 0xFFFFFFFF;
     if (addr & 0xF)      if (addr & 0xF)
         return retval;          return retval;
     addr -= 0x1100;      addr -= 0x10;
     addr &= 0xFFFF;      addr &= 0xFFFF;
     idx = (addr & 0xFFF0) >> 6;      idx = (addr & 0xFFF0) >> 6;
     addr = addr & 0x30;      addr = addr & 0x30;
Line 1181  static void openpic_irq_raise(openpic_t  Line 1181  static void openpic_irq_raise(openpic_t 
     qemu_irq_raise(opp->dst[n_CPU].irqs[OPENPIC_OUTPUT_INT]);      qemu_irq_raise(opp->dst[n_CPU].irqs[OPENPIC_OUTPUT_INT]);
 }  }
   
 qemu_irq *openpic_init (PCIBus *bus, MemoryRegion **pmem, int nb_cpus,  qemu_irq *openpic_init (MemoryRegion **pmem, int nb_cpus,
                         qemu_irq **irqs, qemu_irq irq_out)                          qemu_irq **irqs, qemu_irq irq_out)
 {  {
     openpic_t *opp;      openpic_t *opp;
     uint8_t *pci_conf;  
     int i, m;      int i, m;
   
     /* XXX: for now, only one CPU is supported */      /* XXX: for now, only one CPU is supported */
     if (nb_cpus != 1)      if (nb_cpus != 1)
         return NULL;          return NULL;
     if (bus) {      opp = g_malloc0(sizeof(openpic_t));
         opp = (openpic_t *)pci_register_device(bus, "OpenPIC", sizeof(openpic_t),      memory_region_init_io(&opp->mem, &openpic_ops, opp, "openpic", 0x40000);
                                                -1, NULL, NULL);  
         pci_conf = opp->pci_dev.config;  
         pci_config_set_vendor_id(pci_conf, PCI_VENDOR_ID_IBM);  
         pci_config_set_device_id(pci_conf, PCI_DEVICE_ID_IBM_OPENPIC2);  
         pci_config_set_class(pci_conf, PCI_CLASS_SYSTEM_OTHER); // FIXME?  
         pci_conf[0x3d] = 0x00; // no interrupt pin  
   
         memory_region_init_io(&opp->mem, &openpic_ops, opp, "openpic", 0x40000);  
 #if 0 // Don't implement ISU for now  
         opp_io_memory = cpu_register_io_memory(openpic_src_read,  
                                                openpic_src_write, NULL  
                                                DEVICE_NATIVE_ENDIAN);  
         cpu_register_physical_memory(isu_base, 0x20 * (EXT_IRQ + 2),  
                                      opp_io_memory);  
 #endif  
   
         /* Register I/O spaces */  
         pci_register_bar(&opp->pci_dev, 0,  
                          PCI_BASE_ADDRESS_SPACE_MEMORY, &opp->mem);  
     } else {  
         opp = g_malloc0(sizeof(openpic_t));  
         memory_region_init_io(&opp->mem, &openpic_ops, opp, "openpic", 0x40000);  
     }  
   
     //    isu_base &= 0xFFFC0000;      //    isu_base &= 0xFFFC0000;
     opp->nb_cpus = nb_cpus;      opp->nb_cpus = nb_cpus;
Line 1385  static void mpic_src_ext_write (void *op Line 1361  static void mpic_src_ext_write (void *op
     if (addr & 0xF)      if (addr & 0xF)
         return;          return;
   
     addr -= MPIC_EXT_REG_START & (OPENPIC_PAGE_SIZE - 1);  
     if (addr < MPIC_EXT_REG_SIZE) {      if (addr < MPIC_EXT_REG_SIZE) {
         idx += (addr & 0xFFF0) >> 5;          idx += (addr & 0xFFF0) >> 5;
         if (addr & 0x10) {          if (addr & 0x10) {
Line 1409  static uint32_t mpic_src_ext_read (void  Line 1384  static uint32_t mpic_src_ext_read (void 
     if (addr & 0xF)      if (addr & 0xF)
         return retval;          return retval;
   
     addr -= MPIC_EXT_REG_START & (OPENPIC_PAGE_SIZE - 1);  
     if (addr < MPIC_EXT_REG_SIZE) {      if (addr < MPIC_EXT_REG_SIZE) {
         idx += (addr & 0xFFF0) >> 5;          idx += (addr & 0xFFF0) >> 5;
         if (addr & 0x10) {          if (addr & 0x10) {
Line 1435  static void mpic_src_int_write (void *op Line 1409  static void mpic_src_int_write (void *op
     if (addr & 0xF)      if (addr & 0xF)
         return;          return;
   
     addr -= MPIC_INT_REG_START & (OPENPIC_PAGE_SIZE - 1);  
     if (addr < MPIC_INT_REG_SIZE) {      if (addr < MPIC_INT_REG_SIZE) {
         idx += (addr & 0xFFF0) >> 5;          idx += (addr & 0xFFF0) >> 5;
         if (addr & 0x10) {          if (addr & 0x10) {
Line 1459  static uint32_t mpic_src_int_read (void  Line 1432  static uint32_t mpic_src_int_read (void 
     if (addr & 0xF)      if (addr & 0xF)
         return retval;          return retval;
   
     addr -= MPIC_INT_REG_START & (OPENPIC_PAGE_SIZE - 1);  
     if (addr < MPIC_INT_REG_SIZE) {      if (addr < MPIC_INT_REG_SIZE) {
         idx += (addr & 0xFFF0) >> 5;          idx += (addr & 0xFFF0) >> 5;
         if (addr & 0x10) {          if (addr & 0x10) {
Line 1485  static void mpic_src_msg_write (void *op Line 1457  static void mpic_src_msg_write (void *op
     if (addr & 0xF)      if (addr & 0xF)
         return;          return;
   
     addr -= MPIC_MSG_REG_START & (OPENPIC_PAGE_SIZE - 1);  
     if (addr < MPIC_MSG_REG_SIZE) {      if (addr < MPIC_MSG_REG_SIZE) {
         idx += (addr & 0xFFF0) >> 5;          idx += (addr & 0xFFF0) >> 5;
         if (addr & 0x10) {          if (addr & 0x10) {
Line 1509  static uint32_t mpic_src_msg_read (void  Line 1480  static uint32_t mpic_src_msg_read (void 
     if (addr & 0xF)      if (addr & 0xF)
         return retval;          return retval;
   
     addr -= MPIC_MSG_REG_START & (OPENPIC_PAGE_SIZE - 1);  
     if (addr < MPIC_MSG_REG_SIZE) {      if (addr < MPIC_MSG_REG_SIZE) {
         idx += (addr & 0xFFF0) >> 5;          idx += (addr & 0xFFF0) >> 5;
         if (addr & 0x10) {          if (addr & 0x10) {
Line 1535  static void mpic_src_msi_write (void *op Line 1505  static void mpic_src_msi_write (void *op
     if (addr & 0xF)      if (addr & 0xF)
         return;          return;
   
     addr -= MPIC_MSI_REG_START & (OPENPIC_PAGE_SIZE - 1);  
     if (addr < MPIC_MSI_REG_SIZE) {      if (addr < MPIC_MSI_REG_SIZE) {
         idx += (addr & 0xFFF0) >> 5;          idx += (addr & 0xFFF0) >> 5;
         if (addr & 0x10) {          if (addr & 0x10) {
Line 1558  static uint32_t mpic_src_msi_read (void  Line 1527  static uint32_t mpic_src_msi_read (void 
     if (addr & 0xF)      if (addr & 0xF)
         return retval;          return retval;
   
     addr -= MPIC_MSI_REG_START & (OPENPIC_PAGE_SIZE - 1);  
     if (addr < MPIC_MSI_REG_SIZE) {      if (addr < MPIC_MSI_REG_SIZE) {
         idx += (addr & 0xFFF0) >> 5;          idx += (addr & 0xFFF0) >> 5;
         if (addr & 0x10) {          if (addr & 0x10) {

Removed from v.1.1.1.9  
changed lines
  Added in v.1.1.1.10


unix.superglobalmegacorp.com