
On Friday 21 of September 2012 15:53:26 Marek Vasut wrote:
Dear Pavel Herrmann,
On Friday 21 of September 2012 14:39:14 Marek Vasut wrote:
Dear Pavel Herrmann,
On Thursday 20 of September 2012 21:58:17 Marek Vasut wrote:
Dear Pavel Herrmann,
This core will register all block devices (disk, cards, partitons) and provide unfied access to them, instead of current method with device + partition offset
Signed-off-by: Pavel Herrmann morpheus.ibis@gmail.com
Makefile | 1 + drivers/blockdev/Makefile | 42 ++++++++++++++++ include/dm/blockdev.h | 121
++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 164 insertions(+)
create mode 100644 drivers/blockdev/Makefile create mode 100644 include/dm/blockdev.h
Why not use drivers/block/ ?
Because the drivers in drivers/block have a different purpose than blockdev.
Different, ok. Can you elaborate how is it different?
blockctrl is equivalent in purpose to drivers/block, just a new approach
blockctrl = AHCI, PIIX... whichever chip you have between SATA and PCI (or generally disk-bus and board-bus)
So this is for sata ? Or will it also by used for SD/USB flash discs?
no, blockctrl will be used for SATA, PATA, SCSI, and anything of the sort (device with several ports, block devices on said ports, ability to send read/write/query commands to devices on ports - definitely not USB, possibly also SD, but you probably want more operations from SD)
blockdev = disk, partition, SD card
Uh, let's say I understand (even if I don't see the correlation between partition and SD card)
they are an ordered bunch of blocks with a "conventional" filesystem on them
- something that does basic checks
(range, possibility of operation) and submits operations to correct parent (blockctrl, MMC controller, whatnot).
Ascii art might help here greatly (how these pieces fall together). I think I do understand it though.
current code user -> FS -> offset calculation from partition info -> drivers/disk
new code user -> FS -> blockdev -> blockctrl (or USB or SD controller)
partition blockdev does all the offset calculation and range check that FSs do now, and then submits the operation to the parent blockdev, which in turn submits it to blockctrl (or an SD controller in case of a SD card, or USB controller in case of a USB flash)
Pavel Herrmann