source: rtems/c/src/lib/libbsp/arm/raspberrypi/startup/mm_config_table.c @ df2ee9d

5
Last change on this file since df2ee9d was df2ee9d, checked in by Pavel Pisa <pisa@…>, on 09/07/16 at 18:28:33

arm/raspberrypi: basic BCM2836 SMP implementation.

The BSP support is divided to startup/bspsmp_api.c file where
functions required by SuperCore? are defined and BCM2836 hardware
initialization part in startup/bspsmp_init.c.

Separation is done to prevent smpfatal08 test build failure.

  • Property mode set to 100644
File size: 2.8 KB
Line 
1/**
2 * @file
3 *
4 * @ingroup arm_start
5 *
6 * @brief Raspberry Pi low level start
7 */
8
9/*
10 * Copyright (c) 2013 embedded brains GmbH.  All rights reserved.
11 *
12 *  embedded brains GmbH
13 *  Dornierstr. 4
14 *  82178 Puchheim
15 *  Germany
16 *  <info@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.h>
24#include <bsp/arm-cp15-start.h>
25
26/*
27 * Pagetable initialization data
28 *
29 * Keep all read-only sections before read-write ones.
30 * This ensures that write is allowed if one page/region
31 * is partially filled by read-only section contentent
32 * and rest is used for writeable section
33 */
34
35const arm_cp15_start_section_config arm_cp15_start_mmu_config_table[] = {
36  {
37    .begin = (uint32_t) bsp_section_fast_text_begin,
38    .end = (uint32_t) bsp_section_fast_text_end,
39    .flags = ARMV7_MMU_CODE_CACHED
40  }, {
41    .begin = (uint32_t) bsp_section_start_begin,
42    .end = (uint32_t) bsp_section_start_end,
43    .flags = ARMV7_MMU_CODE_CACHED
44  }, {
45    .begin = (uint32_t) bsp_section_text_begin,
46    .end = (uint32_t) bsp_section_text_end,
47    .flags = ARMV7_MMU_CODE_CACHED
48  }, {
49    .begin = (uint32_t) bsp_section_rodata_begin,
50    .end = (uint32_t) bsp_section_rodata_end,
51    .flags = ARMV7_MMU_DATA_READ_ONLY_CACHED
52  }, {
53    .begin = (uint32_t) bsp_translation_table_base,
54    .end = (uint32_t) bsp_translation_table_base + 0x4000,
55    .flags = ARMV7_MMU_DATA_READ_WRITE_CACHED
56  }, {
57    .begin = (uint32_t) bsp_section_fast_data_begin,
58    .end = (uint32_t) bsp_section_fast_data_end,
59    .flags = ARMV7_MMU_DATA_READ_WRITE_CACHED
60  }, {
61    .begin = (uint32_t) bsp_section_vector_begin,
62    .end = (uint32_t) bsp_section_vector_end,
63    .flags = ARMV7_MMU_DATA_READ_WRITE_CACHED
64  }, {
65    .begin = (uint32_t) bsp_section_data_begin,
66    .end = (uint32_t) bsp_section_data_end,
67    .flags = ARMV7_MMU_DATA_READ_WRITE_CACHED
68  }, {
69    .begin = (uint32_t) bsp_section_bss_begin,
70    .end = (uint32_t) bsp_section_bss_end,
71    .flags = ARMV7_MMU_DATA_READ_WRITE_CACHED
72  }, {
73    .begin = (uint32_t) bsp_section_work_begin,
74    .end = (uint32_t) bsp_section_work_end,
75    .flags = ARMV7_MMU_DATA_READ_WRITE_CACHED
76  }, {
77    .begin = (uint32_t) bsp_section_stack_begin,
78    .end = (uint32_t) bsp_section_stack_end,
79    .flags = ARMV7_MMU_DATA_READ_WRITE_CACHED
80  }, {
81    .begin = RPI_PERIPHERAL_BASE,
82    .end =   RPI_PERIPHERAL_BASE + RPI_PERIPHERAL_SIZE,
83    .flags = ARMV7_MMU_DEVICE
84  }
85#if (BSP_IS_RPI2 == 1)
86  /* Core local peripherals area - timer, mailboxes */
87  , {
88    .begin = BCM2836_CORE_LOCAL_PERIPH_BASE,
89    .end =   BCM2836_CORE_LOCAL_PERIPH_BASE + BCM2836_CORE_LOCAL_PERIPH_SIZE,
90    .flags = ARMV7_MMU_DEVICE
91  }
92#endif
93};
94
95const size_t arm_cp15_start_mmu_config_table_size =
96  RTEMS_ARRAY_SIZE(arm_cp15_start_mmu_config_table);
Note: See TracBrowser for help on using the repository browser.