[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
PCI Arbiter
From: |
Joan Lledó |
Subject: |
PCI Arbiter |
Date: |
Sun, 3 Dec 2017 11:21:53 +0100 |
Hello Hurd,
This is a new version of the PCI arbiter. Following are some features I've
added the project over the last weeks.
- A tiny libnetfs filesystem to expose a tree of devices.
- For each virtual device, provide files to read/write its configuration space,
regions an expansion rom.
- Ability to set access permissions over devices by command line parameter and
fsysopts.
I tried to run netdde as non-root but gave up because it seemed non-trivial for
me and the time for my thesis is running out. Next are some issues I found:
- Some network drivers poke IO ports by themselves (See #hurd, 2017-11-23 [1]).
- check_kernel() in check_kernel.c[2] is calling get_privileged_ports().
Besides, the pci server lacks some features required to run netdde as non-root:
- Provide some way for the client to map device's regions and rom into its
space. read() + mmap() could be enough for read-only spaces, but probably
making the server act as a pager is the only good solution.
(See #hurd, 2017-10-27 [3]).
- Provide libpciaccess and pciutils with a way to poke IO ports as non-root.
Adding new routines to the PCI interface is an option, or even creating a
new interface, since poking IO ports is not necessarily related to PCI.
Modules for libpciaccess and pciutils are also attached.
------------------------
[1] http://richtlijn.be/~larstiq/hurd/hurd-2017-11-23
[2] https://anonscm.debian.org/cgit/pkg-hurd/netdde.git/tree/check_kernel.c
[3] http://richtlijn.be/~larstiq/hurd/hurd-2017-10-27
- PCI Arbiter,
Joan Lledó <=