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
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
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
{
NOVA_OK = 0,
NOVA_IPC_TIMEOUT = 1,
NOVA_TIMEOUT = 1,
NOVA_IPC_ABORT = 2,
NOVA_INV_HYPERCALL = 3,
NOVA_INV_SELECTOR = 4,

View File

@ -1 +1 @@
fceaac7f0e0d711be17a2e7f9f4b5d396a4e2b63
2876dd57fafcaf860278d38368e7ba9a551393ab

View File

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

View File

@ -73,7 +73,7 @@ proc build_boot_image {binaries} {
puts $fh "default 0"
puts $fh "\ntitle Genode on NOVA"
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/config"
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"]
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/config"
foreach binary $binaries {

View File

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