On Friday 21 of September 2012 17:34:27 Marek Vasut wrote: > Dear Pavel Herrmann, > > [...] > > > > > 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) > > Why not USB flash ? Why not SD, what other stuff do you need for that? Is > the API not misdesigned then?
you should have a blockdev driver for USB flash and SD, but not blockctrl > > > > 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 > > You might want to do RAW reads, so why do you put filesystem into this > context? yes, you can do raw reads, but in most cases you are using a filesystem. i put filesystem there to differentiate from nand devices (which have a special flash- based filesystems in most cases). > > > > - 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) > > So your "blockctrl" should do the USB/SD/whatever muxing. no, blockdev shoud be the last common part, for SD/USB, you should have a different blockdev driver, that uses USB/SD API for the actual works blockctrl is just an unified look at whatever now resides in drivers/block > > 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) > > Make sure you document this in the next series. > > > Pavel Herrmann > > Best regards, > Marek Vasut _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot