Skip to content
This repository was archived by the owner on Feb 7, 2026. It is now read-only.

feat(main): Add virtio-block device support, adjust ramdisk interface content, and unify the external API interface of boot media#7

Merged
luojia65 merged 1 commit intorustsbi:mainfrom
JensenWei007:main
Jun 30, 2025
Merged

feat(main): Add virtio-block device support, adjust ramdisk interface content, and unify the external API interface of boot media#7
luojia65 merged 1 commit intorustsbi:mainfrom
JensenWei007:main

Conversation

@JensenWei007
Copy link
Contributor

Add virtio-block device support, adjust ramdisk interface content, and unify the external API interface of boot media

  • Add virtio-block device support, implemented by encapsulating related interfaces of axfs
  • Modify ramdisk-cpio related interfaces and open them to the public
  • Shield the differences between different boot media and unify the medium API interface

run successfully pics:
image

image

log:

qemu-system-riscv64 -m 128M -serial mon:stdio -bios /root/arceboot/rustsbi/target/riscv64imac-unknown-none-elf/release/rustsbi-prototyper-payload.elf -nographic -machine virt -device virtio-blk-pci,drive=disk0 -drive id=disk0,if=none,format=raw,file=disk.img
[RustSBI] INFO  - Hello RustSBI!
[RustSBI] INFO  - RustSBI version 0.4.0
[RustSBI] INFO  - .______       __    __      _______.___________.  _______..______   __
[RustSBI] INFO  - |   _  \     |  |  |  |    /       |           | /       ||   _  \ |  |
[RustSBI] INFO  - |  |_)  |    |  |  |  |   |   (----`---|  |----`|   (----`|  |_)  ||  |
[RustSBI] INFO  - |      /     |  |  |  |    \   \       |  |      \   \    |   _  < |  |
[RustSBI] INFO  - |  |\  \----.|  `--'  |.----)   |      |  |  .----)   |   |  |_)  ||  |
[RustSBI] INFO  - | _| `._____| \______/ |_______/       |__|  |_______/    |______/ |__|
[RustSBI] INFO  - Initializing RustSBI machine-mode environment.
[RustSBI] INFO  - Platform Name                 : riscv-virtio,qemu
[RustSBI] INFO  - Platform HART Count           : 1
[RustSBI] INFO  - Enabled HARTs                 : [0]
[RustSBI] INFO  - Platform IPI Extension        : SiFiveClint (Base Address: 0x2000000)
[RustSBI] INFO  - Platform Console Extension    : Uart16550U8 (Base Address: 0x10000000)
[RustSBI] INFO  - Platform Reset Extension      : Available (Base Address: 0x100000)
[RustSBI] INFO  - Platform HSM Extension        : Available
[RustSBI] INFO  - Platform RFence Extension     : Available
[RustSBI] INFO  - Platform SUSP Extension       : Available
[RustSBI] INFO  - Platform PMU Extension        : Available
[RustSBI] INFO  - Memory range                  : 0x80000000 - 0x88000000
[RustSBI] INFO  - Platform Status               : Platform initialization complete and ready.
[RustSBI] INFO  - PMP Configuration
[RustSBI] INFO  - PMP        Range      Permission      Address                       
[RustSBI] INFO  - PMP 0:     OFF        NONE            0x00000000
[RustSBI] INFO  - PMP 1-2:   TOR        RWX/RWX         0x80000000 - 0x80000000
[RustSBI] INFO  - PMP 3-5:   TOR        NONE/NONE       0x80019000 - 0x80024000 - 0x80051000
[RustSBI] INFO  - PMP 6:     TOR        RWX             0x88000000
[RustSBI] INFO  - PMP 7:     TOR        RWX             0xffffffffffffffff
[RustSBI] INFO  - Boot HART ID                  : 0
[RustSBI] INFO  - Boot HART Privileged Version: : Version1_12
[RustSBI] INFO  - Boot HART MHPM Mask:          : 0x07ffff
[RustSBI] INFO  - Redirecting hart 0 to 0x00000080200000 in Supervisor mode.
[  0.020975 0 arceboot:15] Logging is enabled.
[  0.022591 0 arceboot:17] Found physcial memory regions:
[  0.023654 0 axhal::mem:130] default free regions
[  0.024543 0 arceboot:19]   [PA:0x80200000, PA:0x8022c000) .text (READ | EXECUTE | RESERVED)
[  0.025906 0 arceboot:19]   [PA:0x8022c000, PA:0x8023f000) .rodata (READ | RESERVED)
[  0.026953 0 arceboot:19]   [PA:0x8023f000, PA:0x80242000) .data .tdata .tbss .percpu (READ | WRITE | RESERVED)
[  0.028008 0 arceboot:19]   [PA:0x80242000, PA:0x80282000) boot stack (READ | WRITE | RESERVED)
[  0.029155 0 arceboot:19]   [PA:0x80282000, PA:0x80286000) .bss (READ | WRITE | RESERVED)
[  0.030409 0 arceboot:19]   [PA:0x80286000, PA:0x88000000) free memory (READ | WRITE | FREE)
[  0.031986 0 arceboot:19]   [PA:0x101000, PA:0x102000) mmio (READ | WRITE | DEVICE | RESERVED)
[  0.033131 0 arceboot:19]   [PA:0xc000000, PA:0xc210000) mmio (READ | WRITE | DEVICE | RESERVED)
[  0.034298 0 arceboot:19]   [PA:0x10000000, PA:0x10001000) mmio (READ | WRITE | DEVICE | RESERVED)
[  0.035418 0 arceboot:19]   [PA:0x10001000, PA:0x10009000) mmio (READ | WRITE | DEVICE | RESERVED)
[  0.036501 0 arceboot:19]   [PA:0x30000000, PA:0x40000000) mmio (READ | WRITE | DEVICE | RESERVED)
[  0.037597 0 arceboot:19]   [PA:0x40000000, PA:0x80000000) mmio (READ | WRITE | DEVICE | RESERVED)
[  0.038772 0 arceboot:66] Initialize global memory allocator...
[  0.039558 0 arceboot:67]   use TLSF allocator.
[  0.040237 0 axhal::mem:130] default free regions
[  0.040811 0 axhal::mem:130] default free regions
[  0.041671 0 axalloc:217] initialize global allocator at: [0xffffffc080286000, 0xffffffc088000000)
[  0.043422 0 axhal::mem:130] default free regions
[  0.044050 0 axmm:72] Initialize virtual memory management...
[  0.044831 0 axhal::mem:130] default free regions
[  0.045820 0 axmm::backend::linear:21] map_linear: [VA:0xffffffc080200000, VA:0xffffffc08022c000) -> [PA:0x80200000, PA:0x8022c000) READ | EXECUTE
[  0.048337 0 axmm::backend::linear:21] map_linear: [VA:0xffffffc08022c000, VA:0xffffffc08023f000) -> [PA:0x8022c000, PA:0x8023f000) READ
[  0.049701 0 axmm::backend::linear:21] map_linear: [VA:0xffffffc08023f000, VA:0xffffffc080242000) -> [PA:0x8023f000, PA:0x80242000) READ | WRITE
[  0.051068 0 axmm::backend::linear:21] map_linear: [VA:0xffffffc080242000, VA:0xffffffc080282000) -> [PA:0x80242000, PA:0x80282000) READ | WRITE
[  0.052285 0 axmm::backend::linear:21] map_linear: [VA:0xffffffc080282000, VA:0xffffffc080286000) -> [PA:0x80282000, PA:0x80286000) READ | WRITE
[  0.053702 0 axmm::backend::linear:21] map_linear: [VA:0xffffffc080286000, VA:0xffffffc088000000) -> [PA:0x80286000, PA:0x88000000) READ | WRITE
[  0.060959 0 axmm::backend::linear:21] map_linear: [VA:0xffffffc000101000, VA:0xffffffc000102000) -> [PA:0x101000, PA:0x102000) READ | WRITE | DEVICE
[  0.062534 0 axmm::backend::linear:21] map_linear: [VA:0xffffffc00c000000, VA:0xffffffc00c210000) -> [PA:0xc000000, PA:0xc210000) READ | WRITE | DEVICE
[  0.064246 0 axmm::backend::linear:21] map_linear: [VA:0xffffffc010000000, VA:0xffffffc010001000) -> [PA:0x10000000, PA:0x10001000) READ | WRITE | DEVICE
[  0.065702 0 axmm::backend::linear:21] map_linear: [VA:0xffffffc010001000, VA:0xffffffc010009000) -> [PA:0x10001000, PA:0x10009000) READ | WRITE | DEVICE
[  0.066940 0 axmm::backend::linear:21] map_linear: [VA:0xffffffc030000000, VA:0xffffffc040000000) -> [PA:0x30000000, PA:0x40000000) READ | WRITE | DEVICE
[  0.080230 0 axmm::backend::linear:21] map_linear: [VA:0xffffffc040000000, VA:0xffffffc080000000) -> [PA:0x40000000, PA:0x80000000) READ | WRITE | DEVICE
[  0.129178 0 axmm:75] kernel address space init OK: AddrSpace {
    va_range: VA:0xffffffc000000000..VA:0xfffffffffffff000,
    page_table_root: PA:0x8028e000,
    areas: [
        MemoryArea {
            va_range: VA:0xffffffc000101000..VA:0xffffffc000102000,
            flags: READ | WRITE | DEVICE,
        },
        MemoryArea {
            va_range: VA:0xffffffc00c000000..VA:0xffffffc00c210000,
            flags: READ | WRITE | DEVICE,
        },
        MemoryArea {
            va_range: VA:0xffffffc010000000..VA:0xffffffc010001000,
            flags: READ | WRITE | DEVICE,
        },
        MemoryArea {
            va_range: VA:0xffffffc010001000..VA:0xffffffc010009000,
            flags: READ | WRITE | DEVICE,
        },
        MemoryArea {
            va_range: VA:0xffffffc030000000..VA:0xffffffc040000000,
            flags: READ | WRITE | DEVICE,
        },
        MemoryArea {
            va_range: VA:0xffffffc040000000..VA:0xffffffc080000000,
            flags: READ | WRITE | DEVICE,
        },
        MemoryArea {
            va_range: VA:0xffffffc080200000..VA:0xffffffc08022c000,
            flags: READ | EXECUTE,
        },
        MemoryArea {
            va_range: VA:0xffffffc08022c000..VA:0xffffffc08023f000,
            flags: READ,
        },
        MemoryArea {
            va_range: VA:0xffffffc08023f000..VA:0xffffffc080242000,
            flags: READ | WRITE,
        },
        MemoryArea {
            va_range: VA:0xffffffc080242000..VA:0xffffffc080282000,
            flags: READ | WRITE,
        },
        MemoryArea {
            va_range: VA:0xffffffc080282000..VA:0xffffffc080286000,
            flags: READ | WRITE,
        },
        MemoryArea {
            va_range: VA:0xffffffc080286000..VA:0xffffffc088000000,
            flags: READ | WRITE,
        },
    ],
}
[  0.144132 0 arceboot:34] Initialize platform devices...
[  0.144751 0 axdriver:153] Initialize device drivers...
[  0.145410 0 axdriver:154]   device model: static
[  0.146002 0 axdriver:157]   probing devices...
[  0.146603 0 axdriver:132]   probing devices... up
[  0.147359 0 axdriver::bus::pci:97] PCI 00:00.0: 1b36:0008 (class 06.00, rev 00) Standard
[  0.149621 0 axdriver::bus::pci:97] PCI 00:01.0: 1af4:1001 (class 01.00, rev 00) Standard
[  0.151137 0 axdriver::bus::pci:54]   BAR 1: MEM [0x40000000, 0x40001000)
[  0.152176 0 axdriver::bus::pci:54]   BAR 4: MEM [0x40004000, 0x40008000) 64bit pref
[  0.159930 0 virtio_drivers::transport:78] Device features: BlkFeature(SEG_MAX | GEOMETRY | BLK_SIZE | FLUSH | TOPOLOGY | CONFIG_WCE | DISCARD | WRITE_ZEROES | RING_INDIRECT_DESC | RING_EVENT_IDX | VERSION_1)
[  0.161779 0 virtio_drivers::device::blk:59] config: 0xffffffc040006000
[  0.162600 0 virtio_drivers::device::blk:64] found a block device of size 524288KB
[  0.163791 0 axdriver::bus::pci:104] registered a new Block device at 00:01.0: "virtio-blk"
[  0.191668 0 axdriver:134]   probing devices... up down
[  0.192518 0 axdriver:159]   probing devices... down
[  0.193213 0 axdriver:171] number of block devices: 1
[  0.193877 0 axdriver:174]   block device 0: "virtio-blk"
[  0.194696 0 axfs:41] Initialize filesystems...
[  0.195352 0 axfs:44]   use block device 0: "virtio-blk"
[  0.202757 0 axfs::fs::fatfs:135] create Dir at fatfs: /dev
[  0.212654 0 axfs::fs::fatfs:115] lookup at fatfs: /dev
[  0.219079 0 fatfs::dir:139] Is a directory
[  0.232074 0 axfs::fs::fatfs:135] create Dir at fatfs: /tmp
[  0.241713 0 axfs::fs::fatfs:115] lookup at fatfs: /tmp
[  0.250870 0 fatfs::dir:139] Is a directory
[  0.266865 0 axfs_ramfs::dir:121] create Dir at ramfs: sys
[  0.267953 0 axfs_ramfs::dir:121] create Dir at ramfs: sys/net
[  0.268748 0 axfs_ramfs::dir:121] create Dir at ramfs: net
[  0.269440 0 axfs_ramfs::dir:121] create Dir at ramfs: sys/net/core
[  0.270149 0 axfs_ramfs::dir:121] create Dir at ramfs: net/core
[  0.270782 0 axfs_ramfs::dir:121] create Dir at ramfs: core
[  0.271501 0 axfs_ramfs::dir:121] create File at ramfs: sys/net/core/somaxconn
[  0.272286 0 axfs_ramfs::dir:121] create File at ramfs: net/core/somaxconn
[  0.272996 0 axfs_ramfs::dir:121] create File at ramfs: core/somaxconn
[  0.273721 0 axfs_ramfs::dir:121] create File at ramfs: somaxconn
[  0.274877 0 axfs_ramfs::dir:121] create Dir at ramfs: sys/vm
[  0.275667 0 axfs_ramfs::dir:121] create Dir at ramfs: vm
[  0.276605 0 axfs_ramfs::dir:121] create File at ramfs: sys/vm/overcommit_memory
[  0.277324 0 axfs_ramfs::dir:121] create File at ramfs: vm/overcommit_memory
[  0.278053 0 axfs_ramfs::dir:121] create File at ramfs: overcommit_memory
[  0.278834 0 axfs_ramfs::dir:121] create Dir at ramfs: self
[  0.279674 0 axfs_ramfs::dir:121] create File at ramfs: self/stat
[  0.280520 0 axfs_ramfs::dir:121] create File at ramfs: stat
[  0.281352 0 axfs::fs::fatfs:135] create Dir at fatfs: /proc
[  0.294891 0 axfs::fs::fatfs:115] lookup at fatfs: /proc
[  0.306110 0 fatfs::dir:139] Is a directory
[  0.323641 0 axfs_ramfs::dir:121] create Dir at ramfs: kernel
[  0.324367 0 axfs_ramfs::dir:121] create Dir at ramfs: kernel/mm
[  0.324971 0 axfs_ramfs::dir:121] create Dir at ramfs: mm
[  0.325631 0 axfs_ramfs::dir:121] create Dir at ramfs: kernel/mm/transparent_hugepage
[  0.326308 0 axfs_ramfs::dir:121] create Dir at ramfs: mm/transparent_hugepage
[  0.327057 0 axfs_ramfs::dir:121] create Dir at ramfs: transparent_hugepage
[  0.327805 0 axfs_ramfs::dir:121] create File at ramfs: kernel/mm/transparent_hugepage/enabled
[  0.328614 0 axfs_ramfs::dir:121] create File at ramfs: mm/transparent_hugepage/enabled
[  0.329336 0 axfs_ramfs::dir:121] create File at ramfs: transparent_hugepage/enabled
[  0.330064 0 axfs_ramfs::dir:121] create File at ramfs: enabled
[  0.330854 0 axfs_ramfs::dir:121] create Dir at ramfs: devices
[  0.331515 0 axfs_ramfs::dir:121] create Dir at ramfs: devices/system
[  0.332206 0 axfs_ramfs::dir:121] create Dir at ramfs: system
[  0.332937 0 axfs_ramfs::dir:121] create Dir at ramfs: devices/system/clocksource
[  0.333604 0 axfs_ramfs::dir:121] create Dir at ramfs: system/clocksource
[  0.334263 0 axfs_ramfs::dir:121] create Dir at ramfs: clocksource
[  0.334990 0 axfs_ramfs::dir:121] create Dir at ramfs: devices/system/clocksource/clocksource0
[  0.335737 0 axfs_ramfs::dir:121] create Dir at ramfs: system/clocksource/clocksource0
[  0.336488 0 axfs_ramfs::dir:121] create Dir at ramfs: clocksource/clocksource0
[  0.337165 0 axfs_ramfs::dir:121] create Dir at ramfs: clocksource0
[  0.337796 0 axfs_ramfs::dir:121] create File at ramfs: devices/system/clocksource/clocksource0/current_clocksource
[  0.338500 0 axfs_ramfs::dir:121] create File at ramfs: system/clocksource/clocksource0/current_clocksource
[  0.339259 0 axfs_ramfs::dir:121] create File at ramfs: clocksource/clocksource0/current_clocksource
[  0.339986 0 axfs_ramfs::dir:121] create File at ramfs: clocksource0/current_clocksource
[  0.340760 0 axfs_ramfs::dir:121] create File at ramfs: current_clocksource
[  0.341570 0 axfs::fs::fatfs:135] create Dir at fatfs: /sys
[  0.357217 0 axfs::fs::fatfs:115] lookup at fatfs: /sys
[  0.371293 0 fatfs::dir:139] Is a directory
[  0.390289 0 arceboot:55] current root dir: /
[  0.390959 0 axfs::fops:126] open file: /test/arceboot.txt READ
[  0.391744 0 axfs::root:80] lookup at root: /test/arceboot.txt
[  0.392462 0 axfs::fs::fatfs:115] lookup at fatfs: test/arceboot.txt
[  0.402785 0 arceboot:56] read test file context: This is a test file for Arceboot.

[  0.403528 0 arceboot:58] will shut down.
[  0.404136 0 axhal::platform::riscv64_qemu_virt::misc:3] Shutting down...
qemu-system-riscv64 -m 128M -serial mon:stdio -bios /root/arceboot/rustsbi/target/riscv64imac-unknown-none-elf/release/rustsbi-prototyper-payload.elf -nographic -machine virt -device loader,file=ramdisk.cpio,addr=0x84000000
[RustSBI] INFO  - Hello RustSBI!
[RustSBI] INFO  - RustSBI version 0.4.0
[RustSBI] INFO  - .______       __    __      _______.___________.  _______..______   __
[RustSBI] INFO  - |   _  \     |  |  |  |    /       |           | /       ||   _  \ |  |
[RustSBI] INFO  - |  |_)  |    |  |  |  |   |   (----`---|  |----`|   (----`|  |_)  ||  |
[RustSBI] INFO  - |      /     |  |  |  |    \   \       |  |      \   \    |   _  < |  |
[RustSBI] INFO  - |  |\  \----.|  `--'  |.----)   |      |  |  .----)   |   |  |_)  ||  |
[RustSBI] INFO  - | _| `._____| \______/ |_______/       |__|  |_______/    |______/ |__|
[RustSBI] INFO  - Initializing RustSBI machine-mode environment.
[RustSBI] INFO  - Platform Name                 : riscv-virtio,qemu
[RustSBI] INFO  - Platform HART Count           : 1
[RustSBI] INFO  - Enabled HARTs                 : [0]
[RustSBI] INFO  - Platform IPI Extension        : SiFiveClint (Base Address: 0x2000000)
[RustSBI] INFO  - Platform Console Extension    : Uart16550U8 (Base Address: 0x10000000)
[RustSBI] INFO  - Platform Reset Extension      : Available (Base Address: 0x100000)
[RustSBI] INFO  - Platform HSM Extension        : Available
[RustSBI] INFO  - Platform RFence Extension     : Available
[RustSBI] INFO  - Platform SUSP Extension       : Available
[RustSBI] INFO  - Platform PMU Extension        : Available
[RustSBI] INFO  - Memory range                  : 0x80000000 - 0x88000000
[RustSBI] INFO  - Platform Status               : Platform initialization complete and ready.
[RustSBI] INFO  - PMP Configuration
[RustSBI] INFO  - PMP        Range      Permission      Address                       
[RustSBI] INFO  - PMP 0:     OFF        NONE            0x00000000
[RustSBI] INFO  - PMP 1-2:   TOR        RWX/RWX         0x80000000 - 0x80000000
[RustSBI] INFO  - PMP 3-5:   TOR        NONE/NONE       0x80019000 - 0x80024000 - 0x80051000
[RustSBI] INFO  - PMP 6:     TOR        RWX             0x88000000
[RustSBI] INFO  - PMP 7:     TOR        RWX             0xffffffffffffffff
[RustSBI] INFO  - Boot HART ID                  : 0
[RustSBI] INFO  - Boot HART Privileged Version: : Version1_12
[RustSBI] INFO  - Boot HART MHPM Mask:          : 0x07ffff
[RustSBI] INFO  - Redirecting hart 0 to 0x00000080200000 in Supervisor mode.
[  0.022388 0 arceboot:15] Logging is enabled.
[  0.023929 0 arceboot:17] Found physcial memory regions:
[  0.024574 0 axhal::mem:130] default free regions
[  0.025915 0 arceboot:19]   [PA:0x80200000, PA:0x80210000) .text (READ | EXECUTE | RESERVED)
[  0.027350 0 arceboot:19]   [PA:0x80210000, PA:0x80216000) .rodata (READ | RESERVED)
[  0.028538 0 arceboot:19]   [PA:0x80216000, PA:0x80219000) .data .tdata .tbss .percpu (READ | WRITE | RESERVED)
[  0.029664 0 arceboot:19]   [PA:0x80219000, PA:0x80259000) boot stack (READ | WRITE | RESERVED)
[  0.030819 0 arceboot:19]   [PA:0x80259000, PA:0x8025d000) .bss (READ | WRITE | RESERVED)
[  0.031959 0 arceboot:19]   [PA:0x8025d000, PA:0x88000000) free memory (READ | WRITE | FREE)
[  0.033136 0 arceboot:19]   [PA:0x101000, PA:0x102000) mmio (READ | WRITE | DEVICE | RESERVED)
[  0.034573 0 arceboot:19]   [PA:0xc000000, PA:0xc210000) mmio (READ | WRITE | DEVICE | RESERVED)
[  0.035795 0 arceboot:19]   [PA:0x10000000, PA:0x10001000) mmio (READ | WRITE | DEVICE | RESERVED)
[  0.036956 0 arceboot:19]   [PA:0x10001000, PA:0x10009000) mmio (READ | WRITE | DEVICE | RESERVED)
[  0.038085 0 arceboot:19]   [PA:0x30000000, PA:0x40000000) mmio (READ | WRITE | DEVICE | RESERVED)
[  0.039242 0 arceboot:19]   [PA:0x40000000, PA:0x80000000) mmio (READ | WRITE | DEVICE | RESERVED)
[  0.040436 0 arceboot:66] Initialize global memory allocator...
[  0.041478 0 arceboot:67]   use TLSF allocator.
[  0.042243 0 axhal::mem:130] default free regions
[  0.042985 0 axhal::mem:130] default free regions
[  0.043874 0 axalloc:217] initialize global allocator at: [0xffffffc08025d000, 0xffffffc088000000)
[  0.045610 0 axhal::mem:130] default free regions
[  0.046320 0 axmm:72] Initialize virtual memory management...
[  0.047059 0 axhal::mem:130] default free regions
[  0.047939 0 axmm::backend::linear:21] map_linear: [VA:0xffffffc080200000, VA:0xffffffc080210000) -> [PA:0x80200000, PA:0x80210000) READ | EXECUTE
[  0.050450 0 axmm::backend::linear:21] map_linear: [VA:0xffffffc080210000, VA:0xffffffc080216000) -> [PA:0x80210000, PA:0x80216000) READ
[  0.051893 0 axmm::backend::linear:21] map_linear: [VA:0xffffffc080216000, VA:0xffffffc080219000) -> [PA:0x80216000, PA:0x80219000) READ | WRITE
[  0.053071 0 axmm::backend::linear:21] map_linear: [VA:0xffffffc080219000, VA:0xffffffc080259000) -> [PA:0x80219000, PA:0x80259000) READ | WRITE
[  0.054317 0 axmm::backend::linear:21] map_linear: [VA:0xffffffc080259000, VA:0xffffffc08025d000) -> [PA:0x80259000, PA:0x8025d000) READ | WRITE
[  0.055710 0 axmm::backend::linear:21] map_linear: [VA:0xffffffc08025d000, VA:0xffffffc088000000) -> [PA:0x8025d000, PA:0x88000000) READ | WRITE
[  0.063493 0 axmm::backend::linear:21] map_linear: [VA:0xffffffc000101000, VA:0xffffffc000102000) -> [PA:0x101000, PA:0x102000) READ | WRITE | DEVICE
[  0.064896 0 axmm::backend::linear:21] map_linear: [VA:0xffffffc00c000000, VA:0xffffffc00c210000) -> [PA:0xc000000, PA:0xc210000) READ | WRITE | DEVICE
[  0.066947 0 axmm::backend::linear:21] map_linear: [VA:0xffffffc010000000, VA:0xffffffc010001000) -> [PA:0x10000000, PA:0x10001000) READ | WRITE | DEVICE
[  0.068244 0 axmm::backend::linear:21] map_linear: [VA:0xffffffc010001000, VA:0xffffffc010009000) -> [PA:0x10001000, PA:0x10009000) READ | WRITE | DEVICE
[  0.069556 0 axmm::backend::linear:21] map_linear: [VA:0xffffffc030000000, VA:0xffffffc040000000) -> [PA:0x30000000, PA:0x40000000) READ | WRITE | DEVICE
[  0.084219 0 axmm::backend::linear:21] map_linear: [VA:0xffffffc040000000, VA:0xffffffc080000000) -> [PA:0x40000000, PA:0x80000000) READ | WRITE | DEVICE
[  0.136965 0 axmm:75] kernel address space init OK: AddrSpace {
    va_range: VA:0xffffffc000000000..VA:0xfffffffffffff000,
    page_table_root: PA:0x80265000,
    areas: [
        MemoryArea {
            va_range: VA:0xffffffc000101000..VA:0xffffffc000102000,
            flags: READ | WRITE | DEVICE,
        },
        MemoryArea {
            va_range: VA:0xffffffc00c000000..VA:0xffffffc00c210000,
            flags: READ | WRITE | DEVICE,
        },
        MemoryArea {
            va_range: VA:0xffffffc010000000..VA:0xffffffc010001000,
            flags: READ | WRITE | DEVICE,
        },
        MemoryArea {
            va_range: VA:0xffffffc010001000..VA:0xffffffc010009000,
            flags: READ | WRITE | DEVICE,
        },
        MemoryArea {
            va_range: VA:0xffffffc030000000..VA:0xffffffc040000000,
            flags: READ | WRITE | DEVICE,
        },
        MemoryArea {
            va_range: VA:0xffffffc040000000..VA:0xffffffc080000000,
            flags: READ | WRITE | DEVICE,
        },
        MemoryArea {
            va_range: VA:0xffffffc080200000..VA:0xffffffc080210000,
            flags: READ | EXECUTE,
        },
        MemoryArea {
            va_range: VA:0xffffffc080210000..VA:0xffffffc080216000,
            flags: READ,
        },
        MemoryArea {
            va_range: VA:0xffffffc080216000..VA:0xffffffc080219000,
            flags: READ | WRITE,
        },
        MemoryArea {
            va_range: VA:0xffffffc080219000..VA:0xffffffc080259000,
            flags: READ | WRITE,
        },
        MemoryArea {
            va_range: VA:0xffffffc080259000..VA:0xffffffc08025d000,
            flags: READ | WRITE,
        },
        MemoryArea {
            va_range: VA:0xffffffc08025d000..VA:0xffffffc088000000,
            flags: READ | WRITE,
        },
    ],
}
[  0.151736 0 arceboot:34] Initialize platform devices...
[  0.152344 0 axdriver:153] Initialize device drivers...
[  0.152951 0 axdriver:154]   device model: static
[  0.153572 0 axdriver:157]   probing devices...
[  0.154169 0 axdriver:132]   probing devices... up
[  0.154899 0 axdriver::bus::pci:97] PCI 00:00.0: 1b36:0008 (class 06.00, rev 00) Standard
[  0.180725 0 axdriver:134]   probing devices... up down
[  0.181370 0 axdriver:159]   probing devices... down
[  0.181996 0 axdriver:171] number of block devices: 0
[  0.182819 0 arceboot:55] current root dir: /
[  0.183879 0 arceboot:56] read test file context: This is a test file for Arceboot.

[  0.184531 0 arceboot:58] will shut down.
[  0.185139 0 axhal::platform::riscv64_qemu_virt::misc:3] Shutting down...

… content, and unify the external API interface of boot media

- Add virtio-block device support, implemented by encapsulating related interfaces of axfs
- Modify ramdisk-cpio related interfaces and open them to the public
- Shield the differences between different boot media and unify the medium API interface

Signed-off-by: JensenWei007 <jensenwei007@gmail.com>
@luojia65 luojia65 merged commit 6e9a49f into rustsbi:main Jun 30, 2025
luojia65 pushed a commit that referenced this pull request Jan 30, 2026
* fix(ci): locked toolchain version.

* fix(ci): add an efi test file that depends on the edk2 header file.

* fix(ci): fix actions artifact conflict issues.
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants