virt.c (e8c858944ea61923ca563bb5905bf04624d05f16) virt.c (647a70a10f257bdeba33ff5f1bcb2b26518a9f4c)
1/*
2 * QEMU RISC-V VirtIO Board
3 *
4 * Copyright (c) 2017 SiFive, Inc.
5 *
6 * RISC-V machine with 16550a UART and VirtIO MMIO
7 *
8 * This program is free software; you can redistribute it and/or modify it

--- 366 unchanged lines hidden (view full) ---

375 sifive_clint_create(memmap[VIRT_CLINT].base,
376 memmap[VIRT_CLINT].size, smp_cpus,
377 SIFIVE_SIP_BASE, SIFIVE_TIMECMP_BASE, SIFIVE_TIME_BASE);
378 sifive_test_create(memmap[VIRT_TEST].base);
379
380 for (i = 0; i < VIRTIO_COUNT; i++) {
381 sysbus_create_simple("virtio-mmio",
382 memmap[VIRT_VIRTIO].base + i * memmap[VIRT_VIRTIO].size,
1/*
2 * QEMU RISC-V VirtIO Board
3 *
4 * Copyright (c) 2017 SiFive, Inc.
5 *
6 * RISC-V machine with 16550a UART and VirtIO MMIO
7 *
8 * This program is free software; you can redistribute it and/or modify it

--- 366 unchanged lines hidden (view full) ---

375 sifive_clint_create(memmap[VIRT_CLINT].base,
376 memmap[VIRT_CLINT].size, smp_cpus,
377 SIFIVE_SIP_BASE, SIFIVE_TIMECMP_BASE, SIFIVE_TIME_BASE);
378 sifive_test_create(memmap[VIRT_TEST].base);
379
380 for (i = 0; i < VIRTIO_COUNT; i++) {
381 sysbus_create_simple("virtio-mmio",
382 memmap[VIRT_VIRTIO].base + i * memmap[VIRT_VIRTIO].size,
383 SIFIVE_PLIC(s->plic)->irqs[VIRTIO_IRQ + i]);
383 qdev_get_gpio_in(DEVICE(s->plic), VIRTIO_IRQ + i));
384 }
385
386 serial_mm_init(system_memory, memmap[VIRT_UART0].base,
384 }
385
386 serial_mm_init(system_memory, memmap[VIRT_UART0].base,
387 0, SIFIVE_PLIC(s->plic)->irqs[UART0_IRQ], 399193,
387 0, qdev_get_gpio_in(DEVICE(s->plic), UART0_IRQ), 399193,
388 serial_hd(0), DEVICE_LITTLE_ENDIAN);
389}
390
391static void riscv_virt_board_machine_init(MachineClass *mc)
392{
393 mc->desc = "RISC-V VirtIO Board (Privileged ISA v1.10)";
394 mc->init = riscv_virt_board_init;
395 mc->max_cpus = 8; /* hardcoded limit in BBL */
396}
397
398DEFINE_MACHINE("virt", riscv_virt_board_machine_init)
388 serial_hd(0), DEVICE_LITTLE_ENDIAN);
389}
390
391static void riscv_virt_board_machine_init(MachineClass *mc)
392{
393 mc->desc = "RISC-V VirtIO Board (Privileged ISA v1.10)";
394 mc->init = riscv_virt_board_init;
395 mc->max_cpus = 8; /* hardcoded limit in BBL */
396}
397
398DEFINE_MACHINE("virt", riscv_virt_board_machine_init)