All of lore.kernel.org
 help / color / mirror / Atom feed
* [CXP][RFC] Pick RTDM for the common kernel interface
@ 2020-12-06 16:56 Philippe Gerum
  2020-12-14  7:29 ` Wolfgang Denk
  2020-12-14 12:44 ` Jan Kiszka
  0 siblings, 2 replies; 6+ messages in thread
From: Philippe Gerum @ 2020-12-06 16:56 UTC (permalink / raw)
  To: xenomai


The common Xenomai platform specification is about defining the
commonalities among future Xenomai releases starting from 3.3,
including the Xenomai 4 series based on a next generation (EVL)
core. A common kernel interface available for implementing
Xenomai-controlled drivers is part of this specification.

Xenomai 3.x and earlier have long promoted the RTDM interface for
implementing drivers, which encourages a separated driver model by
design. Instead, the EVL core which is going to be the cornerstone of
Xenomai 4 promotes an integrated approach to developing real-time
drivers when possible, by adding so-called "out of band" capabilities
directly to the implementation of existing mainline drivers [1][2]. A
custom EVL driver which has no counterpart in the mainline kernel tree
is still a regular character device driver, although it must use the
real-time services brought by the EVL core for its time-critical
operations [3].

The purpose of defining a common kernel interface as part of the CXP is
specifically about helping with portability of existing custom drivers
built for Xenomai 3.x towards Xenomai 4. Following the regular driver
model as promoted by EVL along with using the EVL core interface
directly would be the recommended way of developing drivers for Xenomai
4.

However, some RTDM features/services cannot be ported to an EVL-based
system, due to major differences between the Cobalt and EVL locking
models (e.g. RTDM_EXECUTE_ATOMICALLY(), along with any call involving
Cobalt's single "superlock").



PROPOSAL: Adopt a large subset of the current RTDM specification as
the common kernel interface defined by the CXP. The exact set of RTDM
services which should be retained in the CXP implementation must be
discussed further.

As a consequence, Xenomai 4 would provide a RTDM layer based on the EVL
core interface internally, which would preserve the driver taxonomy
("named" / "protocol") and registration model inherited from its Xenomai
3.x counterpart.

                  drivers
      ....................................
           |                  |      |
           |                  |      |
          RTDM               RTDM    |
           |                  |      |
           v                  v      v
 (Cobalt core xn* API)   (EVL core evl_* API)
 ---------------------   --------------------
      Xenomai 3.x            Xenomai 4

Applications could issue I/O requests to RTDM-based drivers via the
dedicated services from the common libcobalt interface also available
in both environments [4].


Thanks,

[1] https://evlproject.org/core/oob-drivers/
[2] https://evlproject.org/core/oob-drivers/gpio/
[3] https://evlproject.org/core/kernel-api/
[4] https://xenomai.org/pipermail/xenomai/2020-December/043930.html

-- 
Philippe.


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

end of thread, other threads:[~2020-12-15 12:30 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-12-06 16:56 [CXP][RFC] Pick RTDM for the common kernel interface Philippe Gerum
2020-12-14  7:29 ` Wolfgang Denk
2020-12-14 12:44 ` Jan Kiszka
2020-12-14 16:11   ` Greg Gallagher
2020-12-14 17:13     ` Philippe Gerum
2020-12-15 12:30     ` Wolfgang Denk

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.