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/powerpc/mpc55xxevb | |
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/powerpc/mpc55xxevb')
39 files changed, 38 insertions, 2596 deletions
diff --git a/c/src/lib/libbsp/powerpc/mpc55xxevb/Makefile.am b/c/src/lib/libbsp/powerpc/mpc55xxevb/Makefile.am index 4db2f8ac1d..74ec50343f 100644 --- a/c/src/lib/libbsp/powerpc/mpc55xxevb/Makefile.am +++ b/c/src/lib/libbsp/powerpc/mpc55xxevb/Makefile.am @@ -3,7 +3,7 @@ ACLOCAL_AMFLAGS = -I ../../../../aclocal include $(top_srcdir)/../../../../automake/compile.am include $(top_srcdir)/../../bsp.am -dist_project_lib_DATA = startup/bsp_specs +dist_project_lib_DATA = ../../../../../../bsps/powerpc/mpc55xxevb/start/bsp_specs @@ -19,22 +19,22 @@ project_lib_DATA += rtems_crti.$(OBJEXT) # Link commands project_lib_DATA += linkcmds -dist_project_lib_DATA += ../shared/startup/linkcmds.base -dist_project_lib_DATA += startup/linkcmds.gwlcfm -dist_project_lib_DATA += startup/linkcmds.mpc5566evb -dist_project_lib_DATA += startup/linkcmds.mpc5566evb_spe -dist_project_lib_DATA += startup/linkcmds.mpc55xx -dist_project_lib_DATA += startup/linkcmds.mpc5643l_dpu -dist_project_lib_DATA += startup/linkcmds.mpc5643l_evb -dist_project_lib_DATA += startup/linkcmds.mpc5668g -dist_project_lib_DATA += startup/linkcmds.mpc5674f_ecu508 -dist_project_lib_DATA += startup/linkcmds.mpc5674f_ecu508_app -dist_project_lib_DATA += startup/linkcmds.mpc5674f_ecu508_boot -dist_project_lib_DATA += startup/linkcmds.mpc5674fevb -dist_project_lib_DATA += startup/linkcmds.mpc5674fevb_spe -dist_project_lib_DATA += startup/linkcmds.mpc5674f_rsm6 -dist_project_lib_DATA += startup/linkcmds.mpc5674f_rsm6_base -dist_project_lib_DATA += startup/linkcmds.phycore_mpc5554 +dist_project_lib_DATA += ../../../../../../bsps/powerpc/shared/start/linkcmds.base +dist_project_lib_DATA += ../../../../../../bsps/powerpc/mpc55xxevb/start/linkcmds.gwlcfm +dist_project_lib_DATA += ../../../../../../bsps/powerpc/mpc55xxevb/start/linkcmds.mpc5566evb +dist_project_lib_DATA += ../../../../../../bsps/powerpc/mpc55xxevb/start/linkcmds.mpc5566evb_spe +dist_project_lib_DATA += ../../../../../../bsps/powerpc/mpc55xxevb/start/linkcmds.mpc55xx +dist_project_lib_DATA += ../../../../../../bsps/powerpc/mpc55xxevb/start/linkcmds.mpc5643l_dpu +dist_project_lib_DATA += ../../../../../../bsps/powerpc/mpc55xxevb/start/linkcmds.mpc5643l_evb +dist_project_lib_DATA += ../../../../../../bsps/powerpc/mpc55xxevb/start/linkcmds.mpc5668g +dist_project_lib_DATA += ../../../../../../bsps/powerpc/mpc55xxevb/start/linkcmds.mpc5674f_ecu508 +dist_project_lib_DATA += ../../../../../../bsps/powerpc/mpc55xxevb/start/linkcmds.mpc5674f_ecu508_app +dist_project_lib_DATA += ../../../../../../bsps/powerpc/mpc55xxevb/start/linkcmds.mpc5674f_ecu508_boot +dist_project_lib_DATA += ../../../../../../bsps/powerpc/mpc55xxevb/start/linkcmds.mpc5674fevb +dist_project_lib_DATA += ../../../../../../bsps/powerpc/mpc55xxevb/start/linkcmds.mpc5674fevb_spe +dist_project_lib_DATA += ../../../../../../bsps/powerpc/mpc55xxevb/start/linkcmds.mpc5674f_rsm6 +dist_project_lib_DATA += ../../../../../../bsps/powerpc/mpc55xxevb/start/linkcmds.mpc5674f_rsm6_base +dist_project_lib_DATA += ../../../../../../bsps/powerpc/mpc55xxevb/start/linkcmds.phycore_mpc5554 project_lib_LIBRARIES = librtemsbsp.a librtemsbsp_a_SOURCES = @@ -47,26 +47,26 @@ librtemsbsp_a_SOURCES += ../shared/src/bsp-start-zero.S librtemsbsp_a_SOURCES += ../shared/src/memcpy.c librtemsbsp_a_SOURCES += ../shared/src/tictac.c librtemsbsp_a_SOURCES += ../shared/src/ppc-exc-handler-table.c -librtemsbsp_a_SOURCES += startup/bspstart.c -librtemsbsp_a_SOURCES += startup/bspgetworkarea.c -librtemsbsp_a_SOURCES += startup/exc-vector-base.S -librtemsbsp_a_SOURCES += startup/get-system-clock.c -librtemsbsp_a_SOURCES += startup/bspreset.c -librtemsbsp_a_SOURCES += startup/restart.c -librtemsbsp_a_SOURCES += startup/idle-thread.c -librtemsbsp_a_SOURCES += startup/start-config-clock.c -librtemsbsp_a_SOURCES += startup/start-config-ebi.c -librtemsbsp_a_SOURCES += startup/start-config-ebi-cs.c -librtemsbsp_a_SOURCES += startup/start-config-ebi-cs-cal.c -librtemsbsp_a_SOURCES += startup/start-config-mmu.c -librtemsbsp_a_SOURCES += startup/start-config-mmu-early.c -librtemsbsp_a_SOURCES += startup/start-config-siu-pcr.c -librtemsbsp_a_SOURCES += startup/start-prologue.c -librtemsbsp_a_SOURCES += startup/start-early.c -librtemsbsp_a_SOURCES += startup/start-cache.S -librtemsbsp_a_SOURCES += startup/start-clock.c -librtemsbsp_a_SOURCES += startup/start-flash.S -librtemsbsp_a_SOURCES += startup/start-watchdog.c +librtemsbsp_a_SOURCES += ../../../../../../bsps/powerpc/mpc55xxevb/start/bspstart.c +librtemsbsp_a_SOURCES += ../../../../../../bsps/powerpc/mpc55xxevb/start/bspgetworkarea.c +librtemsbsp_a_SOURCES += ../../../../../../bsps/powerpc/mpc55xxevb/start/exc-vector-base.S +librtemsbsp_a_SOURCES += ../../../../../../bsps/powerpc/mpc55xxevb/start/get-system-clock.c +librtemsbsp_a_SOURCES += ../../../../../../bsps/powerpc/mpc55xxevb/start/bspreset.c +librtemsbsp_a_SOURCES += ../../../../../../bsps/powerpc/mpc55xxevb/start/restart.c +librtemsbsp_a_SOURCES += ../../../../../../bsps/powerpc/mpc55xxevb/start/idle-thread.c +librtemsbsp_a_SOURCES += ../../../../../../bsps/powerpc/mpc55xxevb/start/start-config-clock.c +librtemsbsp_a_SOURCES += ../../../../../../bsps/powerpc/mpc55xxevb/start/start-config-ebi.c +librtemsbsp_a_SOURCES += ../../../../../../bsps/powerpc/mpc55xxevb/start/start-config-ebi-cs.c +librtemsbsp_a_SOURCES += ../../../../../../bsps/powerpc/mpc55xxevb/start/start-config-ebi-cs-cal.c +librtemsbsp_a_SOURCES += ../../../../../../bsps/powerpc/mpc55xxevb/start/start-config-mmu.c +librtemsbsp_a_SOURCES += ../../../../../../bsps/powerpc/mpc55xxevb/start/start-config-mmu-early.c +librtemsbsp_a_SOURCES += ../../../../../../bsps/powerpc/mpc55xxevb/start/start-config-siu-pcr.c +librtemsbsp_a_SOURCES += ../../../../../../bsps/powerpc/mpc55xxevb/start/start-prologue.c +librtemsbsp_a_SOURCES += ../../../../../../bsps/powerpc/mpc55xxevb/start/start-early.c +librtemsbsp_a_SOURCES += ../../../../../../bsps/powerpc/mpc55xxevb/start/start-cache.S +librtemsbsp_a_SOURCES += ../../../../../../bsps/powerpc/mpc55xxevb/start/start-clock.c +librtemsbsp_a_SOURCES += ../../../../../../bsps/powerpc/mpc55xxevb/start/start-flash.S +librtemsbsp_a_SOURCES += ../../../../../../bsps/powerpc/mpc55xxevb/start/start-watchdog.c # clock librtemsbsp_a_SOURCES +=../../../../../../bsps/powerpc/mpc55xxevb/clock/clock-config.c @@ -81,7 +81,7 @@ librtemsbsp_a_SOURCES += ../../../../../../bsps/powerpc/mpc55xxevb/console/conso librtemsbsp_a_SOURCES += ../../../../../../bsps/shared/irq/irq-default-handler.c # Misc -librtemsbsp_a_SOURCES += startup/sd-card-init.c +librtemsbsp_a_SOURCES += ../../../../../../bsps/powerpc/mpc55xxevb/start/sd-card-init.c # I2C librtemsbsp_a_SOURCES += i2c/i2c_init.c diff --git a/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/bsp_specs b/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/bsp_specs deleted file mode 100644 index 2625609327..0000000000 --- a/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/bsp_specs +++ /dev/null @@ -1,9 +0,0 @@ -%rename endfile old_endfile -%rename startfile old_startfile - -*startfile: -%{!qrtems: %(old_startfile)} \ -%{!nostdlib: %{qrtems: ecrti%O%s rtems_crti%O%s crtbegin.o%s}} - -*endfile: -%{!qrtems: %(old_endfile)} %{qrtems: crtend.o%s ecrtn.o%s} diff --git a/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/bspgetworkarea.c b/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/bspgetworkarea.c deleted file mode 100644 index e7d988cf87..0000000000 --- a/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/bspgetworkarea.c +++ /dev/null @@ -1,53 +0,0 @@ -/** - * @file - * - * @ingroup mpc55xx - */ - -/* - * Copyright (c) 2012 embedded brains GmbH. All rights reserved. - * - * embedded brains GmbH - * Obere Lagerstr. 30 - * 82178 Puchheim - * Germany - * <rtems@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/linker-symbols.h> - -LINKER_SYMBOL(bsp_section_work_bonus_begin); -LINKER_SYMBOL(bsp_section_work_bonus_size); - -void bsp_work_area_initialize(void) -{ - Heap_Area areas [] = { - { - bsp_section_work_begin, - (uintptr_t) bsp_section_work_size - }, { - bsp_section_work_bonus_begin, - (uintptr_t) bsp_section_work_bonus_size - } - }; - - #ifdef BSP_INTERRUPT_STACK_AT_WORK_AREA_BEGIN - { - uint32_t stack_size = rtems_configuration_get_interrupt_stack_size(); - - areas [0].begin = (char *) areas [0].begin + stack_size; - areas [0].size -= stack_size; - } - #endif - - bsp_work_area_initialize_with_table( - areas, - sizeof(areas) / sizeof(areas [0]) - ); -} diff --git a/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/bspreset.c b/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/bspreset.c deleted file mode 100644 index a99b3856d3..0000000000 --- a/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/bspreset.c +++ /dev/null @@ -1,38 +0,0 @@ -/** - * @file - * - * @ingroup mpc55xx - * - * @brief BSP reset. - */ - -/* - * Copyright (c) 2011 embedded brains GmbH. All rights reserved. - * - * embedded brains GmbH - * Obere Lagerstr. 30 - * 82178 Puchheim - * Germany - * <rtems@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 <stdbool.h> - -#include <bsp/bootcard.h> - -#include <mpc55xx/regs.h> - -void bsp_reset(void) -{ - while (true) { - #if MPC55XX_CHIP_FAMILY == 564 - /* TODO */ - #else - SIU.SRCR.R = 1U << (31 - 0); - #endif - } -} diff --git a/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/bspstart.c b/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/bspstart.c deleted file mode 100644 index 9042fc3864..0000000000 --- a/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/bspstart.c +++ /dev/null @@ -1,104 +0,0 @@ -/** - * @file - * - * @ingroup mpc55xx - * - * @brief BSP startup code. - */ - -/* - * Copyright (c) 2008-2013 embedded brains GmbH. All rights reserved. - * - * embedded brains GmbH - * Dornierstr. 4 - * 82178 Puchheim - * Germany - * <rtems@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 <mpc55xx/mpc55xx.h> -#include <mpc55xx/regs.h> -#include <mpc55xx/edma.h> -#include <mpc55xx/emios.h> - -#include <string.h> - -#include <rtems.h> -#include <rtems/config.h> -#include <rtems/counter.h> - -#include <libcpu/powerpc-utility.h> -#include <bsp/vectors.h> - -#include <bsp.h> -#include <bsp/bootcard.h> -#include <bsp/irq.h> -#include <bsp/irq-generic.h> -#include <bsp/linker-symbols.h> -#include <bsp/start.h> -#include <bsp/mpc55xx-config.h> - -/* Symbols defined in linker command file */ -LINKER_SYMBOL(mpc55xx_exc_vector_base); - -unsigned int bsp_clock_speed = 0; - -uint32_t bsp_clicks_per_usec = 0; - -static void null_pointer_protection(void) -{ -#ifdef MPC55XX_NULL_POINTER_PROTECTION - struct MMU_tag mmu = { .MAS0 = { .B = { .TLBSEL = 1, .ESEL = 1 } } }; - - PPC_SET_SPECIAL_PURPOSE_REGISTER(FSL_EIS_MAS0, mmu.MAS0.R); - __asm__ volatile ("tlbre"); - mmu.MAS1.R = PPC_SPECIAL_PURPOSE_REGISTER(FSL_EIS_MAS1); - mmu.MAS1.B.VALID = 0; - PPC_SET_SPECIAL_PURPOSE_REGISTER(FSL_EIS_MAS1, mmu.MAS1.R); - __asm__ volatile ("tlbwe"); -#endif -} - -void bsp_start(void) -{ - null_pointer_protection(); - - /* - * Get CPU identification dynamically. Note that the get_ppc_cpu_type() - * function store the result in global variables so that it can be used - * latter... - */ - get_ppc_cpu_type(); - get_ppc_cpu_revision(); - - /* - * determine clock speed - */ - bsp_clock_speed = mpc55xx_get_system_clock() / MPC55XX_SYSTEM_CLOCK_DIVIDER; - - /* Time reference value */ - bsp_clicks_per_usec = bsp_clock_speed / 1000000; - rtems_counter_initialize_converter(bsp_clock_speed); - - /* Initialize exceptions */ - ppc_exc_initialize_with_vector_base( - (uintptr_t) bsp_section_work_begin, - rtems_configuration_get_interrupt_stack_size(), - mpc55xx_exc_vector_base - ); - - /* Initialize interrupts */ - bsp_interrupt_initialize(); - - #if MPC55XX_CHIP_FAMILY != 566 - mpc55xx_edma_init(); - #endif - - #ifdef MPC55XX_EMIOS_PRESCALER - mpc55xx_emios_initialize(MPC55XX_EMIOS_PRESCALER); - #endif -} diff --git a/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/exc-vector-base.S b/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/exc-vector-base.S deleted file mode 100644 index 9d9e79f351..0000000000 --- a/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/exc-vector-base.S +++ /dev/null @@ -1,124 +0,0 @@ -/** - * @file - * - * @ingroup mpc55xx_asm - * - * @brief Exception minimum prologues. - */ - -/* - * Copyright (c) 2011-2012 embedded brains GmbH. All rights reserved. - * - * embedded brains GmbH - * Obere Lagerstr. 30 - * 82178 Puchheim - * Germany - * <rtems@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. - */ - -/** - * @defgroup mpc55xx_asm Assembler files - * - * @ingroup mpc55xx - */ - -#include <bspopts.h> - -#include <bsp/vectors.h> - - .globl mpc55xx_exc_vector_base - - .section ".bsp_text", "ax" - -#if 5510 <= MPC55XX_CHIP_TYPE && MPC55XX_CHIP_TYPE <= 5517 - .align 12 -#else - .align 16 -#endif - -mpc55xx_exc_vector_base: - - stw r1, ppc_exc_lock_crit@sdarel(r13) - stw r4, ppc_exc_vector_register_crit@sdarel(r13) - li r4, -32767 - b ppc_exc_wrap_bookE_crit - stwu r1, -EXC_GENERIC_SIZE(r1) - stw r4, GPR4_OFFSET(r1) - li r4, 2 - b ppc_exc_wrap_nopush_bookE_crit - stwu r1, -EXC_GENERIC_SIZE(r1) - stw r4, GPR4_OFFSET(r1) - li r4, 3 - b ppc_exc_wrap_nopush_std - stwu r1, -EXC_GENERIC_SIZE(r1) - stw r4, GPR4_OFFSET(r1) - li r4, 4 - b ppc_exc_wrap_nopush_std - stwu r1, -PPC_EXC_INTERRUPT_FRAME_SIZE(r1) - stw r3, GPR3_OFFSET(r1) - li r3, -32763 - b ppc_exc_interrupt - stwu r1, -EXC_GENERIC_SIZE(r1) - stw r4, GPR4_OFFSET(r1) - li r4, 6 - b ppc_exc_wrap_nopush_std - stwu r1, -EXC_GENERIC_SIZE(r1) - stw r4, GPR4_OFFSET(r1) - li r4, 7 - b ppc_exc_wrap_nopush_std - stwu r1, -EXC_GENERIC_SIZE(r1) - stw r4, GPR4_OFFSET(r1) - li r4, 8 - b ppc_exc_wrap_nopush_std - stwu r1, -EXC_GENERIC_SIZE(r1) - stw r4, GPR4_OFFSET(r1) - li r4, 12 - b ppc_exc_wrap_nopush_std - stwu r1, -EXC_GENERIC_SIZE(r1) - stw r4, GPR4_OFFSET(r1) - li r4, 24 - b ppc_exc_wrap_nopush_std - stwu r1, -PPC_EXC_INTERRUPT_FRAME_SIZE(r1) - stw r3, GPR3_OFFSET(r1) - li r3, -32752 - b ppc_exc_interrupt - stwu r1, -PPC_EXC_INTERRUPT_FRAME_SIZE(r1) - stw r3, GPR3_OFFSET(r1) - li r3, -32749 - b ppc_exc_interrupt - stw r1, ppc_exc_lock_crit@sdarel(r13) - stw r4, ppc_exc_vector_register_crit@sdarel(r13) - li r4, -32748 - b ppc_exc_wrap_bookE_crit - stwu r1, -EXC_GENERIC_SIZE(r1) - stw r4, GPR4_OFFSET(r1) - li r4, 18 - b ppc_exc_wrap_nopush_std - stwu r1, -EXC_GENERIC_SIZE(r1) - stw r4, GPR4_OFFSET(r1) - li r4, 17 - b ppc_exc_wrap_nopush_std - stwu r1, -EXC_GENERIC_SIZE(r1) - stw r4, GPR4_OFFSET(r1) - li r4, 13 - b ppc_exc_wrap_nopush_bookE_crit - stwu r1, -EXC_GENERIC_SIZE(r1) - stw r4, GPR4_OFFSET(r1) - li r4, 10 - b ppc_exc_wrap_nopush_std - stwu r1, -EXC_GENERIC_SIZE(r1) - stw r4, GPR4_OFFSET(r1) - li r4, 25 - b ppc_exc_wrap_nopush_std - stwu r1, -EXC_GENERIC_SIZE(r1) - stw r4, GPR4_OFFSET(r1) - li r4, 26 - b ppc_exc_wrap_nopush_std - stwu r1, -EXC_GENERIC_SIZE(r1) - stw r4, GPR4_OFFSET(r1) - li r4, 15 - b ppc_exc_wrap_nopush_std diff --git a/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/get-system-clock.c b/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/get-system-clock.c deleted file mode 100644 index 42e2b38327..0000000000 --- a/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/get-system-clock.c +++ /dev/null @@ -1,85 +0,0 @@ -/** - * @file - * - * @ingroup mpc55xx - * - * @brief System clock calculation. - */ - -/* - * Copyright (c) 2008-2011 embedded brains GmbH. All rights reserved. - * - * embedded brains GmbH - * Obere Lagerstr. 30 - * 82178 Puchheim - * Germany - * <rtems@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/start.h> -#include <bsp/mpc55xx-config.h> - -uint32_t mpc55xx_get_system_clock(void) -{ - uint32_t system_clock = 0; - - #ifdef MPC55XX_HAS_FMPLL - volatile struct FMPLL_tag *fmpll = &FMPLL; - union FMPLL_SYNSR_tag synsr = { .R = fmpll->SYNSR.R }; - uint32_t reference_clock = MPC55XX_REFERENCE_CLOCK; - bool pll_clock_mode = synsr.B.MODE != 0; - bool crystal_or_external_reference_mode = synsr.B.PLLSEL != 0; - - if (pll_clock_mode) { - if (crystal_or_external_reference_mode) { - union FMPLL_SYNCR_tag syncr = { .R = fmpll->SYNCR.R }; - uint32_t prediv = syncr.B.PREDIV; - uint32_t mfd = syncr.B.MFD; - uint32_t rfd = syncr.B.RFD; - - system_clock = ((reference_clock * (mfd + 4)) >> rfd) / (prediv + 1); - } else { - system_clock = 2 * reference_clock; - } - } else { - system_clock = reference_clock; - } - #endif - - #ifdef MPC55XX_HAS_FMPLL_ENHANCED - volatile struct FMPLL_tag *fmpll = &FMPLL; - union FMPLL_ESYNCR1_tag esyncr1 = { .R = fmpll->ESYNCR1.R }; - uint32_t reference_clock = MPC55XX_REFERENCE_CLOCK; - bool normal_mode = (esyncr1.B.CLKCFG & 0x4U) != 0; - - if (normal_mode) { - union FMPLL_ESYNCR2_tag esyncr2 = { .R = fmpll->ESYNCR2.R }; - uint32_t eprediv = esyncr1.B.EPREDIV; - uint32_t emfd = esyncr1.B.EMFD; - uint32_t erfd = esyncr2.B.ERFD; - - system_clock = ((reference_clock / (eprediv + 1)) * (emfd + 16)) - / (erfd + 1); - } else { - system_clock = reference_clock; - } - #endif - - #ifdef MPC55XX_HAS_MODE_CONTROL - /* FIXME: Assumes normal mode and external oscillator */ - PLLD_CR_32B_tag cr = { . R = CGM.FMPLL [0].CR.R }; - uint32_t xosc = MPC55XX_REFERENCE_CLOCK; - uint32_t ldf = cr.B.NDIV; - uint32_t idf = cr.B.IDF + 1; - uint32_t odf = 2U << cr.B.ODF; - - system_clock = (xosc * ldf) / (idf * odf); - #endif - - return system_clock; -} diff --git a/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/idle-thread.c b/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/idle-thread.c deleted file mode 100644 index 45bea8e418..0000000000 --- a/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/idle-thread.c +++ /dev/null @@ -1,34 +0,0 @@ -/** - * @file - * - * @ingroup mpc55xx - * - * @brief bsp_idle_thread() implementation. - */ - -/* - * Copyright (c) 2012 embedded brains GmbH. All rights reserved. - * - * embedded brains GmbH - * Obere Lagerstr. 30 - * 82178 Puchheim - * Germany - * <rtems@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 <mpc55xx/mpc55xx.h> - -void *bsp_idle_thread(uintptr_t arg) -{ - while (true) { - mpc55xx_wait_for_interrupt(); - } - - return NULL; -} diff --git a/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/linkcmds b/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/linkcmds deleted file mode 100644 index 5c2161deba..0000000000 --- a/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/linkcmds +++ /dev/null @@ -1 +0,0 @@ -include linkcmds.mpc55xxevb diff --git a/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/linkcmds.gwlcfm b/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/linkcmds.gwlcfm deleted file mode 100644 index cabaac2201..0000000000 --- a/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/linkcmds.gwlcfm +++ /dev/null @@ -1,27 +0,0 @@ -MEMORY { - ROM : ORIGIN = 0x0, LENGTH = 1536K - RAM : ORIGIN = 0x40000000, LENGTH = 80K - RAM_EXT : ORIGIN = 0x20000000, LENGTH = 512K - NOCACHE : ORIGIN = 0x0, LENGTH = 0 -} - -REGION_ALIAS ("REGION_START", ROM); -REGION_ALIAS ("REGION_FAST_TEXT", RAM); -REGION_ALIAS ("REGION_FAST_TEXT_LOAD", ROM); -REGION_ALIAS ("REGION_TEXT", ROM); -REGION_ALIAS ("REGION_TEXT_LOAD", ROM); -REGION_ALIAS ("REGION_RODATA", ROM); -REGION_ALIAS ("REGION_RODATA_LOAD", ROM); -REGION_ALIAS ("REGION_FAST_DATA", RAM); -REGION_ALIAS ("REGION_FAST_DATA_LOAD", ROM); -REGION_ALIAS ("REGION_DATA", RAM); -REGION_ALIAS ("REGION_DATA_LOAD", ROM); -REGION_ALIAS ("REGION_BSS", RAM_EXT); -REGION_ALIAS ("REGION_RWEXTRA", RAM_EXT); -REGION_ALIAS ("REGION_WORK", RAM_EXT); -REGION_ALIAS ("REGION_STACK", RAM); -REGION_ALIAS ("REGION_NOCACHE", NOCACHE); -REGION_ALIAS ("REGION_NOCACHE_LOAD", NOCACHE); -REGION_ALIAS ("REGION_NVRAM", NOCACHE); - -INCLUDE linkcmds.mpc55xx diff --git a/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/linkcmds.mpc5566evb b/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/linkcmds.mpc5566evb deleted file mode 100644 index 4f63fb0e0a..0000000000 --- a/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/linkcmds.mpc5566evb +++ /dev/null @@ -1,27 +0,0 @@ -MEMORY { - ROM : ORIGIN = 0x0, LENGTH = 3M - RAM : ORIGIN = 0x40000000, LENGTH = 128K - RAM_EXT : ORIGIN = 0x20000000, LENGTH = 512K - NOCACHE : ORIGIN = 0x0, LENGTH = 0 -} - -REGION_ALIAS ("REGION_START", ROM); -REGION_ALIAS ("REGION_FAST_TEXT", RAM); -REGION_ALIAS ("REGION_FAST_TEXT_LOAD", ROM); -REGION_ALIAS ("REGION_TEXT", ROM); -REGION_ALIAS ("REGION_TEXT_LOAD", ROM); -REGION_ALIAS ("REGION_RODATA", ROM); -REGION_ALIAS ("REGION_RODATA_LOAD", ROM); -REGION_ALIAS ("REGION_FAST_DATA", RAM); -REGION_ALIAS ("REGION_FAST_DATA_LOAD", ROM); -REGION_ALIAS ("REGION_DATA", RAM); -REGION_ALIAS ("REGION_DATA_LOAD", ROM); -REGION_ALIAS ("REGION_BSS", RAM_EXT); -REGION_ALIAS ("REGION_RWEXTRA", RAM_EXT); -REGION_ALIAS ("REGION_WORK", RAM); -REGION_ALIAS ("REGION_STACK", RAM); -REGION_ALIAS ("REGION_NOCACHE", NOCACHE); -REGION_ALIAS ("REGION_NOCACHE_LOAD", NOCACHE); -REGION_ALIAS ("REGION_NVRAM", NOCACHE); - -INCLUDE linkcmds.mpc55xx diff --git a/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/linkcmds.mpc5566evb_spe b/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/linkcmds.mpc5566evb_spe deleted file mode 100644 index 9255b15076..0000000000 --- a/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/linkcmds.mpc5566evb_spe +++ /dev/null @@ -1 +0,0 @@ -INCLUDE linkcmds.mpc5566evb diff --git a/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/linkcmds.mpc55xx b/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/linkcmds.mpc55xx deleted file mode 100644 index 2c4e1e3f7b..0000000000 --- a/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/linkcmds.mpc55xx +++ /dev/null @@ -1,22 +0,0 @@ -bsp_ram_start = ORIGIN (RAM); -bsp_ram_size = LENGTH (RAM) + LENGTH (NOCACHE); -bsp_ram_end = bsp_ram_start + bsp_ram_size; - -bsp_rom_start = ORIGIN (ROM); -bsp_rom_size = LENGTH (ROM); -bsp_rom_end = bsp_rom_start + bsp_rom_size; - -INCLUDE linkcmds.base - -SECTIONS { - .work_bonus : { - /* - * This section will occupy the remaining RAM_EXT region and may - * contain parts of the RTEMS work space and heap. - */ - bsp_section_work_bonus_begin = .; - . += ORIGIN (RAM_EXT) + LENGTH (RAM_EXT) - ABSOLUTE (.); - bsp_section_work_bonus_end = .; - } > RAM_EXT AT > RAM_EXT - bsp_section_work_bonus_size = bsp_section_work_bonus_end - bsp_section_work_bonus_begin; -} diff --git a/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/linkcmds.mpc5643l_dpu b/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/linkcmds.mpc5643l_dpu deleted file mode 100644 index 2f7d80716d..0000000000 --- a/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/linkcmds.mpc5643l_dpu +++ /dev/null @@ -1 +0,0 @@ -INCLUDE linkcmds.mpc5643l_evb diff --git a/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/linkcmds.mpc5643l_evb b/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/linkcmds.mpc5643l_evb deleted file mode 100644 index 1977c92d59..0000000000 --- a/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/linkcmds.mpc5643l_evb +++ /dev/null @@ -1,33 +0,0 @@ -MEMORY { - ROM : ORIGIN = 0x0, LENGTH = 1M - RAM : ORIGIN = 0x40000000, LENGTH = 64K - RAM_1 : ORIGIN = 0x50000000, LENGTH = 64K - NOCACHE : ORIGIN = 0x0, LENGTH = 0 -} - -REGION_ALIAS ("RAM_EXT", RAM); - -bsp_ram_1_start = ORIGIN (RAM_1); -bsp_ram_1_size = LENGTH (RAM_1); -bsp_ram_1_end = bsp_ram_1_start + bsp_ram_1_size; - -REGION_ALIAS ("REGION_START", ROM); -REGION_ALIAS ("REGION_FAST_TEXT", RAM); -REGION_ALIAS ("REGION_FAST_TEXT_LOAD", ROM); -REGION_ALIAS ("REGION_TEXT", ROM); -REGION_ALIAS ("REGION_TEXT_LOAD", ROM); -REGION_ALIAS ("REGION_RODATA", ROM); -REGION_ALIAS ("REGION_RODATA_LOAD", ROM); -REGION_ALIAS ("REGION_FAST_DATA", RAM); -REGION_ALIAS ("REGION_FAST_DATA_LOAD", ROM); -REGION_ALIAS ("REGION_DATA", RAM); -REGION_ALIAS ("REGION_DATA_LOAD", ROM); -REGION_ALIAS ("REGION_BSS", RAM); -REGION_ALIAS ("REGION_RWEXTRA", RAM); -REGION_ALIAS ("REGION_WORK", RAM_1); -REGION_ALIAS ("REGION_STACK", RAM_1); -REGION_ALIAS ("REGION_NOCACHE", NOCACHE); -REGION_ALIAS ("REGION_NOCACHE_LOAD", NOCACHE); -REGION_ALIAS ("REGION_NVRAM", NOCACHE); - -INCLUDE linkcmds.mpc55xx diff --git a/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/linkcmds.mpc5668g b/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/linkcmds.mpc5668g deleted file mode 100644 index 6c8e5a64f1..0000000000 --- a/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/linkcmds.mpc5668g +++ /dev/null @@ -1,29 +0,0 @@ -MEMORY { - ROM : ORIGIN = 0x0, LENGTH = 2M - RAM : ORIGIN = 0x40000000, LENGTH = 256K - 16k - NOCACHE : ORIGIN = 0x4003c000, LENGTH = 16k - EMPTY : ORIGIN = 0x0, LENGTH = 0 -} - -REGION_ALIAS ("RAM_EXT", RAM); - -REGION_ALIAS ("REGION_START", ROM); -REGION_ALIAS ("REGION_FAST_TEXT", RAM); -REGION_ALIAS ("REGION_FAST_TEXT_LOAD", ROM); -REGION_ALIAS ("REGION_TEXT", ROM); -REGION_ALIAS ("REGION_TEXT_LOAD", ROM); -REGION_ALIAS ("REGION_RODATA", ROM); -REGION_ALIAS ("REGION_RODATA_LOAD", ROM); -REGION_ALIAS ("REGION_FAST_DATA", RAM); -REGION_ALIAS ("REGION_FAST_DATA_LOAD", ROM); -REGION_ALIAS ("REGION_DATA", RAM); -REGION_ALIAS ("REGION_DATA_LOAD", ROM); -REGION_ALIAS ("REGION_BSS", RAM); -REGION_ALIAS ("REGION_RWEXTRA", RAM); -REGION_ALIAS ("REGION_WORK", RAM); -REGION_ALIAS ("REGION_STACK", RAM); -REGION_ALIAS ("REGION_NOCACHE", NOCACHE); -REGION_ALIAS ("REGION_NOCACHE_LOAD", ROM); -REGION_ALIAS ("REGION_NVRAM", EMPTY); - -INCLUDE linkcmds.mpc55xx diff --git a/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/linkcmds.mpc5674f_ecu508 b/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/linkcmds.mpc5674f_ecu508 deleted file mode 100644 index 1e52a3c6c3..0000000000 --- a/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/linkcmds.mpc5674f_ecu508 +++ /dev/null @@ -1,51 +0,0 @@ -MEMORY { - DSROM : ORIGIN = 0x00020000, LENGTH = 64k - SYSROM : ORIGIN = 0x00100000, LENGTH = 4k - RAM : ORIGIN = 0x40000000, LENGTH = 240k - NOCACHE : ORIGIN = 0x4003c000, LENGTH = 16k - DSRAM : ORIGIN = 0x20000000, LENGTH = 64k - RAM_EXT : ORIGIN = 0x20010000, LENGTH = 444k - SYSRAM : ORIGIN = 0x2007f000, LENGTH = 4k - NVRAM : ORIGIN = 0x3ffa0000, LENGTH = 128k -} - -REGION_ALIAS ("REGION_START", STARTROM); -REGION_ALIAS ("REGION_FAST_TEXT", RAM); -REGION_ALIAS ("REGION_FAST_TEXT_LOAD", ROM); -REGION_ALIAS ("REGION_TEXT", ROM); -REGION_ALIAS ("REGION_TEXT_LOAD", ROM); -REGION_ALIAS ("REGION_RODATA", ROM); -REGION_ALIAS ("REGION_RODATA_LOAD", ROM); -REGION_ALIAS ("REGION_FAST_DATA", RAM); -REGION_ALIAS ("REGION_FAST_DATA_LOAD", ROM); -REGION_ALIAS ("REGION_DATA", RAM); -REGION_ALIAS ("REGION_DATA_LOAD", ROM); -REGION_ALIAS ("REGION_BSS", RAM); -REGION_ALIAS ("REGION_RWEXTRA", RAM_EXT); -REGION_ALIAS ("REGION_WORK", RAM); -REGION_ALIAS ("REGION_STACK", RAM); -REGION_ALIAS ("REGION_NOCACHE", NOCACHE); -REGION_ALIAS ("REGION_NOCACHE_LOAD", ROM); -REGION_ALIAS ("REGION_NVRAM", NVRAM); - -SECTIONS { - .dsram (NOLOAD) : { - bsp_section_dsram_begin = .; - *(SORT(.bsp_dsram*)) - bsp_section_dsram_end = .; - } > DSRAM AT > DSROM - bsp_section_dsram_size = bsp_section_dsram_end - bsp_section_dsram_begin; - bsp_section_dsram_load_begin = LOADADDR (.dsram); - bsp_section_dsram_load_end = bsp_section_dsram_load_begin + bsp_section_dsram_size; - - .sysram : { - bsp_section_sysram_begin = .; - *(SORT(.bsp_sysram*)) - bsp_section_sysram_end = .; - } > SYSRAM AT > SYSROM - bsp_section_sysram_size = bsp_section_sysram_end - bsp_section_sysram_begin; - bsp_section_sysram_load_begin = LOADADDR (.sysram); - bsp_section_sysram_load_end = bsp_section_sysram_load_begin + bsp_section_sysram_size; -} - -INCLUDE linkcmds.mpc55xx diff --git a/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/linkcmds.mpc5674f_ecu508_app b/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/linkcmds.mpc5674f_ecu508_app deleted file mode 100644 index 4b94ac50c4..0000000000 --- a/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/linkcmds.mpc5674f_ecu508_app +++ /dev/null @@ -1,8 +0,0 @@ -MEMORY { - /* Let space for the binary image library header */ - ROM : ORIGIN = 0x00101000, LENGTH = 3064k -} - -REGION_ALIAS ("STARTROM", ROM); - -INCLUDE linkcmds.mpc5674f_ecu508 diff --git a/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/linkcmds.mpc5674f_ecu508_boot b/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/linkcmds.mpc5674f_ecu508_boot deleted file mode 100644 index 6dc5a7fcb0..0000000000 --- a/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/linkcmds.mpc5674f_ecu508_boot +++ /dev/null @@ -1,6 +0,0 @@ -MEMORY { - STARTROM : ORIGIN = 0x0, LENGTH = 32k - ROM : ORIGIN = 0x40000, LENGTH = 768k -} - -INCLUDE linkcmds.mpc5674f_ecu508 diff --git a/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/linkcmds.mpc5674f_rsm6 b/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/linkcmds.mpc5674f_rsm6 deleted file mode 100644 index c96f8b9078..0000000000 --- a/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/linkcmds.mpc5674f_rsm6 +++ /dev/null @@ -1,6 +0,0 @@ -MEMORY { - STARTROM : ORIGIN = 0x0, LENGTH = 32k - ROM : ORIGIN = 0x40000, LENGTH = 768k -} - -INCLUDE linkcmds.mpc5674f_rsm6_base diff --git a/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/linkcmds.mpc5674f_rsm6_base b/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/linkcmds.mpc5674f_rsm6_base deleted file mode 100644 index 8f6a403ca8..0000000000 --- a/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/linkcmds.mpc5674f_rsm6_base +++ /dev/null @@ -1,28 +0,0 @@ -MEMORY { - RAM : ORIGIN = 0x40000000, LENGTH = 240k - NOCACHE : ORIGIN = 0x4003c000, LENGTH = 16k - MRAM : ORIGIN = 0x20000000, LENGTH = 4M -} - -REGION_ALIAS ("RAM_EXT", RAM); - -REGION_ALIAS ("REGION_START", STARTROM); -REGION_ALIAS ("REGION_FAST_TEXT", RAM); -REGION_ALIAS ("REGION_FAST_TEXT_LOAD", ROM); -REGION_ALIAS ("REGION_TEXT", ROM); -REGION_ALIAS ("REGION_TEXT_LOAD", ROM); -REGION_ALIAS ("REGION_RODATA", ROM); -REGION_ALIAS ("REGION_RODATA_LOAD", ROM); -REGION_ALIAS ("REGION_FAST_DATA", RAM); -REGION_ALIAS ("REGION_FAST_DATA_LOAD", ROM); -REGION_ALIAS ("REGION_DATA", RAM); -REGION_ALIAS ("REGION_DATA_LOAD", ROM); -REGION_ALIAS ("REGION_BSS", RAM); -REGION_ALIAS ("REGION_RWEXTRA", RAM); -REGION_ALIAS ("REGION_WORK", RAM); -REGION_ALIAS ("REGION_STACK", RAM); -REGION_ALIAS ("REGION_NOCACHE", NOCACHE); -REGION_ALIAS ("REGION_NOCACHE_LOAD", ROM); -REGION_ALIAS ("REGION_NVRAM", MRAM); - -INCLUDE linkcmds.mpc55xx diff --git a/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/linkcmds.mpc5674fevb b/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/linkcmds.mpc5674fevb deleted file mode 100644 index 3113fb20b7..0000000000 --- a/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/linkcmds.mpc5674fevb +++ /dev/null @@ -1,28 +0,0 @@ -MEMORY { - ROM : ORIGIN = 0x0, LENGTH = 4M - RAM : ORIGIN = 0x40000000, LENGTH = 256K - 16k - RAM_EXT : ORIGIN = 0x20000000, LENGTH = 512K - NOCACHE : ORIGIN = 0x4003c000, LENGTH = 16k - EMPTY : ORIGIN = 0x0, LENGTH = 0 -} - -REGION_ALIAS ("REGION_START", ROM); -REGION_ALIAS ("REGION_FAST_TEXT", RAM); -REGION_ALIAS ("REGION_FAST_TEXT_LOAD", ROM); -REGION_ALIAS ("REGION_TEXT", ROM); -REGION_ALIAS ("REGION_TEXT_LOAD", ROM); -REGION_ALIAS ("REGION_RODATA", ROM); -REGION_ALIAS ("REGION_RODATA_LOAD", ROM); -REGION_ALIAS ("REGION_FAST_DATA", RAM); -REGION_ALIAS ("REGION_FAST_DATA_LOAD", ROM); -REGION_ALIAS ("REGION_DATA", RAM); -REGION_ALIAS ("REGION_DATA_LOAD", ROM); -REGION_ALIAS ("REGION_BSS", RAM); -REGION_ALIAS ("REGION_RWEXTRA", RAM_EXT); -REGION_ALIAS ("REGION_WORK", RAM); -REGION_ALIAS ("REGION_STACK", RAM); -REGION_ALIAS ("REGION_NOCACHE", NOCACHE); -REGION_ALIAS ("REGION_NOCACHE_LOAD", ROM); -REGION_ALIAS ("REGION_NVRAM", EMPTY); - -INCLUDE linkcmds.mpc55xx diff --git a/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/linkcmds.mpc5674fevb_spe b/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/linkcmds.mpc5674fevb_spe deleted file mode 100644 index eab0907009..0000000000 --- a/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/linkcmds.mpc5674fevb_spe +++ /dev/null @@ -1 +0,0 @@ -INCLUDE linkcmds.mpc5674fevb diff --git a/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/linkcmds.phycore_mpc5554 b/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/linkcmds.phycore_mpc5554 deleted file mode 100644 index 77b8abc5e0..0000000000 --- a/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/linkcmds.phycore_mpc5554 +++ /dev/null @@ -1,36 +0,0 @@ -/* - * Debug RAM is the top 4MB of external RAM and is swapped with the - * FLASH for development. - */ -MEMORY { - ROM : ORIGIN = 0x00000000, LENGTH = 2M - RAM : ORIGIN = 0x40000000, LENGTH = 64K - RAM_EXT : ORIGIN = 0x21000000, LENGTH = 4M - DEBUG_RAM : ORIGIN = 0x21400000, LENGTH = 4M - NOCACHE : ORIGIN = 0x0, LENGTH = 0 -} - -bsp_debug_ram_start = ORIGIN (DEBUG_RAM); -bsp_debug_ram_end = ORIGIN (DEBUG_RAM) + LENGTH (DEBUG_RAM); -bsp_debug_ram_size = LENGTH (DEBUG_RAM); - -REGION_ALIAS ("REGION_START", ROM); -REGION_ALIAS ("REGION_FAST_TEXT", RAM); -REGION_ALIAS ("REGION_FAST_TEXT_LOAD", ROM); -REGION_ALIAS ("REGION_TEXT", ROM); -REGION_ALIAS ("REGION_TEXT_LOAD", ROM); -REGION_ALIAS ("REGION_RODATA", ROM); -REGION_ALIAS ("REGION_RODATA_LOAD", ROM); -REGION_ALIAS ("REGION_FAST_DATA", RAM); -REGION_ALIAS ("REGION_FAST_DATA_LOAD", ROM); -REGION_ALIAS ("REGION_DATA", RAM); -REGION_ALIAS ("REGION_DATA_LOAD", ROM); -REGION_ALIAS ("REGION_BSS", RAM_EXT); -REGION_ALIAS ("REGION_RWEXTRA", RAM_EXT); -REGION_ALIAS ("REGION_WORK", RAM_EXT); -REGION_ALIAS ("REGION_STACK", RAM); -REGION_ALIAS ("REGION_NOCACHE", NOCACHE); -REGION_ALIAS ("REGION_NOCACHE_LOAD", NOCACHE); -REGION_ALIAS ("REGION_NVRAM", NOCACHE); - -INCLUDE linkcmds.mpc55xx diff --git a/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/restart.c b/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/restart.c deleted file mode 100644 index 495aa39a95..0000000000 --- a/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/restart.c +++ /dev/null @@ -1,25 +0,0 @@ -/* - * Copyright (c) 2008-2012 embedded brains GmbH. All rights reserved. - * - * embedded brains GmbH - * Obere Lagerstr. 30 - * 82178 Puchheim - * Germany - * <rtems@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> - -void bsp_restart(void *addr) -{ - rtems_interrupt_level level; - void (*start)(void) = addr; - - (void) level; - rtems_interrupt_disable(level); - (*start)(); -} diff --git a/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/sd-card-init.c b/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/sd-card-init.c deleted file mode 100644 index f6e0484122..0000000000 --- a/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/sd-card-init.c +++ /dev/null @@ -1,163 +0,0 @@ -/** - * @file - * - * @ingroup mpc55xx - * - * @brief SD Card initialization code. - */ - -/* - * Copyright (c) 2008 - * Embedded Brains GmbH - * Obere Lagerstr. 30 - * D-82178 Puchheim - * Germany - * rtems@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 <stdio.h> - -#include <mpc55xx/mpc55xx.h> -#include <mpc55xx/regs.h> -#include <mpc55xx/dspi.h> - -#include <bsp.h> - -#include <rtems/status-checks.h> - -#ifdef MPC55XX_BOARD_MPC5566EVB - -static rtems_status_code mpc55xx_dspi_init(void) -{ - int rv = 0; - int i = 0; - char device_name [] = "/dev/spi0"; - union SIU_PCR_tag pcr = MPC55XX_ZERO_FLAGS; - - rv = rtems_libi2c_initialize(); - RTEMS_CHECK_RV_SC( rv, "rtems_libi2c_initialize"); - - /* DSPI D inputs are taken from DSPI C */ - SIU.DISR.R = 0x000000FC; - - /* DSPI A signals */ - pcr.B.PA = 1; - pcr.B.ODE = 0; - pcr.B.HYS = 0; - pcr.B.SRC = 3; - pcr.B.WPE = 1; - pcr.B.WPS = 1; - - /* SCK */ - pcr.B.OBE = 1; - pcr.B.IBE = 0; - SIU.PCR [93].R = pcr.R; - - /* SIN */ - pcr.B.OBE = 0; - pcr.B.IBE = 1; - SIU.PCR [94].R = pcr.R; - - /* SOUT */ - pcr.B.OBE = 1; - pcr.B.IBE = 0; - SIU.PCR [95].R = pcr.R; - - /* PCSx */ - pcr.B.OBE = 1; - pcr.B.IBE = 0; - SIU.PCR [96].R = pcr.R; - SIU.PCR [97].R = pcr.R; - SIU.PCR [98].R = pcr.R; - SIU.PCR [99].R = pcr.R; - SIU.PCR [100].R = pcr.R; - SIU.PCR [101].R = pcr.R; - - mpc55xx_dspi_bus_table [3].master = 0; - for (i = 0; i < MPC55XX_DSPI_NUMBER; ++i) { - device_name [8] = (char) ('0' + i); - rv = rtems_libi2c_register_bus( device_name, (rtems_libi2c_bus_t *) &mpc55xx_dspi_bus_table [i]); - RTEMS_CHECK_RV_SC( rv, device_name); - } - - return RTEMS_SUCCESSFUL; -} - -#include <stdio.h> -#include <rtems/fsmount.h> -#include <rtems/dosfs.h> -#include <rtems/bdpart.h> -#include <rtems/console.h> - -#include <libchip/spi-sd-card.h> - -#define MPC55XX_DEVICE "sd-card-a" -#define MPC55XX_DEVICE_FILE "/dev/" MPC55XX_DEVICE -#define MPC55XX_PARTITION "/dev/sd-card-a1" -#define MPC55XX_MOUNT_POINT "/mnt" - -static fstab_t mpc55xx_fs_table [] = { { - MPC55XX_PARTITION, MPC55XX_MOUNT_POINT, - "dosfs", RTEMS_FILESYSTEM_READ_WRITE, - FSMOUNT_MNT_OK | FSMOUNT_MNTPNT_CRTERR | FSMOUNT_MNT_FAILED, - FSMOUNT_MNT_OK - }, { - MPC55XX_DEVICE_FILE, MPC55XX_MOUNT_POINT, - "dosfs", RTEMS_FILESYSTEM_READ_WRITE, - FSMOUNT_MNT_OK | FSMOUNT_MNTPNT_CRTERR | FSMOUNT_MNT_FAILED, - 0 - } -}; - -sd_card_driver_entry sd_card_driver_table [] = { - { - .device_name = "/dev/sd-card-a", - .bus = 0, - .transfer_mode = SD_CARD_TRANSFER_MODE_DEFAULT, - .command = SD_CARD_COMMAND_DEFAULT, - /* response : whatever, */ - .response_index = SD_CARD_COMMAND_SIZE, - .n_ac_max = SD_CARD_N_AC_MAX_DEFAULT, - .block_number = 0, - .block_size = 0, - .block_size_shift = 0, - .busy = true, - .verbose = true, - .schedule_if_busy = false - } -}; - -size_t sd_card_driver_table_size = sizeof( sd_card_driver_table) / sizeof( sd_card_driver_table [0]); - -rtems_status_code mpc55xx_sd_card_init( bool mount) -{ - rtems_status_code sc = RTEMS_SUCCESSFUL; - int rv = 0; - sd_card_driver_entry *e = &sd_card_driver_table [0]; - - RTEMS_DEBUG_PRINT( "Task started\n"); - - sc = mpc55xx_dspi_init(); - RTEMS_CHECK_SC( rv, "Intitalize DSPI bus"); - - e->bus = mpc55xx_dspi_bus_table [0].bus_number; - - sc = sd_card_register(); - RTEMS_CHECK_SC( sc, "Register SD Card"); - - if (mount) { - sc = rtems_bdpart_register_from_disk( MPC55XX_DEVICE_FILE); - RTEMS_CHECK_SC( sc, "Initialize IDE partition table"); - - rv = rtems_fsmount( mpc55xx_fs_table, sizeof( mpc55xx_fs_table) / sizeof( mpc55xx_fs_table [0]), NULL); - RTEMS_CHECK_RV_SC( rv, "Mount file systems"); - } - - return RTEMS_SUCCESSFUL; -} - -#endif /* MPC55XX_BOARD_MPC5566EVB */ diff --git a/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/start-cache.S b/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/start-cache.S deleted file mode 100644 index c30de57fc6..0000000000 --- a/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/start-cache.S +++ /dev/null @@ -1,114 +0,0 @@ -/** - * @file - * - * @ingroup mpc55xx_asm - * - * @brief Cache initialization. - */ - -/* - * Copyright (c) 2008-2012 embedded brains GmbH. All rights reserved. - * - * embedded brains GmbH - * Obere Lagerstr. 30 - * 82178 Puchheim - * Germany - * <rtems@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 <libcpu/powerpc-utility.h> - -#include <mpc55xx/regs.h> - - .globl mpc55xx_start_cache - - .section ".bsp_start_text", "ax" - -mpc55xx_start_cache: - -#ifdef MPC55XX_NEEDS_LOW_LEVEL_INIT - - /* Load zero, CINV, and CABT) */ - li r0, 0 - li r3, 0x2 - li r4, 0x4 - -#if defined(BSP_INSTRUCTION_CACHE_ENABLED) \ - && defined(MPC55XX_HAS_INSTRUCTION_CACHE) - -start_instruction_cache_invalidation: - - /* Clear instruction cache invalidation abort */ - mtspr FSL_EIS_L1CSR1, r0 - - /* Start instruction cache invalidation */ - mtspr FSL_EIS_L1CSR1, r3 - -get_instruction_cache_invalidation_status: - - /* Get instruction cache invalidation status */ - mfspr r5, FSL_EIS_L1CSR1 - - /* Check CABT */ - and. r6, r5, r4 - bne start_instruction_cache_invalidation - - /* Check CINV */ - and. r6, r5, r3 - bne get_instruction_cache_invalidation_status - - /* Save instruction cache settings */ - LWI r6, 0x00010001 - isync - msync - mtspr FSL_EIS_L1CSR1, r6 - -#endif - -#if (defined(BSP_DATA_CACHE_ENABLED) && defined(MPC55XX_HAS_DATA_CACHE)) \ - || ((defined(BSP_DATA_CACHE_ENABLED) \ - || defined(BSP_INSTRUCTION_CACHE_ENABLED)) \ - && defined(MPC55XX_HAS_UNIFIED_CACHE)) - -start_data_cache_invalidation: - - /* Clear data cache invalidation abort */ - mtspr FSL_EIS_L1CSR0, r0 - - /* Start data cache invalidation */ - mtspr FSL_EIS_L1CSR0, r3 - -get_data_cache_invalidation_status: - - /* Get data cache invalidation status */ - mfspr r5, FSL_EIS_L1CSR0 - - /* Check CABT */ - and. r6, r5, r4 - bne start_data_cache_invalidation - - /* Check CINV */ - and. r6, r5, r3 - bne get_data_cache_invalidation_status - - /* Save data cache settings */ -#if MPC55XX_CHIP_FAMILY != 567 - /* FIXME: CORG??? 0x00180011 */ - LWI r6, 0x00100001 -#else - LWI r6, 0x00190001 -#endif - isync - msync - mtspr FSL_EIS_L1CSR0, r6 - -#endif - -#endif /* MPC55XX_NEEDS_LOW_LEVEL_INIT */ - - /* Return */ - blr diff --git a/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/start-clock.c b/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/start-clock.c deleted file mode 100644 index 85468d5cb0..0000000000 --- a/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/start-clock.c +++ /dev/null @@ -1,104 +0,0 @@ -/** - * @file - * - * @ingroup mpc55xx - * - * @brief Clock and FMPLL initialization code. - */ - -/* - * Copyright (c) 2008-2011 embedded brains GmbH. All rights reserved. - * - * embedded brains GmbH - * Obere Lagerstr. 30 - * 82178 Puchheim - * Germany - * <rtems@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/fatal.h> -#include <bsp/start.h> -#include <bsp/bootcard.h> -#include <bsp/mpc55xx-config.h> - -#ifdef MPC55XX_NEEDS_LOW_LEVEL_INIT - #if defined(MPC55XX_HAS_FMPLL) || defined(MPC55XX_HAS_FMPLL_ENHANCED) - static BSP_START_TEXT_SECTION void fmpll_wait_for_lock(void) - { - int i = 0; - bool lock = false; - - while (!lock && i < 6000) { - lock = FMPLL.SYNSR.B.LOCK != 0; - ++i; - } - - if (!lock) { - bsp_fatal(MPC55XX_FATAL_FMPLL_LOCK); - } - } - #endif -#endif - -BSP_START_TEXT_SECTION void mpc55xx_start_clock(void) -{ - #ifdef MPC55XX_NEEDS_LOW_LEVEL_INIT - const mpc55xx_clock_config *cfg = mpc55xx_start_config_clock; - - #ifdef MPC55XX_HAS_FMPLL - volatile struct FMPLL_tag *fmpll = &FMPLL; - - fmpll->SYNCR.R = cfg->syncr_tmp.R; - fmpll->SYNCR.R; - fmpll_wait_for_lock(); - - fmpll->SYNCR.R = cfg->syncr_final.R; - fmpll->SYNCR.R; - fmpll_wait_for_lock(); - #endif - - #ifdef MPC55XX_HAS_FMPLL_ENHANCED - volatile struct FMPLL_tag *fmpll = &FMPLL; - - fmpll->ESYNCR2.R = cfg->esyncr2_tmp.R; - fmpll->ESYNCR2.R; - fmpll->ESYNCR1.R = cfg->esyncr1_final.R; - fmpll->ESYNCR1.R; - fmpll_wait_for_lock(); - - fmpll->ESYNCR2.R = cfg->esyncr2_final.R; - fmpll->ESYNCR2.R; - fmpll_wait_for_lock(); - - #if MPC55XX_CHIP_FAMILY == 551 || MPC55XX_CHIP_FAMILY == 566 - /* System clock supplied by PLL */ - SIU.SYSCLK.B.SYSCLKSEL = 2; - #endif - #endif - - #ifdef MPC55XX_HAS_MODE_CONTROL - volatile CGM_tag *cgm = &CGM; - size_t fmpll_count = sizeof(cfg->fmpll) / sizeof(cfg->fmpll [0]); - size_t auxclk_count = sizeof(cfg->auxclk) / sizeof(cfg->auxclk [0]); - size_t i = 0; - - for (i = 0; i < auxclk_count; ++i) { - cgm->AUXCLK [i].AC_SC.R = cfg->auxclk [i].AC_SC.R; - cgm->AUXCLK [i].AC_DC0_3.R = cfg->auxclk [i].AC_DC0_3.R; - } - - for (i = 0; i < fmpll_count; ++i) { - cgm->FMPLL [i].CR.R = cfg->fmpll [i].cr.R; - cgm->FMPLL [i].MR.R = cfg->fmpll [i].mr.R; - } - - cgm->OC_EN.R = cfg->oc_en.R; - cgm->OCDS_SC.R = cfg->ocds_sc.R; - #endif - #endif -} diff --git a/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/start-config-clock.c b/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/start-config-clock.c deleted file mode 100644 index d820af3755..0000000000 --- a/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/start-config-clock.c +++ /dev/null @@ -1,132 +0,0 @@ -/** - * @file - * - * @ingroup mpc55xx - * - * @brief Clock and FMPLL configuration. - */ - -/* - * Copyright (c) 2008-2012 embedded brains GmbH. All rights reserved. - * - * embedded brains GmbH - * Obere Lagerstr. 30 - * 82178 Puchheim - * Germany - * <rtems@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/mpc55xx-config.h> - -const mpc55xx_clock_config mpc55xx_start_config_clock [1] = { { - #ifdef MPC55XX_HAS_FMPLL - .syncr_tmp = { - .B = { - .PREDIV = MPC55XX_FMPLL_PREDIV - 1, - .MFD = MPC55XX_FMPLL_MFD, - .RFD = 2, - .LOCEN = 1 - } - }, - .syncr_final = { - .B = { - .PREDIV = MPC55XX_FMPLL_PREDIV - 1, - .MFD = MPC55XX_FMPLL_MFD, - .RFD = 0, - .LOCEN = 1, - .LOLIRQ = 1, - .LOCIRQ = 1 - } - } - #endif - #ifdef MPC55XX_HAS_FMPLL_ENHANCED - #define EPREDIV_VAL (MPC55XX_FMPLL_PREDIV-1) - #define EMFD_VAL (MPC55XX_FMPLL_MFD-16) - #define VCO_CLK_REF (MPC55XX_REFERENCE_CLOCK/(EPREDIV_VAL+1)) - #define VCO_CLK_OUT (VCO_CLK_REF*(EMFD_VAL+16)) - #define ERFD_VAL \ - (((VCO_CLK_OUT + MPC55XX_SYSTEM_CLOCK - 1) / MPC55XX_SYSTEM_CLOCK)-1) - - .esyncr2_tmp = { - .B = { - .LOCEN = 0, - .LOLRE = 0, - .LOCRE = 0, - .LOLIRQ = 0, - .LOCIRQ = 0, - .ERATE = 0, - .EDEPTH = 0, - .ERFD = ERFD_VAL + 2 /* reduce output clock during init */ - } - }, - .esyncr2_final = { - .B = { - .LOCEN = 0, - .LOLRE = 0, - .LOCRE = 0, - .LOLIRQ = 0, - .LOCIRQ = 0, - .ERATE = 0, - #if MPC55XX_CHIP_FAMILY == 567 - .CLKCFG_DIS = 1, - #endif - .EDEPTH = 0, - .ERFD = ERFD_VAL /* nominal output clock after init */ - } - }, - .esyncr1_final = { - .B = { - .CLKCFG = MPC55XX_FMPLL_ESYNCR1_CLKCFG, - .EPREDIV = EPREDIV_VAL, - .EMFD = EMFD_VAL - } - } - #endif - #ifdef MPC55XX_HAS_MODE_CONTROL - .fmpll = { - { - .cr = { - #if MPC55XX_REFERENCE_CLOCK == 8000000 - .B = { .IDF = 0, .ODF = 1, .NDIV = 60, .I_LOCK = 1, .PLL_ON = 1 } - #elif MPC55XX_REFERENCE_CLOCK == 40000000 - .B = { .IDF = 3, .ODF = 1, .NDIV = 48, .I_LOCK = 1, .PLL_ON = 1 } - #else - #error "unexpected reference clock" - #endif - } - }, - { - .cr = { - .B = { .IDF = 3, .ODF = 2, .NDIV = 32, .I_LOCK = 1, .PLL_ON = 1 } - } - } - }, - .ocds_sc = { - .B = { .SELDIV = 2, .SELCTL = 2 } - }, - .auxclk = { - [0] = { - .AC_SC = { .B = { .SELCTL = 4 } }, - .AC_DC0_3 = { .B = { .DE0 = 1, .DIV0 = 0 } } - }, - [1] = { - .AC_SC = { .B = { .SELCTL = 4 } }, - .AC_DC0_3 = { .B = { .DE0 = 1, .DIV0 = 11 } } - }, - [2] = { - .AC_SC = { .B = { .SELCTL = 4 } }, - .AC_DC0_3 = { .B = { .DE0 = 1, .DIV0 = 11 } } - }, - [3] = { - .AC_SC = { .B = { .SELCTL = 1 } } - }, - [4] = { - .AC_SC = { .B = { .SELCTL = 1 } } - } - } - #endif -} }; diff --git a/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/start-config-ebi-cs-cal.c b/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/start-config-ebi-cs-cal.c deleted file mode 100644 index 69f9b61a7d..0000000000 --- a/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/start-config-ebi-cs-cal.c +++ /dev/null @@ -1,257 +0,0 @@ -/** - * @file - * - * @ingroup mpc55xx - * - * @brief EBI calibration chip-select configuration. - */ - -/* - * Copyright (c) 2008-2012 embedded brains GmbH. All rights reserved. - * - * embedded brains GmbH - * Obere Lagerstr. 30 - * 82178 Puchheim - * Germany - * <rtems@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/mpc55xx-config.h> - -#ifdef MPC55XX_HAS_EBI - -const struct EBI_CAL_CS_tag mpc55xx_start_config_ebi_cal_cs [] = { -#if defined(MPC55XX_BOARD_MPC5674FEVB) - /* External SRAM */ - { - .BR = { - .B = { - .BA = 0x20000000 >> 15, - .PS = 0, - .AD_MUX = 1, - .BL = 1, - .WEBS = 0, - .TBDIP = 1, - .SETA = 0, - .BI = 0, - .V = 1 - } - }, - .OR = { - .B = { - .AM = 0xfff80000 >> 15, - .SCY = 0, - .BSCY = 0 - } - } - }, - /* External Ethernet controller */ - { - .BR = { - .B = { - .BA = 0x3fff8000 >> 15, - .PS = 0, - .AD_MUX = 1, - .BL = 0, - .WEBS = 0, - .TBDIP = 0, - .SETA = 0, - .BI = 1, - .V = 1 - } - }, - .OR = { - .B = { - .AM = 0xfff80000 >> 15, - .SCY = 1, - .BSCY = 0 - } - } - } -#elif defined(MPC55XX_BOARD_MPC5674F_ECU508) \ - && defined(MPC55XX_NEEDS_LOW_LEVEL_INIT) - /* D_CS0 for external SRAM */ - { - .BR = { - .B = { - .BA = 0x20000000 >> 15, - .PS = 0, - .AD_MUX = 1, - .BL = 1, - .WEBS = 0, - .TBDIP = 1, - .SETA = 0, - .BI = 0, - .V = 1 - } - }, - .OR = { - .B = { - .AM = 0xffe00000 >> 15, - .SCY = 0, - .BSCY = 0 - } - } - }, - - /* D_CS1 for Ethernet Controller */ - { - .BR = { - .B = { - .BA = 0x3fff8000 >> 15, - .PS = 0, - .AD_MUX = 1, - .BL = 0, - .WEBS = 0, - .TBDIP = 0, - .SETA = 0, - .BI = 1, - .V = 1 - } - }, - .OR = { - .B = { - .AM = 0xffff8000 >> 15, - .SCY = 1, - .BSCY = 0 - } - } - }, - - /* D_CS2 unused */ - { - .BR = { - .B = { - .BA = 0x20000000 >> 15, - .PS = 0, - .AD_MUX = 1, - .BL = 0, - .WEBS = 0, - .TBDIP = 0, - .SETA = 0, - .BI = 1, - .V = 0 - } - }, - .OR = { - .B = { - .AM = 0xfff80000 >> 15, - .SCY = 0, - .BSCY = 0 - } - } - }, - - /* D_CS3 for MRAM, ARCNET */ - { - .BR = { - .B = { - .BA = 0x3ff80000 >> 15, - .PS = 1, - .AD_MUX = 1, - .BL = 0, - .WEBS = 1, - .TBDIP = 0, - .SETA = 0, - .BI = 1, - .V = 1 - } - }, - .OR = { - .B = { - .AM = 0xfff80000 >> 15, - .SCY = 1, - .BSCY = 0 - } - } - } -#elif defined(MPC55XX_BOARD_MPC5674F_RSM6) - /* D_CS0 for MRAM */ - { - .BR = { - .B = { - .BA = 0x20000000 >> 15, - .PS = 0, - .AD_MUX = 1, - .BL = 0, - .WEBS = 1, - .TBDIP = 0, - .SETA = 0, - .BI = 1, - .V = 1 - } - }, - .OR = { - .B = { - .AM = 0xffc00000 >> 15, - .SCY = 4, - .BSCY = 0 - } - } - }, - - /* D_CS1 for FPGA */ - { - .BR = { - .B = { - .BA = 0x21000000 >> 15, - .PS = 0, - .AD_MUX = 1, - .BL = 0, - .WEBS = 0, - .TBDIP = 0, - .SETA = 0, - .BI = 1, - .V = 1 - } - }, - .OR = { - .B = { - .AM = 0xff800000 >> 15, - .SCY = 0, - .BSCY = 0 - } - } - }, - - /* D_CS2 unused */ - { - .BR = { .R = 0x20000002 }, - .OR = { .R = 0xe0000000 } - }, - - /* D_CS3 for Ethernet Controller */ - { - .BR = { - .B = { - .BA = 0x23000000 >> 15, - .PS = 1, - .AD_MUX = 1, - .BL = 0, - .WEBS = 1, - .TBDIP = 0, - .SETA = 0, - .BI = 1, - .V = 1 - } - }, - .OR = { - .B = { - .AM = 0xfff80000 >> 15, - .SCY = 8, - .BSCY = 0 - } - } - } -#endif -}; - -const size_t mpc55xx_start_config_ebi_cal_cs_count [] = { - RTEMS_ARRAY_SIZE(mpc55xx_start_config_ebi_cal_cs) -}; - -#endif /* MPC55XX_HAS_EBI */ diff --git a/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/start-config-ebi-cs.c b/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/start-config-ebi-cs.c deleted file mode 100644 index d12d0fa059..0000000000 --- a/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/start-config-ebi-cs.c +++ /dev/null @@ -1,164 +0,0 @@ -/** - * @file - * - * @ingroup mpc55xx - * - * @brief EBI chip-select configuration. - */ - -/* - * Copyright (c) 2008-2012 embedded brains GmbH. All rights reserved. - * - * embedded brains GmbH - * Obere Lagerstr. 30 - * 82178 Puchheim - * Germany - * <rtems@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/mpc55xx-config.h> - -#ifdef MPC55XX_HAS_EBI - -const struct EBI_CS_tag mpc55xx_start_config_ebi_cs [] = { -#if defined(MPC55XX_BOARD_GWLCFM) - /* CS0: External SRAM (16 bit, 1 wait states, 512kB, no burst) */ - { - { - .B.BA = 0x20000000>>15, - .B.PS = 1, - .B.AD_MUX = 1, - .B.WEBS = 1, - .B.TBDIP = 0, - .B.BI = 1, - .B.V = 1 - }, - { - .B.AM = 0x1fff0, - .B.SCY = 1, - .B.BSCY = 0 - } - }, - /* CS1: External USB controller (16 bit, 3 wait states, 32kB, no burst) */ - { - { - .B.BA = 0x22000000>>15, - .B.PS = 1, - .B.AD_MUX = 1, - .B.WEBS = 0, - .B.TBDIP = 0, - .B.BI = 1, - .B.V = 1 - }, - { - .B.AM = 0x1ffff, - .B.SCY = 3, - .B.BSCY = 0 - } - }, - /* CS2: Ethernet (16 bit, 2 wait states, 32kB, no burst) */ - { - { - .B.BA = 0x22800000>>15, - .B.PS = 1, - .B.AD_MUX = 1, - .B.WEBS = 1, - .B.TBDIP = 0, - .B.BI = 1, - .B.V = 1 - }, - { - .B.AM = 0x1ffff, - .B.SCY = 1, - .B.BSCY = 0 - } - }, - { /* CS3: MOST Companion. */ - { - .B.BA = 0x23000000>>15, - .B.PS = 1, - .B.AD_MUX = 1, - .B.WEBS = 0, - .B.TBDIP = 0, - .B.BI = 1, - .B.V = 1 - }, - - { - .B.AM = 0x1fff0, - .B.SCY = 1, - .B.BSCY = 0 - } - } -#elif defined(MPC55XX_BOARD_PHYCORE_MPC5554) - /* CS0: External flash. */ - { - { .R = 0x20000003 }, /* Base 0x2000000, Burst Inhibit, Valid */ - { .R = 0xff000050 } - }, - /* CS1: External synchronous burst mode SRAM. */ - { - { .R = 0x21000051 }, /* Base 0x2100000, 4-word Burst Enabled, Valid */ - { .R = 0xff000000 } /* No wait states. */ - }, - /* CS2: External LAN91C111 */ - { - { .R = 0x22000003 }, /* Base 0x22000000, Burst inhibit, valid */ - { .R = 0xff000010 } - }, - - /* CS3: External FPGA */ - { - { .R = 0x23000003 }, /* Base 0x23000000, Burst inhibit, valid. */ - { .R = 0xff000020 } - } -#elif defined(MPC55XX_BOARD_MPC5566EVB) - /* CS0: External SRAM (2 wait states, 512kB, 4 word burst) */ - { - { - .B.BA = 0, - .B.PS = 1, - .B.BL = 1, - .B.WEBS = 0, - .B.TBDIP = 0, - .B.BI = 1, /* TODO: Enable burst */ - .B.V = 1 - }, - - { - .B.AM = 0x1fff0, - .B.SCY = 0, - .B.BSCY = 0 - } - }, - { { .R = 0 }, { .R = 0 } }, /* CS1: Unused. */ - { { .R = 0 }, { .R = 0 } }, /* CS2: Unused. */ - { /* CS3: ethernet? */ - { - .B.BA = 0x7fff, - .B.PS = 1, - .B.BL = 0, - .B.WEBS = 0, - .B.TBDIP = 0, - .B.BI = 1, - .B.V = 1 - }, - - { - .B.AM = 0x1ffff, - .B.SCY = 1, - .B.BSCY = 0 - } - } -#endif -}; - -const size_t mpc55xx_start_config_ebi_cs_count [] = { - RTEMS_ARRAY_SIZE(mpc55xx_start_config_ebi_cs) -}; - -#endif /* MPC55XX_HAS_EBI */ diff --git a/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/start-config-ebi.c b/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/start-config-ebi.c deleted file mode 100644 index 1ce2b297d8..0000000000 --- a/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/start-config-ebi.c +++ /dev/null @@ -1,62 +0,0 @@ -/** - * @file - * - * @ingroup mpc55xx - * - * @brief EBI configuration. - */ - -/* - * Copyright (c) 2012 embedded brains GmbH. All rights reserved. - * - * embedded brains GmbH - * Obere Lagerstr. 30 - * 82178 Puchheim - * Germany - * <rtems@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/mpc55xx-config.h> - -#ifdef MPC55XX_HAS_EBI - -const mpc55xx_ebi_config mpc55xx_start_config_ebi [] = { - #if defined(MPC55XX_BOARD_GWLCFM) - { - .ebi_mcr = { - .B = { - .DBM = 1, - .AD_MUX = 1, /* use multiplexed bus */ - .D16_31 = 1 /* use lower AD bus */ - } - }, - .siu_eccr_ebdf = 4 - 1 /* use CLK/4 as bus clock */ - } - #elif (defined(MPC55XX_BOARD_MPC5674FEVB) \ - || defined(MPC55XX_BOARD_MPC5674F_ECU508) \ - || defined(MPC55XX_BOARD_MPC5674F_RSM6)) \ - && defined(MPC55XX_NEEDS_LOW_LEVEL_INIT) - { - .ebi_mcr = { - .B = { - .ACGE = 0, - .MDIS = 0, - .D16_31 = 1, - .AD_MUX = 0, - .DBM = 0 - } - }, - .siu_eccr_ebdf = 2 - 1 - } - #endif -}; - -const size_t mpc55xx_start_config_ebi_count [] = { - RTEMS_ARRAY_SIZE(mpc55xx_start_config_ebi) -}; - -#endif /* MPC55XX_HAS_EBI */ diff --git a/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/start-config-mmu-early.c b/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/start-config-mmu-early.c deleted file mode 100644 index 84e638d55c..0000000000 --- a/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/start-config-mmu-early.c +++ /dev/null @@ -1,64 +0,0 @@ -/** - * @file - * - * @ingroup mpc55xx - * - * @brief MMU early configuration. - */ - -/* - * Copyright (c) 2011-2013 embedded brains GmbH. All rights reserved. - * - * embedded brains GmbH - * Dornierstr. 4 - * 82178 Puchheim - * Germany - * <rtems@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/mpc55xx-config.h> - -const struct MMU_tag mpc55xx_start_config_mmu_early [] = { -#if (defined(MPC55XX_BOARD_MPC5674F_ECU508) \ - || defined(MPC55XX_BOARD_MPC5674F_RSM6)) \ - && !defined(MPC55XX_NEEDS_LOW_LEVEL_INIT) - /* Used as cache-inhibited area later (ADC, DSPI queues) */ - MPC55XX_MMU_TAG_INITIALIZER(14, 0x4003c000, MPC55XX_MMU_16K, 0, 1, 1, 0) -#elif MPC55XX_CHIP_FAMILY == 555 - /* Internal SRAM 96k */ - MPC55XX_MMU_TAG_INITIALIZER(3, 0x40000000, MPC55XX_MMU_256K, 1, 1, 1, 0), -#elif MPC55XX_CHIP_FAMILY == 556 - /* Internal SRAM 128k */ - MPC55XX_MMU_TAG_INITIALIZER(3, 0x40000000, MPC55XX_MMU_64K, 1, 1, 1, 0), - MPC55XX_MMU_TAG_INITIALIZER(5, 0x40010000, MPC55XX_MMU_64K, 0, 1, 1, 0), -#elif MPC55XX_CHIP_FAMILY == 564 - /* Internal flash 1M */ - MPC55XX_MMU_TAG_INITIALIZER(0, 0x00000000, MPC55XX_MMU_1M, 1, 0, 1, 1), - /* IO */ - MPC55XX_MMU_TAG_INITIALIZER(1, 0xffe00000, MPC55XX_MMU_2M, 0, 1, 1, 1), - MPC55XX_MMU_TAG_INITIALIZER(2, 0xc3f00000, MPC55XX_MMU_1M, 0, 1, 1, 1), - /* Internal SRAM 64k + 64k */ - MPC55XX_MMU_TAG_INITIALIZER(3, 0x40000000, MPC55XX_MMU_64K, 1, 1, 1, 0), - MPC55XX_MMU_TAG_INITIALIZER(4, 0x50000000, MPC55XX_MMU_64K, 0, 1, 1, 0) -#elif MPC55XX_CHIP_FAMILY == 566 - /* Internal flash 2M */ - MPC55XX_MMU_TAG_INITIALIZER(1, 0x00000000, MPC55XX_MMU_1M, 1, 0, 1, 0), - MPC55XX_MMU_TAG_INITIALIZER(4, 0x00100000, MPC55XX_MMU_1M, 1, 0, 1, 0), - /* IO */ - MPC55XX_MMU_TAG_INITIALIZER(2, 0xc3f00000, MPC55XX_MMU_1M, 0, 1, 1, 1), - /* Internal SRAM 512k */ - MPC55XX_MMU_TAG_INITIALIZER(3, 0x40000000, MPC55XX_MMU_256K, 1, 1, 1, 0), - MPC55XX_MMU_TAG_INITIALIZER(5, 0x40040000, MPC55XX_MMU_256K, 1, 1, 1, 0) -#elif MPC55XX_CHIP_FAMILY == 567 - /* Internal SRAM 256k */ - MPC55XX_MMU_TAG_INITIALIZER(3, 0x40000000, MPC55XX_MMU_256K, 1, 1, 1, 0) -#endif -}; - -const size_t mpc55xx_start_config_mmu_early_count [] = { - RTEMS_ARRAY_SIZE(mpc55xx_start_config_mmu_early) -}; diff --git a/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/start-config-mmu.c b/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/start-config-mmu.c deleted file mode 100644 index 7cf319edd3..0000000000 --- a/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/start-config-mmu.c +++ /dev/null @@ -1,151 +0,0 @@ -/** - * @file - * - * @ingroup mpc55xx - * - * @brief MMU configuration. - */ - -/* - * Copyright (c) 2008-2012 embedded brains GmbH. All rights reserved. - * - * embedded brains GmbH - * Obere Lagerstr. 30 - * 82178 Puchheim - * Germany - * <rtems@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/mpc55xx-config.h> - -const struct MMU_tag mpc55xx_start_config_mmu [] = { -#if defined(MPC55XX_BOARD_GWLCFM) - /* External Ethernet Controller 64k */ - MPC55XX_MMU_TAG_INITIALIZER(5, 0x3fff8000, MPC55XX_MMU_64K, 0, 1, 1, 1) -#elif defined(MPC55XX_BOARD_PHYCORE_MPC5554) - /* Arguments macro: idx, addr, size, x, w, r, io */ - MPC55XX_MMU_TAG_INITIALIZER(8, 0x20000000, MPC55XX_MMU_8M, 1, 0, 1, 0), /* External FLASH 8M */ - MPC55XX_MMU_TAG_INITIALIZER(2, 0x21000000, MPC55XX_MMU_4M, 0, 1, 1, 0), /* Lower half SRAM */ - MPC55XX_MMU_TAG_INITIALIZER(5, 0x21400000, MPC55XX_MMU_4M, 1, 1, 1, 0), /* Upper half SRAM ("debug") */ - MPC55XX_MMU_TAG_INITIALIZER(6, 0x22000000, MPC55XX_MMU_16M, 0, 1, 1, 1), /* LAN91C111 */ - MPC55XX_MMU_TAG_INITIALIZER(7, 0x23000000, MPC55XX_MMU_16M, 0, 1, 1, 1), /* FPGA */ -#elif defined(MPC55XX_BOARD_MPC5566EVB) - /* Internal flash 3M */ - MPC55XX_MMU_TAG_INITIALIZER(1, 0x00000000, MPC55XX_MMU_64K, 1, 0, 1, 0), - MPC55XX_MMU_TAG_INITIALIZER(6, 0x00010000, MPC55XX_MMU_64K, 1, 0, 1, 0), - MPC55XX_MMU_TAG_INITIALIZER(7, 0x00020000, MPC55XX_MMU_64K, 1, 0, 1, 0), - MPC55XX_MMU_TAG_INITIALIZER(8, 0x00030000, MPC55XX_MMU_64K, 1, 0, 1, 0), - MPC55XX_MMU_TAG_INITIALIZER(9, 0x00040000, MPC55XX_MMU_256K, 1, 0, 1, 0), - MPC55XX_MMU_TAG_INITIALIZER(10, 0x00080000, MPC55XX_MMU_256K, 1, 0, 1, 0), - MPC55XX_MMU_TAG_INITIALIZER(11, 0x000c0000, MPC55XX_MMU_256K, 1, 0, 1, 0), - MPC55XX_MMU_TAG_INITIALIZER(12, 0x00100000, MPC55XX_MMU_1M, 1, 0, 1, 0), - MPC55XX_MMU_TAG_INITIALIZER(13, 0x00200000, MPC55XX_MMU_1M, 1, 0, 1, 0), - /* External SRAM 512k */ - MPC55XX_MMU_TAG_INITIALIZER(2, 0x20000000, MPC55XX_MMU_256K, 0, 1, 1, 0), - MPC55XX_MMU_TAG_INITIALIZER(14, 0x20040000, MPC55XX_MMU_256K, 0, 1, 1, 0), - /* Internal SRAM 128k */ - MPC55XX_MMU_TAG_INITIALIZER(3, 0x40000000, MPC55XX_MMU_64K, 0, 1, 1, 0), - MPC55XX_MMU_TAG_INITIALIZER(5, 0x40010000, MPC55XX_MMU_64K, 0, 1, 1, 0), - /* External Ethernet Controller 64k */ - MPC55XX_MMU_TAG_INITIALIZER(15, 0x3fff8000, MPC55XX_MMU_64K, 0, 1, 1, 1) -#elif defined(MPC55XX_BOARD_MPC5674FEVB) - /* Internal flash 4M */ - MPC55XX_MMU_TAG_INITIALIZER(1, 0x00000000, MPC55XX_MMU_64K, 1, 0, 1, 0), - MPC55XX_MMU_TAG_INITIALIZER(5, 0x00010000, MPC55XX_MMU_64K, 1, 0, 1, 0), - MPC55XX_MMU_TAG_INITIALIZER(6, 0x00020000, MPC55XX_MMU_128K, 1, 0, 1, 0), - MPC55XX_MMU_TAG_INITIALIZER(7, 0x00040000, MPC55XX_MMU_256K, 1, 0, 1, 0), - MPC55XX_MMU_TAG_INITIALIZER(8, 0x00080000, MPC55XX_MMU_512K, 1, 0, 1, 0), - MPC55XX_MMU_TAG_INITIALIZER(9, 0x00100000, MPC55XX_MMU_1M, 1, 0, 1, 0), - MPC55XX_MMU_TAG_INITIALIZER(10, 0x00200000, MPC55XX_MMU_2M, 1, 0, 1, 0), - /* External SRAM 512k */ - MPC55XX_MMU_TAG_INITIALIZER(2, 0x20000000, MPC55XX_MMU_512K, 0, 1, 1, 0), - /* Internal SRAM 256k */ - MPC55XX_MMU_TAG_INITIALIZER(3, 0x40000000, MPC55XX_MMU_128K, 0, 1, 1, 0), - MPC55XX_MMU_TAG_INITIALIZER(11, 0x40020000, MPC55XX_MMU_64K, 0, 1, 1, 0), - MPC55XX_MMU_TAG_INITIALIZER(12, 0x40030000, MPC55XX_MMU_32K, 0, 1, 1, 0), - MPC55XX_MMU_TAG_INITIALIZER(13, 0x40038000, MPC55XX_MMU_16K, 0, 1, 1, 0), - MPC55XX_MMU_TAG_INITIALIZER(14, 0x4003c000, MPC55XX_MMU_16K, 0, 1, 1, 1), - /* External Ethernet controller */ - MPC55XX_MMU_TAG_INITIALIZER(15, 0x3fff8000, MPC55XX_MMU_64K, 0, 1, 1, 1) -#elif defined(MPC55XX_BOARD_MPC5674F_ECU508) - #if defined(MPC55XX_NEEDS_LOW_LEVEL_INIT) - /* Arguments macro: idx, addr, size, x, w, r, io */ - - /* Internal flash 4M */ - /* First 64k unused, to detect NULL pointer access */ - MPC55XX_MMU_TAG_INITIALIZER(1, 0x00000000, MPC55XX_MMU_64K, 1, 0, 1, 0), - MPC55XX_MMU_TAG_INITIALIZER(5, 0x00010000, MPC55XX_MMU_64K, 1, 0, 1, 0), - MPC55XX_MMU_TAG_INITIALIZER(6, 0x00020000, MPC55XX_MMU_128K, 1, 0, 1, 0), - MPC55XX_MMU_TAG_INITIALIZER(7, 0x00040000, MPC55XX_MMU_256K, 1, 0, 1, 0), - MPC55XX_MMU_TAG_INITIALIZER(8, 0x00080000, MPC55XX_MMU_512K, 1, 0, 1, 0), - MPC55XX_MMU_TAG_INITIALIZER(9, 0x00100000, MPC55XX_MMU_1M, 1, 0, 1, 0), - MPC55XX_MMU_TAG_INITIALIZER(10, 0x00200000, MPC55XX_MMU_2M, 1, 0, 1, 0), - /* External SRAM 2M */ - #ifndef BSP_DATA_CACHE_USE_WRITE_THROUGH - MPC55XX_MMU_TAG_INITIALIZER(2, 0x20000000, MPC55XX_MMU_2M, 0, 1, 1, 0), - #else - MPC55XX_MMU_TAG_INITIALIZER(2, 0x20000000, MPC55XX_MMU_2M, 0, 1, 1, 2), - #endif - /* Internal SRAM 256k */ - MPC55XX_MMU_TAG_INITIALIZER(3, 0x40000000, MPC55XX_MMU_256K, 0, 1, 1, 0), - MPC55XX_MMU_TAG_INITIALIZER(11, 0x40020000, MPC55XX_MMU_64K, 0, 1, 1, 0), - MPC55XX_MMU_TAG_INITIALIZER(12, 0x40030000, MPC55XX_MMU_32K, 0, 1, 1, 0), - MPC55XX_MMU_TAG_INITIALIZER(13, 0x40038000, MPC55XX_MMU_16K, 0, 1, 1, 0), - /* Used as cache-inhibited area (ADC, DSPI queues) */ - MPC55XX_MMU_TAG_INITIALIZER(14, 0x4003c000, MPC55XX_MMU_16K, 0, 1, 1, 1), - /* External Ethernet controller */ - MPC55XX_MMU_TAG_INITIALIZER(15, 0x3fff8000, MPC55XX_MMU_1K, 0, 1, 1, 1), - /* External MRAM 128k */ - MPC55XX_MMU_TAG_INITIALIZER(16, 0x3ffa0000, MPC55XX_MMU_128K, 0, 1, 1, 0), - /* External ARCNET controller */ - MPC55XX_MMU_TAG_INITIALIZER(17, 0x3ffc0000, MPC55XX_MMU_1K, 0, 1, 1, 1) - /* Peripheral Bridge A-Registers on MMU-table pos 4 */ - /* Peripheral Bridge B-Registers on MMU-table pos 0 */ - #else - /* Used as cache-inhibited area (ADC, DSPI queues) */ - MPC55XX_MMU_TAG_INITIALIZER(14, 0x4003c000, MPC55XX_MMU_16K, 0, 1, 1, 1) - #endif -#elif defined(MPC55XX_BOARD_MPC5674F_RSM6) - /* Arguments macro: idx, addr, size, x, w, r, io */ - - /* Internal flash 4M */ - /* First 64k unused, to detect NULL pointer access */ - MPC55XX_MMU_TAG_INITIALIZER(1, 0x00000000, MPC55XX_MMU_64K, 1, 0, 1, 0), - MPC55XX_MMU_TAG_INITIALIZER(5, 0x00010000, MPC55XX_MMU_64K, 1, 0, 1, 0), - MPC55XX_MMU_TAG_INITIALIZER(6, 0x00020000, MPC55XX_MMU_128K, 1, 0, 1, 0), - MPC55XX_MMU_TAG_INITIALIZER(7, 0x00040000, MPC55XX_MMU_256K, 1, 0, 1, 0), - MPC55XX_MMU_TAG_INITIALIZER(8, 0x00080000, MPC55XX_MMU_512K, 1, 0, 1, 0), - MPC55XX_MMU_TAG_INITIALIZER(9, 0x00100000, MPC55XX_MMU_1M, 1, 0, 1, 0), - MPC55XX_MMU_TAG_INITIALIZER(10, 0x00200000, MPC55XX_MMU_2M, 1, 0, 1, 0), - /* External MRAM 4M */ - MPC55XX_MMU_TAG_INITIALIZER(2, 0x20000000, MPC55XX_MMU_4M, 0, 1, 1, 0), - /* Internal SRAM 256k */ - MPC55XX_MMU_TAG_INITIALIZER(3, 0x40000000, MPC55XX_MMU_256K, 0, 1, 1, 0), - MPC55XX_MMU_TAG_INITIALIZER(11, 0x40020000, MPC55XX_MMU_64K, 0, 1, 1, 0), - MPC55XX_MMU_TAG_INITIALIZER(12, 0x40030000, MPC55XX_MMU_32K, 0, 1, 1, 0), - MPC55XX_MMU_TAG_INITIALIZER(13, 0x40038000, MPC55XX_MMU_16K, 0, 1, 1, 0), - /* Used as cache-inhibited area (ADC, DSPI queues) */ - MPC55XX_MMU_TAG_INITIALIZER(14, 0x4003c000, MPC55XX_MMU_16K, 0, 1, 1, 1), - /* External FPGA */ - MPC55XX_MMU_TAG_INITIALIZER(15, 0x21000000, MPC55XX_MMU_8M, 0, 1, 1, 1), - /* External Ethernet controller */ - MPC55XX_MMU_TAG_INITIALIZER(16, 0x23000000, MPC55XX_MMU_1K, 0, 1, 1, 1) -#elif MPC55XX_CHIP_FAMILY == 564 - /* Internal flash 1M */ - MPC55XX_MMU_TAG_INITIALIZER(0, 0x00000000, MPC55XX_MMU_1M, 1, 0, 1, 0), - /* IO */ - MPC55XX_MMU_TAG_INITIALIZER(1, 0xffe00000, MPC55XX_MMU_2M, 0, 1, 1, 1), - MPC55XX_MMU_TAG_INITIALIZER(2, 0xc3f00000, MPC55XX_MMU_1M, 0, 1, 1, 1), - /* Internal SRAM 64k + 64k */ - MPC55XX_MMU_TAG_INITIALIZER(3, 0x40000000, MPC55XX_MMU_64K, 0, 1, 1, 0), - MPC55XX_MMU_TAG_INITIALIZER(4, 0x50000000, MPC55XX_MMU_64K, 0, 1, 1, 0) -#endif -}; - -const size_t mpc55xx_start_config_mmu_count [] = { - RTEMS_ARRAY_SIZE(mpc55xx_start_config_mmu) -}; diff --git a/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/start-config-siu-pcr.c b/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/start-config-siu-pcr.c deleted file mode 100644 index 8355e647ca..0000000000 --- a/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/start-config-siu-pcr.c +++ /dev/null @@ -1,148 +0,0 @@ -/** - * @file - * - * @ingroup mpc55xx - * - * @brief SIU PCR configuration. - */ - -/* - * Copyright (c) 2008-2012 embedded brains GmbH. All rights reserved. - * - * embedded brains GmbH - * Obere Lagerstr. 30 - * 82178 Puchheim - * Germany - * <rtems@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/mpc55xx-config.h> - -const mpc55xx_siu_pcr_config mpc55xx_start_config_siu_pcr [] = { -#if defined(MPC55XX_BOARD_GWLCFM) - { 0,16, 0, {.B.PA = 1, .B.WPE = 0}}, /* PA[ 0..15] analog input */ - { 16, 4, 0, {.B.PA = 0,.B.OBE = 1,.B.WPE = 0}}, /* PB[ 0.. 4] LED/CAN_STBN out */ - { 20, 2, 0, {.B.PA = 0,.B.IBE = 1,.B.WPE = 0}}, /* PB[ 5.. 6] CAN_ERR/USBFLGC in*/ - { 22, 1, 0, {.B.PA = 0,.B.OBE = 1,.B.WPE = 0}}, /* PB[ 7 ] FR_A_EN out */ - { 23, 4, 0, {.B.PA = 0,.B.IBE = 1,.B.WPE = 0}}, /* PB[ 8..10] IRQ/FR_A_ERR/USB_RDYin */ - { 27, 1, 0, {.B.PA = 0,.B.OBE = 1,.B.WPE = 0}}, /* PB[11..11] FR_STBN out */ - - { 32, 2, 0, {.B.PA = 2,.B.OBE = 1,.B.WPE = 0}}, /* PC[ 0.. 1] FR_A_TX/TXEN out */ - { 34, 1, 0, {.B.PA = 2,.B.IBE = 1,.B.WPE = 0}}, /* PC[ 2.. 2] FR_A_RX in */ - { 35, 2, 0, {.B.PA = 0,.B.IBE = 1,.B.WPE = 0}}, /* PC[ 3.. 4] INIT_ERR/ISB_IRQ in */ - { 37, 2, 0, {.B.PA = 0,.B.OBE = 1,.B.WPE = 0}}, /* PC[ 5.. 6] PWRO1/2_ON out */ - { 39, 1, 0, {.B.PA = 2,.B.IBE = 1,.B.WPE = 0}}, /* PC[ 7.. 7] FR_B_RX in */ - { 40, 2, 0, {.B.PA = 2,.B.OBE = 1,.B.WPE = 0}}, /* PC[ 8.. 9] FR_B_TX/TXEN out */ - { 42, 1, 0, {.B.PA = 0,.B.OBE = 1,.B.WPE = 0}}, /* PC[10 ] FR_B_EN out */ - { 43, 1, 0, {.B.PA = 0,.B.IBE = 1,.B.WPE = 0}}, /* PC[11 ] FOR_STATUS in */ - { 44, 1, 0, {.B.PA = 0,.B.IBE = 1,.B.WPE = 0}}, /* PC[12 ] FR_B_ERRN in */ - { 45, 1, 0, {.B.PA = 0,.B.OBE = 1,.B.WPE = 0}}, /* PC[13 ] HS_CAN_STBN out */ - { 46, 1, 0, {.B.PA = 0,.B.IBE = 1,.B.WPE = 0}}, /* PC[14 ] HS_CAN_ERR in */ - { 47, 1, 0, {.B.PA = 0,.B.OBE = 1,.B.WPE = 0}}, /* PC[15 ] HS_CAN_EN out */ - - { 48, 1, 0, {.B.PA = 1,.B.OBE = 1,.B.WPE = 0}}, /* PD[ 0 ] HS_CAN_TX out */ - { 49, 1, 0, {.B.PA = 1,.B.IBE = 1,.B.WPE = 0}}, /* PD[ 1 ] HS_CAN_RX in */ - { 50, 2, 0, {.B.PA = 0,.B.IBE = 1,.B.WPE = 0}}, /* PD[ 2.. 3] PWRO1/2_OC in */ - { 52, 1, 0, {.B.PA = 1,.B.OBE = 1,.B.WPE = 0}}, /* PD[ 4 ] LS_CAN_TX out */ - { 53, 1, 0, {.B.PA = 1,.B.IBE = 1,.B.WPE = 0}}, /* PD[ 5 ] LS_CAN_RX in */ - { 54, 1, 0, {.B.PA = 1,.B.OBE = 1,.B.WPE = 0}}, /* PD[ 6 ] HS_CAN_TX out */ - { 55, 1, 0, {.B.PA = 1,.B.IBE = 1,.B.WPE = 0}}, /* PD[ 7 ] HS_CAN_RX in */ - { 56, 1, 0, {.B.PA = 2,.B.IBE = 1,.B.OBE = 1,.B.WPE = 0}}, - /* PD[ 8 ] I2C_SCL in/out */ - { 57, 1, 0, {.B.PA = 2,.B.IBE = 1,.B.OBE = 1,.B.WPE = 0}}, - /* PD[ 9 ] I2C_SDA in/out */ - - { 58, 1, 0, {.B.PA = 0,.B.OBE = 1,.B.WPE = 0}}, /* PD[10] LS_CAN_EN out*/ - { 59, 3, 0, {.B.PA = 0,.B.IBE = 1,.B.WPE = 0}}, - /* PD[11..13] PWO1_OC, MOCO_INT in */ - - { 62, 4, 0, {.B.PA = 0,.B.IBE = 1,.B.WPE = 0}}, /* PD[14..15] USB_FLGA/B in */ - - { 64, 5, 0, {.B.PA = 0,.B.OBE = 1,.B.WPE = 0}}, /* PE[ 0.. 4] LED_EXT1-5. out*/ - { 70, 1, 0, {.B.PA = 1,.B.SRC = 3,.B.WPE = 0}}, /* PE[ 6.. 6] CLKOUT out*/ - - { 80, 1, 0, {.B.PA = 1,.B.SRC = 1,.B.WPE = 0}}, /* PF[ 0.. 0] RD_WR out*/ - { 81, 1, 0, {.B.PA = 0,.B.SRC = 0,.B.WPE = 0}}, /* PF[ 1.. 1] (nc) in */ - { 82, 8, 0, {.B.PA = 2,.B.SRC = 1,.B.WPE = 0}}, /* PF[ 2..11] ADDR[8..15] out*/ - { 90, 2, 0, {.B.PA = 1,.B.SRC = 1,.B.WPE = 0}}, /* PF[ 2..11] CS[0..1] out*/ - { 92, 1, 0, {.B.PA = 3,.B.SRC = 3,.B.WPE = 0}}, /* PF[ 12] ALE out*/ - { 93, 3, 0, {.B.PA = 1,.B.SRC = 1,.B.WPE = 0}}, /* PF[13..15] OE/WE out*/ - - { 96,16, 0, {.B.PA = 1,.B.SRC = 1,.B.WPE = 0}}, /* PG[ 0..15] AD16..31 in/out*/ - - {113, 1, 1, {.B.PA = 0,.B.OBE = 1,.B.WPE = 0}}, /* PH[ 1.. 1] RES_MOSTComp out*/ - {114, 1, 0, {.B.PA = 3,.B.OBE = 1,.B.WPE = 0}}, /* PH[ 2.. 2] CS3_MOSTComp out*/ - {115, 1, 0, {.B.PA = 3,.B.OBE = 1,.B.WPE = 0}}, /* PH[ 3.. 3] CS2_ETH out*/ - {116, 2, 0, {.B.PA = 0,.B.OBE = 1,.B.WPE = 0}}, /* PH[ 4.. 5] FR/HC_TERM out*/ - {118, 1, 0, {.B.PA = 2,.B.OBE = 1,.B.WPE = 0}}, /* PH[ 6.. 6] LIN_Tx out*/ - {119, 1, 0, {.B.PA = 2,.B.IBE = 1,.B.WPE = 0}}, /* PH[ 7.. 7] LIN_Rx in */ - {120, 1, 0, {.B.PA = 0,.B.OBE = 1,.B.WPE = 0}}, /* PH[ 8..11] LIN_SLP,RST out*/ - {121, 2, 1, {.B.PA = 0,.B.OBE = 1,.B.WPE = 0}}, /* PH[ 8..11] LIN_SLP,RST out*/ - {120, 1, 0, {.B.PA = 0,.B.OBE = 1,.B.WPE = 0}} /* PH[ 8..11] LIN_SLP,RST out*/ -#elif defined(MPC55XX_BOARD_PHYCORE_MPC5554) - { 0, 4, 0, {.B.PA = 1, .B.DSC = 1,.B.WPE=1,.B.WPS=1}}, /* !CS [0:3] */ - { 4,24, 0, {.B.PA = 1, .B.DSC = 1 }}, /* ADDR [8 : 31] */ - { 28,32, 0, {.B.PA = 1, .B.DSC = 1 }}, /* DATA [0 : 31] */ - { 60, 4, 0, {.B.PA = 1, .B.DSC = 1, }}, /* TSIZ[0:1], RD_!WR, BDIP */ - { 64, 6, 0, {.B.PA = 1, .B.DSC = 1,.B.WPE=1,.B.WPS=1}}, /* RD_!WR, BDIP, !WE, !OE, !TS */ - { 89, 4, 0, {.B.PA = 1 }}, /* ESCI_A and ESCI_B */ - {229, 4, 0, { .B.OBE= 1,.B.DSC = 1 }} /* CLKOUT */ -#elif defined(MPC55XX_BOARD_MPC5566EVB) - { 0, 1, 0, {.B.PA = 1,.B.DSC = 1,.B.WPE=1,.B.WPS=1}}, /* !CS [0] */ - { 3, 1, 0, {.B.PA = 1,.B.DSC = 1,.B.WPE=1,.B.WPS=1}}, /* !CS [3] */ - { 4,24, 0, {.B.PA = 1,.B.DSC = 1 }}, /* ADDR [8 : 31] */ - { 28,16, 0, {.B.PA = 1,.B.DSC = 1 }}, /* DATA [0 : 15] */ - { 62, 8, 0, {.B.PA = 1,.B.DSC = 1,.B.WPE=1,.B.WPS=1}}, /* RD_!WR, BDIP, - !WE, !OE, !TS */ - { 89, 2, 0, {.B.PA = 1 }} /* ESCI_B */ -#elif defined(MPC55XX_BOARD_MPC5674FEVB) - { 89, 2, 0, { .B = { .PA = 1 } } }, /* ESCI_A */ - { 256, 1, 0, { .B = { .PA = 1, .DSC = 1 } } }, /* D_CS0 */ - { 257, 1, 0, { .B = { .PA = 2, .DSC = 1 } } }, /* D_ADD_DAT31 */ - { 259, 4, 0, { .B = { .PA = 1, .DSC = 1 } } }, /* D_ADD12 .. D_ADD15 */ - { 263, 15, 0, { .B = { .PA = 2, .DSC = 1 } } }, /* D_ADD_DAT16 .. D_ADD_DAT30 */ - { 278, 16, 0, { .B = { .PA = 1, .DSC = 1 } } }, /* D_ADD_DAT0 .. D_ADD_DAT15 */ - { 294, 6, 0, { .B = { .PA = 1, .DSC = 1 } } }, /* D_RD_WR, D_WE0, D_WE1, D_OE, D_TS, D_ALE */ - { 301, 1, 0, { .B = { .PA = 1, .DSC = 1 } } }, /* D_CS1 */ - { 302, 6, 0, { .B = { .PA = 1, .DSC = 1 } } } /* D_BDIP, D_WE2, D_WE3, D_ADD9 .. D_ADD11 */ -#elif defined(MPC55XX_BOARD_MPC5674F_ECU508) \ - && defined(MPC55XX_NEEDS_LOW_LEVEL_INIT) - { 196, 2, 0, { .B = { .PA = 0, .OBE = 1, .WPE = 0 } } }, /* EMIOS17 .. EMIOS18 (5VS_EN, 80V_EN) */ - { 200, 4, 0, { .B = { .PA = 0, .OBE = 1, .WPE = 0 } } }, /* EMIOS21 .. EMIOS24 (\KS_RST, \LS_RST, \IGNINJ_RST, \INJDI_RST) */ - { 204, 1, 1, { .B = { .PA = 0, .OBE = 1, .WPE = 0 } } }, /* EMIOS25 (HBR12_RST) */ - { 244, 2, 0, { .B = { .PA = 1 } } }, /* ESCI_C */ - { 256, 1, 0, { .B = { .PA = 1, .DSC = 0 } } }, /* D_CS0 */ - { 257, 1, 0, { .B = { .PA = 2, .DSC = 1 } } }, /* D_ADD_DAT31 */ - { 258, 1, 0, { .B = { .PA = 1, .DSC = 0 } } }, /* D_CS3 */ - { 259, 4, 0, { .B = { .PA = 1, .DSC = 0 } } }, /* D_ADD12 .. D_ADD15 */ - { 263, 15, 0, { .B = { .PA = 2, .DSC = 1 } } }, /* D_ADD_DAT16 .. D_ADD_DAT30 */ - { 278, 16, 0, { .B = { .PA = 1, .DSC = 0 } } }, /* D_ADD_DAT0 .. D_ADD_DAT15 */ - { 294, 6, 0, { .B = { .PA = 1, .DSC = 0 } } }, /* D_RD_WR, D_WE0, D_WE1, D_OE, D_TS, D_ALE */ - { 301, 1, 0, { .B = { .PA = 1, .DSC = 0 } } }, /* D_CS1 */ - { 302, 3, 0, { .B = { .PA = 1, .DSC = 0 } } }, /* D_BDIP, D_WE2, D_WE3 */ - { 305, 3, 0, { .B = { .PA = 1, .DSC = 0 } } }, /* D_ADD9 .. D_ADD11 */ - { 432, 1, 1, { .B = { .PA = 0, .OBE = 1, .WPE = 0 } } }, /* EMIOS26 (HBR34_RST) */ - { 433, 1, 0, { .B = { .PA = 0, .OBE = 1, .WPE = 0 } } } /* EMIOS27 (\ETH_RST) */ -#elif defined(MPC55XX_BOARD_MPC5674F_RSM6) - { 89, 1, 0, { .B = { .PA = 1, .OBE = 1, .IBE = 1, .WPE = 1, .WPS = 1 } } }, /* TXD_A (ESCI_A)*/ - { 90, 1, 0, { .B = { .PA = 1, .OBE = 0, .IBE = 1, .WPE = 1, .WPS = 1 } } }, /* RXD_A (ESCI_A)*/ - { 256, 1, 0, { .B = { .PA = 1, .DSC = 3, .WPE = 1, .WPS = 1 } } }, /* D_CS0 */ - { 257, 1, 0, { .B = { .PA = 2, .DSC = 3, .WPE = 1, .WPS = 1 } } }, /* D_ADD_DAT31 */ - { 258, 1, 0, { .B = { .PA = 1, .DSC = 3, .WPE = 1, .WPS = 1 } } }, /* D_CS3 */ - { 259, 4, 0, { .B = { .PA = 1, .DSC = 3, .WPE = 1, .WPS = 1 } } }, /* D_ADD12 .. D_ADD15 */ - { 263, 15, 0, { .B = { .PA = 2, .DSC = 3, .WPE = 1, .WPS = 1 } } }, /* D_ADD_DAT16 .. D_ADD_DAT30 */ - { 278, 16, 0, { .B = { .PA = 1, .DSC = 3, .WPE = 1, .WPS = 1 } } }, /* D_ADD_DAT0 .. D_ADD_DAT15 */ - { 294, 6, 0, { .B = { .PA = 1, .DSC = 3, .WPE = 1, .WPS = 1 } } }, /* D_RD_WR, D_WE0, D_WE1, D_OE, D_TS, D_ALE */ - { 301, 1, 0, { .B = { .PA = 1, .DSC = 3, .WPE = 1, .WPS = 1 } } }, /* D_CS1 */ - { 302, 3, 0, { .B = { .PA = 1, .DSC = 3, .WPE = 1, .WPS = 1 } } }, /* D_BDIP, D_WE2, D_WE3 */ - { 305, 3, 0, { .B = { .PA = 1, .DSC = 3, .WPE = 1, .WPS = 1 } } } /* D_ADD9 .. D_ADD11 */ -#endif -}; - -const size_t mpc55xx_start_config_siu_pcr_count [] = { - RTEMS_ARRAY_SIZE(mpc55xx_start_config_siu_pcr) -}; diff --git a/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/start-early.c b/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/start-early.c deleted file mode 100644 index e1a0b3da09..0000000000 --- a/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/start-early.c +++ /dev/null @@ -1,216 +0,0 @@ -/** - * @file - * - * @ingroup mpc55xx - * - * @brief Early initialization code. - */ - -/* - * Copyright (c) 2008-2012 embedded brains GmbH. All rights reserved. - * - * embedded brains GmbH - * Obere Lagerstr. 30 - * 82178 Puchheim - * Germany - * <rtems@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/mpc55xx-config.h> -#include <bsp/linker-symbols.h> - -/* This function is defined in start.S */ -BSP_START_TEXT_SECTION void mpc55xx_start_load_section( - void *dst, - const void *src, - size_t n -); - -static BSP_START_TEXT_SECTION void mpc55xx_start_mmu(void) -{ - #ifdef MPC55XX_BOOTFLAGS - /* If the low bit of bootflag 0 is clear don't change the MMU. */ - bool do_mmu_config = (mpc55xx_bootflag_0 [0] & 1) != 0; - #else - bool do_mmu_config = true; - #endif - - if (do_mmu_config) { - mpc55xx_start_mmu_apply_config( - &mpc55xx_start_config_mmu [0], - mpc55xx_start_config_mmu_count [0] - ); - } -} - -static BSP_START_TEXT_SECTION void mpc55xx_start_internal_ram(void) -{ - #ifdef MPC55XX_NEEDS_LOW_LEVEL_INIT - /* Initialize internal SRAM to zero (ECC) */ - bsp_start_zero( - (char *) bsp_ram_start + MPC55XX_EARLY_STACK_SIZE, - (size_t) bsp_ram_size - MPC55XX_EARLY_STACK_SIZE - ); - #ifdef MPC55XX_HAS_SECOND_INTERNAL_RAM_AREA - bsp_start_zero(&bsp_ram_1_start [0], (size_t) bsp_ram_1_size); - #endif - #else - bsp_start_zero( - bsp_section_sbss_begin, - (size_t) bsp_section_sbss_size - ); - bsp_start_zero( - bsp_section_bss_begin, - (size_t) bsp_section_bss_size - ); - #endif -} - -static BSP_START_TEXT_SECTION void mpc55xx_start_load_nocache_section(void) -{ - mpc55xx_start_load_section( - bsp_section_nocache_begin, - bsp_section_nocache_load_begin, - (size_t) bsp_section_nocache_size - ); - rtems_cache_flush_multiple_data_lines( - bsp_section_nocache_begin, - (size_t) bsp_section_nocache_size - ); -} - -static BSP_START_TEXT_SECTION void mpc55xx_start_mode_change(void) -{ - #ifdef MPC55XX_NEEDS_LOW_LEVEL_INIT - #ifdef MPC55XX_HAS_MODE_CONTROL - uint32_t mctl_key1 = 0x5af0; - uint32_t mctl_key2 = 0xa50f; - int i = 0; - - /* Clear any pending RGM status */ - RGM.FES.R = 0xffff; - RGM.DES.R = 0xffff; - - /* Make sure XOSC and PLLs are on in RUN0 state */ - ME.DRUN_MC.R = 0x001f0074; - ME.RUN_MC [0].R = 0x001f0074; - - /* - * Make sure all peripherals are active in DRUN and RUN0 state. - * - * FIXME: This might be optimized to reduce power consumtion. - */ - for (i = 0; i < 8; ++i) { - ME_RUN_PC_32B_tag run_pc = { .R = ME.RUN_PC [i].R }; - - run_pc.B.DRUN = 1; - run_pc.B.RUN0 = 1; - - ME.RUN_PC [i].R = run_pc.R; - } - - /* Switch to RUN0 state */ - ME.MCTL.R = 0x40000000 | mctl_key1; - ME.MCTL.R = 0x40000000 | mctl_key2; - - while (ME.GS.B.S_MTRANS) { - /* Wait for mode switch to be completed */ - } - #endif - #endif -} - -static BSP_START_TEXT_SECTION void mpc55xx_start_siu(void) -{ - size_t i = 0; - - for (i = 0; i < mpc55xx_start_config_siu_pcr_count [0]; ++i) { - const mpc55xx_siu_pcr_config *e = &mpc55xx_start_config_siu_pcr [i]; - int j = e->index; - int n = j + e->count; - uint8_t gpdo = e->output; - uint16_t pcr = e->pcr.R; - - while (j < n) { - SIU.GPDO [j].R = gpdo; - SIU.PCR [j].R = pcr; - ++j; - } - } -} - -static BSP_START_TEXT_SECTION void mpc55xx_start_ebi_chip_select(void) -{ - #ifdef MPC55XX_HAS_EBI - size_t i = 0; - - for (i = 0; i < mpc55xx_start_config_ebi_cs_count [0]; ++i) { - EBI.CS [i] = mpc55xx_start_config_ebi_cs [i]; - } - - for (i = 0; i < mpc55xx_start_config_ebi_cal_cs_count [0]; ++i) { - EBI.CAL_CS [i] = mpc55xx_start_config_ebi_cal_cs [i]; - } - #endif -} - -static BSP_START_TEXT_SECTION void mpc55xx_start_ebi(void) -{ - #ifdef MPC55XX_HAS_EBI - size_t i = 0; - - for (i = 0; i < mpc55xx_start_config_ebi_count [0]; ++i) { - SIU.ECCR.B.EBDF = mpc55xx_start_config_ebi [i].siu_eccr_ebdf; - EBI.MCR.R = mpc55xx_start_config_ebi [i].ebi_mcr.R; - } - #endif -} - -#ifdef MPC55XX_NEEDS_LOW_LEVEL_INIT -static BSP_START_TEXT_SECTION bool -mpc55xx_start_is_in_internal_ram(const void *addr) -{ - return (size_t) addr - (size_t) bsp_ram_start < (size_t) bsp_ram_size; -} -#endif - -static BSP_START_TEXT_SECTION void mpc55xx_start_clear_bss(void) -{ - #ifdef MPC55XX_NEEDS_LOW_LEVEL_INIT - if (!mpc55xx_start_is_in_internal_ram(bsp_section_sbss_begin)) { - bsp_start_zero( - bsp_section_sbss_begin, - (size_t) bsp_section_sbss_size - ); - } - - if (!mpc55xx_start_is_in_internal_ram(bsp_section_bss_begin)) { - bsp_start_zero( - bsp_section_bss_begin, - (size_t) bsp_section_bss_size - ); - } - #endif -} - -BSP_START_TEXT_SECTION void mpc55xx_start_early(void) -{ - mpc55xx_start_watchdog(); - mpc55xx_start_clock(); - mpc55xx_start_flash(); - #if defined(BSP_DATA_CACHE_ENABLED) || defined(BSP_INSTRUCTION_CACHE_ENABLED) - mpc55xx_start_cache(); - #endif - mpc55xx_start_internal_ram(); - mpc55xx_start_load_nocache_section(); - mpc55xx_start_mmu(); - mpc55xx_start_mode_change(); - mpc55xx_start_siu(); - mpc55xx_start_ebi_chip_select(); - mpc55xx_start_ebi(); - mpc55xx_start_clear_bss(); -} diff --git a/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/start-flash.S b/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/start-flash.S deleted file mode 100644 index 9c87d38a83..0000000000 --- a/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/start-flash.S +++ /dev/null @@ -1,139 +0,0 @@ -/** - * @file - * - * @ingroup mpc55xx_asm - * - * @brief Flash configuration. - */ - -/* - * Copyright (c) 2008-2015 embedded brains GmbH. All rights reserved. - * - * embedded brains GmbH - * Dornierstr. 4 - * 82178 Puchheim - * Germany - * <rtems@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 <libcpu/powerpc-utility.h> -#include <mpc55xx/reg-defs.h> - - .section ".bsp_start_text", "ax" - -#if MPC55XX_CHIP_FAMILY == 551 - -/* MPC5510 Microcontroller Family Data Sheet, Rev. 3, Table 16, Num 7 */ -.equ FLASH_CLOCK_0, 25000000 -.equ FLASH_CLOCK_1, 50000000 -.equ FLASH_CLOCK_2, 80000000 -.equ FLASH_CLOCK_3, FLASH_CLOCK_2 -.equ FLASH_SETTINGS_0, FLASH_BUICR_CPU_PREFTCH | FLASH_BUICR_APC_0 | FLASH_BUICR_RWSC_0 | FLASH_BUICR_WWSC_1 | FLASH_BUICR_DPFEN_1 | FLASH_BUICR_IPFEN_1 | FLASH_BUICR_PFLIM_2 | FLASH_BUICR_BFEN -.equ FLASH_SETTINGS_1, FLASH_BUICR_CPU_PREFTCH | FLASH_BUICR_APC_1 | FLASH_BUICR_RWSC_1 | FLASH_BUICR_WWSC_1 | FLASH_BUICR_DPFEN_1 | FLASH_BUICR_IPFEN_1 | FLASH_BUICR_PFLIM_2 | FLASH_BUICR_BFEN -.equ FLASH_SETTINGS_2, FLASH_BUICR_CPU_PREFTCH | FLASH_BUICR_APC_2 | FLASH_BUICR_RWSC_2 | FLASH_BUICR_WWSC_1 | FLASH_BUICR_DPFEN_1 | FLASH_BUICR_IPFEN_1 | FLASH_BUICR_PFLIM_2 | FLASH_BUICR_BFEN -.equ FLASH_SETTINGS_3, FLASH_SETTINGS_2 - -#else - -/* Optimized flash configurations (Table 13-15 [MPC5567 Microcontroller Reference Manual]) */ -.equ FLASH_CLOCK_0, 82000000 -.equ FLASH_CLOCK_1, 102000000 -.equ FLASH_CLOCK_2, 132000000 -.equ FLASH_CLOCK_3, 264000000 -.equ FLASH_SETTINGS_0, FLASH_BUICR_CPU_PREFTCH | FLASH_BUICR_APC_1 | FLASH_BUICR_RWSC_1 | FLASH_BUICR_WWSC_1 | FLASH_BUICR_DPFEN_3 | FLASH_BUICR_IPFEN_3 | FLASH_BUICR_PFLIM_6 | FLASH_BUICR_BFEN -.equ FLASH_SETTINGS_1, FLASH_BUICR_CPU_PREFTCH | FLASH_BUICR_APC_1 | FLASH_BUICR_RWSC_2 | FLASH_BUICR_WWSC_1 | FLASH_BUICR_DPFEN_3 | FLASH_BUICR_IPFEN_3 | FLASH_BUICR_PFLIM_6 | FLASH_BUICR_BFEN -.equ FLASH_SETTINGS_2, FLASH_BUICR_CPU_PREFTCH | FLASH_BUICR_APC_2 | FLASH_BUICR_RWSC_3 | FLASH_BUICR_WWSC_1 | FLASH_BUICR_DPFEN_3 | FLASH_BUICR_IPFEN_3 | FLASH_BUICR_PFLIM_6 | FLASH_BUICR_BFEN -.equ FLASH_SETTINGS_3, 0x01716B15 - -#endif - -/** - * @fn void mpc55xx_start_flash() - * @brief Optimized flash configuration. - * @warning Code will be copied and executed on the stack. - */ -GLOBAL_FUNCTION mpc55xx_start_flash -#if !defined(MPC55XX_NEEDS_LOW_LEVEL_INIT) \ - || MPC55XX_CHIP_FAMILY == 564 \ - || MPC55XX_CHIP_FAMILY == 566 - blr -#else - .equ stack_size, 20 - .equ lr_offset, 28 - - /* Reserve stack frame */ - stwu r1, -stack_size(r1) - mflr r0 - stw r0, lr_offset(r1) - - /* Flash settings dependent on system clock */ - bl mpc55xx_get_system_clock - LWI r4, FLASH_CLOCK_0 - cmpw r3, r4 - ble clock_0 - LWI r4, FLASH_CLOCK_1 - cmpw r3, r4 - ble clock_1 - LWI r4, FLASH_CLOCK_2 - cmpw r3, r4 - ble clock_2 - LWI r4, FLASH_CLOCK_3 - cmpw r3, r4 - ble clock_3 - - /* - * In case we don't have the right flash settings for the system clock - * value, then rely on the BAM settings. - */ - blr - -clock_0: - LWI r3, FLASH_SETTINGS_0 - b settings_done -clock_1: - LWI r3, FLASH_SETTINGS_1 - b settings_done -clock_2: - LWI r3, FLASH_SETTINGS_2 - b settings_done -clock_3: - LWI r3, FLASH_SETTINGS_3 - b settings_done -settings_done: - - /* Copy store code on the stack */ - LA r4, store_start - lwz r6, 0(r4) - lwz r7, 4(r4) - lwz r8, 8(r4) - stw r6, 8(r1) - stw r7, 12(r1) - stw r8, 16(r1) - - /* Execute store code */ - LA r4, FLASH_BIUCR - addi r5, r1, 8 - mtctr r5 - bctrl - - /* Return */ - lwz r0, lr_offset(r1) - addi r1, r1, stack_size - mtlr r0 - blr - -/* - * Store flash settings - */ - -store_start: - - stw r3, 0(r4) - isync - blr - -#endif diff --git a/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/start-prologue.c b/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/start-prologue.c deleted file mode 100644 index 872a96edfd..0000000000 --- a/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/start-prologue.c +++ /dev/null @@ -1,28 +0,0 @@ -/** - * @file - * - * @ingroup mpc55xx - * - * @brief Start prologue. - */ - -/* - * Copyright (c) 2013 embedded brains GmbH. All rights reserved. - * - * embedded brains GmbH - * Obere Lagerstr. 30 - * 82178 Puchheim - * Germany - * <rtems@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/mpc55xx-config.h> - -BSP_START_TEXT_SECTION void mpc55xx_start_prologue(void) -{ - /* Do nothing */ -} diff --git a/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/start-watchdog.c b/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/start-watchdog.c deleted file mode 100644 index 7cf36ef02f..0000000000 --- a/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/start-watchdog.c +++ /dev/null @@ -1,39 +0,0 @@ -/** - * @file - * - * @ingroup mpc55xx - * - * @brief Watchdog initialization code. - */ - -/* - * Copyright (c) 2011 embedded brains GmbH. All rights reserved. - * - * embedded brains GmbH - * Obere Lagerstr. 30 - * 82178 Puchheim - * Germany - * <rtems@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/start.h> -#include <bsp/mpc55xx-config.h> - -BSP_START_TEXT_SECTION void mpc55xx_start_watchdog(void) -{ - #ifdef MPC55XX_NEEDS_LOW_LEVEL_INIT - #ifdef MPC55XX_HAS_SWT - /* Write keys to clear soft lock bit */ - SWT.SR.R = 0x0000c520; - SWT.SR.R = 0x0000d928; - - /* Clear watchdog enable (WEN) */ - SWT.CR.R = 0x8000010A; - #endif - #endif -} |