Commit Graph

678 Commits

Author SHA1 Message Date
Joel Sherrill
109b17f4ad Patch from Eric Norum <eric@skatter.usask.ca> to fix a cryptic error
message after comments from Eric Valette <valette@crf.canon.fr>.
1998-09-10 12:23:08 +00:00
Joel Sherrill
4cf89a8ca7 Fixed spacing. More comments from Eric Norum need to be addressed. 1998-08-31 23:09:17 +00:00
Joel Sherrill
d9d75fce47 Patch from Emmanuel Raguet <raguet@crf.canon.fr>:
I have reworked the ethernet driver for the BSP pc386 and
  here is the patch to apply.
1998-08-31 23:06:50 +00:00
Joel Sherrill
b285860989 Patch from Eric Valette <valette@crf.canon.fr>:
Eric> NB : there is still a bug on PC386 serial line : exit does not
    Eric> flush the remaining output queue. As this is not a bug in the
    Eric> driver itself but somewhere in PC386 initialization/termios
    Eric> relationship it will be part of another patch.

    Eric> NB2 : As Emmanuel excerced the exception hanlder code, while
    Eric> porting the SMC driver to the new BSD stack, we found a bug
    Eric> in the exception handler : it shall not delete the current
    Eric> thread in case we are running at interrupt level. This will
    Eric> be part of another patch...

    So here is the patch. This patch fixes the two problems mentionned above

    + it use vpath mechanism intead of copying the irq related files in
      the right directory.  This avoid to compile them each time and is
      more homogenous with other Makefiles.
1998-08-31 23:03:45 +00:00
Joel Sherrill
85734b3c8f Patch from Eric Norum <eric@skatter.usask.ca>:
I think I figured out why rtems_panic was locking up instead of
    shutting down the executive and returning to the code that called
    boot_card().

    Later on there is code to print some messages on the standard error
    stream, a recursive call back to rtems_verror (through rtems_error)
    and finally a call to _exit().

    I think that the _Thread_Disable_dispatch() is preventing the final
    context switch back to the boot_card() code.  Does this sound right
    to you?
1998-08-31 22:53:42 +00:00
Joel Sherrill
755923238d changed version to 980824 1998-08-24 17:32:58 +00:00
Joel Sherrill
ff0b0082b1 Added __RTEMS_INSIDE__ macro to insure that ".inl" files are ALWAYS included
when building the executive source.
1998-08-24 14:50:00 +00:00
Joel Sherrill
4baa0f58cc changed version to 980821 1998-08-21 18:19:29 +00:00
Joel Sherrill
4de817dfd2 Added i386 specific version of in_cksum.c and restructured the main
file to switch out to CPU specific implementations.
1998-08-21 18:14:27 +00:00
Joel Sherrill
aa2171bd13 Modified version number to recut snapshot. 1998-08-21 17:42:25 +00:00
Joel Sherrill
617a1a2db1 Another missing piece. Thanks Eric. 1998-08-21 17:37:01 +00:00
Joel Sherrill
025eb96e78 changed version to 980821 1998-08-21 17:09:04 +00:00
Joel Sherrill
7a035ebcc0 Added system task attribute to allow one to create a task with "0" priority
via the user api.
1998-08-21 16:54:17 +00:00
Joel Sherrill
eb562f2c86 Patch from Eric Valette <valette@crf.canon.fr>:
Here is a patch that enables to catch exception
    and get message before crashing RTEMS :)

    It should be generic to any Intel port although enabled
    only for pc386 BSP...

    [Joel] I fixed the bug I introduced in irq_asm.s...
1998-08-21 16:39:52 +00:00
Joel Sherrill
2938140589 Spacing changes 1998-08-21 16:16:00 +00:00
Joel Sherrill
b3fd16416c Fix from Eric Norum <eric@skatter.usask.ca>:
"Thomas Doerfler" <td@imd.m.isar.de> wrote:
>
> While implementing/testing the console/termios support for
> PPC403 in RTEMS-4.0.0-beta3, I am stuck at a certain location in
> termios.c:
>
> During "rtems_termios_initialize", the main control data structure
> "*tty" is allocated using malloc(). (Note, that malloc does not
> clear the allocated memory and my BSP does not clear memory during
> startup). Furtheron, a lot of fields of that structure are
> initialized, but the field "rawOutBufState" is not, and therefore
> keeps an arbitrary contents.
>
> When "osend()" is called the first time(with the serial device
> driver working in interrupt mode), termios gets stuck and will not
> call the device drivers output function.
>
> My questions now are:
>
> - anybody already experienced this bug?
> - is it a bug at all or did I do anything fundamentally wrong?
> - is there already a common bugfix for that?
>
> I don't like poking around in other people code, as long as I am
> not absolutely sure, what I do...

Yes, there's a bug there.
I thought that Joel had patched this already, but here's a patch to
fix this.  This patch also addresses a concern that many others have
raised regarding enabling and disabling of transmitter interrupts.

First, here's the example I've been using of a simple UART-style
interrupt-driven driver:
===============================================================
void
device_write_routine (int minor, char *buf, int count)
{
        UART->control_register &= ~UART_TRANSMITTER_READY;
        UART->output_register = *buf;
        UART->control_register |= UART_TRANSMIT_INTERRUPT_ENABLE;
}

void
device_transmit_interrupt_routine (int vector)
{
        UART->control_register &= ~UART_TRANSMIT_INTERRUPT_ENABLE;
        rtems_termios_dequeue_characters (device_ttyp, 1);
}
==============================================================


Several people have expressed their concern about the disable/enable
of transmitter interrupts for every character.  On some machines
this disable/enable is an expensive operation.  With the attached
patch applied you can write the two routines as:
==============================================================
void
device_write_routine (int minor, char *buf, int count)
{
        code_to_clear_transmitter_ready_status ();
        if (device_ttyp->rawOutBufState == rob_idle)
                code_to_enable_transmitter_interrupts ();
        code_to_send_one_character_to_transmitter (*buf);
}

void
device_transmit_interrupt_routine (int vector)
{
        rtems_termios_dequeue_characters (device_ttyp, 1);
        if (device_ttyp->rawOutBufState == rob_idle)
                code_to_disable_transmitter_interrupts ();
}
===============================================================
1998-08-21 15:32:19 +00:00
Joel Sherrill
33679ec46e All warnings removed. 1998-08-21 13:04:55 +00:00
Joel Sherrill
bbdab89563 Added initialization of missing termios structure entries. 1998-08-21 12:52:08 +00:00
Joel Sherrill
ab09043a27 Fixed warning about pointer/integer conversion which turned out to be
a missed "&" on a write.
1998-08-21 12:51:29 +00:00
Joel Sherrill
a9cfa2380f changed version to 980820pm-BSD 1998-08-20 22:11:31 +00:00
Joel Sherrill
28e7d7faed Patches from Eric Norum 1998-08-20 22:04:22 +00:00
Joel Sherrill
96b3916409 Added CVS Ids 1998-08-20 21:56:40 +00:00
Joel Sherrill
ff0f694d46 Fixed many warnings. 1998-08-20 21:47:37 +00:00
Joel Sherrill
50ea4814aa changed version to 980820-BSD 1998-08-20 16:04:58 +00:00
Joel Sherrill
0280cb66f5 FreeBSD stack compiles for the first time (except libc/strsep.c) 1998-08-20 14:39:09 +00:00
Joel Sherrill
3f098aed45 FreeBSD stack compiles for the first time (except libc/strsep.c). 1998-08-20 14:37:17 +00:00
Joel Sherrill
39e6e65a2c Base files 1998-08-19 21:32:28 +00:00
Joel Sherrill
26b5c77fb1 changed version to 980819 1998-08-19 20:25:21 +00:00
Joel Sherrill
8b2ee37c38 Patch from Eric Valette <valette@crf.canon.fr>:
- Use the "hlt" instruction for the Idle thread,
        - Optimise interrupt PATH leadding to thread wakeup,
        - Preparation for Intel exception management that should
        come before the end of the week...
1998-08-19 20:09:59 +00:00
Joel Sherrill
7549e147ae Fixed obsolete reference to BSDINSTALL. 1998-08-19 20:02:10 +00:00
Joel Sherrill
06fa582130 Patches from Ralf Corsepius <corsepiu@faw.uni-ulm.de> and myself to
make solaris target buildable.

    > 1.  The ipc check fails since solaris does not define union semun.
    > The unix port code actually defines this type itself on solaris.  Doing
    > the same thing lets it get configured.  Then...

    > 2.  It looks like BSDINSTALL is not defined properly.

    BSDINSTALL is defined in make/host.cfg.in as
    BSDINSTALL=@INSTALL@

    @INSTALL@ is generated by autoconf's standard macro AC_PROG_INSTALL, which
    is widely used in almost any autoconf/automake configured package. In case
    there is really something wrong with it, then it must be considered a bug
    in autoconf.

    I can see a doubious fragment in AC_PROG_INSTALL, which is used when no
    appropriate bsd-install is found.

Finally Ralf saw a problem with the find on solaris which I also saw and
fixed.
1998-08-19 12:56:20 +00:00
Joel Sherrill
f2226f4422 Added 68060 definition from Chris Johns. 1998-08-19 12:41:22 +00:00
Joel Sherrill
43abd4d525 Fixed preinstall stanza so the prebuild works. 1998-08-13 22:03:14 +00:00
Joel Sherrill
26e5cd406a Patch from Chris Johns <ccj@acm.org>. Comments follow:
Here is a small patch which allows the m68060 to be used. I have not
    tested the FP switching stuff which we know is broken. This is taken
    against the libchip snapshot but should merge without problems. If you
    have any problems please let me know.

    There are other smaller issues such as superscalar enable and cache
    control which I have not addressed yet. They are different to all other
    m68k processors. These can wait IMO.
1998-08-13 14:23:37 +00:00
Joel Sherrill
18c2320c6e changed version to 980808 1998-08-08 16:51:16 +00:00
Joel Sherrill
7e2187f4ad changed version to 9800808 1998-08-08 16:26:35 +00:00
Joel Sherrill
bd8c8b2a85 Patch from Eric Valette <valette@crf.canon.fr> which brings the i386ex BSP
inline with the new IRQ structure.
1998-08-05 16:51:39 +00:00
Joel Sherrill
ab0df696d0 Automatic CPU type detection code from Eric Valette <valette@crf.canon.fr>.
Enabled on the pc386.
1998-08-05 15:15:46 +00:00
Joel Sherrill
4d11a92f3e Redid Makefiles to properly do a preinstall. There was remnants of the
old way of setting th cpu family and model string names.
1998-08-05 15:11:33 +00:00
Joel Sherrill
5ef4fae650 Merged patch from David Fiddes <D.J.Fiddes@hw.ac.uk> to add ColdFire
specific register macros and correct code in rtems.s.
1998-08-01 14:40:51 +00:00
Joel Sherrill
41d0743964 Patch from Eric Valette <valette@crf.canon.fr>:
Now that Joel told me how to compile outside the tree,
    I have found a few more bugs. Here is a small patch
    to fix them.
1998-07-30 18:06:51 +00:00
Joel Sherrill
bd7c547d20 Closed window thanks to patch from Eric Norum. 1998-07-28 16:49:36 +00:00
Joel Sherrill
bf21172de8 changed version to 980724 1998-07-24 18:30:50 +00:00
Joel Sherrill
1501809c67 changed version to 980723 1998-07-23 22:13:46 +00:00
Joel Sherrill
67a2288991 Patch from Eric VALETTE <valette@crf.canon.fr>:
Here is a enhanced version of my previous patch. This patch enables
    to potentially share the new interrupt management code for all Intel targets
    (pc386, go32 and force386) bsp.

    Note :  this patch is complete only for pc386. It still needs to
            be completed for go32 and force386. I carrefully checked
            that anything needed is in for force386 (only some function
            name changes for IDT manipulation and GDT segment
            manipulation). But anyway I will not be able to test any
            of theses targets...
1998-07-23 22:02:34 +00:00
Joel Sherrill
73452854c0 Patch from Ralf Corsepius <corsepiu@faw.uni-ulm.de>:
Here is a pure sh-rtems bug-fix patch.

  The defines to enable the network to host conversion macros in
  netinet/in.h were missing in sh/cpu.h
1998-07-23 20:04:55 +00:00
Joel Sherrill
4555bc1eb5 Initialized tty->refcount to 0. When (for whatever reason) malloc()
returned a buffer which was not zero-filled, the reference count
was not correct.  When the application exitted, the "lastClose"
handler was not being called to flush the output.  This problem
had manifested itself on a variety of platforms.

The function rtems_termios_dequeue_characters() incorrectly incremented
the buffer pointers when it was invoked and there were no characters
in the ring buffer.  This problem had also manifested itself on a
variety of platforms.  The symptom was a strange repeating of the
data in the transmitter buffer when the transmitter serial device
was supposed to go idle.
1998-07-17 22:34:54 +00:00
Joel Sherrill
f95d2b53f2 Patch from Ralf Corsepius <corsepiu@faw.uni-ulm.de>. Comments:
* Added support for bsd "install" ($(BSDINSTALL)) to host.cfg.in, i.e.
    the standard "install" program that most packages (including automake)
    use. In Makefiles outside of rtems, "install" normally is referenced by
    $(INSTALL), but rtems already uses $(INSTALL) for install-if-change,
    hence I used $(BSDINSTALL) instead to keep up backward compatibility.

    * Removed references to @GREP@ etc. from host.cfg.in, as configure.in
    doesn't check for them (Minor cleanup).

    * Added installation flags INST*FLAGS to host.cfg.in, which should
    replace -m XXXX flags for installation calls.

    *Changes to gcc.cfg to enable it to build host programs from multiple
    sources files.
    Should not disturb existing sources, but neccessary.

    * There was a not-so-minor bug in the configuration files: "make
    install" and "make debug_install" don't work in all subdirectories!! I
    tried to fix this by adding "install" to MTARGETS in main.cfg, which
    seems to solve most of the problems. But there still seem to be rare (?)
    cases where "make debug_install" still seems to have problems.

    * Changes to many host related tool-Makefiles to demonstrate the
    abilities of INST*FLAGS, BSDINSTALL and the new rules in gcc.cfg.
    ..of cause ... but BSDINSTALL is THE standard method to install files
    in most program packages besides rtems. This part of the patch fixes
    some minor protection setting problems, but doesn't support
    TARGET_VARIANTS

    NOTE:
    I hope you will like the BSDINSTALL, INST*FLAGS stuff. It is a step to
    get rid of "install-if-change" and to rely on a more standard
    installation procedure. If you don't like BSDINSTALL, removing it from
    the patch isn't  difficult-  just grep for BSDINSTALL and replace
    BSDINSTALL with INSTALL or MKDIR.


    FINALLY:
    I still have another patch pending (well, not a complete patch yet, it's
    a partial patch to demonstrate the principle), which adds automatic
    rebuilding of files generated by autoconf/configure. At the moment I
    don't dare to submit it, because integrating this patch would require to
    modify all Makefile.ins because we'd need to add a new "include " line
    to each Makefile.in.
1998-07-17 15:49:12 +00:00
Joel Sherrill
fa21a8439f New files from Ralf Corsepius <corsepiu@faw.uni-ulm.de>. His comments:
* c/src/exec/score/tools/sh - NEW DIRECTORY - contains shgen
    Most of it should be self-explanatory. I am a little bit concerned about
    host-dependent features (getopt, floating point libraries). This
    shouldn't disturb much now, as this tool should be compileable on all
    gnu-based hosts and is only applicable for the sh. But in case somebody
    complains, we may need to add autoconf checks or even restructurize
    parts of rtems (IMO, rtems needs to be restructurized - remember the
    "turning rtems upside down" issue).
1998-07-17 15:17:29 +00:00
Joel Sherrill
6e65840670 Patch from Dario Alcocer <alcocer@connectnet.com>. His comments:
Haven't had a chance to do an extensive shake-out of 980710, but it
  builds just fine on FreeBSD 2.2.5 (after termios is fixed using the
  attached patch), and the tests run fine.  FYI: FreeBSD doesn't support
  System V IPC out of the box, but one only needs to add three options
  to the kernel build configuration file, recompile the kernel, and
  you're ready.
1998-07-17 13:05:03 +00:00