diff options
Diffstat (limited to '')
-rw-r--r-- | bsps/powerpc/qoriq/clock/clock-config.c | 64 |
1 files changed, 42 insertions, 22 deletions
diff --git a/bsps/powerpc/qoriq/clock/clock-config.c b/bsps/powerpc/qoriq/clock/clock-config.c index 2966636bc5..17347278f3 100644 --- a/bsps/powerpc/qoriq/clock/clock-config.c +++ b/bsps/powerpc/qoriq/clock/clock-config.c @@ -1,3 +1,5 @@ +/* SPDX-License-Identifier: BSD-2-Clause */ + /** * @file * @@ -7,17 +9,28 @@ */ /* - * Copyright (c) 2011, 2017 embedded brains GmbH. All rights reserved. + * Copyright (C) 2011, 2017 embedded brains GmbH & Co. KG * - * embedded brains GmbH - * Dornierstr. 4 - * 82178 Puchheim - * Germany - * <rtems@embedded-brains.de> + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rtems.org/license/LICENSE. + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. */ #include <rtems/timecounter.h> @@ -25,11 +38,9 @@ #include <libcpu/powerpc-utility.h> #include <bsp.h> +#include <bsp/fatal.h> #include <bsp/qoriq.h> -#include <bsp/irq.h> - -/* This is defined in dev/clock/clockimpl.h */ -static rtems_isr Clock_isr(void *arg); +#include <bsp/irq-generic.h> static struct timecounter qoriq_clock_tc; @@ -37,6 +48,9 @@ static struct timecounter qoriq_clock_tc; #define CLOCK_DRIVER_USE_ONLY_BOOT_PROCESSOR +/* This is defined in dev/clock/clockimpl.h */ +static rtems_isr Clock_isr(void *arg); + void qoriq_decrementer_dispatch(void) { PPC_SET_SPECIAL_PURPOSE_REGISTER(BOOKE_TSR, BOOKE_TSR_DIS); @@ -86,7 +100,9 @@ static volatile qoriq_pic_global_timer *const qoriq_timecounter = #define CLOCK_INTERRUPT (QORIQ_IRQ_GT_BASE + QORIQ_CLOCK_TIMER) -static void qoriq_clock_handler_install(void) +static rtems_interrupt_entry qoriq_clock_entry; + +static void qoriq_clock_handler_install(rtems_interrupt_handler handler) { rtems_status_code sc = RTEMS_SUCCESSFUL; @@ -105,18 +121,22 @@ static void qoriq_clock_handler_install(void) NULL ); if (sc != RTEMS_SUCCESSFUL) { - rtems_fatal_error_occurred(0xdeadbeef); + bsp_fatal(QORIQ_FATAL_CLOCK_INTERRUPT_SET_PRIORITY); } - sc = rtems_interrupt_handler_install( + rtems_interrupt_entry_initialize( + &qoriq_clock_entry, + handler, + NULL, + "Clock" + ); + sc = rtems_interrupt_entry_install( CLOCK_INTERRUPT, - "Clock", RTEMS_INTERRUPT_UNIQUE, - Clock_isr, - NULL + &qoriq_clock_entry ); if (sc != RTEMS_SUCCESSFUL) { - rtems_fatal_error_occurred(0xdeadbeef); + bsp_fatal(QORIQ_FATAL_CLOCK_INTERRUPT_INSTALL); } } @@ -144,8 +164,8 @@ static void qoriq_clock_initialize(void) rtems_timecounter_install(&qoriq_clock_tc); } -#define Clock_driver_support_install_isr(clock_isr) \ - qoriq_clock_handler_install() +#define Clock_driver_support_install_isr(isr) \ + qoriq_clock_handler_install(isr) #define Clock_driver_support_set_interrupt_affinity(online_processors) \ bsp_interrupt_set_affinity(CLOCK_INTERRUPT, online_processors) |