Skip to content

Commit

Permalink
nova: UEFI GRUB2 boot support via Multiboot 2
Browse files Browse the repository at this point in the history
  • Loading branch information
alex-ab committed Jan 19, 2017
1 parent a7cb1aa commit 7023a70
Show file tree
Hide file tree
Showing 5 changed files with 15 additions and 4 deletions.
2 changes: 1 addition & 1 deletion repos/base-nova/ports/nova.hash
@@ -1 +1 @@
3266112c2d9ec53e67a3346fa32d297c643eddfc
159ef2d1c25441a8b355cb3adec58862ab73cb16
2 changes: 1 addition & 1 deletion repos/base-nova/ports/nova.port
Expand Up @@ -4,7 +4,7 @@ DOWNLOADS := nova.git

# r9 branch - use r9_debug for more verbose kernel messages
URL(nova) := https://github.com/alex-ab/NOVA.git
REV(nova) := dc6cf64fa104fc6b24e92dbe7af4a0486c2540ae
REV(nova) := 2234eec0bd62e3675b080a69287ba4af5722bfc5
DIR(nova) := src/kernel/nova

PATCHES := $(wildcard $(REP_DIR)/patches/*.patch)
2 changes: 1 addition & 1 deletion repos/base-nova/src/core/platform.cc
Expand Up @@ -594,7 +594,7 @@ Platform::Platform() :
mem_desc = (Hip::Mem_desc *)mem_desc_base;
for (unsigned i = 0; i < num_mem_desc; i++, mem_desc++) {
if (mem_desc->type != Hip::Mem_desc::MULTIBOOT_MODULE) continue;
if (!mem_desc->addr || !mem_desc->size || !mem_desc->aux) continue;
if (!mem_desc->addr || !mem_desc->size) continue;

/* assume core's ELF image has one-page header */
addr_t const core_phys_start = trunc_page(mem_desc->addr + get_page_size());
Expand Down
2 changes: 1 addition & 1 deletion repos/base-nova/src/kernel/nova/target.mk
Expand Up @@ -23,7 +23,7 @@ CC_OPT += -pipe \
-fno-asynchronous-unwind-tables -std=gnu++0x
CC_OPT_PIC :=
ifeq ($(filter-out $(SPECS),32bit),)
CC_WARN += -Wframe-larger-than=92
CC_WARN += -Wframe-larger-than=96
CC_OPT += -mpreferred-stack-boundary=2 -mregparm=3
else
ifeq ($(filter-out $(SPECS),64bit),)
Expand Down
11 changes: 11 additions & 0 deletions tool/run/boot_dir/nova
Expand Up @@ -80,6 +80,17 @@ proc run_boot_dir {binaries} {
puts $fh " module /hypervisor iommu serial novpid novga"
puts $fh " module /image.elf"
close $fh

#
# Generate GRUB2 config file
#
set fh [open "[run_dir]/boot/grub/grub.cfg" "WRONLY CREAT TRUNC"]
puts $fh "set timeout=0"
puts $fh "menuentry 'Genode on NOVA' {"
puts $fh " multiboot2 /hypervisor iommu serial novpid novga"
puts $fh " module2 /image.elf"
puts $fh "}"
close $fh
}

#
Expand Down

0 comments on commit 7023a70

Please sign in to comment.