Lines Matching +full:0 +full:x000ff000

94     case 0x0008:  in elroy_chip_read_with_attrs()
95 val = 0x6000005; /* func_class */ in elroy_chip_read_with_attrs()
97 case 0x0058: in elroy_chip_read_with_attrs()
106 case 0x0080: in elroy_chip_read_with_attrs()
109 case 0x0108: in elroy_chip_read_with_attrs()
112 case 0x200 ... 0x250 - 1: /* LMMIO, GMMIO, WLMMIO, WGMMIO, ... */ in elroy_chip_read_with_attrs()
113 index = (addr - 0x200) / 8; in elroy_chip_read_with_attrs()
116 case 0x0680: in elroy_chip_read_with_attrs()
119 case 0x0688: in elroy_chip_read_with_attrs()
120 val = 0; /* ERROR_STATUS */ in elroy_chip_read_with_attrs()
122 case 0x0800: /* IOSAPIC_REG_SELECT */ in elroy_chip_read_with_attrs()
125 case 0x0810: /* IOSAPIC_REG_WINDOW */ in elroy_chip_read_with_attrs()
127 case 0x01: /* IOSAPIC_REG_VERSION */ in elroy_chip_read_with_attrs()
142 val = 0; in elroy_chip_read_with_attrs()
146 val = ~0; in elroy_chip_read_with_attrs()
171 case 0x000: /* PCI_ID & PCI_COMMAND_STATUS_REG */ in elroy_chip_write_with_attrs()
173 case 0x080: in elroy_chip_write_with_attrs()
176 case 0x0108: in elroy_chip_write_with_attrs()
179 case 0x200 ... 0x250 - 1: /* LMMIO, GMMIO, WLMMIO, WGMMIO, ... */ in elroy_chip_write_with_attrs()
180 put_val_in_arrary(s->mmio_base, 0x200, addr, size, val); in elroy_chip_write_with_attrs()
182 case 0x300: /* ibase */ in elroy_chip_write_with_attrs()
183 case 0x308: /* imask */ in elroy_chip_write_with_attrs()
185 case 0x0680: in elroy_chip_write_with_attrs()
188 case 0x0800: /* IOSAPIC_REG_SELECT */ in elroy_chip_write_with_attrs()
191 case 0x0810: /* IOSAPIC_REG_WINDOW */ in elroy_chip_write_with_attrs()
199 case 0x0840: /* IOSAPIC_REG_EOI */ in elroy_chip_write_with_attrs()
202 for (i = 0; i < ELROY_IRQS; i++) { in elroy_chip_write_with_attrs()
203 if ((s->iosapic_reg[0x10 + 2 * i] & 63) == val) { in elroy_chip_write_with_attrs()
290 hwaddr addr_mask = 0xfff; /* 4k translation */ in astro_translate_iommu()
295 #define SBA_PDIR_VALID_BIT 0x8000000000000000ULL in astro_translate_iommu()
302 * language which not-coincidentally matches the PSW.W=0 mapping. in astro_translate_iommu()
311 if ((s->tlb_ibase & 1) == 0) { in astro_translate_iommu()
357 * base_addr == 0xfffa0000, we want to get 0xa0ff0000.
358 * eid 0x0ff00000 -> 0x00ff0000
359 * id 0x000ff000 -> 0xff000000
362 ((((a) & 0x0ff00000) >> 4) | (((a) & 0x000ff000) << 12))
364 (((((a) << 4) & 0x0ff00000) | (((a) >> 12) & 0x000ff000) | 0xf0000000))
367 #define IOSAPIC_IRDT_DISABLE 0x10000 /* if bit is set, mask this irq */
368 #define IOSAPIC_IRDT_PO_LOW 0x02000
369 #define IOSAPIC_IRDT_LEVEL_TRIG 0x08000
370 #define IOSAPIC_IRDT_MODE_LPRI 0x00100
382 val = s->iosapic_reg[0x10 + 2 * irq]; in elroy_set_irq()
383 cpu_hpa = s->iosapic_reg[0x11 + 2 * irq]; in elroy_set_irq()
391 if (ena != 0) { in elroy_set_irq()
403 assert(irq_num >= 0 && irq_num < ELROY_IRQS); in elroy_pci_map_irq()
417 s->ilr = 0; in elroy_reset()
418 for (irq = 0; irq < ELROY_IRQS; irq++) { in elroy_reset()
419 s->iosapic_reg[0x10 + 2 * irq] = IOSAPIC_IRDT_PO_LOW | in elroy_reset()
422 s->iosapic_reg[0x11 + 2 * irq] = SWIZZLE_HPA(CPU_HPA); in elroy_reset()
434 s, "elroy", 0x2000); in elroy_pcihost_init()
443 memory_region_add_subregion(&s->this_mem, 0x40, in elroy_pcihost_init()
445 memory_region_add_subregion(&s->this_mem, 0x48, in elroy_pcihost_init()
457 PCI_DEVFN(0, 0), ELROY_IRQS, TYPE_PCI_BUS); in elroy_pcihost_init()
479 VMSTATE_UINT64_ARRAY(mmio_base, ElroyState, (0x0250 - 0x200) / 8),
482 VMSTATE_UINT64_ARRAY(iosapic_reg, ElroyState, 0x20),
540 case 0x0000: /* ID */ in astro_chip_read_with_attrs()
541 val = (0x01 << 3) | 0x01ULL; in astro_chip_read_with_attrs()
543 case 0x0008: /* IOC_CTRL */ in astro_chip_read_with_attrs()
546 case 0x0010: /* TOC_CLIENT_ID */ in astro_chip_read_with_attrs()
548 case 0x0030: /* HP-UX 10.20 and 11.11 reads it. No idea. */ in astro_chip_read_with_attrs()
551 case 0x0078: /* NetBSD reads 0x78 ? */ in astro_chip_read_with_attrs()
554 case 0x0300 ... 0x03d8: /* LMMIO_DIRECT0_BASE... */ in astro_chip_read_with_attrs()
555 index = (addr - 0x300) / 8; in astro_chip_read_with_attrs()
558 case 0x10200: in astro_chip_read_with_attrs()
559 val = 0; in astro_chip_read_with_attrs()
561 case 0x10220: in astro_chip_read_with_attrs()
562 case 0x10230: /* HP-UX 11.11 reads it. No idea. */ in astro_chip_read_with_attrs()
565 case 0x22108: /* IOC STATUS_CONTROL */ in astro_chip_read_with_attrs()
568 case 0x20200 ... 0x20240 - 1: /* IOC Rope0_Control ... */ in astro_chip_read_with_attrs()
569 index = (addr - 0x20200) / 8; in astro_chip_read_with_attrs()
572 case 0x20040: /* IOC Rope config */ in astro_chip_read_with_attrs()
575 case 0x20050: /* IOC Rope debug */ in astro_chip_read_with_attrs()
576 val = 0; in astro_chip_read_with_attrs()
578 case 0x20108: /* IOC STATUS_CONTROL */ in astro_chip_read_with_attrs()
581 case 0x20310: /* IOC_PCOM */ in astro_chip_read_with_attrs()
585 case 0x20400: in astro_chip_read_with_attrs()
589 #define EMPTY_PORT(x) case x: case x+8: val = 0; break; \ in astro_chip_read_with_attrs()
591 EMPTY_PORT(0x30000) in astro_chip_read_with_attrs()
592 EMPTY_PORT(0x32000) in astro_chip_read_with_attrs()
593 EMPTY_PORT(0x34000) in astro_chip_read_with_attrs()
594 EMPTY_PORT(0x36000) in astro_chip_read_with_attrs()
595 EMPTY_PORT(0x38000) in astro_chip_read_with_attrs()
596 EMPTY_PORT(0x3a000) in astro_chip_read_with_attrs()
597 EMPTY_PORT(0x3c000) in astro_chip_read_with_attrs()
598 EMPTY_PORT(0x3e000) in astro_chip_read_with_attrs()
602 val = 0; in astro_chip_read_with_attrs()
624 case 0x0000: /* ID */ in astro_chip_write_with_attrs()
626 case 0x0008: /* IOC_CTRL */ in astro_chip_write_with_attrs()
627 val &= 0x0ffffff; in astro_chip_write_with_attrs()
630 case 0x0010: /* TOC_CLIENT_ID */ in astro_chip_write_with_attrs()
632 case 0x0030: /* HP-UX 10.20 and 11.11 reads it. No idea. */ in astro_chip_write_with_attrs()
634 case 0x0300 ... 0x03d8 - 1: /* LMMIO_DIRECT0_BASE... */ in astro_chip_write_with_attrs()
635 put_val_in_arrary(s->ioc_ranges, 0x300, addr, size, val); in astro_chip_write_with_attrs()
637 case 0x10200: in astro_chip_write_with_attrs()
638 case 0x10220: in astro_chip_write_with_attrs()
639 case 0x10230: /* HP-UX 11.11 reads it. No idea. */ in astro_chip_write_with_attrs()
641 case 0x20200 ... 0x20240 - 1: /* IOC Rope0_Control ... */ in astro_chip_write_with_attrs()
642 put_val_in_arrary(s->ioc_rope_control, 0x20200, addr, size, val); in astro_chip_write_with_attrs()
644 case 0x20040: /* IOC Rope config */ in astro_chip_write_with_attrs()
645 case 0x22040: in astro_chip_write_with_attrs()
648 case 0x20300: in astro_chip_write_with_attrs()
649 case 0x22300: in astro_chip_write_with_attrs()
652 case 0x20308: in astro_chip_write_with_attrs()
653 case 0x22308: in astro_chip_write_with_attrs()
656 case 0x20310: in astro_chip_write_with_attrs()
657 case 0x22310: in astro_chip_write_with_attrs()
661 case 0x20318: in astro_chip_write_with_attrs()
662 case 0x22318: in astro_chip_write_with_attrs()
665 case 0x20320: in astro_chip_write_with_attrs()
666 case 0x22320: in astro_chip_write_with_attrs()
669 case 0x22000: /* func_id */ in astro_chip_write_with_attrs()
671 case 0x22008: /* func_class */ in astro_chip_write_with_attrs()
673 case 0x22050: /* rope_debug */ in astro_chip_write_with_attrs()
675 case 0x22108: /* IOC STATUS_CONTROL */ in astro_chip_write_with_attrs()
682 #define EMPTY_PORT(x) case x: case x+8: case x+0x40: case x+0x48: in astro_chip_write_with_attrs()
683 EMPTY_PORT(0x30000) in astro_chip_write_with_attrs()
684 EMPTY_PORT(0x32000) in astro_chip_write_with_attrs()
685 EMPTY_PORT(0x34000) in astro_chip_write_with_attrs()
686 EMPTY_PORT(0x36000) in astro_chip_write_with_attrs()
687 EMPTY_PORT(0x38000) in astro_chip_write_with_attrs()
688 EMPTY_PORT(0x3a000) in astro_chip_write_with_attrs()
689 EMPTY_PORT(0x3c000) in astro_chip_write_with_attrs()
690 EMPTY_PORT(0x3e000) in astro_chip_write_with_attrs()
721 VMSTATE_UINT64_ARRAY(ioc_ranges, AstroState, (0x03d8 - 0x300) / 8),
740 s->ioc_ctrl = 0x29cf; in astro_reset()
741 s->ioc_rope_config = 0xc5f; in astro_reset()
742 s->ioc_flush_control = 0xb03; in astro_reset()
743 s->ioc_status_control = 0; in astro_reset()
744 memset(&s->ioc_rope_control, 0, sizeof(s->ioc_rope_control)); in astro_reset()
750 memset(&s->ioc_ranges, 0, sizeof(s->ioc_ranges)); in astro_reset()
751 s->ioc_ranges[(0x360 - 0x300) / 8] = LMMIO_DIST_BASE_ADDR | 0x01; /* LMMIO_DIST_BASE (SBA) */ in astro_reset()
752 s->ioc_ranges[(0x368 - 0x300) / 8] = 0xfc000000; /* LMMIO_DIST_MASK */ in astro_reset()
753 s->ioc_ranges[(0x370 - 0x300) / 8] = 0; /* LMMIO_DIST_ROUTE */ in astro_reset()
754 s->ioc_ranges[(0x390 - 0x300) / 8] = IOS_DIST_BASE_ADDR | 0x01; /* IOS_DIST_BASE */ in astro_reset()
755 s->ioc_ranges[(0x398 - 0x300) / 8] = 0xffffff0000; /* IOS_DIST_MASK */ in astro_reset()
756 s->ioc_ranges[(0x3a0 - 0x300) / 8] = 0x3400000000000000ULL; /* IOS_DIST_ROUTE */ in astro_reset()
757 s->ioc_ranges[(0x3c0 - 0x300) / 8] = 0xfffee00000; /* IOS_DIRECT_BASE */ in astro_reset()
758 s->ioc_ranges[(0x3c8 - 0x300) / 8] = 0xffffff0000; /* IOS_DIRECT_MASK */ in astro_reset()
759 s->ioc_ranges[(0x3d0 - 0x300) / 8] = 0x0; /* IOS_DIRECT_ROUTE */ in astro_reset()
761 s->tlb_ibase = 0; in astro_reset()
762 s->tlb_imask = 0; in astro_reset()
763 s->tlb_pcom = 0; in astro_reset()
764 s->tlb_tcnfg = 0; in astro_reset()
765 s->tlb_pdir_base = 0; in astro_reset()
767 for (i = 0; i < ELROY_NUM; i++) { in astro_reset()
783 s, "astro", 0x40000); in astro_realize()
794 for (i = 0; i < ELROY_NUM; i++) { in astro_realize()
796 0x30000, 0x32000, 0x38000, 0x3c000 }; in astro_realize()
798 0, 1, 4, 6 }; /* busnum path, e.g. [10:6] */ in astro_realize()
818 if (i > 0) { in astro_realize()
827 elroy->mmio_base[(0x0200 - 0x200) / 8] = 0xf0000001; in astro_realize()
828 elroy->mmio_base[(0x0208 - 0x200) / 8] = 0xf8000000; in astro_realize()
830 elroy->mmio_base[(0x0210 - 0x200) / 8] = 0x000000f800000001; in astro_realize()
831 elroy->mmio_base[(0x0218 - 0x200) / 8] = 0x000000ff80000000; in astro_realize()
833 elroy->mmio_base[(0x0220 - 0x200) / 8] = 0xf0000001; in astro_realize()
834 elroy->mmio_base[(0x0228 - 0x200) / 8] = 0xf0000000; in astro_realize()
836 elroy->mmio_base[(0x0230 - 0x200) / 8] = 0x000000f800000001; in astro_realize()
837 elroy->mmio_base[(0x0238 - 0x200) / 8] = 0x000000fc00000000; in astro_realize()
840 elroy->mmio_base[(0x0240 - 0x200) / 8] = rope * map_size | 0x01; in astro_realize()
841 elroy->mmio_base[(0x0248 - 0x200) / 8] = 0x0000e000; in astro_realize()
872 * astro with elroys are hard part of the newer PA2.0 machines and can not in astro_class_init()