| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
This patch is a part of the BSP source reorganization.
Update #3285.
|
|
|
|
| |
Update #2408.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Make rtems_initialize_data_structures(),
rtems_initialize_before_drivers() and rtems_initialize_device_drivers()
static. Rename rtems_initialize_start_multitasking() to
rtems_initialize_executive() and call the registered system
initialization handlers in this function. Add system initialization API
available via #include <rtems/sysinit.h>. Update the documentation
accordingly.
This is no functional change, only the method to call the existing
initialization routines changes. Instead of direct function calls a
table of function pointers contained in the new RTEMS system
initialization linker set is used. This table looks like this (the
actual addresses depend on the target).
nm *.exe | grep _Linker | sort
0201a2d0 D _Linker_set__Sysinit_begin
0201a2d0 D _Linker_set__Sysinit_bsp_work_area_initialize
0201a2d4 D _Linker_set__Sysinit_bsp_start
0201a2d8 D _Linker_set__Sysinit_rtems_initialize_data_structures
0201a2dc D _Linker_set__Sysinit_bsp_libc_init
0201a2e0 D _Linker_set__Sysinit_rtems_initialize_before_drivers
0201a2e4 D _Linker_set__Sysinit_bsp_predriver_hook
0201a2e8 D _Linker_set__Sysinit_rtems_initialize_device_drivers
0201a2ec D _Linker_set__Sysinit_bsp_postdriver_hook
0201a2f0 D _Linker_set__Sysinit_end
Add test sptests/spsysinit01.
Update #2408.
|
|
|
|
|
|
| |
Use the bsp_predriver_hook() instead.
Update #2408.
|
|
|
|
|
|
|
|
| |
Call bsp_work_area_initialize() before bsp_start(). This allows
bsp_start() to use malloc() etc. which is beneficial for systems with a
plug-and-play hardware enumeration.
Update #2408.
|
|
|
|
| |
Close #2477.
|
|
|
|
|
|
|
|
| |
Add rtems_interrupt_local_disable|enable() as suggested by Pavel Pisa to
emphasize that interrupts are only disabled on the current processor.
Do not define the rtems_interrupt_disable|enable|flash() macros and
functions on SMP configurations since they don't ensure system wide
mutual exclusion.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Instead of SPRG0 (= special purpose register 272) use the new global
symbol _PPC_INTERRUPT_DISABLE_MASK to store the interrupt disable mask.
The benefit is that it is now possible to disable interrupts without
further run-time initialization in boot_card().
At least on Freescale e500 cores this leads also to a faster execution
since the mfmsr and mfspr instruction require four cycles to complete.
The instructions to load the mask value can execute while the mfmsr is
in progress.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
Do not return from rtems_initialize_start_multitasking() and call
rtems_fatal() instead with a fatal source of RTEMS_FATAL_SOURCE_EXIT and
a fatal code with the exit status.
Remove all bsp_cleanup() functions. The boot_card() is now a no return
function.
|
|
|
|
|
|
|
|
|
|
|
|
| |
The work areas (RTEMS work space and C program heap) will be initialized
now in a separate step and are no longer part of
rtems_initialize_data_structures(). Initialization is performed with
tables of Heap_Area entries. This allows usage of scattered memory
areas present on various small scale micro-controllers.
The sbrk() support API changes also. The bsp_sbrk_init() must now deal
with a minimum size for the first memory chunk to take the configured
work space size into account.
|
|
|
|
|
|
|
|
|
|
|
|
| |
Script does what is expected and tries to do it as
smartly as possible.
+ remove occurrences of two blank comment lines
next to each other after Id string line removed.
+ remove entire comment blocks which only exited to
contain CVS Ids
+ If the processing left a blank line at the top of
a file, it was removed.
|
| |
|
|
|
|
|
| |
PR 1924/cpukit
* bootcard.c: Update due to API changes.
|
|
|
|
|
| |
* bootcard.c: Revert patch and add comment clarifying code and need for
cast.
|
|
|
|
| |
* bootcard.c: Correct printk() format.
|
|
|
|
|
|
|
|
| |
PR 1824/cpukit
* bootcard.c, bspclean.c, include/bootcard.h: Return exit/shutdown
status back to boot_card(). boot_card() propagates this to
bsp_cleanup() and returns it to the assembly that started the
application.
|
|
|
|
|
|
| |
PR1797/bsps
* shared/bootcard.c: Fixed a typo (in code, not comment) which
I introduced with the last change.
|
|
|
|
|
|
| |
PR1797/bsps: Applied cleaned-up version of Kate's patch.
CONFIGURE_MALLOC_BSP_SUPPORTS_SBRK is now a 'bspopts.h'
setting and as such configurable.
|
|
|
|
| |
* bootcard: Update for heap API changes.
|
|
|
|
|
| |
* bootcard.c, bsplibc.c, clockdrv_shell.h, console-polled.c: Fix
formatting.
|
|
|
|
|
|
| |
* bootcard.c, bspgetworkarea.c, include/bootcard.h: Switch from ssize_t
to uintptr_t for bsp_get_work_area() since the work area is larger
than a single allocatable object.
|
|
|
|
|
| |
* bootcard.c, gdbstub/rtems-stub-glue.c: Add info to not enough memory
message.
|
|
|
|
|
|
| |
* bootcard.c, include/bootcard.h: Remove argc/argv/envp and
replace with a single BSP boot command line a BSP can optionally
support.
|
|
|
|
|
|
|
| |
* bootcard.c: Swap order of RTEMS Workspace and Malloc Heap. This
allows the potential for sbrk() to extend the heap area. This
actually is done on PowerPC BSPs with more than 32MB which use
dynamic loading.
|
|
|
|
|
|
| |
* bootcard.c: use aligned heap_start (instead of
original heap_start) when calculating default heap
size (to take into account loss due to alignment).
|
|
|
|
|
|
|
|
|
|
| |
* bootcard.c: Eliminate pointers to API configuration tables in the
main configuration table. Reference the main configuration table and
the API configuration tables directly using the confdefs.h version
rather than obtaining a pointer to it. This eliminated some
variables, a potential fatal error, some unnecessary default
configuration structures. Overall, about a 4.5% reduction in the code
size for minimum and hello on the SPARC.
|
|
|
|
|
|
|
| |
* bootcard.c, bspgetworkarea.c, bsppretaskinghook.c,
include/bootcard.h: Change size_t to ssize_t on bsp_get_work_area().
On 16-bit architectures, size_t can be 16-bits which would limit the
work area to 64K.
|
|
|
|
|
|
| |
* bootcard.c, include/bootcard.h: Make letting boot_card() handle work
area allocation mandatory. Rename
RTEMS_BSP_BOOTCARD_HANDLES_RAM_ALLOCATION to BSP_BOOTCARD_OPTIONS.
|
|
|
|
| |
* bootcard.c: Perform bsp_start() before bsp_get_work_area().
|
|
|
|
|
|
| |
* bootcard.c: Add support for optionally having a unified work area. In
other words, the RTEMS Workspace and C Program Heap are the same pool
of memory.
|
|
|
|
|
| |
* bootcard.c: Fix formatting.
* console-polled.c: Error if minor < 2 not just <= 2.
|
|
|
|
|
|
|
| |
* include/bootcard.h, bootcard.c, bsplibc.c: Changed parameter types of
bsp_libc_init() to match RTEMS_Malloc_Initialize().
* bsppost.c, bsppredriverhook.c: Include bootcard.h.
* src/irq-generic.c: Fixed warnings.
|
|
|
|
| |
bootcard.c: Check if the heap fits into the work area
|
|
|
|
| |
added support for an optional separate heap area.
|
|
|
|
|
| |
* bootcard.c: Must include bsp.h or bspopts.h or we cannot know if
boot_card() handles RAM allocation.
|
| |
|
|
|
|
|
| |
updated haleakala BSP
added MPC55xx BSP
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* bootcard.c: Add capability for bootcard.c BSP Initialization
Framework to ask the BSP where it has memory for the RTEMS Workspace
and C Program Heap. These collectively are referred to as work area.
If the BSP supports this, then it does not have to include code to
split the available memory between the two areas. This reduces the
amount of code in the BSP specific bspstart.c file. Additionally, the
shared framework can initialize the C Library, call
rtems_debug_enable(), and dirty the work area memory. Until most/all
BSPs support this new capability, if the BSP supports this, it should
call RTEMS_BSP_BOOTCARD_HANDLES_RAM_ALLOCATION from its configure.ac.
When the transition is complete, this autoconf macro can be removed.
* bsppretaskinghook.c: New file.
|
|
|
|
|
|
|
|
|
|
|
|
| |
* bootcard.c: Refactored and renamed initialization routines to
rtems_initialize_data_structures, rtems_initialize_before_drivers,
rtems_initialize_device_drivers, and
rtems_initialize_start_multitasking. This opened the sequence up so
that bootcard() could provide a more robust and flexible framework
which is easier to explain and understand. This also lays the
groundwork for sharing the division of available memory between the
RTEMS workspace and heap and the C library initialization across all
BSPs.
|
|
|
|
| |
* bootcard.c: Improve formatting and comments.
|
|
|
|
| |
* bootcard.c: Improve comments and clean up argc/argv order.
|
|
|
|
|
|
| |
* bootcard.c, bsplibc.c: Eliminate copies of the Configuration Table.
Use the RTEMS provided accessor macros to obtain configuration
fields.
|
|
|
|
|
|
| |
* bootcard.c: Move interrupt_stack_size field from CPU Table to
Configuration Table. Eliminate CPU Table from all ports. Delete
references to CPU Table in all forms.
|
|
|
|
|
|
|
|
|
| |
* bootcard.c: Moved most of the remaining CPU Table fields to the
Configuration Table. This included pretasking_hook, predriver_hook,
postdriver_hook, idle_task, do_zero_of_workspace,
extra_mpci_receive_server_stack, stack_allocate_hook, and
stack_free_hook. As a side-effect of this effort some multiprocessing
code was made conditional and some style clean up occurred.
|
|
|
|
| |
* bootcard.c: Add comment.
|