source: rtems/bsps/powerpc/qoriq/start/bspreset.c @ 8f8ccee

5
Last change on this file since 8f8ccee was 9964895, checked in by Sebastian Huber <sebastian.huber@…>, on 04/20/18 at 08:35:35

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.

  • Property mode set to 100644
File size: 1.2 KB
Line 
1/**
2 * @file
3 *
4 * @ingroup QorIQ
5 *
6 * @brief BSP reset.
7 */
8
9/*
10 * Copyright (c) 2010, 2017 embedded brains GmbH.  All rights reserved.
11 *
12 *  embedded brains GmbH
13 *  Dornierstr. 4
14 *  82178 Puchheim
15 *  Germany
16 *  <rtems@embedded-brains.de>
17 *
18 * The license and distribution terms for this file may be
19 * found in the file LICENSE in this distribution or at
20 * http://www.rtems.org/license/LICENSE.
21 */
22
23#include <bsp/bootcard.h>
24#include <bsp/fdt.h>
25#include <bsp/qoriq.h>
26
27#include <libfdt.h>
28
29static int find_rstcr_node(const void *fdt, int node)
30{
31  return fdt_node_offset_by_prop_value(fdt, node, "fsl,has-rstcr", NULL, 0);
32}
33
34void bsp_reset(void)
35{
36  rtems_interrupt_level level;
37  const char *fdt;
38
39  rtems_interrupt_local_disable(level);
40  (void) level;
41
42  fdt = bsp_fdt_get();
43
44  /* If we do not find a RSTCR, then loop forever */
45  while (true) {
46    int node;
47
48    node = -1;
49
50    while ((node = find_rstcr_node(fdt, node)) >= 0) {
51      const uint32_t *reg;
52      int len;
53
54      reg = fdt_getprop(fdt, node, "reg", &len);
55      if (reg != NULL && len >= 4) {
56        volatile uint32_t *rstcr;
57
58        rstcr = (volatile uint32_t *)
59          ((uintptr_t) &qoriq + fdt32_to_cpu(reg[0]) + 0xb0);
60        *rstcr = 0x2;
61      }
62    }
63  }
64}
Note: See TracBrowser for help on using the repository browser.