From 43942973cd9b61dc94bb52be53a99f8ca711eb7e Mon Sep 17 00:00:00 2001 From: Megan Wachs Date: Tue, 31 Jan 2017 19:02:18 -0800 Subject: Move plic_driver code to a common location. --- bsp/drivers/plic/plic_driver.h | 46 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 bsp/drivers/plic/plic_driver.h (limited to 'bsp/drivers/plic/plic_driver.h') diff --git a/bsp/drivers/plic/plic_driver.h b/bsp/drivers/plic/plic_driver.h new file mode 100644 index 0000000..66410be --- /dev/null +++ b/bsp/drivers/plic/plic_driver.h @@ -0,0 +1,46 @@ +// See LICENSE file for licence details + +#ifndef PLIC_DRIVER_H +#define PLIC_DRIVER_H + +#include "platform.h" + +typedef struct __plic_instance_t +{ + uintptr_t base_addr; + + uint32_t num_sources; + uint32_t num_priorities; + +} plic_instance_t; + +typedef uint32_t plic_source; +typedef uint32_t plic_priority; +typedef uint32_t plic_threshold; + +void PLIC_init ( + plic_instance_t * this_plic, + uintptr_t base_addr, + uint32_t num_sources, + uint32_t num_priorities + ); + +void PLIC_set_threshold (plic_instance_t * this_plic, + plic_threshold threshold); + +void PLIC_enable_interrupt (plic_instance_t * this_plic, + plic_source source); + +void PLIC_disable_interrupt (plic_instance_t * this_plic, + plic_source source); + +void PLIC_set_priority (plic_instance_t * this_plic, + plic_source source, + plic_priority priority); + +plic_source PLIC_claim_interrupt(plic_instance_t * this_plic); + +void PLIC_complete_interrupt(plic_instance_t * this_plic, + plic_source source); + +#endif -- cgit v1.2.3 From 08a72bb956a25fd94d965fb4474f3ddcca1ed1e6 Mon Sep 17 00:00:00 2001 From: Megan Wachs Date: Wed, 1 Feb 2017 16:39:38 -0800 Subject: Additional PRCI driver support. Make the code usable by C++ programs as well. --- bsp/drivers/plic/plic_driver.h | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'bsp/drivers/plic/plic_driver.h') diff --git a/bsp/drivers/plic/plic_driver.h b/bsp/drivers/plic/plic_driver.h index 66410be..b14b442 100644 --- a/bsp/drivers/plic/plic_driver.h +++ b/bsp/drivers/plic/plic_driver.h @@ -3,6 +3,8 @@ #ifndef PLIC_DRIVER_H #define PLIC_DRIVER_H +__BEGIN_DECLS + #include "platform.h" typedef struct __plic_instance_t @@ -42,5 +44,7 @@ plic_source PLIC_claim_interrupt(plic_instance_t * this_plic); void PLIC_complete_interrupt(plic_instance_t * this_plic, plic_source source); - + +__END_DECLS + #endif -- cgit v1.2.3 From b003c52b0f5460c6e0e15cb29171164530490e08 Mon Sep 17 00:00:00 2001 From: Megan Wachs Date: Wed, 1 Feb 2017 18:03:37 -0800 Subject: PRCI: add control for the target CPU frequency (to allow a minimum, maximum, or closest match) --- bsp/drivers/plic/plic_driver.h | 1 + 1 file changed, 1 insertion(+) (limited to 'bsp/drivers/plic/plic_driver.h') diff --git a/bsp/drivers/plic/plic_driver.h b/bsp/drivers/plic/plic_driver.h index b14b442..e7d609b 100644 --- a/bsp/drivers/plic/plic_driver.h +++ b/bsp/drivers/plic/plic_driver.h @@ -3,6 +3,7 @@ #ifndef PLIC_DRIVER_H #define PLIC_DRIVER_H + __BEGIN_DECLS #include "platform.h" -- cgit v1.2.3