forked from Imagelibrary/rtems
@@ -47,7 +47,8 @@ dist_project_lib_DATA += startup/linkcmds \
|
|||||||
startup/linkcmds.qoriq_core_0 \
|
startup/linkcmds.qoriq_core_0 \
|
||||||
startup/linkcmds.qoriq_core_1 \
|
startup/linkcmds.qoriq_core_1 \
|
||||||
startup/linkcmds.qoriq_e500 \
|
startup/linkcmds.qoriq_e500 \
|
||||||
startup/linkcmds.qoriq_e6500_32
|
startup/linkcmds.qoriq_e6500_32 \
|
||||||
|
startup/linkcmds.qoriq_e6500_64
|
||||||
|
|
||||||
noinst_LIBRARIES += libbsp.a
|
noinst_LIBRARIES += libbsp.a
|
||||||
libbsp_a_SOURCES =
|
libbsp_a_SOURCES =
|
||||||
|
|||||||
@@ -10,5 +10,5 @@
|
|||||||
%{!qrtems: %(old_endfile)} %{qrtems: crtend.o%s rtems_crtn.o%s ecrtn.o%s}
|
%{!qrtems: %(old_endfile)} %{qrtems: crtend.o%s rtems_crtn.o%s ecrtn.o%s}
|
||||||
|
|
||||||
*link:
|
*link:
|
||||||
%{!qrtems: %(old_link)} %{qrtems: -dc -dp -u __vectors -N}
|
%{!qrtems: %(old_link)} %{qrtems: -dc -dp -u __vectors -N %(link_os)}
|
||||||
|
|
||||||
|
|||||||
@@ -116,7 +116,8 @@ RTEMS_BSPOPTS_SET([QORIQ_INITIAL_HID0],[qoriq_e6500*],[0x40000000])
|
|||||||
RTEMS_BSPOPTS_SET([QORIQ_INITIAL_HID0],[*],[])
|
RTEMS_BSPOPTS_SET([QORIQ_INITIAL_HID0],[*],[])
|
||||||
RTEMS_BSPOPTS_HELP([QORIQ_INITIAL_HID0],[initial HID0 value (EN_L2MMU_MHD is set by default on the T-series)])
|
RTEMS_BSPOPTS_HELP([QORIQ_INITIAL_HID0],[initial HID0 value (EN_L2MMU_MHD is set by default on the T-series)])
|
||||||
|
|
||||||
RTEMS_BSPOPTS_SET([QORIQ_INITIAL_MSR],[qoriq_e6500*],[0x02002200])
|
RTEMS_BSPOPTS_SET([QORIQ_INITIAL_MSR],[qoriq_e6500_64*],[0x82002200])
|
||||||
|
RTEMS_BSPOPTS_SET([QORIQ_INITIAL_MSR],[qoriq_e6500_32*],[0x02002200])
|
||||||
RTEMS_BSPOPTS_SET([QORIQ_INITIAL_MSR],[*],[0x02000200])
|
RTEMS_BSPOPTS_SET([QORIQ_INITIAL_MSR],[*],[0x02000200])
|
||||||
RTEMS_BSPOPTS_HELP([QORIQ_INITIAL_MSR],[initial MSR value])
|
RTEMS_BSPOPTS_HELP([QORIQ_INITIAL_MSR],[initial MSR value])
|
||||||
|
|
||||||
|
|||||||
@@ -141,3 +141,7 @@ $(PROJECT_LIB)/linkcmds.qoriq_e6500_32: startup/linkcmds.qoriq_e6500_32 $(PROJEC
|
|||||||
$(INSTALL_DATA) $< $(PROJECT_LIB)/linkcmds.qoriq_e6500_32
|
$(INSTALL_DATA) $< $(PROJECT_LIB)/linkcmds.qoriq_e6500_32
|
||||||
PREINSTALL_FILES += $(PROJECT_LIB)/linkcmds.qoriq_e6500_32
|
PREINSTALL_FILES += $(PROJECT_LIB)/linkcmds.qoriq_e6500_32
|
||||||
|
|
||||||
|
$(PROJECT_LIB)/linkcmds.qoriq_e6500_64: startup/linkcmds.qoriq_e6500_64 $(PROJECT_LIB)/$(dirstamp)
|
||||||
|
$(INSTALL_DATA) $< $(PROJECT_LIB)/linkcmds.qoriq_e6500_64
|
||||||
|
PREINSTALL_FILES += $(PROJECT_LIB)/linkcmds.qoriq_e6500_64
|
||||||
|
|
||||||
|
|||||||
@@ -112,7 +112,7 @@ static void wait_for_event(rtems_event_set in)
|
|||||||
|
|
||||||
static void intercom_handler(void *arg)
|
static void intercom_handler(void *arg)
|
||||||
{
|
{
|
||||||
rtems_id task = (rtems_id) arg;
|
rtems_id task = (rtems_id) (uintptr_t) arg;
|
||||||
send_event(task, INTERCOM_EVENT_IPI);
|
send_event(task, INTERCOM_EVENT_IPI);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -310,7 +310,7 @@ void qoriq_intercom_init(void)
|
|||||||
"INTERCOM",
|
"INTERCOM",
|
||||||
RTEMS_INTERRUPT_UNIQUE,
|
RTEMS_INTERRUPT_UNIQUE,
|
||||||
intercom_handler,
|
intercom_handler,
|
||||||
(void *) task
|
(void *) (uintptr_t) task
|
||||||
);
|
);
|
||||||
assert(sc == RTEMS_SUCCESSFUL);
|
assert(sc == RTEMS_SUCCESSFUL);
|
||||||
|
|
||||||
|
|||||||
@@ -7,7 +7,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2010, 2016 embedded brains GmbH. All rights reserved.
|
* Copyright (c) 2010, 2017 embedded brains GmbH. All rights reserved.
|
||||||
*
|
*
|
||||||
* embedded brains GmbH
|
* embedded brains GmbH
|
||||||
* Dornierstr. 4
|
* Dornierstr. 4
|
||||||
@@ -115,8 +115,10 @@ _start:
|
|||||||
LA r4, bsp_section_bss_size
|
LA r4, bsp_section_bss_size
|
||||||
bl bsp_start_zero
|
bl bsp_start_zero
|
||||||
|
|
||||||
|
#ifndef __powerpc64__
|
||||||
/* Set up EABI and SYSV environment */
|
/* Set up EABI and SYSV environment */
|
||||||
bl __eabi
|
bl __eabi
|
||||||
|
#endif
|
||||||
|
|
||||||
/* Clear command line */
|
/* Clear command line */
|
||||||
li r3, 0
|
li r3, 0
|
||||||
@@ -124,7 +126,7 @@ _start:
|
|||||||
bl boot_card
|
bl boot_card
|
||||||
|
|
||||||
.Lcopy:
|
.Lcopy:
|
||||||
cmpw r3, r4
|
PPC_REG_CMP r3, r4
|
||||||
beqlr
|
beqlr
|
||||||
b memcpy
|
b memcpy
|
||||||
|
|
||||||
@@ -134,6 +136,13 @@ _start:
|
|||||||
* the boot loader.
|
* the boot loader.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#ifdef __powerpc64__
|
||||||
|
mfmsr r0
|
||||||
|
oris r0, r0, MSR_CM >> 16
|
||||||
|
mtmsr r0
|
||||||
|
isync
|
||||||
|
#endif
|
||||||
|
|
||||||
/* Disable decrementer */
|
/* Disable decrementer */
|
||||||
mfspr r0, BOOKE_TCR
|
mfspr r0, BOOKE_TCR
|
||||||
LWI r4, BOOKE_TCR_DIE
|
LWI r4, BOOKE_TCR_DIE
|
||||||
@@ -159,11 +168,15 @@ _start:
|
|||||||
mtspr HID0, r0
|
mtspr HID0, r0
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef __powerpc64__
|
||||||
|
LA32 r2, .TOC.
|
||||||
|
#else
|
||||||
/* Invalidate TLS anchor */
|
/* Invalidate TLS anchor */
|
||||||
li r2, 0
|
li r2, 0
|
||||||
|
|
||||||
/* Set small-data anchor */
|
/* Set small-data anchor */
|
||||||
LA r13, _SDA_BASE_
|
LA r13, _SDA_BASE_
|
||||||
|
#endif
|
||||||
|
|
||||||
SET_SELF_CPU_CONTROL r4, r5
|
SET_SELF_CPU_CONTROL r4, r5
|
||||||
|
|
||||||
@@ -282,7 +295,7 @@ _start_thread:
|
|||||||
|
|
||||||
/* Initialize start stack */
|
/* Initialize start stack */
|
||||||
GET_SELF_CPU_CONTROL r3
|
GET_SELF_CPU_CONTROL r3
|
||||||
lwz r3, PER_CPU_INTERRUPT_STACK_HIGH(r3)
|
PPC_REG_LOAD r3, PER_CPU_INTERRUPT_STACK_HIGH(r3)
|
||||||
subi r1, r3, PPC_MINIMUM_STACK_FRAME_SIZE
|
subi r1, r3, PPC_MINIMUM_STACK_FRAME_SIZE
|
||||||
clrrwi r1, r1, PPC_STACK_ALIGN_POWER
|
clrrwi r1, r1, PPC_STACK_ALIGN_POWER
|
||||||
li r0, 0
|
li r0, 0
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/**
|
/**
|
||||||
* @file
|
* @file
|
||||||
*
|
*
|
||||||
* Memory map for T2080RDB.
|
* Memory map for e6500 core based QorIQ chips, e.g. T2080, T4240.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
MEMORY {
|
MEMORY {
|
||||||
|
|||||||
@@ -0,0 +1 @@
|
|||||||
|
INCLUDE linkcmds.qoriq_e6500_32
|
||||||
Reference in New Issue
Block a user