From f73dee6f2cc37cafc4b6949dac9ac2d71cf84d10 Mon Sep 17 00:00:00 2001 From: Sagar Karandikar Date: Tue, 16 Aug 2016 10:55:26 -0700 Subject: add htif section in linker script, with ALIGNs to prevent MMIO and data from being placed on same page (#32) --- bbl/bbl.lds | 10 ++++++++++ machine/mtrap.c | 4 ++-- pk/pk.lds | 10 ++++++++++ 3 files changed, 22 insertions(+), 2 deletions(-) diff --git a/bbl/bbl.lds b/bbl/bbl.lds index c06aa13..6833e47 100644 --- a/bbl/bbl.lds +++ b/bbl/bbl.lds @@ -41,6 +41,16 @@ SECTIONS _etext = .; /*--------------------------------------------------------------------*/ + /* HTIF, isolated onto separate page */ + /*--------------------------------------------------------------------*/ + . = ALIGN(0x1000); + htif : + { + *(htif) + } + . = ALIGN(0x1000); + + /*--------------------------------------------------------------------*/ /* Initialized data segment */ /*--------------------------------------------------------------------*/ diff --git a/machine/mtrap.c b/machine/mtrap.c index bf02fab..a68c0d9 100644 --- a/machine/mtrap.c +++ b/machine/mtrap.c @@ -7,8 +7,8 @@ #include #include -volatile uint64_t tohost __attribute__((aligned(64))); -volatile uint64_t fromhost __attribute__((aligned(64))); +volatile uint64_t tohost __attribute__((aligned(64))) __attribute__((section("htif"))); +volatile uint64_t fromhost __attribute__((aligned(64))) __attribute__((section("htif"))); void __attribute__((noreturn)) bad_trap() { diff --git a/pk/pk.lds b/pk/pk.lds index 522e4a8..1bc9adf 100644 --- a/pk/pk.lds +++ b/pk/pk.lds @@ -41,6 +41,16 @@ SECTIONS _etext = .; /*--------------------------------------------------------------------*/ + /* HTIF, isolated onto separate page */ + /*--------------------------------------------------------------------*/ + . = ALIGN(0x1000); + htif : + { + *(htif) + } + . = ALIGN(0x1000); + + /*--------------------------------------------------------------------*/ /* Initialized data segment */ /*--------------------------------------------------------------------*/ -- cgit v1.1