* startup/bspstart.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.
* configure.ac, startup/bspstart.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.
* startup/bspstart.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.
* include/bsp.h, startup/bspstart.c: Eliminate copies of the
Configuration Table. Use the RTEMS provided accessor macros to obtain
configuration fields.
* include/bsp.h, startup/bspstart.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.
* startup/bspstart.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.
* Makefile.am, startup/bspstart.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.
* clock/ckinit.c, startup/bspstart.c: Eliminate the
clicks_per_microsecond field in the MIPS CPU Table and define another
mechanism for drivers to obtain this information.
* console/console-io.c, startup/exception.S: Correct license URL and/or
fix mistake in copyright notice. Both of these mistakes appear to be
from code submitted after these changes were made previously.
* clock/ckinit.c, startup/exception.S: Correct license URL and/or fix
mistake in copyright notice. Both of these mistakes appear to be from
code submitted after these changes were made previously.
* clock/clockdrv.c, console/console-io.c, include/bsp.h,
network/network.c, start/start.S, startup/bspclean.c,
startup/bspstart.c, timer/timer.c: Correct license URL and/or fix
mistake in copyright notice. Both of these mistakes appear to be from
code submitted after these changes were made previously.