* 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.
* configure.ac, irq/irq.c, startup/bspclean.c, startup/bspstart.c: Add
ALLOW_IRQ_NESTING option. The MPC5200 has a settle time after
acknowledging the IRQs and currently the BSP does not account for
that. After acknowledging an interrupt, it currently gets a second
spurious IRQ a significant percentage of the time. Rename to
BENCHMARK_IRQ_PROCESSING and get it working again. Under one test
load, not nesting interrupts resulted in a 50% reduction in the
number of IRQs and an ~30% reduction in time spent in IRQs.
* bsp_specs, clock/clock.c, include/bsp.h, irq/irq.c,
startup/bspclean.c, startup/bspstart.c: Eliminate copies of the
Configuration Table. Use the RTEMS provided accessor macros to obtain
configuration fields.
* 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: 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/clock.c, startup/bspstart.c: Eliminate PowerPC specific
elements from the CPU Table. They have been replaced with variables
named bsp_XXX as needed.
Add Embedded Planets EP5200 which is the same as the Freescale
5200Lite (a.k.a. IceCube) evaluation board.
* Makefile.am: Add linkcmds.ep5200.
Add -DMPC5200_BAPI_LIBC_HEADERS to remove some warnings in bestcomm.
* preinstall.am: Add linkcmds.ep5200.
* clock/clock.c: Correct math for prescaler/counter when bus speed
is high enough to require multiple passes of loop.
* console/console.c: Use same math for initial baud rate as when it
is changed via ioctl. When HAS_UBOOT is defined, initialize console
to the same baud as it was with U-Boot.
* include/bsp.h: Add EP5200 and console boot baud support.
* include/mpc5200.h: Spacing.
* startup/bspstart.c: If HAS_UBOOT and SHOW_MORE_INIT_SETTINGS are
both defined, dump the U-Boot BD info structure.
* vectors/vectors.S: ep5200 cannot use vectors segment. When loading
it, U-Boot freezes. Besides, U-Boot can automatically start the BSP
so we do not have to run from board reset.
* startup/linkcmds.ep5200: New file.
* clock/clock.c, console/console.c, ide/pcmcia_ide.c, irq/irq.c,
irq/irq.h, irq/irq_asm.S, irq/irq_init.c, nvram/nvram.c,
nvram/nvram.h, slicetimer/slicetimer.c, startup/bspstart.c,
vectors/vectors.h, vectors/vectors_init.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.