Skip to content

Instantly share code, notes, and snippets.

@xypron
Last active July 3, 2022 10:33
Show Gist options
  • Save xypron/79e8c7b00ca493c10351daa0b93b0e87 to your computer and use it in GitHub Desktop.
Save xypron/79e8c7b00ca493c10351daa0b93b0e87 to your computer and use it in GitHub Desktop.
Trying to boot U-Boot qemu-riscv64_smode_defconfig with QEMU KVM
=> fdt print
/ {
#address-cells = <0x00000002>;
#size-cells = <0x00000002>;
compatible = "riscv-virtio";
model = "riscv-virtio,qemu";
fw-cfg@10100000 {
dma-coherent;
reg = <0x00000000 0x10100000 0x00000000 0x00000018>;
compatible = "qemu,fw-cfg-mmio";
};
flash@20000000 {
bank-width = <0x00000004>;
reg = <0x00000000 0x20000000 0x00000000 0x02000000 0x00000000 0x22000000 0x00000000 0x02000000>;
compatible = "cfi-flash";
};
chosen {
bootargs = "";
stdout-path = "/soc/uart@10000000";
};
memory@80000000 {
device_type = "memory";
reg = <0x00000000 0x80000000 0x00000000 0x80000000>;
};
cpus {
#address-cells = <0x00000001>;
#size-cells = <0x00000000>;
timebase-frequency = <0x00989680>;
cpu@0 {
phandle = <0x00000003>;
device_type = "cpu";
reg = <0x00000000>;
status = "okay";
compatible = "riscv";
riscv,isa = "rv64imafdc";
mmu-type = "riscv,sv48";
interrupt-controller {
#interrupt-cells = <0x00000001>;
interrupt-controller;
compatible = "riscv,cpu-intc";
phandle = <0x00000004>;
};
};
cpu@1 {
phandle = <0x00000001>;
device_type = "cpu";
reg = <0x00000001>;
status = "okay";
compatible = "riscv";
riscv,isa = "rv64imafdc";
mmu-type = "riscv,sv48";
interrupt-controller {
#interrupt-cells = <0x00000001>;
interrupt-controller;
compatible = "riscv,cpu-intc";
phandle = <0x00000002>;
};
};
cpu-map {
cluster0 {
core0 {
cpu = <0x00000003>;
};
core1 {
cpu = <0x00000001>;
};
};
};
};
soc {
#address-cells = <0x00000002>;
#size-cells = <0x00000002>;
compatible = "simple-bus";
ranges;
rtc@101000 {
interrupts = <0x0000000b>;
interrupt-parent = <0x00000005>;
reg = <0x00000000 0x00101000 0x00000000 0x00001000>;
compatible = "google,goldfish-rtc";
};
uart@10000000 {
interrupts = <0x0000000a>;
interrupt-parent = <0x00000005>;
clock-frequency = "", "8@";
reg = <0x00000000 0x10000000 0x00000000 0x00000100>;
compatible = "ns16550a";
};
poweroff {
value = <0x00005555>;
offset = <0x00000000>;
regmap = <0x00000006>;
compatible = "syscon-poweroff";
};
reboot {
value = <0x00007777>;
offset = <0x00000000>;
regmap = <0x00000006>;
compatible = "syscon-reboot";
};
test@100000 {
phandle = <0x00000006>;
reg = <0x00000000 0x00100000 0x00000000 0x00001000>;
compatible = "sifive,test1", "sifive,test0", "syscon";
};
pci@30000000 {
interrupt-map-mask = <0x00001800 0x00000000 0x00000000 0x00000007>;
interrupt-map = <0x00000000 0x00000000 0x00000000 0x00000001 0x00000005 0x00000020 0x00000000 0x00000000 0x00000000 0x00000002 0x00000005 0x00000021 0x00000000 0x00000000 0x00000000 0x00000003 0x00000005 0x00000022 0x00000000 0x00000000 0x00000000 0x00000004 0x00000005 0x00000023 0x00000800 0x00000000 0x00000000 0x00000001 0x00000005 0x00000021 0x00000800 0x00000000 0x00000000 0x00000002 0x00000005 0x00000022 0x00000800 0x00000000 0x00000000 0x00000003 0x00000005 0x00000023 0x00000800 0x00000000 0x00000000 0x00000004 0x00000005 0x00000020 0x00001000 0x00000000 0x00000000 0x00000001 0x00000005 0x00000022 0x00001000 0x00000000 0x00000000 0x00000002 0x00000005 0x00000023 0x00001000 0x00000000 0x00000000 0x00000003 0x00000005 0x00000020 0x00001000 0x00000000 0x00000000 0x00000004 0x00000005 0x00000021 0x00001800 0x00000000 0x00000000 0x00000001 0x00000005 0x00000023 0x00001800 0x00000000 0x00000000 0x00000002 0x00000005 0x00000020 0x00001800 0x00000000 0x00000000 0x00000003 0x00000005 0x00000021 0x00001800 0x00000000 0x00000000 0x00000004 0x00000005 0x00000022>;
ranges = <0x01000000 0x00000000 0x00000000 0x00000000 0x03000000 0x00000000 0x00010000 0x02000000 0x00000000 0x40000000 0x00000000 0x40000000 0x00000000 0x40000000 0x03000000 0x00000004 0x00000000 0x00000004 0x00000000 0x00000004 0x00000000>;
reg = <0x00000000 0x30000000 0x00000000 0x10000000>;
dma-coherent;
bus-range = <0x00000000 0x000000ff>;
linux,pci-domain = <0x00000000>;
device_type = "pci";
compatible = "pci-host-ecam-generic";
#size-cells = <0x00000002>;
#interrupt-cells = <0x00000001>;
#address-cells = <0x00000003>;
};
virtio_mmio@10008000 {
interrupts = <0x00000008>;
interrupt-parent = <0x00000005>;
reg = <0x00000000 0x10008000 0x00000000 0x00001000>;
compatible = "virtio,mmio";
};
virtio_mmio@10007000 {
interrupts = <0x00000007>;
interrupt-parent = <0x00000005>;
reg = <0x00000000 0x10007000 0x00000000 0x00001000>;
compatible = "virtio,mmio";
};
virtio_mmio@10006000 {
interrupts = <0x00000006>;
interrupt-parent = <0x00000005>;
reg = <0x00000000 0x10006000 0x00000000 0x00001000>;
compatible = "virtio,mmio";
};
virtio_mmio@10005000 {
interrupts = <0x00000005>;
interrupt-parent = <0x00000005>;
reg = <0x00000000 0x10005000 0x00000000 0x00001000>;
compatible = "virtio,mmio";
};
virtio_mmio@10004000 {
interrupts = <0x00000004>;
interrupt-parent = <0x00000005>;
reg = <0x00000000 0x10004000 0x00000000 0x00001000>;
compatible = "virtio,mmio";
};
virtio_mmio@10003000 {
interrupts = <0x00000003>;
interrupt-parent = <0x00000005>;
reg = <0x00000000 0x10003000 0x00000000 0x00001000>;
compatible = "virtio,mmio";
};
virtio_mmio@10002000 {
interrupts = <0x00000002>;
interrupt-parent = <0x00000005>;
reg = <0x00000000 0x10002000 0x00000000 0x00001000>;
compatible = "virtio,mmio";
};
virtio_mmio@10001000 {
interrupts = <0x00000001>;
interrupt-parent = <0x00000005>;
reg = <0x00000000 0x10001000 0x00000000 0x00001000>;
compatible = "virtio,mmio";
};
plic@c000000 {
phandle = <0x00000005>;
riscv,ndev = <0x00000035>;
reg = <0x00000000 0x0c000000 0x00000000 0x00600000>;
interrupts-extended = <0x00000004 0x00000009 0x00000002 0x00000009 0x00000000 0x00000000 0x61000000 0x00000000>;
interrupt-controller;
compatible = "sifive,plic-1.0.0", "riscv,plic0";
#interrupt-cells = <0x00000001>;
};
};
};
$ qemu-system-riscv64 \
-M virt -accel kvm -m 2G -smp 2 \
-nographic \
-kernel uboot \
-device virtio-net-device,netdev=eth0 \
-netdev user,id=eth0,hostfwd=tcp::8022-:22
size=30, ptr=30, limit=4000: 801fc000
size=30, ptr=60, limit=4000: 801fc030
size=98, ptr=f8, limit=4000: 801fc060
bind node fw-cfg@10100000
- attempt to match compatible string 'qemu,fw-cfg-mmio'
No match for node 'fw-cfg@10100000'
bind node flash@20000000
- attempt to match compatible string 'cfi-flash'
Skipping device pre-relocation
bind node chosen
Device 'chosen' has no compatible string
bind node memory@80000000
Device 'memory@80000000' has no compatible string
bind node cpus
Device 'cpus' has no compatible string
bind node soc
- attempt to match compatible string 'simple-bus'
- found match at 'simple_bus': 'simple-bus' matches 'simple-bus'
size=30, ptr=128, limit=4000: 801fc0f8
size=98, ptr=1c0, limit=4000: 801fc128
size=18, ptr=1d8, limit=4000: 801fc1c0
bind node rtc@101000
- attempt to match compatible string 'google,goldfish-rtc'
No match for node 'rtc@101000'
bind node uart@10000000
- attempt to match compatible string 'ns16550a'
Skipping device pre-relocation
bind node poweroff
- attempt to match compatible string 'syscon-poweroff'
Skipping device pre-relocation
bind node reboot
- attempt to match compatible string 'syscon-reboot'
Skipping device pre-relocation
bind node test@100000
- attempt to match compatible string 'sifive,test1'
- attempt to match compatible string 'sifive,test0'
- attempt to match compatible string 'syscon'
Skipping device pre-relocation
bind node pci@30000000
- attempt to match compatible string 'pci-host-ecam-generic'
Skipping device pre-relocation
bind node virtio_mmio@10008000
- attempt to match compatible string 'virtio,mmio'
Skipping device pre-relocation
bind node virtio_mmio@10007000
- attempt to match compatible string 'virtio,mmio'
Skipping device pre-relocation
bind node virtio_mmio@10006000
- attempt to match compatible string 'virtio,mmio'
Skipping device pre-relocation
bind node virtio_mmio@10005000
- attempt to match compatible string 'virtio,mmio'
Skipping device pre-relocation
bind node virtio_mmio@10004000
- attempt to match compatible string 'virtio,mmio'
Skipping device pre-relocation
bind node virtio_mmio@10003000
- attempt to match compatible string 'virtio,mmio'
Skipping device pre-relocation
bind node virtio_mmio@10002000
- attempt to match compatible string 'virtio,mmio'
Skipping device pre-relocation
bind node virtio_mmio@10001000
- attempt to match compatible string 'virtio,mmio'
Skipping device pre-relocation
bind node plic@c000000
- attempt to match compatible string 'sifive,plic-1.0.0'
- attempt to match compatible string 'riscv,plic0'
No match for node 'plic@c000000'
Sending event 2/(unknown) to spy '?'
size=30, ptr=208, limit=4000: 801fc1d8
size=98, ptr=2a0, limit=4000: 801fc208
size=18, ptr=2b8, limit=4000: 801fc2a0
bind node cpu@0
- attempt to match compatible string 'riscv'
- found match at 'riscv_cpu': 'riscv' matches 'riscv'
size=98, ptr=350, limit=4000: 801fc2b8
size=20, ptr=370, limit=4000: 801fc350
size=30, ptr=3a0, limit=4000: 801fc370
size=98, ptr=438, limit=4000: 801fc3a0
bind node cpu@1
- attempt to match compatible string 'riscv'
- found match at 'riscv_cpu': 'riscv' matches 'riscv'
size=98, ptr=4d0, limit=4000: 801fc438
size=20, ptr=4f0, limit=4000: 801fc4d0
bind node cpu-map
Device 'cpu-map' has no compatible string
size=30, ptr=520, limit=4000: 801fc4f0
bind node uart@10000000
- attempt to match compatible string 'ns16550a'
- found match at 'ns16550_serial': 'ns16550' matches 'ns16550a'
size=98, ptr=5b8, limit=4000: 801fc520
size=20, ptr=5d8, limit=4000: 801fc5b8
size=20, ptr=5f8, limit=4000: 801fc5d8
size=18, ptr=610, limit=4000: 801fc5f8
U-Boot 2022.07-rc5-00067-g936d468b7b (Jul 03 2022 - 09:12:41 +0000)
size=30, ptr=640, limit=4000: 801fc610
CPU: rv64imafdc
Model: riscv-virtio,qemu
DRAM: 2 GiB
bind node fw-cfg@10100000
- attempt to match compatible string 'qemu,fw-cfg-mmio'
No match for node 'fw-cfg@10100000'
bind node flash@20000000
- attempt to match compatible string 'cfi-flash'
- found match at 'cfi_flash': 'cfi-flash' matches 'cfi-flash'
bind node chosen
Device 'chosen' has no compatible string
bind node memory@80000000
Device 'memory@80000000' has no compatible string
bind node cpus
Device 'cpus' has no compatible string
bind node soc
- attempt to match compatible string 'simple-bus'
- found match at 'simple_bus': 'simple-bus' matches 'simple-bus'
bind node rtc@101000
- attempt to match compatible string 'google,goldfish-rtc'
No match for node 'rtc@101000'
bind node uart@10000000
- attempt to match compatible string 'ns16550a'
- found match at 'ns16550_serial': 'ns16550' matches 'ns16550a'
bind node poweroff
- attempt to match compatible string 'syscon-poweroff'
- found match at 'syscon_reboot': 'syscon-reboot' matches 'syscon-poweroff'
bind node reboot
- attempt to match compatible string 'syscon-reboot'
- found match at 'syscon_reboot': 'syscon-reboot' matches 'syscon-reboot'
bind node test@100000
- attempt to match compatible string 'sifive,test1'
- attempt to match compatible string 'sifive,test0'
- attempt to match compatible string 'syscon'
- found match at 'syscon': 'syscon' matches 'syscon'
bind node pci@30000000
- attempt to match compatible string 'pci-host-ecam-generic'
- found match at 'pci_generic_ecam': 'pci-host-ecam-generic' matches 'pci-host-ecam-generic'
bind node virtio_mmio@10008000
- attempt to match compatible string 'virtio,mmio'
- found match at 'virtio-mmio': 'virtio,mmio' matches 'virtio,mmio'
bind node virtio_mmio@10007000
- attempt to match compatible string 'virtio,mmio'
- found match at 'virtio-mmio': 'virtio,mmio' matches 'virtio,mmio'
bind node virtio_mmio@10006000
- attempt to match compatible string 'virtio,mmio'
- found match at 'virtio-mmio': 'virtio,mmio' matches 'virtio,mmio'
bind node virtio_mmio@10005000
- attempt to match compatible string 'virtio,mmio'
- found match at 'virtio-mmio': 'virtio,mmio' matches 'virtio,mmio'
bind node virtio_mmio@10004000
- attempt to match compatible string 'virtio,mmio'
- found match at 'virtio-mmio': 'virtio,mmio' matches 'virtio,mmio'
bind node virtio_mmio@10003000
- attempt to match compatible string 'virtio,mmio'
- found match at 'virtio-mmio': 'virtio,mmio' matches 'virtio,mmio'
bind node virtio_mmio@10002000
- attempt to match compatible string 'virtio,mmio'
- found match at 'virtio-mmio': 'virtio,mmio' matches 'virtio,mmio'
bind node virtio_mmio@10001000
- attempt to match compatible string 'virtio,mmio'
- found match at 'virtio-mmio': 'virtio,mmio' matches 'virtio,mmio'
bind node plic@c000000
- attempt to match compatible string 'sifive,plic-1.0.0'
- attempt to match compatible string 'riscv,plic0'
No match for node 'plic@c000000'
Sending event 2/(unknown) to spy '?'
bind node cpu@0
- attempt to match compatible string 'riscv'
- found match at 'riscv_cpu': 'riscv' matches 'riscv'
bind node cpu@1
- attempt to match compatible string 'riscv'
- found match at 'riscv_cpu': 'riscv' matches 'riscv'
bind node cpu-map
Device 'cpu-map' has no compatible string
Core: 27 devices, 14 uclasses, devicetree: board
Flash:
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment