diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2018-04-20 10:35:35 +0200 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2018-04-20 13:52:14 +0200 |
commit | 99648958668d3a33ee57974479b36201fe303f34 (patch) | |
tree | 6f27ea790e2823c6156e71219a4f54680263fac6 /c/src/lib/libbsp/arm/imx/startup/bspstart.c | |
parent | bsps: Move start files to bsps (diff) | |
download | rtems-99648958668d3a33ee57974479b36201fe303f34.tar.bz2 |
bsps: Move startup files to bsps
Adjust build support files to new directory layout.
This patch is a part of the BSP source reorganization.
Update #3285.
Diffstat (limited to 'c/src/lib/libbsp/arm/imx/startup/bspstart.c')
-rw-r--r-- | c/src/lib/libbsp/arm/imx/startup/bspstart.c | 92 |
1 files changed, 0 insertions, 92 deletions
diff --git a/c/src/lib/libbsp/arm/imx/startup/bspstart.c b/c/src/lib/libbsp/arm/imx/startup/bspstart.c deleted file mode 100644 index 046336655b..0000000000 --- a/c/src/lib/libbsp/arm/imx/startup/bspstart.c +++ /dev/null @@ -1,92 +0,0 @@ -/* - * Copyright (c) 2017 embedded brains GmbH. All rights reserved. - * - * embedded brains GmbH - * Dornierstr. 4 - * 82178 Puchheim - * Germany - * <info@embedded-brains.de> - * - * 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. - */ - -#include <bsp.h> -#include <bsp/bootcard.h> -#include <bsp/fatal.h> -#include <bsp/fdt.h> -#include <bsp/irq-generic.h> -#include <bsp/linker-symbols.h> - -#include <libfdt.h> - -#define MAGIC_IRQ_OFFSET 32 - -void *imx_get_reg_of_node(const void *fdt, int node) -{ - int len; - const uint32_t *val; - - val = fdt_getprop(fdt, node, "reg", &len); - if (val == NULL || len < 4) { - return NULL; - } - - return (void *) fdt32_to_cpu(val[0]); -} - -rtems_vector_number imx_get_irq_of_node( - const void *fdt, - int node, - size_t index -) -{ - int len; - const uint32_t *val; - - val = fdt_getprop(fdt, node, "interrupts", &len); - if (val == NULL || len < (int) ((index + 1) * 12)) { - return UINT32_MAX; - } - - return fdt32_to_cpu(val[index * 3 + 1]) + MAGIC_IRQ_OFFSET; -} - -uint32_t bsp_fdt_map_intr(const uint32_t *intr, size_t icells) -{ - return intr[1] + MAGIC_IRQ_OFFSET; -} - -void arm_generic_timer_get_config( - uint32_t *frequency, - uint32_t *irq -) -{ - const void *fdt; - int node; - int len; - const uint32_t *val; - - fdt = bsp_fdt_get(); - node = fdt_path_offset(fdt, "/timer"); - - val = fdt_getprop(fdt, node, "clock-frequency", &len); - if (val != NULL && len >= 4) { - *frequency = fdt32_to_cpu(val[0]); - } else { - bsp_fatal(IMX_FATAL_GENERIC_TIMER_FREQUENCY); - } - - /* FIXME: Figure out how Linux gets a proper IRQ number */ - *irq = imx_get_irq_of_node(fdt, node, 0) - 16; -} - -void bsp_start(void) -{ - bsp_interrupt_initialize(); - rtems_cache_coherent_add_area( - bsp_section_nocacheheap_begin, - (uintptr_t) bsp_section_nocacheheap_size - ); -} |