Lines Matching +full:0 +full:x30000

95     case 0x0008:  in elroy_chip_read_with_attrs()
96 val = 0x6000005; /* func_class */ in elroy_chip_read_with_attrs()
98 case 0x0058: in elroy_chip_read_with_attrs()
107 case 0x0080: in elroy_chip_read_with_attrs()
110 case 0x0108: in elroy_chip_read_with_attrs()
113 case 0x200 ... 0x250 - 1: /* LMMIO, GMMIO, WLMMIO, WGMMIO, ... */ in elroy_chip_read_with_attrs()
114 index = (addr - 0x200) / 8; in elroy_chip_read_with_attrs()
117 case 0x0680: in elroy_chip_read_with_attrs()
120 case 0x0688: in elroy_chip_read_with_attrs()
121 val = 0; /* ERROR_STATUS */ in elroy_chip_read_with_attrs()
123 case 0x0800: /* IOSAPIC_REG_SELECT */ in elroy_chip_read_with_attrs()
126 case 0x0810: /* IOSAPIC_REG_WINDOW */ in elroy_chip_read_with_attrs()
128 case 0x01: /* IOSAPIC_REG_VERSION */ in elroy_chip_read_with_attrs()
143 val = 0; in elroy_chip_read_with_attrs()
147 val = ~0; in elroy_chip_read_with_attrs()
172 case 0x000: /* PCI_ID & PCI_COMMAND_STATUS_REG */ in elroy_chip_write_with_attrs()
174 case 0x080: in elroy_chip_write_with_attrs()
177 case 0x0108: in elroy_chip_write_with_attrs()
180 case 0x200 ... 0x250 - 1: /* LMMIO, GMMIO, WLMMIO, WGMMIO, ... */ in elroy_chip_write_with_attrs()
181 put_val_in_arrary(s->mmio_base, 0x200, addr, size, val); in elroy_chip_write_with_attrs()
183 case 0x300: /* ibase */ in elroy_chip_write_with_attrs()
184 case 0x308: /* imask */ in elroy_chip_write_with_attrs()
186 case 0x0680: in elroy_chip_write_with_attrs()
189 case 0x0800: /* IOSAPIC_REG_SELECT */ in elroy_chip_write_with_attrs()
192 case 0x0810: /* IOSAPIC_REG_WINDOW */ in elroy_chip_write_with_attrs()
200 case 0x0840: /* IOSAPIC_REG_EOI */ in elroy_chip_write_with_attrs()
203 for (i = 0; i < ELROY_IRQS; i++) { in elroy_chip_write_with_attrs()
204 if ((s->iosapic_reg[0x10 + 2 * i] & 63) == val) { in elroy_chip_write_with_attrs()
291 hwaddr addr_mask = 0xfff; /* 4k translation */ in astro_translate_iommu()
296 #define SBA_PDIR_VALID_BIT 0x8000000000000000ULL in astro_translate_iommu()
303 * language which not-coincidentally matches the PSW.W=0 mapping. in astro_translate_iommu()
312 if ((s->tlb_ibase & 1) == 0) { in astro_translate_iommu()
358 * base_addr == 0xfffa0000, we want to get 0xa0ff0000.
359 * eid 0x0ff00000 -> 0x00ff0000
360 * id 0x000ff000 -> 0xff000000
363 ((((a) & 0x0ff00000) >> 4) | (((a) & 0x000ff000) << 12))
365 (((((a) << 4) & 0x0ff00000) | (((a) >> 12) & 0x000ff000) | 0xf0000000))
368 #define IOSAPIC_IRDT_DISABLE 0x10000 /* if bit is set, mask this irq */
369 #define IOSAPIC_IRDT_PO_LOW 0x02000
370 #define IOSAPIC_IRDT_LEVEL_TRIG 0x08000
371 #define IOSAPIC_IRDT_MODE_LPRI 0x00100
383 val = s->iosapic_reg[0x10 + 2 * irq]; in elroy_set_irq()
384 cpu_hpa = s->iosapic_reg[0x11 + 2 * irq]; in elroy_set_irq()
392 if (ena != 0) { in elroy_set_irq()
404 assert(irq_num >= 0 && irq_num < ELROY_IRQS); in elroy_pci_map_irq()
418 s->ilr = 0; in elroy_reset()
419 for (irq = 0; irq < ELROY_IRQS; irq++) { in elroy_reset()
420 s->iosapic_reg[0x10 + 2 * irq] = IOSAPIC_IRDT_PO_LOW | in elroy_reset()
423 s->iosapic_reg[0x11 + 2 * irq] = SWIZZLE_HPA(CPU_HPA); in elroy_reset()
435 s, "elroy", 0x2000); in elroy_pcihost_init()
444 memory_region_add_subregion(&s->this_mem, 0x40, in elroy_pcihost_init()
446 memory_region_add_subregion(&s->this_mem, 0x48, in elroy_pcihost_init()
458 PCI_DEVFN(0, 0), ELROY_IRQS, TYPE_PCI_BUS); in elroy_pcihost_init()
476 VMSTATE_UINT64_ARRAY(mmio_base, ElroyState, (0x0250 - 0x200) / 8),
479 VMSTATE_UINT64_ARRAY(iosapic_reg, ElroyState, 0x20),
537 map_addr = s->ioc_ranges[3 * lmmio_index + 0]; in adjust_LMMIO_DIRECT_mapping()
583 case 0x0000: /* ID */ in astro_chip_read_with_attrs()
584 val = (0x01 << 3) | 0x01ULL; in astro_chip_read_with_attrs()
586 case 0x0008: /* IOC_CTRL */ in astro_chip_read_with_attrs()
589 case 0x0010: /* TOC_CLIENT_ID */ in astro_chip_read_with_attrs()
591 case 0x0030: /* HP-UX 10.20 and 11.11 reads it. No idea. */ in astro_chip_read_with_attrs()
594 case 0x0078: /* NetBSD reads 0x78 ? */ in astro_chip_read_with_attrs()
597 case 0x0300 ... 0x03d8: /* LMMIO_DIRECT0_BASE... */ in astro_chip_read_with_attrs()
598 index = (addr - 0x300) / 8; in astro_chip_read_with_attrs()
601 case 0x10200: in astro_chip_read_with_attrs()
602 val = 0; in astro_chip_read_with_attrs()
604 case 0x10220: in astro_chip_read_with_attrs()
605 case 0x10230: /* HP-UX 11.11 reads it. No idea. */ in astro_chip_read_with_attrs()
608 case 0x22108: /* IOC STATUS_CONTROL */ in astro_chip_read_with_attrs()
611 case 0x20200 ... 0x20240 - 1: /* IOC Rope0_Control ... */ in astro_chip_read_with_attrs()
612 index = (addr - 0x20200) / 8; in astro_chip_read_with_attrs()
615 case 0x20040: /* IOC Rope config */ in astro_chip_read_with_attrs()
618 case 0x20050: /* IOC Rope debug */ in astro_chip_read_with_attrs()
619 val = 0; in astro_chip_read_with_attrs()
621 case 0x20108: /* IOC STATUS_CONTROL */ in astro_chip_read_with_attrs()
624 case 0x20310: /* IOC_PCOM */ in astro_chip_read_with_attrs()
628 case 0x20400: in astro_chip_read_with_attrs()
632 #define EMPTY_PORT(x) case x: case x+8: val = 0; break; \ in astro_chip_read_with_attrs()
634 EMPTY_PORT(0x30000) in astro_chip_read_with_attrs()
635 EMPTY_PORT(0x32000) in astro_chip_read_with_attrs()
636 EMPTY_PORT(0x34000) in astro_chip_read_with_attrs()
637 EMPTY_PORT(0x36000) in astro_chip_read_with_attrs()
638 EMPTY_PORT(0x38000) in astro_chip_read_with_attrs()
639 EMPTY_PORT(0x3a000) in astro_chip_read_with_attrs()
640 EMPTY_PORT(0x3c000) in astro_chip_read_with_attrs()
641 EMPTY_PORT(0x3e000) in astro_chip_read_with_attrs()
645 val = 0; in astro_chip_read_with_attrs()
667 case 0x0000: /* ID */ in astro_chip_write_with_attrs()
669 case 0x0008: /* IOC_CTRL */ in astro_chip_write_with_attrs()
670 val &= 0x0ffffff; in astro_chip_write_with_attrs()
673 case 0x0010: /* TOC_CLIENT_ID */ in astro_chip_write_with_attrs()
675 case 0x0030: /* HP-UX 10.20 and 11.11 reads it. No idea. */ in astro_chip_write_with_attrs()
677 case 0x0300 ... 0x03d8 - 1: /* LMMIO_DIRECT0_BASE... */ in astro_chip_write_with_attrs()
678 put_val_in_arrary(s->ioc_ranges, 0x300, addr, size, val); in astro_chip_write_with_attrs()
679 unsigned int index = (addr - 0x300) / 8; in astro_chip_write_with_attrs()
685 case 0x10200: in astro_chip_write_with_attrs()
686 case 0x10220: in astro_chip_write_with_attrs()
687 case 0x10230: /* HP-UX 11.11 reads it. No idea. */ in astro_chip_write_with_attrs()
689 case 0x20200 ... 0x20240 - 1: /* IOC Rope0_Control ... */ in astro_chip_write_with_attrs()
690 put_val_in_arrary(s->ioc_rope_control, 0x20200, addr, size, val); in astro_chip_write_with_attrs()
692 case 0x20040: /* IOC Rope config */ in astro_chip_write_with_attrs()
693 case 0x22040: in astro_chip_write_with_attrs()
696 case 0x20300: in astro_chip_write_with_attrs()
697 case 0x22300: in astro_chip_write_with_attrs()
700 case 0x20308: in astro_chip_write_with_attrs()
701 case 0x22308: in astro_chip_write_with_attrs()
704 case 0x20310: in astro_chip_write_with_attrs()
705 case 0x22310: in astro_chip_write_with_attrs()
709 case 0x20318: in astro_chip_write_with_attrs()
710 case 0x22318: in astro_chip_write_with_attrs()
713 case 0x20320: in astro_chip_write_with_attrs()
714 case 0x22320: in astro_chip_write_with_attrs()
717 case 0x22000: /* func_id */ in astro_chip_write_with_attrs()
719 case 0x22008: /* func_class */ in astro_chip_write_with_attrs()
721 case 0x22050: /* rope_debug */ in astro_chip_write_with_attrs()
723 case 0x22108: /* IOC STATUS_CONTROL */ in astro_chip_write_with_attrs()
730 #define EMPTY_PORT(x) case x: case x+8: case x+0x40: case x+0x48: in astro_chip_write_with_attrs()
731 EMPTY_PORT(0x30000) in astro_chip_write_with_attrs()
732 EMPTY_PORT(0x32000) in astro_chip_write_with_attrs()
733 EMPTY_PORT(0x34000) in astro_chip_write_with_attrs()
734 EMPTY_PORT(0x36000) in astro_chip_write_with_attrs()
735 EMPTY_PORT(0x38000) in astro_chip_write_with_attrs()
736 EMPTY_PORT(0x3a000) in astro_chip_write_with_attrs()
737 EMPTY_PORT(0x3c000) in astro_chip_write_with_attrs()
738 EMPTY_PORT(0x3e000) in astro_chip_write_with_attrs()
769 VMSTATE_UINT64_ARRAY(ioc_ranges, AstroState, (0x03d8 - 0x300) / 8),
788 s->ioc_ctrl = 0x29cf; in astro_reset()
789 s->ioc_rope_config = 0xc5f; in astro_reset()
790 s->ioc_flush_control = 0xb03; in astro_reset()
791 s->ioc_status_control = 0; in astro_reset()
792 memset(&s->ioc_rope_control, 0, sizeof(s->ioc_rope_control)); in astro_reset()
798 memset(&s->ioc_ranges, 0, sizeof(s->ioc_ranges)); in astro_reset()
799 s->ioc_ranges[(0x360 - 0x300) / 8] = LMMIO_DIST_BASE_ADDR | 0x01; /* LMMIO_DIST_BASE (SBA) */ in astro_reset()
800 s->ioc_ranges[(0x368 - 0x300) / 8] = 0xfc000000; /* LMMIO_DIST_MASK */ in astro_reset()
801 s->ioc_ranges[(0x370 - 0x300) / 8] = 0; /* LMMIO_DIST_ROUTE */ in astro_reset()
802 s->ioc_ranges[(0x390 - 0x300) / 8] = IOS_DIST_BASE_ADDR | 0x01; /* IOS_DIST_BASE */ in astro_reset()
803 s->ioc_ranges[(0x398 - 0x300) / 8] = 0xffffff0000; /* IOS_DIST_MASK */ in astro_reset()
804 s->ioc_ranges[(0x3a0 - 0x300) / 8] = 0x3400000000000000ULL; /* IOS_DIST_ROUTE */ in astro_reset()
805 s->ioc_ranges[(0x3c0 - 0x300) / 8] = 0xfffee00000; /* IOS_DIRECT_BASE */ in astro_reset()
806 s->ioc_ranges[(0x3c8 - 0x300) / 8] = 0xffffff0000; /* IOS_DIRECT_MASK */ in astro_reset()
807 s->ioc_ranges[(0x3d0 - 0x300) / 8] = 0x0; /* IOS_DIRECT_ROUTE */ in astro_reset()
809 s->tlb_ibase = 0; in astro_reset()
810 s->tlb_imask = 0; in astro_reset()
811 s->tlb_pcom = 0; in astro_reset()
812 s->tlb_tcnfg = 0; in astro_reset()
813 s->tlb_pdir_base = 0; in astro_reset()
815 for (i = 0; i < ELROY_NUM; i++) { in astro_reset()
831 s, "astro", 0x40000); in astro_realize()
842 for (i = 0; i < ELROY_NUM; i++) { in astro_realize()
844 0x30000, 0x32000, 0x38000, 0x3c000 }; in astro_realize()
846 0, 1, 4, 6 }; /* busnum path, e.g. [10:6] */ in astro_realize()
866 if (i > 0) { in astro_realize()
875 elroy->mmio_base[(0x0200 - 0x200) / 8] = 0xf0000001; in astro_realize()
876 elroy->mmio_base[(0x0208 - 0x200) / 8] = 0xf8000000; in astro_realize()
878 elroy->mmio_base[(0x0210 - 0x200) / 8] = 0x000000f800000001; in astro_realize()
879 elroy->mmio_base[(0x0218 - 0x200) / 8] = 0x000000ff80000000; in astro_realize()
881 elroy->mmio_base[(0x0220 - 0x200) / 8] = 0xf0000001; in astro_realize()
882 elroy->mmio_base[(0x0228 - 0x200) / 8] = 0xf0000000; in astro_realize()
884 elroy->mmio_base[(0x0230 - 0x200) / 8] = 0x000000f800000001; in astro_realize()
885 elroy->mmio_base[(0x0238 - 0x200) / 8] = 0x000000fc00000000; in astro_realize()
888 elroy->mmio_base[(0x0240 - 0x200) / 8] = rope * map_size | 0x01; in astro_realize()
889 elroy->mmio_base[(0x0248 - 0x200) / 8] = 0x0000e000; in astro_realize()
920 * astro with elroys are hard part of the newer PA2.0 machines and can not in astro_class_init()