Changes relative to the previous patch set:
- Moved GPIO pin interrupts to rtems chains, instead of a local linked list;
- Restructured the pin tracking structure, separating the interrupt information for each pin meaning that a pin without any interrupt enabled only requires 8 bytes, while keeping interrupt information (handling information, handler chain control, ...) requires 24 additional bytes (total of 32 bytes per pin with interrupts enabled);
- Added support for 'parallel' pin function assignment, allowing the function assignment to be set for multiple pins in a single GPIO hardware call. If a BSP does not support this feature it becomes a sequence of individual calls per pin. Also added support for GPIO pin groupings, allowing to write and read byte data to a series of pins which behave as a single entity;
- Added bank tracking structure to maintain the bank lock and bank level interrupt information (threaded/normal handling, interrupt counter);
- Changed GPIO settings to BSP defined constants, reducing dynamic memory allocation;
- Switched interrupt tasks for a rtems interrupt server, with the possibility of using normal interrupts (user handlers being called within ISR context).
The dummy.c was a de-facto default configuration. Rename it to
default-configuration.c. Use unlimited objects and the stack checker.
This makes it easier for new RTEMS users which will likely use this file
if they just work with the usual main() function as the application
entry point. Provide proper arguments for main() using the BSP command
line. Add spare user extensions and drivers.
Do not initialize the network by default. Delete bspinit.c.
Add a simple Termios console driver using a table for statically
registered devices used in console_initialize() and dynamic installation
via console_device_install().
Merge RTEMS_FATAL_SOURCE_BSP_GENERIC and RTEMS_FATAL_SOURCE_BSP_SPECIFIC
into new fatal source RTEMS_FATAL_SOURCE_BSP. This makes it easier to
figure out the code position given a fatal source and code.
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.
* Makefile.am:
moved VME.h from libbsp/powerpc/shared/vme to
libbsp/shared/vmeUniverse; eventually, this (and other)
VME API headers should migrate to cpukit.
* shared/vmeUniverse/vmeTsi148.c, shared/vmeUniverse/vmeTsi148.h,
shared/vmeUniverse/vme_am_defs.h: New files.
* Makefile.am, shared/vmeUniverse/README.universe,
shared/vmeUniverse/vmeUniverse.c, shared/vmeUniverse/vmeUniverse.h:
Several VME related upgrades and fixes, hopefully addressing PR#835:
vmeUniverse driver now supports shared interrupts. vmeUniverse now
supports up to four wires between universe and PIC. A new irq mgr
installation routine has been added allowing to use the new features.
(old version is still present for bwd compatibility). Calls have been
added to change interrupt routing (e.g., if wires have different
priorities at the PIC this feature can be used to configure
priorites). Routine for testing VME interrupts has been added (useful
during BSP development). A new header defining standard VME address
modes has been added so that the VME API doesn't have to #include a
particular bridge driver header. For all driver entry points, a 'XX'
variant has been added which allows to pass the chip's base address
[in case a second universe is sitting on a VME card :-)]. Driver now
uses interrupt line as read from PCI config. space (without offset)
BSP needs to use PCI fixup if necessary. Added a driver for the
tundra tsi148 VME bridge.
* Makefile.am: Use mkdir_p.
Remove dirs from PRE/TMPINSTALL_FILES.
* bsp.am: Replace bsplibdir by project_libdir.
Use mkdir_p instead of mkinstalldirs.
Remove dirs from PRE/TMPINSTALL_FILES.
* Makefile.am: Use SUBDIRS = instead of SUBDIRS += to make
automake-1.5 happy.
* include/rtems/score/Makefile.am: Use CLEANFILES = to make
automake-1.5 happy.
* bsp.am: Use PREINSTALL_FILES = to make automake-1.5 happy.
that addresses aspects of the targopts.h multilib related
issues.
Changes:
* Move targopts.h to libbsp/include, because the current targopts.h
actually is a per-BSP-header and therefore can not stay below exec/.
* Introduce an autoheader generated header file
(exec/score/include/rtems/score/cpuopts.h), which shall take per-cpu
configuration options only.
* Move all autoconf-detectable/configure specified per-cpu
option-defines from targopts.h to cpuopts.h.
* Add Makefiles to the libbsp/shared directory hierarchy.
Notes:
* The new per-bsp targopts.h in libbsp includes the per-cpu
cpuopts.h. This way, the new targopts.h is kept backward compatible
to the old targopts.h and existing BSPs which (carelessly) include
targopts.h (i386, ppc) should be kept working when using the
multilib-disabled configuration scheme.
* cpuopts.h is not yet complete, because the per-BSP make-targopts
rules from custom/<BSP>.cfg files can not be applied to files below
exec/ when building multilibs.
* All files below exec/ should not include targopts.h anymore, but
should include cpuopts.h instead. However, eliminating inclusion of
targopts.h currently triggers further structural / header file inclusion
related issues, because several ports apply BSP or CPU_MODEL specific
defines from targopts.h below exec/
that contains:
* The fix for the gen68360/network/Makefile.am
* automatically set permissions to 755 to scripts/buildall and
scripts-ada/buildall (I remembered a trick to achieve this :).
* automake support for libbsp/* and libcpu/* (Attn: This part will
finally break old-style configuration for all non-public cpus)
NOTES:
* This patch has only been tested for a random selection of BSPs (I
haven't rebuilt all toolchains yet).
* This patch is against rtem-cvs as of this morning (MET).
To apply:
patch -p1 <rtems-rc-20000118-5.diff
cvs rm -f ./c/src/lib/libbsp/Makefile.in
cvs rm -f ./c/src/lib/libbsp/shmdr/Makefile.in
cvs rm -f ./c/src/lib/libcpu/Makefile.in
cvs add ./c/src/lib/libbsp/Makefile.am
cvs add ./c/src/lib/libbsp/shmdr/Makefile.am
cvs add ./c/src/lib/libcpu/Makefile.am
./bootstrap