Lines Matching +full:io +full:- +full:width
35 #include "hw/qdev-properties.h"
39 #include "hw/char/serial-mm.h"
47 #include "qemu/error-report.h"
64 const hwaddr *io; member
78 s->leds = 0; in xtfpga_fpga_reset()
79 s->switches = 0; in xtfpga_fpga_reset()
92 return s->freq; in xtfpga_fpga_read()
95 return s->leds; in xtfpga_fpga_read()
98 return s->switches; in xtfpga_fpga_read()
110 s->leds = val; in xtfpga_fpga_write()
132 memory_region_init_io(&s->iomem, NULL, &xtfpga_fpga_ops, s, in xtfpga_fpga_init()
134 memory_region_add_subregion(address_space, base, &s->iomem); in xtfpga_fpga_init()
135 s->freq = freq; in xtfpga_fpga_init()
179 qdev_prop_set_uint32(dev, "num-blocks", in xtfpga_flash_init()
180 board->flash->size / board->flash->sector_size); in xtfpga_flash_init()
181 qdev_prop_set_uint64(dev, "sector-length", board->flash->sector_size); in xtfpga_flash_init()
182 qdev_prop_set_uint8(dev, "width", 2); in xtfpga_flash_init()
183 qdev_prop_set_bit(dev, "big-endian", be); in xtfpga_flash_init()
184 qdev_prop_set_string(dev, "name", "xtfpga.io.flash"); in xtfpga_flash_init()
187 memory_region_add_subregion(address_space, board->flash->base, in xtfpga_flash_init()
233 const char *kernel_filename = machine->kernel_filename; in xtfpga_init()
234 const char *kernel_cmdline = machine->kernel_cmdline; in xtfpga_init()
235 const char *dtb_filename = machine->dtb; in xtfpga_init()
236 const char *initrd_filename = machine->initrd_filename; in xtfpga_init()
240 unsigned int smp_cpus = machine->smp.cpus; in xtfpga_init()
249 cpu = XTENSA_CPU(cpu_create(machine->cpu_type)); in xtfpga_init()
250 cenv = &cpu->env; in xtfpga_init()
253 freq = env->config->clock_freq_khz * 1000; in xtfpga_init()
265 cenv->sregs[PRID] = n; in xtfpga_init()
280 XtensaMemory sysram = env->config->sysram; in xtfpga_init()
282 sysram.location[0].size = machine->ram_size; in xtfpga_init()
283 xtensa_create_memory_regions(&env->config->instrom, "xtensa.instrom", in xtfpga_init()
285 xtensa_create_memory_regions(&env->config->instram, "xtensa.instram", in xtfpga_init()
287 xtensa_create_memory_regions(&env->config->datarom, "xtensa.datarom", in xtfpga_init()
289 xtensa_create_memory_regions(&env->config->dataram, "xtensa.dataram", in xtfpga_init()
296 memory_region_init_io(system_io, NULL, &xtfpga_io_ops, NULL, "xtfpga.io", in xtfpga_init()
298 memory_region_add_subregion(system_memory, board->io[0], system_io); in xtfpga_init()
299 if (board->io[1]) { in xtfpga_init()
300 MemoryRegion *io = g_malloc(sizeof(*io)); in xtfpga_init() local
302 memory_region_init_alias(io, NULL, "xtfpga.io.cached", in xtfpga_init()
304 memory_region_add_subregion(system_memory, board->io[1], io); in xtfpga_init()
319 uint32_t entry_point = env->pc; in xtfpga_init()
321 uint32_t tagptr = env->config->sysrom.location[0].addr + in xtfpga_init()
322 board->sram_size; in xtfpga_init()
326 .start = tswap32(env->config->sysram.location[0].addr), in xtfpga_init()
327 .end = tswap32(env->config->sysram.location[0].addr + in xtfpga_init()
328 machine->ram_size), in xtfpga_init()
330 uint32_t lowmem_end = machine->ram_size < 0x08000000 ? in xtfpga_init()
331 machine->ram_size : 0x08000000; in xtfpga_init()
334 lowmem_end += env->config->sysram.location[0].addr; in xtfpga_init()
335 cur_lowmem += env->config->sysram.location[0].addr; in xtfpga_init()
337 xtensa_create_memory_regions(&env->config->sysrom, "xtensa.sysrom", in xtfpga_init()
351 tagptr = (tagptr - bp_size) & ~0xff; in xtfpga_init()
379 lowmem_end - cur_lowmem); in xtfpga_init()
384 lowmem_end - cur_lowmem); in xtfpga_init()
397 env->regs[2] = tagptr; in xtfpga_init()
419 if (entry_point != env->pc) { in xtfpga_init()
448 cpu_physical_memory_write(env->pc, boot, boot_sz); in xtfpga_init()
454 uint32_t size = env->config->sysrom.location[0].size; in xtfpga_init()
456 if (board->flash->size - board->flash->boot_base < size) { in xtfpga_init()
457 size = board->flash->size - board->flash->boot_base; in xtfpga_init()
461 flash_mr, board->flash->boot_base, size); in xtfpga_init()
463 env->config->sysrom.location[0].addr, in xtfpga_init()
466 xtensa_create_memory_regions(&env->config->sysrom, "xtensa.sysrom", in xtfpga_init()
494 .io = xtfpga_mmu_io, in xtfpga_lx60_init()
504 .io = xtfpga_nommu_io, in xtfpga_lx60_nommu_init()
520 .io = xtfpga_mmu_io, in xtfpga_lx200_init()
530 .io = xtfpga_nommu_io, in xtfpga_lx200_nommu_init()
546 .io = xtfpga_mmu_io, in xtfpga_ml605_init()
556 .io = xtfpga_nommu_io, in xtfpga_ml605_nommu_init()
573 .io = xtfpga_mmu_io, in xtfpga_kc705_init()
583 .io = xtfpga_nommu_io, in xtfpga_kc705_nommu_init()
592 mc->desc = "lx60 EVB (" XTENSA_DEFAULT_CPU_MODEL ")"; in xtfpga_lx60_class_init()
593 mc->init = xtfpga_lx60_init; in xtfpga_lx60_class_init()
594 mc->max_cpus = 32; in xtfpga_lx60_class_init()
595 mc->default_cpu_type = XTENSA_DEFAULT_CPU_TYPE; in xtfpga_lx60_class_init()
596 mc->default_ram_size = 64 * MiB; in xtfpga_lx60_class_init()
609 mc->desc = "lx60 noMMU EVB (" XTENSA_DEFAULT_CPU_NOMMU_MODEL ")"; in xtfpga_lx60_nommu_class_init()
610 mc->init = xtfpga_lx60_nommu_init; in xtfpga_lx60_nommu_class_init()
611 mc->max_cpus = 32; in xtfpga_lx60_nommu_class_init()
612 mc->default_cpu_type = XTENSA_DEFAULT_CPU_NOMMU_TYPE; in xtfpga_lx60_nommu_class_init()
613 mc->default_ram_size = 64 * MiB; in xtfpga_lx60_nommu_class_init()
617 .name = MACHINE_TYPE_NAME("lx60-nommu"),
626 mc->desc = "lx200 EVB (" XTENSA_DEFAULT_CPU_MODEL ")"; in xtfpga_lx200_class_init()
627 mc->init = xtfpga_lx200_init; in xtfpga_lx200_class_init()
628 mc->max_cpus = 32; in xtfpga_lx200_class_init()
629 mc->default_cpu_type = XTENSA_DEFAULT_CPU_TYPE; in xtfpga_lx200_class_init()
630 mc->default_ram_size = 96 * MiB; in xtfpga_lx200_class_init()
643 mc->desc = "lx200 noMMU EVB (" XTENSA_DEFAULT_CPU_NOMMU_MODEL ")"; in xtfpga_lx200_nommu_class_init()
644 mc->init = xtfpga_lx200_nommu_init; in xtfpga_lx200_nommu_class_init()
645 mc->max_cpus = 32; in xtfpga_lx200_nommu_class_init()
646 mc->default_cpu_type = XTENSA_DEFAULT_CPU_NOMMU_TYPE; in xtfpga_lx200_nommu_class_init()
647 mc->default_ram_size = 96 * MiB; in xtfpga_lx200_nommu_class_init()
651 .name = MACHINE_TYPE_NAME("lx200-nommu"),
660 mc->desc = "ml605 EVB (" XTENSA_DEFAULT_CPU_MODEL ")"; in xtfpga_ml605_class_init()
661 mc->init = xtfpga_ml605_init; in xtfpga_ml605_class_init()
662 mc->max_cpus = 32; in xtfpga_ml605_class_init()
663 mc->default_cpu_type = XTENSA_DEFAULT_CPU_TYPE; in xtfpga_ml605_class_init()
664 mc->default_ram_size = 512 * MiB - XTFPGA_MMU_RESERVED_MEMORY_SIZE; in xtfpga_ml605_class_init()
677 mc->desc = "ml605 noMMU EVB (" XTENSA_DEFAULT_CPU_NOMMU_MODEL ")"; in xtfpga_ml605_nommu_class_init()
678 mc->init = xtfpga_ml605_nommu_init; in xtfpga_ml605_nommu_class_init()
679 mc->max_cpus = 32; in xtfpga_ml605_nommu_class_init()
680 mc->default_cpu_type = XTENSA_DEFAULT_CPU_NOMMU_TYPE; in xtfpga_ml605_nommu_class_init()
681 mc->default_ram_size = 256 * MiB; in xtfpga_ml605_nommu_class_init()
685 .name = MACHINE_TYPE_NAME("ml605-nommu"),
694 mc->desc = "kc705 EVB (" XTENSA_DEFAULT_CPU_MODEL ")"; in xtfpga_kc705_class_init()
695 mc->init = xtfpga_kc705_init; in xtfpga_kc705_class_init()
696 mc->max_cpus = 32; in xtfpga_kc705_class_init()
697 mc->default_cpu_type = XTENSA_DEFAULT_CPU_TYPE; in xtfpga_kc705_class_init()
698 mc->default_ram_size = 1 * GiB - XTFPGA_MMU_RESERVED_MEMORY_SIZE; in xtfpga_kc705_class_init()
711 mc->desc = "kc705 noMMU EVB (" XTENSA_DEFAULT_CPU_NOMMU_MODEL ")"; in xtfpga_kc705_nommu_class_init()
712 mc->init = xtfpga_kc705_nommu_init; in xtfpga_kc705_nommu_class_init()
713 mc->max_cpus = 32; in xtfpga_kc705_nommu_class_init()
714 mc->default_cpu_type = XTENSA_DEFAULT_CPU_NOMMU_TYPE; in xtfpga_kc705_nommu_class_init()
715 mc->default_ram_size = 256 * MiB; in xtfpga_kc705_nommu_class_init()
719 .name = MACHINE_TYPE_NAME("kc705-nommu"),