linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* Using DT overlays for adding virtual hardware
@ 2016-06-08 14:16 Jan Kiszka
  2016-06-08 15:17 ` Mark Rutland
  0 siblings, 1 reply; 19+ messages in thread
From: Jan Kiszka @ 2016-06-08 14:16 UTC (permalink / raw)
  To: devicetree, Pantelis Antoniou
  Cc: Linux Kernel Mailing List, Jailhouse, Måns Rullgård,
	Antonios Motakis

Hi all,

already started the discussion off-list with Pantelis, but it's better
done in public:

I'm currently exploring ways to make Linux recognize dynamically added
virtual hardware when running under the Jailhouse hypervisor [1]. We
need to load drivers for inter-partition communication devices that only
appear after Jailhouse started (which is done from within Linux, i.e.
long after boot) or when a partition was added later on. Probably, we
will simply add a virtual PCI host bridge on systems without physical
PCI and let the IPC device be explored that way (already works on x86).
Still, that leaves us with hotplug and unplug on hypervisor activation
and deactivation.

Inspired by how FPGA bitstream loaders and the caps/hats for BeagleBones
and RasPis work, I thought of using device tree overlays for this.
However, it seems there are still some gaps in upstream Linux /wrt
overlays. So I would like to find out what already works and what may
need further patches.

The plan (open for suggestions) is as follows:

- have an overlay template for a virtual platform device
- compile it into the Jailhouse loader kernel module
- adjust key parameters (e.g. register base addresses) after
  instantiating a device (of_update_property?)
- push modified dt into of_overlay_create

To my understanding, the last step will trigger driver probing which
will cause the device being activated (provided the driver is available,
of course).

I played with the fragment from
Documentation/devicetree/overlay-notes.txt, but already that failed
because the in-kernel dtc does not support /plugin/ yet, right? (Why
not, btw?) What else do I need to patch/update to make the above work?
Or are the simpler ways to achieve what we need?

Thanks,
Jan

[1] https://github.com/siemens/jailhouse

-- 
Siemens AG, Corporate Technology, CT RDA ITP SES-DE
Corporate Competence Center Embedded Linux

^ permalink raw reply	[flat|nested] 19+ messages in thread

end of thread, other threads:[~2016-06-21 13:36 UTC | newest]

Thread overview: 19+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-06-08 14:16 Using DT overlays for adding virtual hardware Jan Kiszka
2016-06-08 15:17 ` Mark Rutland
2016-06-08 15:27   ` Jan Kiszka
2016-06-08 15:57   ` Pantelis Antoniou
2016-06-08 16:23     ` Mark Rutland
2016-06-08 16:31       ` Pantelis Antoniou
2016-06-08 16:39         ` Jan Kiszka
2016-06-09  6:03           ` Jan Kiszka
2016-06-21 10:13             ` Jan Kiszka
2016-06-21 10:24               ` Pantelis Antoniou
2016-06-21 11:22                 ` Jan Kiszka
2016-06-21 11:35                   ` Pantelis Antoniou
2016-06-21 11:43                     ` Jan Kiszka
2016-06-21 11:45                       ` Pantelis Antoniou
2016-06-21 11:59                         ` Jan Kiszka
2016-06-21 13:12                           ` Jan Kiszka
2016-06-21 13:29                             ` Pantelis Antoniou
2016-06-09  7:22           ` Arnd Bergmann
2016-06-10 14:57             ` Jan Kiszka

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).