summaryrefslogtreecommitdiff
path: root/bsp/coreip-e31
diff options
context:
space:
mode:
authorNathaniel Graff <nathaniel.graff@sifive.com>2019-01-30 19:37:59 +0000
committerGitHub <noreply@github.com>2019-01-30 19:37:59 +0000
commit89d973abd94faf74d7486a6c5e044935f5d63e9d (patch)
treec7188e2bfad20a2750a4155ff623a16541abfb74 /bsp/coreip-e31
parentb629a19514606cb5dd19e0cd433b60922343f6a8 (diff)
parentc615e937538d438c46efd46f9254a2a74b591205 (diff)
Merge pull request #157 from sifive/mee-pmp-no-vtable
Add PMP example
Diffstat (limited to 'bsp/coreip-e31')
-rw-r--r--bsp/coreip-e31/design.dts4
-rw-r--r--bsp/coreip-e31/mee.h11
2 files changed, 15 insertions, 0 deletions
diff --git a/bsp/coreip-e31/design.dts b/bsp/coreip-e31/design.dts
index 3411ccf..f7e9868 100644
--- a/bsp/coreip-e31/design.dts
+++ b/bsp/coreip-e31/design.dts
@@ -33,6 +33,10 @@
#size-cells = <1>;
compatible = "SiFive,FE310G-soc", "fe310-soc", "sifive-soc", "simple-bus";
ranges;
+ pmp: pmp@0 {
+ compatible = "riscv,pmp";
+ regions = <8>;
+ };
L12: ahb-periph-port@20000000 {
#address-cells = <1>;
#size-cells = <1>;
diff --git a/bsp/coreip-e31/mee.h b/bsp/coreip-e31/mee.h
index a520854..068af63 100644
--- a/bsp/coreip-e31/mee.h
+++ b/bsp/coreip-e31/mee.h
@@ -18,6 +18,7 @@
#include <mee/drivers/riscv,cpu.h>
#include <mee/drivers/riscv,clint0.h>
#include <mee/drivers/riscv,plic0.h>
+#include <mee/pmp.h>
#include <mee/drivers/sifive,local-external-interrupts0.h>
#include <mee/drivers/sifive,global-external-interrupts0.h>
#include <mee/drivers/sifive,test0.h>
@@ -45,6 +46,9 @@ struct __mee_driver_sifive_local_external_interrupts0 __mee_dt_local_external_in
asm (".weak __mee_dt_global_external_interrupts");
struct __mee_driver_sifive_global_external_interrupts0 __mee_dt_global_external_interrupts;
+asm (".weak __mee_dt_pmp_0");
+struct mee_pmp __mee_dt_pmp_0;
+
/* From teststatus@4000 */
asm (".weak __mee_dt_teststatus_4000");
struct __mee_driver_sifive_test0 __mee_dt_teststatus_4000;
@@ -286,6 +290,13 @@ struct __mee_driver_sifive_global_external_interrupts0 __mee_dt_global_external_
#define __MEE_DT_GLOBAL_EXTERNAL_INTERRUPTS_HANDLE (&__mee_dt_global_external_interrupts.irc)
+/* From pmp@0 */
+struct mee_pmp __mee_dt_pmp_0 = {
+ .num_regions = 8UL,
+};
+
+#define __MEE_DT_PMP_HANDLE (&__mee_dt_pmp_0)
+
/* From teststatus@4000 */
struct __mee_driver_sifive_test0 __mee_dt_teststatus_4000 = {
.vtable = &__mee_driver_vtable_sifive_test0,