summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libbsp/powerpc/qoriq/startup/bspstart.c
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2016-07-27 11:39:56 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2016-07-28 12:05:28 +0200
commitf383f4bf6eae799794f5cc3eff76a592243d69c8 (patch)
treeb40c4663e83cb914a462c290312015191cc53241 /c/src/lib/libbsp/powerpc/qoriq/startup/bspstart.c
parentbsp/qoriq: Fix start stack setup (diff)
downloadrtems-f383f4bf6eae799794f5cc3eff76a592243d69c8.tar.bz2
bsp/qoriq: Remove legacy U-Boot support
Diffstat (limited to 'c/src/lib/libbsp/powerpc/qoriq/startup/bspstart.c')
-rw-r--r--c/src/lib/libbsp/powerpc/qoriq/startup/bspstart.c81
1 files changed, 32 insertions, 49 deletions
diff --git a/c/src/lib/libbsp/powerpc/qoriq/startup/bspstart.c b/c/src/lib/libbsp/powerpc/qoriq/startup/bspstart.c
index 4b02ff10ea..1b3c42886d 100644
--- a/c/src/lib/libbsp/powerpc/qoriq/startup/bspstart.c
+++ b/c/src/lib/libbsp/powerpc/qoriq/startup/bspstart.c
@@ -39,7 +39,6 @@
#include <bsp/linker-symbols.h>
#include <bsp/mmu.h>
#include <bsp/qoriq.h>
-#include <bsp/u-boot.h>
#include <bsp/vectors.h>
LINKER_SYMBOL(bsp_exc_vector_base);
@@ -81,6 +80,36 @@ void _BSP_Fatal_error(unsigned n)
}
}
+static void initialize_frequency_parameters(void)
+{
+ const void *fdt = bsp_fdt_get();
+ int node;
+ int len;
+ fdt32_t *val_fdt;
+
+ node = fdt_node_offset_by_prop_value(fdt, -1, "device_type", "cpu", 4);
+
+ val_fdt = (fdt32_t *) fdt_getprop(fdt, node, "bus-frequency", &len);
+ if (val_fdt == NULL || len != 4) {
+ bsp_fatal(QORIQ_FATAL_FDT_NO_BUS_FREQUENCY);
+ }
+ BSP_bus_frequency = fdt32_to_cpu(*val_fdt) / QORIQ_BUS_CLOCK_DIVIDER;
+
+ val_fdt = (fdt32_t *) fdt_getprop(fdt, node, "timebase-frequency", &len);
+ if (val_fdt == NULL || len != 4) {
+ bsp_fatal(QORIQ_FATAL_FDT_NO_BUS_FREQUENCY);
+ }
+ bsp_clicks_per_usec = fdt32_to_cpu(*val_fdt) / 1000000;
+
+ #ifdef __PPC_CPU_E6500__
+ val_fdt = (fdt32_t *) fdt_getprop(fdt, node, "clock-frequency", &len);
+ if (val_fdt == NULL || len != 4) {
+ bsp_fatal(QORIQ_FATAL_FDT_NO_CLOCK_FREQUENCY);
+ }
+ #endif
+ rtems_counter_initialize_converter(fdt32_to_cpu(*val_fdt));
+}
+
void bsp_start(void)
{
unsigned long i = 0;
@@ -92,48 +121,7 @@ void bsp_start(void)
get_ppc_cpu_type();
get_ppc_cpu_revision();
- /* Initialize some device driver parameters */
- #if defined(HAS_UBOOT)
- BSP_bus_frequency = bsp_uboot_board_info.bi_busfreq
- / QORIQ_BUS_CLOCK_DIVIDER;
- bsp_clicks_per_usec = BSP_bus_frequency / 8000000;
- rtems_counter_initialize_converter(
- #ifdef __PPC_CPU_E6500__
- bsp_uboot_board_info.bi_intfreq
- #else
- BSP_bus_frequency / 8
- #endif
- );
- #elif defined(U_BOOT_USE_FDT)
- {
- const void *fdt = bsp_fdt_get();
- int node;
- int len;
- fdt32_t *val_fdt;
-
- node = fdt_node_offset_by_prop_value(fdt, -1, "device_type", "cpu", 4);
-
- val_fdt = (fdt32_t *) fdt_getprop(fdt, node, "bus-frequency", &len);
- if (val_fdt == NULL || len != 4) {
- bsp_fatal(QORIQ_FATAL_FDT_NO_BUS_FREQUENCY);
- }
- BSP_bus_frequency = fdt32_to_cpu(*val_fdt) / QORIQ_BUS_CLOCK_DIVIDER;
-
- val_fdt = (fdt32_t *) fdt_getprop(fdt, node, "timebase-frequency", &len);
- if (val_fdt == NULL || len != 4) {
- bsp_fatal(QORIQ_FATAL_FDT_NO_BUS_FREQUENCY);
- }
- bsp_clicks_per_usec = fdt32_to_cpu(*val_fdt) / 1000000;
-
- #ifdef __PPC_CPU_E6500__
- val_fdt = (fdt32_t *) fdt_getprop(fdt, node, "clock-frequency", &len);
- if (val_fdt == NULL || len != 4) {
- bsp_fatal(QORIQ_FATAL_FDT_NO_CLOCK_FREQUENCY);
- }
- #endif
- rtems_counter_initialize_converter(fdt32_to_cpu(*val_fdt));
- }
- #endif
+ initialize_frequency_parameters();
/* Initialize some console parameters */
for (i = 0; i < console_device_count; ++i) {
@@ -149,12 +137,7 @@ void bsp_start(void)
ns16550_context *ctx = (ns16550_context *) dev->context;
ctx->clock = BSP_bus_frequency;
-
- #if defined(HAS_UBOOT) && !defined(U_BOOT_GENERIC_BOARD_INFO)
- ctx->initial_baud = bsp_uboot_board_info.bi_baudrate;
- #else
- ctx->initial_baud = 115200;
- #endif
+ ctx->initial_baud = 115200;
}
}