summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/start-flash.S
diff options
context:
space:
mode:
Diffstat (limited to 'c/src/lib/libbsp/powerpc/mpc55xxevb/startup/start-flash.S')
-rw-r--r--c/src/lib/libbsp/powerpc/mpc55xxevb/startup/start-flash.S139
1 files changed, 0 insertions, 139 deletions
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