[PATCH v2] bsp/raspberry: Add a bsp_fdt_map_intr().
Christian Mauderer
oss at c-mauderer.de
Sat Apr 4 17:49:44 UTC 2020
On 04/04/2020 19:10, Gedare Bloom wrote:
> Looks good, go ahead; thanks.
Thanks for the review. Pushed it.
>
> On Sat, Apr 4, 2020 at 10:39 AM Christian Mauderer <oss at c-mauderer.de> wrote:
>>
>> From: Christian Mauderer <christian.mauderer at embedded-brains.de>
>>
>> Fixes #3903
>> ---
>> bsps/arm/raspberrypi/include/bsp/irq.h | 3 +++
>> bsps/arm/raspberrypi/start/bspstart.c | 24 ++++++++++++++++++++++++
>> 2 files changed, 27 insertions(+)
>>
>> diff --git a/bsps/arm/raspberrypi/include/bsp/irq.h b/bsps/arm/raspberrypi/include/bsp/irq.h
>> index 6a9d05cba6..17e4472b34 100644
>> --- a/bsps/arm/raspberrypi/include/bsp/irq.h
>> +++ b/bsps/arm/raspberrypi/include/bsp/irq.h
>> @@ -35,6 +35,8 @@
>>
>> #define BCM2835_INTC_TOTAL_IRQ 64 + 8
>>
>> +#define BCM2835_IRQ_SET1_MIN 0
>> +#define BCM2835_IRQ_SET2_MIN 32
>>
>> #define BCM2835_IRQ_ID_GPU_TIMER_M0 0
>> #define BCM2835_IRQ_ID_GPU_TIMER_M1 1
>> @@ -69,6 +71,7 @@
>>
>> #define BSP_INTERRUPT_VECTOR_MIN (0)
>> #define BSP_INTERRUPT_VECTOR_MAX (BCM2835_INTC_TOTAL_IRQ - 1)
>> +#define BSP_INTERRUPT_VECTOR_INVALID (UINT32_MAX)
>>
>> #define BSP_IRQ_COUNT (BCM2835_INTC_TOTAL_IRQ)
>>
>> diff --git a/bsps/arm/raspberrypi/start/bspstart.c b/bsps/arm/raspberrypi/start/bspstart.c
>> index 49896e4d47..8d7f6aa503 100644
>> --- a/bsps/arm/raspberrypi/start/bspstart.c
>> +++ b/bsps/arm/raspberrypi/start/bspstart.c
>> @@ -23,6 +23,7 @@
>> #include <bsp/stackalloc.h>
>> #include <bsp/raspberrypi.h>
>> #include <bsp/vc.h>
>> +#include <bsp/fdt.h>
>>
>> #include <libfdt.h>
>>
>> @@ -101,6 +102,29 @@ void *raspberrypi_get_reg_of_node(const void *fdt, int node)
>> return (BUS_TO_PHY((void *) fdt32_to_cpu(val[0])));
>> }
>>
>> +#ifdef BSP_FDT_IS_SUPPORTED
>> +uint32_t bsp_fdt_map_intr(const uint32_t *intr, size_t icells)
>> +{
>> + uint32_t controller = intr[0];
>> + uint32_t source = intr[1];
>> +
>> + switch ( controller ) {
>> + case 0:
>> + return source + BCM2835_IRQ_ID_BASIC_BASE_ID;
>> + break;
>> + case 1:
>> + return source + BCM2835_IRQ_SET1_MIN;
>> + break;
>> + case 2:
>> + return source + BCM2835_IRQ_SET2_MIN;
>> + break;
>> + default:
>> + return BSP_INTERRUPT_VECTOR_INVALID;
>> + break;
>> + }
>> +}
>> +#endif /* BSP_FDT_IS_SUPPORTED */
>> +
>> void bsp_start(void)
>> {
>> bcm2835_get_board_spec_entries spec = { 0 };
>> --
>> 2.25.1
>>
>> _______________________________________________
>> devel mailing list
>> devel at rtems.org
>> http://lists.rtems.org/mailman/listinfo/devel
>
More information about the devel
mailing list