Commit Graph

2442 Commits

Author SHA1 Message Date
Joel Sherrill
a0b7a078db Patch from Eric Norum <eric@skatter.usask.ca>:
Here's a patch to get rid of the `#define RTEMS__mcpu32p__ 1' when
    gen68360.cfg is being used as a companion for gen68360_040.cfg.  The
    old version worked because of the order of the conditional tests in
    m68k.h (the check for __mc68040__ is before the test for
    RTEMS__mcpu32p__) , but I think it might have been a little confusing
    to others just getting started.
1998-10-01 18:38:53 +00:00
Joel Sherrill
02c14a0bfc Updated to reflect Thomas Doerfler (td@imd.m.isar.de) submitting the
helas403 BSP.
1998-10-01 13:13:33 +00:00
Joel Sherrill
aecfa2bf09 BSP submitted by Thomas Doerfler <td@imd.m.isar.de>:
Finally I am through: I have found the last bugs that made RTEMS-
    4.0-beta3 start on my ppc403 board from ROM. So now the '403
    support is up to date again.

    Roughly I have added the following features:
    - support for the on-chip interrupt controller (in a separate module)
    - interrupt support for the console device
    - termios support for the console device

    ==============================================
    Since the BSP behaivour changed in some details (console no
    longer is polling, other memory layout etc) I have created a new
    BSP "helas403" rather than changing the "papyrus" BSP. The old
    "polled" console driver still sticks around in "console.c.polled"

    To get the BSP up and running, I had to create the new BSP files
    (derived from papyrus). Besides that, the following source areas
    have been changed:

    - c/src/lib/libcpu/powerpc/ppc403: changes to console driver, small
    changes to clock driver, new "ictrl" interrupt controller driver

    - c/src/exec/score/cpu/powerpc/ppc.h: some small changes
    (added ppc403 characteristics like a exception vector prefix
    register, some special register definitions). I am quite sure, they
    are compatible with the existing sources, although I did not check

    - c/src/exec/score/cpu/powerpc/cpu.c: There is one severe
    limitation in the exception entries: Due to the current code
    arrangement, the "branch absolute" to the ISR handler may only
    jump to the first 128MByte or the last 128MByte of the 4GByte
    address range. When the ppc403 is running out of ROM, the ROM
    functions are located in the last 128MByte (0xFFF00000 and up).
    These addresses were not handled correctly (sign reduced) in
    "install_raw_handler". The change I added should work on existing
    ppc BSPs aswell...

    - c/src/lib/libc/termios.c: During my tests, I added one change you
    sent me, so this patch will already be incorporated in the current
    source tree.

    There are some smaller changes, see the attached diff file.

    =========================================
    Concerning the GNU toolchain:

    I tried several tool chains. Finally I almost succeeded with

    egcs-1.0.3a with patch  egcs-1.0.3-rtems-diff-19980527

    I had to add the following lines to the egcs files. Without them
    configure complaint that the cross compiler could not generate
    executable output.
    - additional lines needed in egcs distribution in file
      gcc/config/rs6000/rtems.h:

    +++ lines start
    #undef STARTFILE_DEFAULT_SPEC
    #define STARTFILE_DEFAULT_SPEC "ecrti.o%s"

    #undef  ENDFILE_DEFAULT_SPEC
    #define ENDFILE_DEFAULT_SPEC "ecrtn.o%s"
    ++++ lines end

    As far as I have seen in the Changelog of egcs, you have recently
    sent two patches affecting the powerpc support, but they were
    added in the wrong order.... :-(

    egcs-19980628 with patch egcs-19980628-rtems-diff-19980707 does
    not work!

    I used binutils 2.9.1 with patch binutils-2.9.1-rtems-diff-19980515
     (binutils 2.8.1 does not work, internal error in gas)
    and newlib-1.8.0 with patch newlib-1.8.0-rtems-diff-19980707

    Finally I had to poke a line in the "bit" script, since, on my LINUX
    machine, the GNU make is only available as "make", not as
    "gmake"...

    For all the tools and newlib I selected configuration "powerpc-
    rtems".

--------------------------------------------
IMD Ingenieurbuero fuer Microcomputertechnik
Thomas Doerfler           Herbststrasse 8
D-82178 Puchheim          Germany
email:    td@imd.m.isar.de
1998-09-30 21:55:53 +00:00
Joel Sherrill
be4284d0f2 BSP submitted by Thomas Doerfler <td@imd.m.isar.de>:
Finally I am through: I have found the last bugs that made RTEMS-
    4.0-beta3 start on my ppc403 board from ROM. So now the '403
    support is up to date again.

    Roughly I have added the following features:
        - support for the on-chip interrupt controller (in a separate module)
        - interrupt support for the console device
        - termios support for the console device

    ==============================================
    Since the BSP behaivour changed in some details (console no
    longer is polling, other memory layout etc) I have created a new
    BSP "helas403" rather than changing the "papyrus" BSP. The old
    "polled" console driver still sticks around in "console.c.polled"
    To get the BSP up and running, I had to create the new BSP files
    (derived from papyrus). Besides that, the following source areas
    have been changed:

    - c/src/lib/libcpu/powerpc/ppc403: changes to console driver, small
    changes to clock driver, new "ictrl" interrupt controller driver

    - c/src/exec/score/cpu/powerpc/ppc.h: some small changes
    (added ppc403 characteristics like a exception vector prefix
    register, some special register definitions). I am quite sure, they
    are compatible with the existing sources, although I did not check

    - c/src/exec/score/cpu/powerpc/cpu.c: There is one severe
    limitation in the exception entries: Due to the current code
    arrangement, the "branch absolute" to the ISR handler may only
    jump to the first 128MByte or the last 128MByte of the 4GByte
    address range. When the ppc403 is running out of ROM, the ROM
    functions are located in the last 128MByte (0xFFF00000 and up).
    These addresses were not handled correctly (sign reduced) in
    "install_raw_handler". The change I added should work on existing
    ppc BSPs aswell...

    - c/src/lib/libc/termios.c: During my tests, I added one change you
    sent me, so this patch will already be incorporated in the current
    source tree.

    There are some smaller changes, see the attached diff file.

    =========================================
    Concerning the GNU toolchain:

    I tried several tool chains. Finally I almost succeeded with

    egcs-1.0.3a with patch  egcs-1.0.3-rtems-diff-19980527

    I had to add the following lines to the egcs files. Without them
    configure complaint that the cross compiler could not generate
    executable output.
    - additional lines needed in egcs distribution in file
      gcc/config/rs6000/rtems.h:

    +++ lines start
    #undef STARTFILE_DEFAULT_SPEC
    #define STARTFILE_DEFAULT_SPEC "ecrti.o%s"

    #undef  ENDFILE_DEFAULT_SPEC
    #define ENDFILE_DEFAULT_SPEC "ecrtn.o%s"
    ++++ lines end

    As far as I have seen in the Changelog of egcs, you have recently
    sent two patches affecting the powerpc support, but they were
    added in the wrong order.... :-(

    egcs-19980628 with patch egcs-19980628-rtems-diff-19980707 does
    not work!

    I used binutils 2.9.1 with patch binutils-2.9.1-rtems-diff-19980515
     (binutils 2.8.1 does not work, internal error in gas)
    and newlib-1.8.0 with patch newlib-1.8.0-rtems-diff-19980707

    Finally I had to poke a line in the "bit" script, since, on my LINUX
    machine, the GNU make is only available as "make", not as
    "gmake"...

    For all the tools and newlib I selected configuration "powerpc-
    rtems".

--------------------------------------------
IMD Ingenieurbuero fuer Microcomputertechnik
Thomas Doerfler           Herbststrasse 8
D-82178 Puchheim          Germany
email:    td@imd.m.isar.de
1998-09-30 21:50:42 +00:00
Wade A Smith
05d499280c Corrected TYPO error in the file. 1998-09-30 21:18:46 +00:00
Wade A Smith
b8ea1c8eb5 Corrected TYPO errors in the file 1998-09-30 21:15:23 +00:00
Joel Sherrill
2c3840b563 Added new autoconf test for i386 code16/code32 support. The guts of the
test were suggested by Ian Taylor <ian@airs.com> and Joel did the
hard part of putting it in aclocal and editting all the offending
Makefiles and source code which could use this feature.
1998-09-30 20:58:39 +00:00
Wade A Smith
2405b76726 Corrected TYPOs in the file 1998-09-30 20:52:43 +00:00
Joel Sherrill
f65b0903f5 New file from Ralf. 1998-09-30 20:51:54 +00:00
Wade A Smith
8dd54b6363 Updated the STATUS CODE section for the routines in this file. 1998-09-30 20:21:45 +00:00
Joel Sherrill
b931d05af0 Added Id's. 1998-09-30 19:51:39 +00:00
Joel Sherrill
5620149cd6 New configure test from Ian Lance Taylor <ian@airs.com>:
If the target is an i386, this test checks whether or not the binutils
  is new enough to have good support for code16.
1998-09-30 19:51:31 +00:00
Wade A Smith
1dedfde98f Updated the STATUS CODE section of the routines in this file. 1998-09-30 19:39:56 +00:00
Wade A Smith
8ed58e6547 Made formatting changes to the file 1998-09-30 18:19:40 +00:00
Joel Sherrill
4ca5bd8b93 Changed based on patch from pc386 linkcmds from Ian Lance Taylor
<ian@airs.com>:

    The pc386 linker scripts omits .gnu.linkonce.r* sections.  It's not a
    big deal, but they should be treated like .rodata sections.  ELF
    versions of g++ generate them for static constants defined in template
    classes, such as string::npos.
1998-09-30 17:27:57 +00:00
Joel Sherrill
d1d4766494 Patch from Ian Lance Taylor <ian@airs.com>:
The pc386 linker scripts omits .gnu.linkonce.r* sections.  It's not a
    big deal, but they should be treated like .rodata sections.  ELF
    versions of g++ generate them for static constants defined in template
    classes, such as string::npos.
1998-09-30 17:17:23 +00:00
Wade A Smith
c11f51269b Updated the DESCRIPTION section of the times routine. 1998-09-30 15:45:08 +00:00
Wade A Smith
a65c28e785 Documented the fsync and fdatasync routines in this file. 1998-09-30 15:42:46 +00:00
Wade A Smith
9dd238772f Updated the STATUS CODE section for the truncate routine. 1998-09-30 15:40:47 +00:00
Joel Sherrill
17408b901b Patch from Eric Norum <eric@skatter.USask.Ca>:
I found that my 68040/68360 test programs would not run even after
    I fixed the `wrong BSP' problem.

    It seems that there's a bug in the interrupt handling code for
    processors with hardware interrupt stacks (e.g. 68040).  The wrong
    status register was getting pushed on the stack for the `return
    from exception' to call _ISR__Dispatch.   This ended up making
    the context switch code run on the interrupt stack, so interrupt-driven
    context switches would always fail.

    I guess that no one has tried running any of the RTEMS-4.0 snapshots
    on a 68040 machine!

    Anyhow, here are the patches for
        1) gen68360.cfg   ---   to fix the `wrong-BSP' problem.
        2) m68k/cpu_asm.s ---   to fix the hardware interrupt stack problem.

    With these patches in place, the network demo programs run on my
    68040/68360 system.  The paranoia program runs with no failures,
    defects nor flaws.
1998-09-30 13:02:30 +00:00
Wade A Smith
982ed3f825 Made cosmetic changes and documented routines in this file 1998-09-29 21:53:08 +00:00
Wade A Smith
6e62b72e39 Made cosmetic changes and documented routines in file. 1998-09-29 21:52:24 +00:00
Wade A Smith
80189ac259 Made cosmetic changes, and document routines in the file. 1998-09-29 21:51:52 +00:00
Wade A Smith
f1ccfde628 Made cosmetic changes to the file and documented the time, times, and
getimeofday routines.
1998-09-29 21:51:08 +00:00
Joel Sherrill
21bfd93aaf Patch from Ralf Corsepius <corsepiu@faw.uni-ulm.de>:
Please find enclosed a patch which enables me to build the bare-bsp for
    sh-rtems.

    Changes:
        1. Add preinstall to libbsp/bare/include/Makefile.in
        2. Removed FORCEIT, add preinstall to
        libbsp/sh/gensh1/include/Makefile.in
        3. Disabled support of set_vector from sh code (shared/setvec.c is still
        present but isn't used anymore), set_vector replaced with standard rtems
        functions.

    Problems still present:
        1. Support of spin-delays in bare bsp
        2. Proper support of cpu frequency

    To configure I used:
        <srcdir>/configure \
        --target=sh-rtems \
        --prefix=<instdir>/sh-bare \
        --enable-bare-cpu-model=sh7032 \
        --enable-bare-cpu-cflags='-Wall -m1 -DMHZ=20
        -DCPU_CONSOLE_DEVNAME="\"/dev/null\""'
        --enable-rtemsbsp=bare \
        --disable-networking \
        --disable-cxx \
        --disable-posix \
        --disable-tests

    IMO, if there are no objections to this patch, a similar approach should
    be applied to all CPUs/BSPs (esp. hppa1.1, mips64orion, ppc403, because
    they apply set_vector inside of libcpu).
1998-09-29 12:40:33 +00:00
Joel Sherrill
766ed7c0f1 Patch from Eric Norum <eric@skatter.usask.ca>:
Remember the test to see if a socket could be read and written at
    the same time by two different tasks?  I discovered that if both
    tasks attempt to close the socket a panic can occur from inside the
    BSD code.

    Closing the same socket twice from two different threads is
    certainly an error, but a panic is not the greatest error reporting
    method :-)

    The following small change to the socket close routine should reduce
    the chances of the panic.
1998-09-29 12:15:08 +00:00
Joel Sherrill
d7fcc1d40a Added sentence to indicate sections were deliberately empty.
Added NONE to Notes sections and "-" to make this easier to fill out later.
1998-09-29 00:05:40 +00:00
Joel Sherrill
241e4c7c0a Added sentence to indicate sections were deliberately empty. 1998-09-29 00:04:53 +00:00
Joel Sherrill
2341410c7a Fleshed out considerably. This is almost a passable manual now. 1998-09-29 00:02:53 +00:00
Joel Sherrill
68e8f631a9 Updated to reference the standards. 1998-09-28 22:54:48 +00:00
Wade A Smith
0f58ab42b6 Documented the mount and umount routines. 1998-09-28 22:09:12 +00:00
Wade A Smith
487c5d58d7 Documented the ftruncate and opendir routines. Removed reference to the
readdir_r routine.
1998-09-28 22:08:41 +00:00
Joel Sherrill
cb646cb936 New files. 1998-09-27 16:37:16 +00:00
Wade A Smith
e21f7d8d48 Documented the following routines: dup, dup2, close, read, write, and fcntl.f 1998-09-27 16:00:18 +00:00
Wade A Smith
389c3e904f Documented the following routines in this file: rewinddir, pathconf,
fpathconf, fchmod, fstat, mkfifo, and telldir
1998-09-26 19:33:58 +00:00
Wade A Smith
64183e20f0 Documented the creat, scandir, and access routines. 1998-09-25 20:11:51 +00:00
Wade A Smith
9a0b0089c3 Docmumented the access routine in for this file. 1998-09-25 16:20:52 +00:00
Joel Sherrill
165988d735 Fixed typos so this would build. 1998-09-25 13:29:19 +00:00
Joel Sherrill
b965227fa1 Now compiles. 1998-09-25 13:28:28 +00:00
Joel Sherrill
1ee9a1a715 Added information on every service in this chapter. Most of them are
ENOSYS stubs at this time.
1998-09-25 13:24:00 +00:00
Joel Sherrill
97149ba590 Added ENOSYS stubs for a number of process routines. 1998-09-25 13:17:32 +00:00
Joel Sherrill
1d2366e5ea Stuff added by Kerwin. 1998-09-25 12:50:36 +00:00
Joel Sherrill
7a86dc4404 Improved missing directory message. 1998-09-24 20:30:09 +00:00
Joel Sherrill
85420c8e32 Removed blank line. 1998-09-24 20:29:52 +00:00
Joel Sherrill
da38d8a3df Removed superfluous initialization of PC video. 1998-09-24 15:43:38 +00:00
Joel Sherrill
32f3e34d4d Patch from Erik Ivanenko <erik.ivanenko@utoronto.ca>:
Please find attached a start.s that includes a cli prior to the hlt
    instruction.  This ensures that external interrupts cannot restart
    the system after returning to the startup code.  ( According to the hlt
    docs, they will! )

    Also find a new timer.c.   ( I forgot to update the countdowm value
    in the timer when I changed the PSCLK frequency in start.s) .  This
    improves timer accuracy.

    The raw_idt_notify messages are no longer infinite, I tested sp11 and
    sp05, both which were bad, and I have seen the message print once in
    one test.  I think it's ok if it prints out once.  In fact, I don't
    think you can effectively stop it!
1998-09-24 13:55:18 +00:00
Joel Sherrill
287e958464 New version from Erik Ivanenko <erik.ivanenko@utoronto.ca>. 1998-09-24 13:46:27 +00:00
Joel Sherrill
1fd26a529c Patch from Ralf Corsepius <corsepiu@faw.uni-ulm.de>. 1998-09-23 16:46:52 +00:00
Joel Sherrill
ecc3fe3181 IDLE task stack size now specified as a field in the CPU Table for all
ports.
1998-09-23 16:41:00 +00:00
Joel Sherrill
3b93a2dee1 Modifed to zero out the C heap if the CPU Table indicates that the
RTEMS workspace is to be zeroed out.
1998-09-23 16:34:23 +00:00