3.7.36 VirtioP9Device

virtio P9 server. This model is written in C++.

VirtioP9Device contains the following CADI targets:

  • VirtioP9Device

VirtioP9Device contains the following MTI components:

VirtioP9Device - about

This component implements a subset of the Plan 9 file protocol over a virtio transport. It enables accessing a directory on the host's filesystem within Linux, or another operating system that implements the protocol, running on a platform model.

The component implements a subset of the Linux 9P2000.L protocol. It has the following limitations:

  • You can mount only one host directory per instance of the component.
  • It supports a subset of 9P2000.L message types: Tversion, Tlopen, Tlcreate, Tgetattr, Tsetattr, Treaddir, Tmkdir, Tattach, Twalk, Tread, Twrite, Tclunk, Tremove, Trename. On Linux hosts, it also supports: Treadlink, Tsymlink.
  • On Windows hosts, it ignores Unix permissions when writing files.
  • On Windows hosts, it performs a simple mapping from Windows to Unix permissions when reading.
  • On Windows hosts, symbolic links appear as regular files.
  • On Windows hosts, it does not perform operations (writing, deleting, renaming) on a file that another process has open.

Setting up VirtioP9Device

Take the following steps to use this component:

  • Use a version of Linux that supports v9fs over virtio and virtio-mmio devices.
  • Update the device tree to include the VirtioP9Device component, or specify it on the kernel command-line, as shown below. The address range for both VE and Base platforms is 0x1C140000-0x1C14FFFF.

    The interrupt number is 43, or IRQ 75, for both VE and Base platforms.

  • Set the following parameter to the directory on the host that you want to mount in the model:

    VE:
    motherboard.virtiop9device.root_path
    Base:
    bp.virtiop9device.root_path
  • On Linux, mount the host directory by using the following command in the model:
    $ mount -t 9p -o trans=virtio,version=9p2000.L FM <mount point>

Example kernel command-line argument

virtio_mmio.device=0x10000@0x1c140000:75

Example entry for DTS files

Add this entry next to the corresponding virtio_block entry:

virtio_p9@0140000 {
       compatible = "virtio,mmio"; 
       reg = <0x0 0x1c140000 0x0 0x1000>; 
       interrupts = <0x0 0x2b 0x4>; 
};

Table 3-243 Ports

Name Protocol Type Description
intr 2.7.2 Signal protocol Master Virtio device sets interrupt to signal completion.
pvbus PVBus Slave Virtio MMIO control/config/status registers.
virtio_m PVBus Master Virtio device performs DMA accesses via master.
Non-ConfidentialPDF file icon PDF version100964_1142_00_en
Copyright © 2014–2018 Arm Limited or its affiliates. All rights reserved.