1. 07 Apr, 2021 1 commit
  2. 15 Mar, 2021 1 commit
  3. 08 Mar, 2021 6 commits
  4. 16 Feb, 2021 1 commit
  5. 08 Feb, 2021 9 commits
  6. 03 Feb, 2021 7 commits
    • Philippe Gerum's avatar
      cobalt/assert: pipeline: add TODO() marker · 5c9cbcfc
      Philippe Gerum authored and Jan Kiszka's avatar Jan Kiszka committed
      
      
      As its name suggests, TODO() can be added to the code in order to
      highlight a place where some implementation bits are known to be
      missing. Turning on CONFIG_XENO_TODO reveals the places where such
      markers might linger by triggering a build time assertion, so that
      they don't go unnoticed.
      
      We may drop this helper when the port to Dovetail is complete.
      Signed-off-by: Philippe Gerum's avatarPhilippe Gerum <rpm@xenomai.org>
      Signed-off-by: Jan Kiszka's avatarJan Kiszka <jan.kiszka@siemens.com>
      5c9cbcfc
    • Philippe Gerum's avatar
      cobalt/machine: ipipe: drop timer frequency setting · 64289ae2
      Philippe Gerum authored and Jan Kiszka's avatar Jan Kiszka committed
      
      
      The only user of the timer frequency setting was the machine-specific
      timer calibration handler, which is now gone. Therefore we don't need
      to know the timer frequency anymore. As a consequence, we don't care
      about overriding its value as determined by the I-pipe either.
      
      Let's drop all of these antiquated bits.
      Signed-off-by: Philippe Gerum's avatarPhilippe Gerum <rpm@xenomai.org>
      Signed-off-by: Jan Kiszka's avatarJan Kiszka <jan.kiszka@siemens.com>
      64289ae2
    • Philippe Gerum's avatar
      cobalt/clock: drop timer calibration · 9466bfd1
      Philippe Gerum authored and Jan Kiszka's avatar Jan Kiszka committed
      
      
      The calibrated timer setup time is currently accounted for in the
      timer gravity triplet (.user, also used as default .irq latency),
      exclusively. This forces in a dynamically calculated parameter with no
      way to override it. Meanwhile, this value would be already included in
      every gravity value which autotune may determine, so this setting is
      pretty much redundant.
      
      Drop nktimerlat and the requirement for the machine section to provide
      a timer calibration handler, we don't need these.
      Signed-off-by: Philippe Gerum's avatarPhilippe Gerum <rpm@xenomai.org>
      Signed-off-by: Jan Kiszka's avatarJan Kiszka <jan.kiszka@siemens.com>
      9466bfd1
    • Philippe Gerum's avatar
      cobalt/clock: pipeline: move TSC-related code to the I-pipe section · d9499c1e
      Philippe Gerum authored and Jan Kiszka's avatar Jan Kiszka committed
      
      
      Cobalt over Dovetail represents time values as counts of nanoseconds,
      dismissing the legacy (hardware) TSC representation entirely. For this
      reason, we can move any code which implements TSC/nanosecs conversion
      to the I-pipe specific section.
      
      This includes the handler applying CPU frequency updates
      (xnclock_update_freq()) which has no purpose over Dovetail, since
      these events are transparently dealt with for the proxy device by the
      generic clockevent framework.
      
      No functional change is introduced.
      Signed-off-by: Philippe Gerum's avatarPhilippe Gerum <rpm@xenomai.org>
      Signed-off-by: Jan Kiszka's avatarJan Kiszka <jan.kiszka@siemens.com>
      d9499c1e
    • Philippe Gerum's avatar
      cobalt/clock: pipeline: abstract access to host (real)time · d3d5592b
      Philippe Gerum authored and Jan Kiszka's avatar Jan Kiszka committed
      
      
      Dovetail enables applications to get timestamps from the
      CLOCK_MONOTONIC and CLOCK_REALTIME clocks via the regular vDSO by
      calling clock_gettime(), including from the out-of-band stage
      (i.e. primary mode).
      
      Legacy support involving IPIPE_HOSTRT can move to the I-pipe specific
      section.
      
      No functional change is introduced.
      Signed-off-by: Philippe Gerum's avatarPhilippe Gerum <rpm@xenomai.org>
      Signed-off-by: Jan Kiszka's avatarJan Kiszka <jan.kiszka@siemens.com>
      d3d5592b
    • Philippe Gerum's avatar
      cobalt/thread: pipeline: abstract synchronous single-stepping code · d0f63400
      Philippe Gerum authored and Jan Kiszka's avatar Jan Kiszka committed
      
      
      Although the synchronous single-stepping code has moved to the I-pipe
      section, we should be able to reuse the current logic nearly as is on
      top of Dovetail, with only minor adjustments.
      
      However, compared to the previous implementation, the single-stepping
      status (XNCONTHI) and the user return notifier are armed _after_ the
      personality handlers have run, in the relaxing path for the current
      thread (see xnthread_relax()). This change should not affect the
      overall logic, assuming no custom relax handler was depending on the
      original sequence of actions (which they should definitely not
      anyway).
      
      We keep this commit which does introduce a small functional change
      separated from the other scheduler-related modifications, as a
      convenience for chasing regressions if need be.
      Signed-off-by: Philippe Gerum's avatarPhilippe Gerum <rpm@xenomai.org>
      Signed-off-by: Jan Kiszka's avatarJan Kiszka <jan.kiszka@siemens.com>
      d0f63400
    • Philippe Gerum's avatar
      cobalt/kernel: pipeline: abstract context switching support · b506a5e2
      Philippe Gerum authored and Jan Kiszka's avatar Jan Kiszka committed
      
      
      Implement an abstract API for the low-level context switching code,
      moving the legacy open coded support to the I-pipe specific section
      (e.g. fpu management, register file switching, root context tracking).
      Dovetail provides built-in support for all these nitty-gritty details,
      which we may tap into for the same purpose instead.
      
      The changes have been introduced in a way which properly maps to the
      Dovetail interface, while remaining compatible with the interface to
      the legacy code.
      
      No functional change is introduced.
      Signed-off-by: Philippe Gerum's avatarPhilippe Gerum <rpm@xenomai.org>
      [Jan: make giveup_fpu static]
      Signed-off-by: Jan Kiszka's avatarJan Kiszka <jan.kiszka@siemens.com>
      b506a5e2
  7. 19 Jan, 2021 4 commits
  8. 11 Jan, 2021 6 commits
  9. 08 Jan, 2021 5 commits