Commit graph

776 commits

Author SHA1 Message Date
Kees Jongenburger e641d42a37 gpio:Initial GPIO driver.(ARM)
Small GPIO driver that exports a few pins using a virtual file
system. Currently the two user leds and the user button are exported.

Change-Id: I001d017ae27cd17b635587873f7da981054da459
2013-01-28 15:51:20 +01:00
Antoine Leca da26ee9d09 Ramdisk: remove mtab, as now obsolete 2013-01-25 18:44:17 +01:00
Thomas Veerman 31c6dc292d Ramdisk: fix ramdisk creation for ARM 2013-01-25 17:07:02 +00:00
Thomas Veerman a5f7ba46f5 Also build and install log for ARM 2013-01-25 17:07:02 +00:00
Thomas Veerman 28b81f9c3b ramdisk: traditional-cpp does not work with clang 2013-01-23 11:14:33 +00:00
Joachim Henke eddc5dd581 ramdisk: add virtio-blk to proto and boot option 2013-01-23 09:03:03 +00:00
Arne Welzel d19844d69c virtio: virtio-net driver 2013-01-23 09:03:03 +00:00
Arne Welzel a27b60af75 virtio: virtio-blk driver 2013-01-23 09:03:03 +00:00
Joachim Henke ac11e38fd5 pci: add virtio pci device ids 2013-01-23 09:03:03 +00:00
Ben Gras 4c6c911fdc Replace previous change by different test
. so contents always get overwritten in out-of-tree case
2013-01-17 16:05:50 +00:00
Lionel Sambuc f0a513440d drivers/ramdisk/Makefile fixup
Change-Id: I481830f19b650ff0d93bf319ca4d8e901657b8f8
2013-01-17 15:54:48 +01:00
Lionel Sambuc b1c4ba4ab6 ARM updates
Due to the ABI we are using we have to use the earm architecture
moniker for the build system to behave correctly. This involves
then some headers to move around.

There is also a few related Makefile updates as well as minor
source code corrections.
2013-01-17 10:03:58 +01:00
Lionel Sambuc b86af8be0b Toolchain adaptation for ARM MINIX support 2013-01-17 10:03:58 +01:00
Lionel Sambuc f14fb60209 Libraries updates and cleanup
* Updating common/lib
 * Updating lib/csu
 * Updating lib/libc
 * Updating libexec/ld.elf_so
 * Corrected test on __minix in featuretest to actually follow the
   meaning of the comment.
 * Cleaned up _REENTRANT-related defintions.
 * Disabled -D_REENTRANT for libfetch
 * Removing some unneeded __NBSD_LIBC defines and tests

Change-Id: Ic1394baef74d11b9f86b312f5ff4bbc3cbf72ce2
2013-01-14 11:36:26 +01:00
Kees Jongenburger 65c5a092c1 ramdisk:add support for cross building a dso ramdisk.
Change-Id: Ib2840bceab10cf98cb0abfbdb2393af4d59be102
2013-01-13 17:00:13 +01:00
Kees Jongenburger aacce8f40c ramdisk:replace proto.sh by the c processor.
Replace proto.sh by the c processor to generate proto.gen in order
for us to have a more flexible way of selecting the files we want
in the ramdisk.

Change-Id: Id82b9f1b73b498c4d885bb3156fcefaeb9d157e0
2013-01-13 17:00:13 +01:00
Lionel Sambuc b0814fec4e Fix release.sh to work with NetBSD Build system.
Also fix a potential issue where host tools would be compiled
dynamically under MINIX.

This also updates proto.common.dynamic to use the new placement
of the dynamic libraries (/usr/lib)
2012-11-26 10:46:19 +01:00
Lionel Sambuc d19d7d58aa Toolchain upgrade and portability improvements.
upgrade to NetBSD CVS release from 2012/10/17 12:00:00 UTC

Makefiles updates to imporve portability

Made sure to be consistent in the usage of braces/parenthesis at
least on a per file basis. For variables, it is recommended to
continue to use braces.
2012-11-15 16:07:29 +01:00
Lionel Sambuc 9152e1c5a7 Upgrading build system to new NetBSD revision
The tested targets are the followgin ones:
 * tools
 * distribution
 * sets
 * release

The remaining NetBSD targets have not been disabled nor tested
*at all*. Try them at your own risk, they may reboot the earth.

For all compliant Makefiles, objects and generated files are put in
MAKEOBJDIR, which means you can now keep objects between two branch
switching. Same for DESTDIR, please refer to build.sh options.

Regarding new or modifications of Makefiles a few things:
 * Read share/mk/bsd.README
 * If you add a subdirectory, add a Makefile in it, and have it called
   by the parent through the SUBDIR variable.
 * Do not add arbitrary inclusion which crosses to another branch of
   the hierarchy; If you can't do without it, put a comment on why.
   If possible, do not use inclusion at all.
 * Use as much as possible the infrastructure, it is here to make
   life easier, do not fight it.

Sets and package are now used to track files.
We have one set called "minix", composed of one package called "minix-sys"
2012-11-15 16:07:29 +01:00
Ben Gras 62aac7f191 retire nonsymbolic rootdev, dev2name 2012-11-06 12:22:12 +01:00
David van Moolenbroek 71d5865b10 TTY: fix crash obtaining kernel messages
Also fix a case of potential message loss in TTY and LOG.
2012-11-06 00:17:44 +01:00
Thomas Veerman b01e9ebfdb TTY: seperate hardware dependent parts + add new serial driver
.Split TTY in order to support both x86 and ARM.
.Add support for the TI 16750 UARTs on OMAP35x.
.Various other improvements:
  .Kernel messages are printed using generic terminal write
   functions. That is, they are no longer directly displayed
   on the console.
  .The console can now be displayed on any terminal. This
   is configured by the "console={tty00,tty01,ttyc2,ttyc3,ttyc4}"
   boot variable -- basically any valid /dev/tty* terminal.
  .Cutify kernel messages with colors. Configured by
   "kernelclr={1,2,3,4,5,6,7}" boot variable.
2012-10-30 11:33:29 +00:00
David van Moolenbroek 7dd6189cc7 drivers: fix various sys_irqsetpolicy calls 2012-10-24 11:29:10 +00:00
Kees Jongenburger 9a5aca794e mmc:Fixes for coverity.
Change-Id: I25e406126deb9172276844e1bb756e22e1f449f8
2012-10-22 13:40:22 +02:00
Kees Jongenburger de291cdb60 mmc:driver development added dummy driver.
* Add dummy driver to allow independent testing of mmcblk.
* Always build the mmc driver to prevent breakage.
* Allow to specify the mmc driver to be used at load time.

Change-Id: I4e14b912fb8f3612e252864b53733968b23ac023
2012-10-19 14:55:03 +02:00
Kees Jongenburger 3fab01cdb2 mmc:Indenting and code cleanup.
Change-Id: Ia1156c6b5e4dbc6c8af37d61b118258053f347ce
2012-10-16 08:40:43 +02:00
Kees Jongenburger 2d5f58d5ef mmc:Small fixup to run the driver on hardware.
Change-Id: I8e8d048da7cdfce5c9f2091969b0db5240e3e89f
2012-10-16 08:40:43 +02:00
David van Moolenbroek d2be2e7b41 mmc: various small fixes
- call blockdriver_announce() on startup;
- restart statelessly after a crash;
- resolve a clang warning.
2012-10-15 11:50:58 +00:00
Mohamed Katri d21a633ffb mkfs.mfs: dynamically size image from proto 2012-10-12 15:13:43 +02:00
Kees Jongenburger 49246fcdd5 MMC driver.
Change-Id: I0d460d63070855df9b11eaf3d33eb7bb89c570f1
2012-10-08 09:11:17 +02:00
Kees Jongenburger 4fda063232 Import MMC related bsd headers.
Copyright (c) 2006 Uwe Stuehler <uwe@openbsd.org>

Change-Id: Ia183d522a6ef1528b045a6fc6cd2e8930c669c32
2012-10-08 09:11:16 +02:00
Arne Welzel 362e4c37a1 memory: use sys_safememset() for /dev/zero 2012-09-26 02:18:00 +02:00
Thomas Veerman e61268c454 TTY: printer better diagnostics
.tell when a line is not initialized
.don't print when a request has failed, we use error codes for that
2012-09-25 09:07:09 +00:00
Ben Gras ed1af3c86c VM: full munmap
complete munmap implementation; single-page references made
a general munmap() implementation possible to write cleanly.

	. memory: let the MIOCRAMSIZE ioctl set the imgrd device
	  size (but only to 0)
	. let the ramdisk command set sizes to 0
	. use this command to set /dev/imgrd to 0 after mounting /usr
	  in /etc/rc, so the boot time ramdisk is freed (about 4MB
	  currently)
2012-09-18 13:17:52 +02:00
Ben Gras 2cb560297c VM: remove unused dma memory support functions from vm
. unused calls / data structures
2012-09-18 13:17:47 +02:00
Thomas Veerman 992799b91f VFS: make all IPC asynchronous
By decoupling synchronous drivers from VFS, we are a big step closer to
supporting driver crashes under all circumstances. That is, VFS can't
become stuck on IPC with a synchronous driver (e.g., INET) and can
recover from crashing block drivers during open/close/ioctl or during
communication with an FS.

In order to maintain serialized communication with a synchronous driver,
the communication is wrapped by a mutex on a per driver basis (not major
numbers as there can be multiple majors with identical endpoints). Majors
that share a driver endpoint point to a single mutex object.

In order to support crashes from block drivers, the file reopen tactic
had to be changed; first reopen files associated with the crashed
driver, then send the new driver endpoint to FSes. This solves a
deadlock between the FS and the block driver;
  - VFS would send REQ_NEW_DRIVER to an FS, but he FS only receives it
    after retrying the current request to the newly started driver.
  - The block driver would refuse the retried request until all files
    had been reopened.
  - VFS would reopen files only after getting a reply from the initial
    REQ_NEW_DRIVER.

When a character special driver crashes, all associated files have to
be marked invalid and closed (or reopened if flagged as such). However,
they can only be closed if a thread holds exclusive access to it. To
obtain exclusive access, the worker thread (which handles the new driver
endpoint event from DS) schedules a new job to garbage collect invalid
files. This way, we can signal the worker thread that was talking to the
crashed driver and will release exclusive access to a file associated
with the crashed driver and prevent the garbage collecting worker thread
from dead locking on that file.

Also, when a character special driver crashes, RS will unmap the driver
and remap it upon restart. During unmapping, associated files are marked
invalid instead of waiting for an endpoint up event from DS, as that
event might come later than new read/write/select requests and thus
cause confusion in the freshly started driver.

When locking a filp, the usage counters are no longer checked. The usage
counter can legally go down to zero during filp invalidation while there
are locks pending.

DS events are handled by a separate worker thread instead of the main
thread as reopening files could lead to another crash and a stuck thread.
An additional worker thread is then necessary to unlock it.

Finally, with everything asynchronous a race condition in do_select
surfaced. A select entry was only marked in use after succesfully sending
initial select requests to drivers and having to wait. When multiple
select() calls were handled there was opportunity that these entries
were overwritten. This had as effect that some select results were
ignored (and select() remained blocking instead if returning) or do_select
tried to access filps that were not present (because thrown away by
secondary select()). This bug manifested itself with sendrecs, but was
very hard to reproduce. However, it became awfully easy to trigger with
asynsends only.
2012-09-17 11:01:45 +00:00
Ben Gras d69cc76e03 rename struct mem_range to minix_mem_range
. avoid a name clash with gdb
2012-08-15 15:17:25 +02:00
David van Moolenbroek 4aec9db571 dp8390: resolve Coverity warnings (encore) 2012-08-14 09:11:18 +00:00
David van Moolenbroek bc404a9401 TTY: resolve Coverity warnings 2012-08-14 09:11:17 +00:00
David van Moolenbroek 533f61249b random: resolve Coverity warnings 2012-08-14 09:11:16 +00:00
Arun Thomas 93eadc7040 Make memory driver arch-neutral
-Use PAGE_SIZE instead of I386_PAGE_SIZE
-No need to grant ioport access for ARM
2012-08-13 17:21:47 +02:00
David van Moolenbroek cff95276d9 pci: resolve Coverity warnings
Or rather, slightly improve the code based on a false positive.
2012-08-06 16:18:40 +00:00
David van Moolenbroek 2289c91010 lance: resolve Coverity warnings 2012-08-06 16:18:39 +00:00
David van Moolenbroek 431cd9f69c fxp: resolve Coverity warnings
This removes some unused and unsupported features, and leaves in support
for another currently unused feature that might be used in the future.
2012-08-06 16:18:38 +00:00
David van Moolenbroek c984359bb0 floppy: resolve Coverity warnings 2012-08-06 16:18:37 +00:00
David van Moolenbroek 4f877afeb6 e1000: resolve Coverity warnings 2012-08-06 16:18:36 +00:00
David van Moolenbroek 6199f090c8 dpeth: resolve Coverity warnings 2012-08-06 16:18:35 +00:00
David van Moolenbroek 6e3824d78b dp8390: resolve Coverity warnings 2012-08-06 16:18:34 +00:00
David van Moolenbroek ab6e62a523 dec21140A: resolve Coverity warnings 2012-08-06 16:18:33 +00:00
Arun Thomas 19ffad7692 Remove ACK EM_WSIZE/EM_PSIZE macro usage 2012-08-06 17:49:22 +02:00