Commit graph

22 commits

Author SHA1 Message Date
David van Moolenbroek 6700874deb Block drivers: make IOCTL request unsigned long
The block driver protocol and libblockdriver's bdr_ioctl hook are
changed, as well as the users of this hook. Other parts of the system
are expected to change accordingly eventually, since the ioctl(2)
prototype has been aligned with NetBSD's.

Change-Id: Ide46245b22cfa89ed267a38088fb0ab7696eba92
2014-02-19 11:22:15 +01:00
David van Moolenbroek 95624ae072 Block protocol: add user endpoint to IOCTL request
I/O control requests now come with the endpoint of the user process
that initiated the ioctl(2) call. It is stored in a new BDEV_USER
field, which is an alias for BDEV_FLAGS. The contents of this field
are to be used only in highly specific situations. It should be
preserved (not replaced!) by services that forward IOCTL requests,
and may be set to NONE for service-initiated IOCTL requests.

Change-Id: I68a01b9ce43eca00e61b985a9cf87f55ba683de4
2014-02-19 11:22:15 +01:00
David van Moolenbroek 0f7f3c0d54 libblockdriver: various updates
- internal structure rearrangement;
- respond to char device open requests to avoid hanging VFS threads;
- make drivers use designated initializers;
- use devminor_t for all minor device numbers;
- change bdr_other hook to take ipc_status and return nothing;
- fix default geometry computation;
- add support for sef_cancel.

Change-Id: Ia063a136a3ddb2b78de36180feda870605753d70
2014-02-19 11:22:15 +01:00
David van Moolenbroek 26cb85535e Block drivers: reply ENOTTY to unknown IOCTLs
Change-Id: Ie2e82d2491d546f4dd73b009100646e249a147b5
2014-02-19 11:22:15 +01:00
David van Moolenbroek a1f00d5527 Move SUB_PER_DRIVE definition into minix/drvlib.h
Change-Id: Id25761085ce1868955da34d8e530e170448ea154
2014-02-19 11:21:56 +01:00
Kees Jongenburger 43581a14ee arm:replace ifdef's by runtime checks.
Change-Id: Iff966f2214e2d8bb6b72dd0a119085709f2d4a9c
2013-12-03 09:19:25 +01:00
Kees Jongenburger 7d85156ac0 arm:mmc driver refactor (use structs)
Defined register offsets and device configurations in structs to
allow more flexibility. This change will allow to support multiple
instances of a driver using a different bus. This is needed for the
BeagleBone Black.

Change-Id: I24e16faeea338c9a847941a846e6d4e49432525e
2013-11-01 16:46:39 +01:00
Kees Jongenburger 02f6308a2b arm:mmc driver speedup.
Speedup the mmc driver one more time before doing a proper fix.

Change-Id: I9dbe9b1e16e71fed00c8ac3ca7fdc6c4374284c0
2013-09-26 12:11:29 +02:00
Kees Jongenburger 964e313c94 arm:use the 4 bit mmc data bus if supported by the card.
Change-Id: I55de05db23ad1766e5faec93252e8410cbf59001
2013-06-24 09:12:11 +02:00
Kees Jongenburger 061fed753e arm:mmc driver refactor and timeout fix for BeagleBoneBlack.
When we send MMC commads that contain data the controller provides no
description of the order of events and we need to be able to send data
from and to the controller "when needed". Changed the code to react
on buffer read and buffer write ready based on interrupts.

Change-Id: I60c9140bf0e45b74be6475054564d4e1bd89f21e
2013-06-24 09:12:10 +02:00
Kees Jongenburger 718114d9b0 arm:mmc driver refactor.
Generalize the usage of mmc_send_cmd function to allow
it to transfer data and remove direct invocations to
mmchs_send_cmd.

Change-Id: Iabb9a7d3f4ec57536407b369531ded2b8b649cce
2013-06-18 14:35:44 +02:00
Kees Jongenburger 758c8eaf41 arm:adapt MMC driver to also work on the AM335X platform.
Change-Id: I30e69b7bfd377d1dd2b0b458dd00ee411b060285
2013-05-24 15:47:04 +02:00
Kees Jongenburger 0748a95f88 arm:mmc only compile mmchs when targeting arm.
Change-Id: Ie8d0b6461b58c2a7becda98401dece81be607a01
2013-05-24 15:46:59 +02:00
Kees Jongenburger 6a290814ae mmc:Ignore SIGTERM if open count > 0
Change-Id: I996497335b4209ff7ef95dfa977d97e5557456e9
2013-02-14 10:20:21 +01:00
Kees Jongenburger 3de9b14567 mmc:development
* let busy loops timeout.
* Start using interrupt handlers.
* Allocate the ramdisk only when used.

Change-Id: Ie08d66eefef3c8cd3ee16c04f74a9a50cc12b021
2013-02-01 13:31:10 +01: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
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