nova: update to r6 nova kernel branch

- adds general support for semaphore timeouts
- fixes PCID feature (aka tagged TLB) seeen on Lenovo X201

Fixes #1211
This commit is contained in:
Alexander Boettcher
2014-05-27 18:10:47 +02:00
committed by Norman Feske
parent 6cb9559feb
commit e70c13ce1f
7 changed files with 12 additions and 10 deletions

View File

@ -280,9 +280,9 @@ namespace Nova {
ALWAYS_INLINE ALWAYS_INLINE
inline uint8_t sm_ctrl(unsigned sm, Sem_op op) inline uint8_t sm_ctrl(unsigned sm, Sem_op op, unsigned long long timeout = 0)
{ {
return syscall_0(NOVA_SM_CTRL, op, sm); return syscall_2(NOVA_SM_CTRL, op, sm, timeout >> 32, timeout);
} }

View File

@ -231,9 +231,10 @@ namespace Nova {
ALWAYS_INLINE ALWAYS_INLINE
inline uint8_t sm_ctrl(mword_t sm, Sem_op op) inline uint8_t sm_ctrl(mword_t sm, Sem_op op, unsigned long long timeout = 0)
{ {
return syscall_0(NOVA_SM_CTRL, op, sm); return syscall_2(NOVA_SM_CTRL, op, sm, timeout >> 32,
timeout & 0xFFFFFFFFULL);
} }

View File

@ -71,7 +71,7 @@ namespace Nova {
enum Status enum Status
{ {
NOVA_OK = 0, NOVA_OK = 0,
NOVA_IPC_TIMEOUT = 1, NOVA_TIMEOUT = 1,
NOVA_IPC_ABORT = 2, NOVA_IPC_ABORT = 2,
NOVA_INV_HYPERCALL = 3, NOVA_INV_HYPERCALL = 3,
NOVA_INV_SELECTOR = 4, NOVA_INV_SELECTOR = 4,

View File

@ -1 +1 @@
fceaac7f0e0d711be17a2e7f9f4b5d396a4e2b63 2876dd57fafcaf860278d38368e7ba9a551393ab

View File

@ -3,7 +3,8 @@ VERSION := git
DOWNLOADS := nova.git DOWNLOADS := nova.git
URL(nova) := https://github.com/alex-ab/NOVA.git URL(nova) := https://github.com/alex-ab/NOVA.git
REV(nova) := r5 # r6 branch
REV(nova) := f304d54b176ef7b1de9bd6fff6884e1444a0c116
DIR(nova) := src/kernel/nova DIR(nova) := src/kernel/nova
PATCHES := $(wildcard $(REP_DIR)/patches/*.patch) PATCHES := $(wildcard $(REP_DIR)/patches/*.patch)

View File

@ -73,7 +73,7 @@ proc build_boot_image {binaries} {
puts $fh "default 0" puts $fh "default 0"
puts $fh "\ntitle Genode on NOVA" puts $fh "\ntitle Genode on NOVA"
puts $fh " kernel /boot/bender" puts $fh " kernel /boot/bender"
puts $fh " module /hypervisor iommu serial nopcid" puts $fh " module /hypervisor iommu serial"
puts $fh " module /genode/core" puts $fh " module /genode/core"
puts $fh " module /genode/config" puts $fh " module /genode/config"
foreach binary $binaries { foreach binary $binaries {
@ -89,7 +89,7 @@ proc build_boot_image {binaries} {
# #
set fh [open "[run_dir]/config-52-54-00-12-34-56" "WRONLY CREAT TRUNC"] set fh [open "[run_dir]/config-52-54-00-12-34-56" "WRONLY CREAT TRUNC"]
puts $fh " exec /boot/bender" puts $fh " exec /boot/bender"
puts $fh " load /hypervisor iommu serial nopcid" puts $fh " load /hypervisor iommu serial"
puts $fh " load /genode/core" puts $fh " load /genode/core"
puts $fh " load /genode/config" puts $fh " load /genode/config"
foreach binary $binaries { foreach binary $binaries {

View File

@ -209,7 +209,7 @@ Platform::Platform() :
{ {
Hip *hip = (Hip *)__initial_sp; Hip *hip = (Hip *)__initial_sp;
/* check for right API version */ /* check for right API version */
if (hip->api_version != 6) if (hip->api_version != 7)
nova_die(); nova_die();
/* /*