* include/wd80x3.h: Added file header and logic to prevent multiple
inclusions of this file.
* wd8003/wd8003.c: Corrected attach to include "int attach" parameter.
* ne2000/ne2000.c: Fix some errors in the driver.
1. There was no sufficient check of data in ethernet header.
The code in ne_rx_daemon() was:
inport_word (dport, len);
...
len -= 4;
...
if (len > 0)
ne_read_data (sc, startaddr, len, p);
Unfortunately, sometimes my NIC gave me too big len value,
the result was memory override. To fix this, I added ethernet
header data checking.
2. The way overrides were serviced was not good. It was complex
but sometimes did not provide reliable continuing of NIC working.
I had the situation of an endless loop in ne_check_status()
after override processing.
3. There was conceptual error of porting. The old method of
overrides curing was ported from the OS-s, where override-processing
did start immediately. But RTEMS-version uses events, and cleaning
of the overrides can start later.
I selected the way of ne2000 programming that is used
in freebsd kernel (v4.0).
Because of both problems, incorrect data in header of raw packet
and receiver override, it went through ne_reset() and fully
reset the ne2000.
So, in summary
- added detecting of the incorrect data in ethernet header;
- replaced handling of receiver overrides with new scheme,
via resetting of NIC, this method is used also in case of
invalid header detecting.
* lib/tftpDriver.c: add comments to handlers struct function pointers.
* rtems/rtems_glue.c: move pointer arithmetic to be _after_
pointer has been checked against NULL.
* Added full support for MPC505.
* mpc505/ictrl: New directory.
* configure.in, mpc505/Makefile.am: Modified to reflect ictrl addition.
* mpc505/ictrl/.cvsignore, mpc505/ictrl/Makefile.am,
mpc505/ictrl/ictrl.c, mpc505/ictrl/ictrl.h: New files.
* mpc505/timer/timer.c: Use <rtems.h>, not "rtems.h".
* mpc505/vectors/Makefile.am: alignment exception handler now included.
* mpc505/vectors/vectors.S: Now use constants for exception numbers.
* old_exception_processing/ppc_offs.h: New file.
* old_exception_processing/Makefile.am: Account for ppc_offs.h.
* old_exception_processing/cpu.h: Make Nest and Disable levels volatile.
* old_exception_processing/cpu_asm.S: Offsets moved to ppc_offs.h.
* Added full support for MPC505.
* mpc505/ictrl: New directory.
* configure.in, mpc505/Makefile.am: Modified to reflect ictrl addition.
* mpc505/ictrl/.cvsignore, mpc505/ictrl/Makefile.am,
mpc505/ictrl/ictrl.c, mpc505/ictrl/ictrl.h: New files.
* mpc505/timer/timer.c: Use <rtems.h>, not "rtems.h".
* mpc505/vectors/Makefile.am: alignment exception handler now included.
* mpc505/vectors/vectors.S: Now use constants for exception numbers.
* old_exception_processing/ppc_offs.h: New file.
* old_exception_processing/Makefile.am: Account for ppc_offs.h.
* old_exception_processing/cpu.h: Make Nest and Disable levels volatile.
* old_exception_processing/cpu_asm.S: Offsets moved to ppc_offs.h.
* comm/i386-stub-glue.c, comm/tty_drv.c, comm/uart.c, comm/uart.h:
Add the ability to set parity, number of data bits and
number of stop bits to the existing i386 serial drivers.
* console/console.c, console/serial_mouse.c, include/bsp.h:
Add the ability to set parity, number of data bits and
number of stop bits to the existing i386 serial drivers.
* console/console.c: Added BSP dependent routine
mbx8xx_console_use_maximum_buffer_size() required by mbx8xx
console-generic code. This avoids libcpu use of bsp.h.
* mpc8xx/console-generic/console-generic.c: Removed include of
<bsp.h> by adding BSP dependent routine
mbx8xx_console_use_maximum_buffer_size() which can be hard coded
or check non-volatile memory for configuration.
* mpc6xx/clock/c_clock.c, mpc6xx/clock/c_clock.h: Removed use of
bsp.h and replaced it with use of proper interfaces or explicit
externs of required functions and data.
* mpc6xx/timer/timer.c: Ditto.
* libc/Makefile.am: Added mallocfreespace.c.
* libc/mallocfreespace.c: New file based on work by Nick Simon
<Nick.SIMON@syntegra.bt.co.uk> which he included in malloc.c.
* libc/libcsupport.h: Added prototype for malloc_free_space().
* src/regiongetinfo.c, include/rtems/rtems/region.h,
include/rtems/rtems/types.h, src/Makefile.am: Added
region_get_information() and information control block.
* src/regiongetinfo.c: New file.
* src/heapgetinfo.c, include/rtems/score/heap.h, src/Makefile.am:
Added _Heap_Get_information() and information control block.
* src/heapgetinfo.c: New file.
* libc/fcntl.c: Do not require every filesystem to have an fcntl()
handler. Most fcntl() operations can be performed with no
filesystem support.
* ChangeLog: Corrected comment.
* libc/fcntl.c: Do not require every filesystem to have an fcntl()
handler. Most fcntl() operations can be performed with no
filesystem support.
* ChangeLog: Corrected comment.
* cpu_asm.S, rtems/score/cpu.h: Modified to better support
multilibing. These changes result in the code being able to
compile with the default gcc settings. It is not functional
in this configuration but does compile.
* include/confdefs.h: Modified code that accounts for initialization
task/threads with greater than minimum stack sizes so it would
compile even if optional APIs are disabled.
* start/start.c: Modified to support generation of ram_init.
* start/ram_init.ld, BSP/start/ram_init.sed: New files.
These changes enable RTEMS to automatically generate
the ram_init file used by gdb with the BDM patches. The 332 has
on-board chip select lines (for RAM and FLASH) that must be
configured before use of these peripherals. These patches parse
data from start.c where the chip select lines are configured in
the runtime executable and automatically generates the gdb
initialization file using the same settings. A great time saver.
A similar file, ram_init_FW (flash writable), is also generated
that the flash programming tool uses.
* start/Makefile.am: Modified to support above.
* CPU/sim.h: Modified to support above.
* startup/except_vect_332_ROM.S: Moved to start so it would not
be included in libbsp.a. Moving it to start ensures it is
available as a single object file.
* start/except_vect_332_ROM.S: Moved from startup.
* startup/linkcmds, startup/linkcmds_ROM: Fixes to the memory map
shown in the comments.