summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libbsp/i386 (follow)
Commit message (Collapse)AuthorAgeFilesLines
...
* Patch from Rosimildo DaSilva <rdasilva@connecttel.com> to make C++Joel Sherrill1999-06-153-3/+13
| | | | | exceptions work on the pc386 BSP with i386-elf. This patch also included changes to the i386-rtemself egcs configuration.
* Patch ("FIX: no_cpu/no_bsp") from Ralf Corsepius <corsepiu@faw.uni-ulm.de>:Joel Sherrill1999-06-142-50/+53
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch should fix the nastiest configuration bugs for no_cpu/no_bsp. With this patch applied, configure --target=no_cpu-rtems now correctly acknowledges its configuration, but later fails building when trying to build libcsupport (I leave this problem for you :-). Fixes/Changes: * aclocal/canonicalize-target-name.m4: use RTEMS_CPU instead of target_cpu, switch to a native compiler setup if target = no_cpu*rtems, ie. implicitly use host=target (native) and RTEMS_CPU=no_cpu for --target=no_cpu*rtems. * add no_bsp/bsp_specs (Support -qrtems, -qrtems_debug; please check before adding :-) * Use RTEMS_CANONICALIZE_TARGET_CPU instead of AC_CANONICAL_SYSTEM in toplevel/configure.in * All references to $target_cpu in aclocal/*.m4, Makefile.ins and *.cfg files changed to RTEMS_CPU * bug fixes to exec/score/cpu/no_cpu/wrap (This part of the patch may result into patch rejections, because your recently posted patch may also have addressed this problem). After applying this patch, please do: cvs add c/src/lib/libbsp/no_cpu/no_bsp/bsp_specs ./autogen
* This is a large patch from Eric Valette <valette@crf.canon.fr> that wasJoel Sherrill1999-06-142-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | described in the message following this paragraph. This patch also includes a mcp750 BSP. From valette@crf.canon.fr Mon Jun 14 10:03:08 1999 Date: Tue, 18 May 1999 01:30:14 +0200 (CEST) From: VALETTE Eric <valette@crf.canon.fr> To: joel@oarcorp.com Cc: raguet@crf.canon.fr, rtems-snapshots@oarcorp.com, valette@crf.canon.fr Subject: Questions/Suggestion regarding RTEMS PowerPC code (long) Dear knowledgeable RTEMS powerpc users, As some of you may know, I'm currently finalizing a port of RTEMS on a MCP750 Motorola board. I have done most of it but have some questions to ask before submitting the port. In order to understand some of the changes I have made or would like to make, maybe it is worth describing the MCP750 Motorola board. the MCP750 is a COMPACT PCI powerpc board with : 1) a MPC750 233 MHz processor, 2) a raven bus bridge/PCI controller that implement an OPENPIC compliant interrupt controller, 3) a VIA 82C586 PCI/ISA bridge that offers a PC compliant IO for keyboard, serial line, IDE, and the well known PC 8259 cascaded PIC interrupt architecture model, 4) a DEC 21140 Ethernet controller, 5) the PPCBUG Motorola firmware in flash, 6) A DEC PCI bridge, This architecture is common to most Motorola 60x/7xx board except that : 1) on VME board, the DEC PCI bridge is replaced by a VME chipset, 2) the VIA 82C586 PCI/ISA bridge is replaced by another bridge that is almost fully compatible with the via bridge... So the port should be a rather close basis for many 60x/7xx motorola board... On this board, I already have ported Linux 2.2.3 and use it both as a development and target board. Now the questions/suggestions I have : 1) EXCEPTION CODE ------------------- As far as I know exceptions on PPC are handled like interrupts. I dislike this very much as : a) Except for the decrementer exception (and maybe some other on mpc8xx), exceptions are not recoverable and the handler just need to print the full context and go to the firmware or debugger... b) The interrupt switch is only necessary for the decrementer and external interrupt (at least on 6xx,7xx). c) The full context for exception is never saved and thus cannot be used by debugger... I do understand the most important for interrupts low level code is to save the minimal context enabling to call C code for performance reasons. On non recoverable exception on the other hand, the most important is to save the maximum information concerning proc status in order to analyze the reason of the fault. At least we will need this in order to implement the port of RGDB on PPC ==> I wrote an API for connecting raw exceptions (and thus raw interrupts) for mpc750. It should be valid for most powerpc processors... I hope to find a way to make this coexist with actual code layout. The code is actually located in lib/libcpu/powerpc/mpc750 and is thus optional (provided I write my own version of exec/score/cpu/powerpc/cpu.c ...) See remark about files/directory layout organization in 4) 2) Current Implementation of ISR low level code ----------------------------------------------- I do not understand why the MSR EE flags is cleared again in exec/score/cpu/powerpc/irq_stubs.S #if (PPC_USE_SPRG) mfmsr r5 mfspr r6, sprg2 #else lwz r6,msr_initial(r11) lis r5,~PPC_MSR_DISABLE_MASK@ha ori r5,r5,~PPC_MSR_DISABLE_MASK@l and r6,r6,r5 mfmsr r5 #endif Reading the doc, when a decrementer interrupt or an external interrupt is active, the MSR EE flag is already cleared. BTW if exception/interrupt could occur, it would trash SRR0 and SRR1. In fact the code may be useful to set MSR[RI] that re-enables exception processing. BTW I will need to set other value in MSR to handle interrupts : a) I want the MSR[IR] and MSR[DR] to be set for performance reasons and also because I need DBAT support to have access to PCI memory space as the interrupt controller is in the PCI space. Reading the code, I see others have the same kind of request : /* SCE 980217 * * We need address translation ON when we call our ISR routine mtmsr r5 */ This is just another prof that even the lowest level IRQ code is fundamentally board dependent and not simply processor dependent especially when the processor use external interrupt controller because it has a single interrupt request line... Note that if you look at the PPC code high level interrupt handling code, as the "set_vector" routine that really connects the interrupt is in the BSP/startup/genpvec.c, the fact that IRQ handling is BSP specific is DE-FACTO acknowledged. I know I have already expressed this and understand that this would require some heavy change in the code but believe me you will reach a point where you will not be able to find a compatible while optimum implementation for low level interrupt handling code...) In my case this is already true... So please consider removing low level IRQ handling from exec/score/cpu/* and only let there exception handling code... Exceptions are usually only processor dependent and do not depend on external hardware mechanism to be masked or acknowledged or re-enabled (there are probably exception but ...) I have already done this for pc386 bsp but need to make it again. This time I will even propose an API. 3) R2/R13 manipulation for EABI implementation ---------------------------------------------- I do not understand the handling of r2 and r13 in the EABI case. The specification for r2 says pointer to sdata2, sbss2 section => constant. However I do not see -ffixed-r2 passed to any compilation system in make/custom/* (for info linux does this on PPC). So either this is a default compiler option when choosing powerpc-rtems and thus we do not need to do anything with this register as all the code is compiled with this compiler and linked together OR this register may be used by rtems code and then we do not need any special initialization or handling. The specification for r13 says pointer to the small data area. r13 argumentation is the same except that as far as I know the usage of the small data area requires specific compiler support so that access to variables is compiled via loading the LSB in a register and then using r13 to get full address... It is like a small memory model and it was present in IBM C compilers. => I propose to suppress any specific code for r2 and r13 in the EABI case. 4) Code layout organization (yes again :-)) ------------------------------------------- I think there are a number of design flaws in the way the code is for ppc organized and I will try to point them out. I have been beaten by this again on this new port, and was beaten last year while modifying code for pc386. a) exec/score/cpu/* vs lib/libcpu/cpu/*. I think that too many things are put in exec/score/cpu that have nothing to do with RTEMS internals but are rather related to CPU feature. This include at least : a) registers access routine (e.g GET_MSR_Value), b) interrupt masking/unmasking routines, c) cache_mngt_routine, d) mmu_mngt_routine, e) Routines to connect the raw_exception, raw_interrupt handler, b) lib/libcpu/cpu/powerpc/* With a processor family as exuberant as the powerpc family, and their well known subtle differences (604 vs 750) or unfortunately majors (8xx vs 60x) the directory structure is fine (except maybe the names that are not homogeneous) powerpc ppc421 mpc821 ... I only needed to add mpc750. But the fact that libcpu.a was not produced was a pain and the fact that this organization may duplicates code is also problematic. So, except if the support of automake provides a better solution I would like to propose something like this : powerpc mpc421 mpc821 ... mpc750 shared wrapup with the following rules : a) "shared" would act as a source container for sources that may be shared among processors. Needed files would be compiled inside the processor specific directory using the vpath Makefile mechanism. "shared" may also contain compilation code for routine that are really shared and not worth to inline... (did not found many things so far as registers access routine ARE WORTH INLINING)... In the case something is compiled there, it should create libcpushared.a b) layout under processor specific directory is free provided that 1)the result of the compilation process exports : libcpu/powerpc/"PROC"/*.h in $(PROJECT_INCLUDE)/libcpu 2) each processor specific directory creates a library called libcpuspecific.a Note that this organization enables to have a file that is nearly the same than in shared but that must differ because of processor differences... c) "wrapup" should create libcpu.a using libcpushared.a libcpuspecific.a and export it $(PROJECT_INCLUDE)/libcpu The only thing I have no ideal solution is the way to put shared definitions in "shared" and only processor specific definition in "proc". To give a concrete example, most MSR bit definition are shared among PPC processors and only some differs. if we create a single msr.h in shared it will have ifdef. If in msr.h we include libcpu/msr_c.h we will need to have it in each prowerpc specific directory (even empty). Opinions are welcomed ... Note that a similar mechanism exist in libbsp/i386 that also contains a shared directory that is used by several bsp like pc386 and i386ex and a similar wrapup mechanism... NB: I have done this for mpc750 and other processors could just use similar Makefiles... c) The exec/score/cpu/powerpc directory layout. I think the directory layout should be the same than the libcpu/powerpc. As it is not, there are a lot of ifdefs inside the code... And of course low level interrupt handling code should be removed... Besides that I do not understand why 1) things are compiled in the wrap directory, 2) some includes are moved to rtems/score, I think the "preinstall" mechanism enables to put everything in the current directory (or better in a per processor directory), 5) Interrupt handling API ------------------------- Again :-). But I think that using all the features the PIC offers is a MUST for RT system. I already explained in the prologue of this (long and probably boring) mail that the MCP750 boards offers an OPENPIC compliant architecture and that the VIA 82586 PCI/ISA bridge offers a PC compatible IO and PIC mapping. Here is a logical view of the RAVEN/VIA 82586 interrupt mapping : --------- 0 ------ | OPEN | <-----|8259| | PIC | | | 2 ------ |(RAVEN)| | | <-----|8259| | | | | | | 11 | | | | | | <---- | | | | | | | | | | | | --------- ------ | | ^ ------ | VIA PCI/ISA bridge | x -------- PCI interrupts OPENPIC offers interrupt priorities among PCI interrupts and interrupt selective masking. The 8259 offers the same kind of feature. With actual powerpc interrupt code : 1) there is no way to specify priorities among interrupts handler. This is REALLY a bad thing. For me it is as importnat as having priorities for threads... 2) for my implementation, each ISR should contain the code that acknowledge the RAVEN and 8259 cascade, modify interrupt mask on both chips, and reenable interrupt at processor level, ..., restore then on interrupt return,.... This code is actually similar to code located in some genpvec.c powerpc files, 3) I must update _ISR_Nesting_level because irq.inl use it... 4) the libchip code connects the ISR via set_vector but the libchip handler code does not contain any code to manipulate external interrupt controller hardware in order to acknoledge the interrupt or re-enable them (except for the target hardware of course) So this code is broken unless set_vector adds an additionnal prologue/epilogue before calling/returning from in order to acknoledge/mask the raven and the 8259 PICS... => Anyway already EACH BSP MUST REWRITE PART OF INTERRUPT HANDLING CODE TO CORRECTLY IMPLEMENT SET_VECTOR. I would rather offer an API similar to the one provided in libbsp/i386/shared/irq/irq.h so that : 1) Once the driver supplied methods is called the only things the ISR has to do is to worry about the external hardware that triggered the interrupt. Everything on openpic/VIA/processor would have been done by the low levels (same things as set-vector) 2) The caller will need to supply the on/off/isOn routine that are fundamental to correctly implements debuggers/performance monitoring is a portable way 3) A globally configurable interrupt priorities mechanism... I have nothing against providing a compatible set_vector just to make libchip happy but as I have already explained in other mails (months ago), I really think that the ISR connection should be handled by the BSP and that no code containing irq connection should exist the rtems generic layers... Thus I really dislike libchip on this aspect because in a long term it will force to adopt the less reach API for interrupt handling that exists (set_vector). Additional note : I think the _ISR_Is_in_progress() inline routine should be : 1) Put in a processor specific section, 2) Should not rely on a global variable, As : a) on symmetric MP, there is one interrupt level per CPU, b) On processor that have an ISP (e,g 68040), this variable is useless (MSR bit testing could be used) c) On PPC, instead of using the address of the variable via __CPU_IRQ_info.Nest_level a dedicated SPR could be used. NOTE: most of this is also true for _Thread_Dispatch_disable_level END NOTE -------- Please do not take what I said in the mail as a criticism for anyone who submitted ppc code. Any code present helped me a lot understanding PPC behavior. I just wanted by this mail to : 1) try to better understand the actual code, 2) propose concrete ways of enhancing current code by providing an alternative implementation for MCP750. I will make my best effort to try to brake nothing but this is actually hard due to the file layout organisation. 3) make understandable some changes I will probably make if joel let me do them :-) Any comments/objections are welcomed as usual. -- __ / ` Eric Valette /-- __ o _. Canon CRF (___, / (_(_(__ Rue de la touche lambert 35517 Cesson-Sevigne Cedex FRANCE Tel: +33 (0)2 99 87 68 91 Fax: +33 (0)2 99 84 11 30 E-mail: valette@crf.canon.fr
* Switched from picking up the .rel for each subdirectory in theJoel Sherrill1999-05-275-5/+5
| | | | | BSP (BSP_PIECES) to picking up the .o files. This should help reduce the minimum size of an application.
* Regenerated.Joel Sherrill1999-05-272-162/+294
|
* Regenerated.Joel Sherrill1999-05-182-294/+162
|
* Added 3COM 3C509 driver from Rosimildo DaSilva <rdasilva@connecttel.com>.Joel Sherrill1999-05-147-2/+2247
|
* Patch from Erik Ivanenko <erik.ivanenko@utoronto.ca> to correct 32 bitJoel Sherrill1999-05-111-0/+2
| | | | jmp relative offset from .reset section.
* Patch from Emmanuel Raguet <raguet@crf.canon.fr>:Joel Sherrill1999-04-281-1/+3
| | | | | | | | | | I have made test with the Dec21140 driver and it appears that all works fine even if the cache is enabled for the memory space in which the incoming and outcoming Ethernet frames are stored. I have had #ifdef to "comment" the code. If you want to disable cache, you only have to #define the name. It could be mandatory for some BSPs.
* New BSP from Tony R. Ambardar <tonya@ece.ubc.ca> from theJoel Sherrill1999-04-2348-0/+5933
| | | | | | | | University of British Columbia. The BSP is for: Yes, this is the "entry model" of a series of boards from Technologic Systems. Costs <$200 I believe. They have a WWW page at www.t-systems.com. I am letting them know about the availability of this BSP too.
* Regenerated.Joel Sherrill1999-04-191-10/+12
|
* After discussion with Eric Norum <eric@skatter.usask.ca>,Joel Sherrill1999-04-193-6/+3
| | | | | I added __INSIDE_RTEMS_BSD_TCPIP_STACK__ that trips all the needed macro definitions for a network driver.
* Patch from Ralf Corsepius <corsepiu@faw.uni-ulm.de>:Joel Sherrill1999-04-1942-42/+42
| | | | | | | | | | | | | | This one is an enhancement to acpolish. It replaces some Makefile variables by others variable in Makefile.ins (tries to use unique name for some variables). It therefore eases parsing Makefile.ins for further automatic Makefile.in conversions in future. To apply: cd <rtems-source-tree> sh <path-to>/rtems-rc-19990407-8.sh ./autogen
* Patch from Ralf Corsepius <corsepiu@@faw.uni-ulm.de>:Joel Sherrill1999-04-161-1/+0
| | | | | | | | | | | | | | 2) ./c/src/lib/libbsp/i386/go32/startup > all: ${ARCH} $(SRCS) $(PGM) > $(INSTALL_CHANGE) ${PROJECT_RELEASE}/lib > > This also is very questionable, because it means "install $(PROJECT_RELEASE)/$/lib to the void". I think, removing the INSTALL_CHANGE is the right way to fix it.
* Patch from Ralf Corsepius <corsepiu@faw.uni-ulm.de>:Joel Sherrill1999-04-161-6/+1
| | | | | | | | | | | | | | | | | | | 1) ./c/src/lib/libbsp/i386/i386ex/startup/Makefile.in > preinstall: > $(INSTALL_CHANGE) ${IMPORT_SRC} . > > # ${CP} ${IMPORT_SRC} . > > > This fragment is broken, because IMPORT_SRC is always empty. IMO, the fix would be to remove this fragment or to replace it with test -z "${IMPORT_SRC}" || cp ${IMPORT_SRC} . if an external shell variable IMPORT_SRC shall be supported by this Makefile, which IMO should not be done.
* Patch from Ralf Corsepius <corsepiu@faw.uni-ulm.de>:Joel Sherrill1999-04-123-220/+393
| | | | | | | | | | | | | | | | | | | | | | This patch addresses a few minor issues and contains a few (minor) preparations for automake. * configure.in: Fix for handing c/src/tests subdirectory handling (FIX) * aclocal/rtems-top.m4: + Add TARGET_SUBDIR and --with-target-subdir (preparation of future enhancements for cross-compiling) + Activate RTEMS_ROOT handling (automake preparation) * automake/*.am: replace comments "#" with "##" so that comments won't get included into Makefile.in's anymore * c/update-tools/* automake support (NEW) * ./autogen update/enhancement (cf. ./autogen for details) After applying this patch please run: ./autogen cvs add c/update-tools/configure.in cvs add c/update-tools/Makefile.am cvs add c/update-tools/aclocal.m4
* Patch from Ralf Corsepius <corsepiu@faw.uni-ulm.de> to preinstallJoel Sherrill1999-04-064-8/+0
| | | | all bsp_specs.
* Regenerated.Joel Sherrill1999-03-313-368/+217
|
* Removed warnings.Joel Sherrill1999-03-311-0/+3
|
* Removed warnings.Joel Sherrill1999-03-311-4/+1
|
* Patch from Tony R. Ambardar <tonya@ece.ubc.ca> to add byte wideJoel Sherrill1999-03-301-19/+90
| | | | register support to this driver.
* Patch from Rosimildo DaSilva <rdasilva@connecttel.com> andJoel Sherrill1999-03-261-45/+115
| | | | | | Emmanuel Raguet <raguet@crf.canon.fr> to eliminate a problem during the boot process on the pc386 BSP. On fast PC's the calibration routine would hand.
* Patch from Rosimildo DaSilva <rdasilva@connecttel.com>:Joel Sherrill1999-03-251-3/+3
| | | | | | Problem: Sometimes the output file "FOO.BT" is smaller that the second image. Solution: Opening files, input/output, in "binary mode".
* These files were not added as part of a recent patch fromJoel Sherrill1999-03-244-0/+1701
| | | | Ralf Corsepius <corsepiu@faw.uni-ulm.de>.
* Automake II patch from Ralf Corsepius <corsepiu@faw.uni-ulm.de>. EmailJoel Sherrill1999-03-231-53/+364
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | description follows: Description: * automake for *all* tool subdirectories (Makefile.am, configure.in etc.) * autogen now also considers CONFIG_HEADER (generates stamp-h.ins and config.h.ins) * c/src/tests/tools/generic/difftest and c/src/tests/tools/generic/sorttimes generated by configure scripts * c/update-tools/ampolish, beautifier for Makefile.ams, similar to acpolish * rtems-polish.sh added to c/update-tools/ + ampolish support * New subdirectory ./automake, contains automake -Makefile fragments to support RTEMS make "debug, debug_install, profile, profile_install" for native Makefile.ams (== ignore these make targets). * aclocal/rtems-top.m4's RTEMS_TOP now reads the automake makefile variable VERSION from RTEMS ./VERSION file. * ./configure.in uses the macros from aclocal + support for the tools' configure scripts Remarks: * To run rtems-polish.sh, "cd <rtems-source-tree>; ./c/update-tools/rtems-polish.sh" * AFAIS, now all native subdirectories are converted to automake (Please drop me a note, if I forgot something). * Unless you notice something fatal, IMO the time has come for a public try (== snapshot). I do not intend to send more automake related patches within, say 2 weeks, to give these patches time to settle and to give me some time to think on how to continue. * The patch assumes installation to the new main installation directory [$(prefix)].
* Towards automake XI patch from Ralf Corsepius <corsepiu@faw.uni-ulm.de>:Joel Sherrill1999-03-1943-144/+511
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch is the most scary of all proposals I've been mailing to you this week until now. It consists of 3 parts: 1. a patch 2. a perl script (acpolish) 3. a shell script wrapper to invoke the perl-script. The perl-script reads in each Makefile.in and modifies them ("polishes/beautifies" them :-). These modifications are not easy to describe: Basically, it hard-codes some automake Makefile-variables and rules into RTEMS autoconf-Makefile.ins (Note: autoconf vs. automake!!) and converts some settings/variables to configure scripts' requirements (Yes, plural). E.g. it adds the automake standard variables $top_builddir and $subdir, adds dependency rules for automatic re-generation of Makefiles from Makefile.in, adds support variables for relative paths to multiple configure scripts etc. The patch is a one-line patch to enable the support of the new features added by acpolish. The shell script is a wrapper which pokes around inside of the source tree for Makefile.ins and invokes acpolish on all autoconf-Makefile.ins. acpolish is designed to be able to run several times on the same Makefile.in and may once become a more general tool to convert RTEMS Makefile.in to automake. Therefore, I'd like to keep it inside of source tree. (e.g. as contrib/acpolish or c/update-tools/acpolish). However, it doesn't make sense to export it outside of RTEMS. To apply this: cd <source-tree> patch -p1 -E < <path-to-patch>/rtems-rc-19990318-1.diff tar xzvf <path-to>/rtems-rc-polish.tar.gz ./rtems-polish.sh ./autogen Note: The path contrib/acpolish is hard-coded into rtems-polish.sh, if you decide to put it in an alternative place, please modify rtems-polish.sh to reflect this change. Later: cvs rm make/rtems.cfg (It isn't used anymore) cvs add contrib cvs add contrib/acpolish cvs commit I've tested this intensively, but naturally I can't exclude bugs. Ralf. PS.: Most probably, this is the last "Towards automake" patch. The next one probably will be a real automake patch.
* Towards automake X patch from Ralf Corsepius <corsepiu@faw.uni-ulm.de>:Joel Sherrill1999-03-194-0/+20
| | | | | | | | | | | | | | | | | | | This one once again changes the scheme to preinstall bsp_specs. It moves generating PROJECT_ROOT/lib/bsp_specs to libbsp/<cpu>/<bsp>/wrapup/Makefile.in. I.e. it decentralizes generation of bsp_specs to a bsp-dependent directory, because preinstalling bsp_specs in a centralized Makefile like it has been done until now does not harmonize well with spliting the toplevel configure script in cpu and bsp-dependent configure scripts and automake. First apply the patch (rtems-rc-19990318-0.diff) below, then run the reorg-bsp_specs.sh script. IMO, this one is comparatively harmless and eases automake support significantly.
* Patch from Ian Lance Taylor <ian@airs.com>:Joel Sherrill1999-03-181-16/+27
| | | | | | Erik Ivanenko pointed out a problem in the ne2000.c driver I submitted: it did not work correctly with bootp. Here is a patch, based on a patch he sent me.
* Patch from Erik Ivanenko <erik.ivanenko@utoronto.ca> to correct a bugJoel Sherrill1999-03-031-19/+36
| | | | that shows up if the BSP uses memory near address 0.
* Updated Ethernet driver from Erik Ivanenko <erik.ivanenko@utoronto.ca>.Joel Sherrill1999-03-011-66/+112
| | | | | | | | | | | | | | | | | | | | | | | | | Comments follow: Please find attached, the updated network driver. I have verified that it is working as expected, by timestamping the error messages generated from the ISR. If you've taken a look inside, the network driver has a reset thread in addition to the RX and TX threads. It is possible to avoid the additional reset thread by allowing the TX driver to time out and then checking status bits set by the ISR. However, this approach demands that a transmission is necessary for the NIC to be reset. Due to Eric V's ISR handling, I suppose that the reset routine could be called from the "ISR" itself, due to the 8259 interrupt mode, and that the interrupt is acknowledged prior to running the "ISR". (Providing that no NIC interrupts are generated during reset -- I worry about re-entrancy. ) This would be a minor improvement, but you know, I don't want to make this driver my lifes work. ---------------------------------------------------------------------- ----------------------------------------------------------------------
* Switch to using standard compile rule for assembly.Joel Sherrill1999-02-241-4/+2
|
* Renamed network to wd8003.Joel Sherrill1999-02-184-4/+4
|
* Patch from Emmanuel RAGUET <raguet@crf.canon.fr> to add filesJoel Sherrill1999-02-185-8/+942
| | | | | | that were accidentally not committed earlier. The DECNet driver is being added as its own directory to avoid forcing the driver to have to pull in the complete set of network drivers.
* Added comments.Joel Sherrill1999-02-181-0/+20
|
* Added NE2000 Driver from Ian Lance Taylor <ian@airs.com>. Comments:Joel Sherrill1999-02-184-2/+998
| | | | | | | | | | | | | | | | | | | | | | Both the ne2000 and the wd80x3 are based on the National Semiconductor 8390 chip, so there is a fair amount of overlap between the two drivers. It would be possible in principle to combine some code into a separate set of subroutines called by both. In fact, the drivers in both OpenBSD and Linux work this way. I didn't bother, because for the relatively simple drivers used by RTEMS, the overlap is not especially large, and any reasonable use of subroutines would lead to slightly less efficient code. This ne2000 driver uses two transmit buffers. While one packet is being transmitted over the Ethernet, RTEMS will upload another. Since uploading a packet to the ne2000 is rather slow, I don't think there is any point to having more than two transmit buffers. However, the code does make it possible, by changing NE_TX_BUFS, although that would of course reduce the number of receive buffers. I suspect that the wd80x3 driver would benefit slightly from copying the multiple transmit buffer code. However, I have no way to test that.
* Part of the automake VI patch from Ralf Corsepius <corsepiu@faw.uni-ulm.de>:Joel Sherrill1999-02-1841-23/+105
| | | | | | | | | | | | | | | | > 5) rtems-rc-19990202-1.diff/reorg-install.sh > > reorg-install.sh fixes a Makefile variable name clash of RTEMS > configuration files and automake/autoconf standards. > Until now, RTEMS used $(INSTALL) for install-if-change. Automake and > autoconf use $(INSTALL) for a bsd-compatible install. As > install-if-change and bsd-install are not compatible, I renamed all > references to install-if-changed to $(INSTALL_CHANGED) and used > $(INSTALL) for bsd-install (==automake/autoconf standard). When > automake will be introduced install-if-change will probably be replaced > by $(INSTALL) and therefore will slowly vanish. For the moment, this > patch fixes a very nasty problem which prevents adding any automake file > until now (There are still more).
* Patch from Emmanuel Raguet <raguet@crf.canon.fr>:Joel Sherrill1999-02-182-1/+10
| | | | | | | You will find enclosed a patch which contains, for Intel PC386 target : - an Ethernet driver for DEC21140 device based boards. - a simple cache management with paging mechanism.
* Patch from Eric Valette <valette@crf.canon.fr> to correct _exitJoel Sherrill1999-02-151-2/+1
| | | | undefined problem.
* Changed call to __rtems_close() to close().Joel Sherrill1999-01-202-6/+6
|
* Update of network driver from Erik Ivanenko <erik.ivanenko@utoronto.ca>.Joel Sherrill1999-01-206-165/+399
| | | | | | | | | | | Comments follow: Here is the contents of the network directory of the i386ex BSP. The reset function has been recently added, and tested through a command line interface. A reset event to the reset thread to reset the NIC. This is done when the ISR detects that the NIC is in an invalid state. It has not been tested "in real life" since the board has not seen an invalid state since the reset function was implemented.
* Removed referencing to network driver since it has not been merged yet.Joel Sherrill1999-01-192-6/+6
|
* Patch from D. V. Henkel-Wallace <gumby@zembu.com> to remove unused variable.Joel Sherrill1999-01-041-1/+0
|
* Patch from D. V. Henkel-Wallace <gumby@zembu.com> to mark sav as unused.Joel Sherrill1999-01-041-1/+1
|
* Patch from Ralf Corsepius <corsepiu@faw.uni-ulm.de> to eliminate anotherJoel Sherrill1998-12-171-1/+1
| | | | compiler dependent flag in a Makefile.
* Patch from Ralf Corsepius <corsepiu@faw.uni-ulm.de>:Joel Sherrill1998-12-152-2/+2
| | | | | | | | | | | | | | | | | | | | | | | Some Makefile.ins depend on gcc by hard-coded gcc-specific compiler flags: -g added to CFLAGS /LDFLAGS in > find . -name Makefile.in -exec grep -l ' \-g' {} \; ./c/src/lib/libbsp/i386/i386ex/startup/Makefile.in ./c/src/lib/libbsp/i386/pc386/tools/Makefile.in -Wall added CFLAGS in > find . -name Makefile.in -exec grep -l ' \-Wall' {} \; ./c/src/exec/score/tools/sh/Makefile.in ./c/src/lib/libbsp/i386/pc386/tools/Makefile.in Both -g and -Wall should not be used in any Makefile.in (Yes, I know, tools/sh/Makefile.in was written by me :-). I'd like to propose to remove these flags from the files mentioned above.
* Patch from Ralf Corsepius <corsepiu@faw.uni-ulm.de> to rename allJoel Sherrill1998-12-1425-41/+46
| | | | | .s files to .S in conformance with GNU conventions. This is a minor step along the way to supporting automake.
* Renamed ASFLAGS to ASMFLAGS for consistency per suggestion from Ralf ↵Joel Sherrill1998-12-141-4/+4
| | | | Corsepius <corsepiu@faw.uni-ulm.de>.
* Added --disable-multiprocessing flag and modified a lot of files to makeJoel Sherrill1998-11-231-1/+5
| | | | it work.
* Added networking.Joel Sherrill1998-11-232-5/+10
|
* New network driver from Erik Ivanenko <erik.ivanenko@utoronto.ca>.Joel Sherrill1998-11-234-0/+3113
|