Lines Matching +full:qemu +full:- +full:bundle

26 #include "qemu/osdep.h"
33 #include "hw/qdev-properties.h"
34 #include "hw/qdev-properties-system.h"
86 return s->cpu->env.features & SH_FEATURE_BCR3_AND_BCR4; in has_bcr3_and_bcr4()
118 return (s->portdira & s->pdtra) | /* CPU */ in porta_lines()
119 (s->periph_portdira & s->periph_pdtra) | /* Peripherals */ in porta_lines()
120 (~(s->portdira | s->periph_portdira) & s->portpullupa); /* Pullups */ in porta_lines()
125 return (s->portdirb & s->pdtrb) | /* CPU */ in portb_lines()
126 (s->periph_portdirb & s->periph_pdtrb) | /* Peripherals */ in portb_lines()
127 (~(s->portdirb | s->periph_portdirb) & s->portpullupb); /* Pullups */ in portb_lines()
138 trace_sh7750_porta(prev, currenta, s->pdtra, s->pctra); in porta_changed()
149 trace_sh7750_portb(prev, currentb, s->pdtrb, s->pctrb); in portb_changed()
183 return s->bcr2; in sh7750_mem_readw()
188 return s->bcr3; in sh7750_mem_readw()
192 return s->pcr; in sh7750_mem_readw()
196 return s->rfcr++; in sh7750_mem_readw()
219 return s->bcr1; in sh7750_mem_readl()
224 return s->bcr4; in sh7750_mem_readl()
232 return s->cpu->env.mmucr; in sh7750_mem_readl()
234 return s->cpu->env.pteh; in sh7750_mem_readl()
236 return s->cpu->env.ptel; in sh7750_mem_readl()
238 return s->cpu->env.ttb; in sh7750_mem_readl()
240 return s->cpu->env.tea; in sh7750_mem_readl()
242 return s->cpu->env.tra; in sh7750_mem_readl()
244 return s->cpu->env.expevt; in sh7750_mem_readl()
246 return s->cpu->env.intevt; in sh7750_mem_readl()
248 return s->ccr; in sh7750_mem_readl()
250 scc = SUPERH_CPU_GET_CLASS(s->cpu); in sh7750_mem_readl()
251 return scc->pvr; in sh7750_mem_readl()
253 scc = SUPERH_CPU_GET_CLASS(s->cpu); in sh7750_mem_readl()
254 return scc->cvr; in sh7750_mem_readl()
256 scc = SUPERH_CPU_GET_CLASS(s->cpu); in sh7750_mem_readl()
257 return scc->prr; in sh7750_mem_readl()
288 s->bcr2 = mem_value; in sh7750_mem_writew()
294 s->bcr3 = mem_value; in sh7750_mem_writew()
297 s->pcr = mem_value; in sh7750_mem_writew()
307 s->pdtra = mem_value; in sh7750_mem_writew()
312 s->pdtrb = mem_value; in sh7750_mem_writew()
317 s->rfcr = mem_value; in sh7750_mem_writew()
320 s->gpioic = mem_value; in sh7750_mem_writew()
341 s->bcr1 = mem_value; in sh7750_mem_writel()
347 s->bcr4 = mem_value; in sh7750_mem_writel()
358 s->pctra = mem_value; in sh7750_mem_writel()
359 s->portdira = portdir(mem_value); in sh7750_mem_writel()
360 s->portpullupa = portpullup(mem_value); in sh7750_mem_writel()
365 s->pctrb = mem_value; in sh7750_mem_writel()
366 s->portdirb = portdir(mem_value); in sh7750_mem_writel()
367 s->portpullupb = portpullup(mem_value); in sh7750_mem_writel()
372 cpu_sh4_invalidate_tlb(&s->cpu->env); in sh7750_mem_writel()
374 s->cpu->env.mmucr = mem_value & ~MMUCR_TI; in sh7750_mem_writel()
378 if ((s->cpu->env.pteh & 0xff) != (mem_value & 0xff)) { in sh7750_mem_writel()
379 tlb_flush(CPU(s->cpu)); in sh7750_mem_writel()
381 s->cpu->env.pteh = mem_value; in sh7750_mem_writel()
384 s->cpu->env.ptel = mem_value; in sh7750_mem_writel()
387 s->cpu->env.ptea = mem_value & 0x0000000f; in sh7750_mem_writel()
390 s->cpu->env.ttb = mem_value; in sh7750_mem_writel()
393 s->cpu->env.tea = mem_value; in sh7750_mem_writel()
396 s->cpu->env.tra = mem_value & 0x000007ff; in sh7750_mem_writel()
399 s->cpu->env.expevt = mem_value & 0x000007ff; in sh7750_mem_writel()
402 s->cpu->env.intevt = mem_value & 0x000007ff; in sh7750_mem_writel()
405 s->ccr = mem_value; in sh7750_mem_writel()
455 * stolen from linux/arch/sh/kernel/cpu/sh4/setup-sh7750.c
480 /* irl bundle */
517 /* SH7750, SH7750S, SH7751 and SH7091 all have 4-channel DMA controllers */
530 /* SH7750R and SH7751R both have 8-channel DMA controllers */
643 ret = cpu_sh4_read_mmaped_itlb_addr(&s->cpu->env, addr); in sh7750_mmct_read()
646 ret = cpu_sh4_read_mmaped_itlb_data(&s->cpu->env, addr); in sh7750_mmct_read()
653 ret = cpu_sh4_read_mmaped_utlb_addr(&s->cpu->env, addr); in sh7750_mmct_read()
656 ret = cpu_sh4_read_mmaped_utlb_data(&s->cpu->env, addr); in sh7750_mmct_read()
686 cpu_sh4_write_mmaped_itlb_addr(&s->cpu->env, addr, mem_value); in sh7750_mmct_write()
689 cpu_sh4_write_mmaped_itlb_data(&s->cpu->env, addr, mem_value); in sh7750_mmct_write()
697 cpu_sh4_write_mmaped_utlb_addr(&s->cpu->env, addr, mem_value); in sh7750_mmct_write()
700 cpu_sh4_write_mmaped_utlb_data(&s->cpu->env, addr, mem_value); in sh7750_mmct_write()
722 s->cpu = cpu; in sh7750_init()
723 s->periph_freq = 60000000; /* 60MHz */ in sh7750_init()
724 memory_region_init_io(&s->iomem, NULL, &sh7750_mem_ops, s, in sh7750_init()
727 memory_region_init_alias(&s->iomem_1f0, NULL, "memory-1f0", in sh7750_init()
728 &s->iomem, 0x1f000000, 0x1000); in sh7750_init()
729 memory_region_add_subregion(sysmem, 0x1f000000, &s->iomem_1f0); in sh7750_init()
731 memory_region_init_alias(&s->iomem_ff0, NULL, "memory-ff0", in sh7750_init()
732 &s->iomem, 0x1f000000, 0x1000); in sh7750_init()
733 memory_region_add_subregion(sysmem, 0xff000000, &s->iomem_ff0); in sh7750_init()
735 memory_region_init_alias(&s->iomem_1f8, NULL, "memory-1f8", in sh7750_init()
736 &s->iomem, 0x1f800000, 0x1000); in sh7750_init()
737 memory_region_add_subregion(sysmem, 0x1f800000, &s->iomem_1f8); in sh7750_init()
739 memory_region_init_alias(&s->iomem_ff8, NULL, "memory-ff8", in sh7750_init()
740 &s->iomem, 0x1f800000, 0x1000); in sh7750_init()
741 memory_region_add_subregion(sysmem, 0xff800000, &s->iomem_ff8); in sh7750_init()
743 memory_region_init_alias(&s->iomem_1fc, NULL, "memory-1fc", in sh7750_init()
744 &s->iomem, 0x1fc00000, 0x1000); in sh7750_init()
745 memory_region_add_subregion(sysmem, 0x1fc00000, &s->iomem_1fc); in sh7750_init()
747 memory_region_init_alias(&s->iomem_ffc, NULL, "memory-ffc", in sh7750_init()
748 &s->iomem, 0x1fc00000, 0x1000); in sh7750_init()
749 memory_region_add_subregion(sysmem, 0xffc00000, &s->iomem_ffc); in sh7750_init()
751 memory_region_init_io(&s->mmct_iomem, NULL, &sh7750_mmct_ops, s, in sh7750_init()
752 "cache-and-tlb", 0x08000000); in sh7750_init()
753 memory_region_add_subregion(sysmem, 0xf0000000, &s->mmct_iomem); in sh7750_init()
755 sh_intc_init(sysmem, &s->intc, NR_SOURCES, in sh7750_init()
759 sh_intc_register_sources(&s->intc, in sh7750_init()
763 cpu->env.intc_handle = &s->intc; in sh7750_init()
767 dev->id = g_strdup("sci"); in sh7750_init()
774 memory_region_init_alias(alias, OBJECT(dev), "sci-a7", mr, in sh7750_init()
777 qdev_connect_gpio_out_named(dev, "eri", 0, s->intc.irqs[SCI1_ERI]); in sh7750_init()
778 qdev_connect_gpio_out_named(dev, "rxi", 0, s->intc.irqs[SCI1_RXI]); in sh7750_init()
779 qdev_connect_gpio_out_named(dev, "txi", 0, s->intc.irqs[SCI1_TXI]); in sh7750_init()
780 qdev_connect_gpio_out_named(dev, "tei", 0, s->intc.irqs[SCI1_TEI]); in sh7750_init()
784 dev->id = g_strdup("scif"); in sh7750_init()
792 memory_region_init_alias(alias, OBJECT(dev), "scif-a7", mr, in sh7750_init()
795 qdev_connect_gpio_out_named(dev, "eri", 0, s->intc.irqs[SCIF_ERI]); in sh7750_init()
796 qdev_connect_gpio_out_named(dev, "rxi", 0, s->intc.irqs[SCIF_RXI]); in sh7750_init()
797 qdev_connect_gpio_out_named(dev, "txi", 0, s->intc.irqs[SCIF_TXI]); in sh7750_init()
798 qdev_connect_gpio_out_named(dev, "bri", 0, s->intc.irqs[SCIF_BRI]); in sh7750_init()
802 s->periph_freq, in sh7750_init()
803 s->intc.irqs[TMU0], in sh7750_init()
804 s->intc.irqs[TMU1], in sh7750_init()
805 s->intc.irqs[TMU2_TUNI], in sh7750_init()
806 s->intc.irqs[TMU2_TICPI]); in sh7750_init()
808 if (cpu->env.id & (SH_CPU_SH7750 | SH_CPU_SH7750S | SH_CPU_SH7751)) { in sh7750_init()
809 sh_intc_register_sources(&s->intc, in sh7750_init()
814 if (cpu->env.id & (SH_CPU_SH7750R | SH_CPU_SH7751R)) { in sh7750_init()
815 sh_intc_register_sources(&s->intc, in sh7750_init()
820 if (cpu->env.id & (SH_CPU_SH7750R | SH_CPU_SH7751 | SH_CPU_SH7751R)) { in sh7750_init()
821 sh_intc_register_sources(&s->intc, in sh7750_init()
824 tmu012_init(sysmem, 0x1e100000, 0, s->periph_freq, in sh7750_init()
825 s->intc.irqs[TMU3], in sh7750_init()
826 s->intc.irqs[TMU4], in sh7750_init()
830 if (cpu->env.id & (SH_CPU_SH7751_ALL)) { in sh7750_init()
831 sh_intc_register_sources(&s->intc, in sh7750_init()
836 if (cpu->env.id & (SH_CPU_SH7750S | SH_CPU_SH7750R | SH_CPU_SH7751_ALL)) { in sh7750_init()
837 sh_intc_register_sources(&s->intc, in sh7750_init()
842 sh_intc_register_sources(&s->intc, in sh7750_init()
850 sh_intc_toggle_source(&s->intc.sources[IRL], 1, 0); /* enable */ in sh7750_irl()
851 return qemu_allocate_irq(sh_intc_set_irl, &s->intc.sources[IRL], 0); in sh7750_irl()