diff --git a/kernel/startup.c b/kernel/startup.c index bfa443d..d4f9489 100644 --- a/kernel/startup.c +++ b/kernel/startup.c @@ -31,6 +31,9 @@ coreid_t my_core_id; /// Size of the physaddrcn (in terms of cspace bits resolved, ie. 2^n slots) #define PHYSADDRCN_BITS (DEFAULT_CNODE_BITS + 2) +/// Size of the supercn (in terms of cspace bits resolved, ie. 2^n slots) +#define SUPERCN_BITS (DEFAULT_CNODE_BITS + 3) + /** * \brief Create caps in 'cnode' * @@ -168,7 +171,7 @@ struct dcb *spawn_module(struct spawn_state *st, // Super cnode in root cnode st->supercn = caps_locate_slot(CNODE(&rootcn), ROOTCN_SLOT_SUPERCN); - err = caps_create_new(ObjType_CNode, alloc_phys(BASE_PAGE_SIZE), + err = caps_create_new(ObjType_CNode, alloc_phys(1UL<< (OBJBITS_CTE + SUPERCN_BITS)), BASE_PAGE_BITS, DEFAULT_CNODE_BITS, st->supercn); assert(err_is_ok(err));