diff --git a/repos/base-nova/ports/nova.hash b/repos/base-nova/ports/nova.hash index dc1a9e2fbf..48b651902b 100644 --- a/repos/base-nova/ports/nova.hash +++ b/repos/base-nova/ports/nova.hash @@ -1 +1 @@ -fdf169a91f3aaa9a343924faa16966cbc79f31e7 +e1ea2d79b890ec24b65effb5b9718019db97ec56 diff --git a/repos/base-nova/ports/nova.port b/repos/base-nova/ports/nova.port index d9f949d8b8..64a30441ca 100644 --- a/repos/base-nova/ports/nova.port +++ b/repos/base-nova/ports/nova.port @@ -4,7 +4,7 @@ DOWNLOADS := nova.git # r10 branch URL(nova) := https://github.com/alex-ab/NOVA.git -REV(nova) := b4c0d9e659772e2fe7f9e4595420ebc6a71d5467 +REV(nova) := 68c2fb1671e75d811a4787e35b0d0c6cc85815c0 DIR(nova) := src/kernel/nova PATCHES := $(sort $(wildcard $(REP_DIR)/patches/*.patch)) diff --git a/repos/base-nova/src/core/platform.cc b/repos/base-nova/src/core/platform.cc index bb8e516350..c3c356ebfc 100644 --- a/repos/base-nova/src/core/platform.cc +++ b/repos/base-nova/src/core/platform.cc @@ -858,8 +858,10 @@ Platform::Platform() { uint64_t sc_time = 0; - enum SYSCALL_OP { IDLE_SC = 0, CROSS_SC = 1 }; - uint8_t syscall_op = (name == "cross") ? CROSS_SC : IDLE_SC; + enum SYSCALL_OP { IDLE_SC = 0, CROSS_SC = 1, + KILLED_SC = 2 }; + uint8_t syscall_op = (name == "cross") ? CROSS_SC : + ((name == "killed") ? KILLED_SC : IDLE_SC); uint8_t res = Nova::sc_ctrl(sc_sel, sc_time, syscall_op); if (res != Nova::NOVA_OK) @@ -894,6 +896,12 @@ Platform::Platform() _cpus.width(), 1), sc_idle_base + kernel_cpu_id, "cross"); + + new (core_mem_alloc()) Trace_source(Trace::sources(), + Affinity::Location(genode_cpu_id, 0, + _cpus.width(), 1), + sc_idle_base + kernel_cpu_id, + "killed"); } /* add exception handler EC for core and EC root thread to trace sources */