1. 22 Nov, 2018 11 commits
    • Philippe Gerum's avatar
      arm64: ipipe: preserve the hard interrupt state across mayday trap · dec5e42f
      Philippe Gerum authored
      The mayday trap asks the co-kernel to deal with a runaway context
      which has been detected earlier. When doing so, the co-kernel might
      re-enable hard interrupts, which we have to disable again before
      unwinding the IRQ context which triggered the whole process (like a
      watchdog event).
      
      Use __ipipe_call_mayday() to fire the notification to the co-kernel
      instead of the open coded version, so that we do restore the hard
      interrupt state properly before leaving __ipipe_exit_irq().
      dec5e42f
    • Philippe Gerum's avatar
      arm64: ipipe: route all access traps to co-kernel · 41742503
      Philippe Gerum authored
      Notifying the co-kernel about major faults occurring in kernel context
      or user-space was overlooked. We need the co-kernel to restore the
      root stage whenever applicable before we may attempt to handle the
      fault.
      41742503
    • Philippe Gerum's avatar
      c2a34cf3
    • Philippe Gerum's avatar
      arm64: dts: bcm2837: provide for BT-less variant, re-enabling uart0 as serial · d54e8259
      Philippe Gerum authored
      Raspberry 3 has two UARTs: uart0 is a full-fledged pl011 used for BT
      by default, uart1 is a poor-man's low throughput serial device dubbed
      as the "mini-uart". Unfortunately, uart1 is a massive pain, whose
      clock rate is based on the CPU clock rate: this makes it quite
      unstable as a serial console when a CPU frequency governor is enabled.
      
      When BT is useless, we'd rather switch uart0 from BT to the serial
      pins, disabling uart1 in the same move, so that we recover a decent
      console device (*) with a stable clocking.
      
      bcm2837-rpi-3-b-nobt.dtb is a fixed up blob doing exactly that.
      
      (*) cmdline should mention console=ttyAMA0,<speed>
      d54e8259
    • Philippe Gerum's avatar
      arm64: ipipe: turn hard irqs on when leaving the idle state · b78aefb2
      Philippe Gerum authored
      As required to mimic the original behavior when interrupt pipelining
      is in effect.
      b78aefb2
    • Dmitriy Cherkasov's avatar
      arm64: fpsimd: ipipe: enable sharing with head domain · c09de98b
      Dmitriy Cherkasov authored
      Serialize accesses to the fpsimd so as to allow co-kernel activities
      (e.g. tasks) running in the head domain to share the unit with the
      host kernel.
      c09de98b
    • Philippe Gerum's avatar
      arm64: ipipe: route syscalls to co-kernel · cf3a0a01
      Philippe Gerum authored
      This commit introduces the changes redirecting "foreign" system calls
      to the co-kernel.
      cf3a0a01
    • Philippe Gerum's avatar
      arm64: ipipe: route traps to co-kernel · f5beda02
      Philippe Gerum authored
      This commit introduces the changes redirecting traps and exceptions to
      the interrupt pipeline, so that the co-kernel can be made aware early
      on. The co-kernel may then decide whether the fault should be
      propagated to the regular kernel for actual handling.
      
      This is typically useful for allowing the co-kernel to downgrade the
      current context from the head domain to the root domain, when leaving
      the burden of handling major faults to the regular kernel makes more
      sense than expecting the co-kernel to reinvent such a wheel
      (e.g. memory violations, illegal instructions, divide by zero etc). As
      a matter of fact, optimizing latency upon such events would not make
      much sense anyway.
      f5beda02
    • Philippe Gerum's avatar
      arm64: ipipe: share context switch code with the head domain · 61203e83
      Philippe Gerum authored
      This change enable a co-kernel to change the address space of a task
      using the common mm helpers. This is mainly a matter of strictly
      serializing context switching code among all callers regardless of
      their domain (head/root), by disabling hard irqs.
      61203e83
    • Philippe Gerum's avatar
      arm64: context_tracking: disable if CONFIG_IPIPE · 63f55611
      Philippe Gerum authored
      Context tracking does not cope well with interrupt pipelining
      currently: disable the former for now.
      63f55611
    • Philippe Gerum's avatar
      arm64: ipipe: add pipeline core · 5d5e25dc
      Philippe Gerum authored
      Introduce the arm64-specific bits enabling the interrupt pipeline
      exclusively.
      5d5e25dc
  2. 01 Nov, 2018 4 commits
  3. 20 Oct, 2018 5 commits
  4. 18 Oct, 2018 20 commits