#
1cdb3beb |
|
27-Feb-2024 |
SED4906 <sed4906birdie@gmail.com> |
sdhci: add ACPI-enumerated device support Change-Id: I5c42344b2499bd22581d6b564192decbce937645 Reviewed-on: https://review.haiku-os.org/c/haiku/+/7456 Reviewed-by: Adrien Destugues <pulkomandy@pulkomandy.tk> Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
|
#
7a160a86 |
|
06-Dec-2020 |
Adrien Destugues <adrien.destugues@opensource.viveris.fr> |
mmc_disk: read using "simple DMA" The SDHCI spec also offers an "advanced DMA" mode where we can use scatter-gather lists. It would allow to remove several of the DMA restrictions, but hardware support for it is optional, so we need this version anyway. The geometry is retrieved on demand in the first read or write or in a call to the get geometry or get device size ioctl. It is not possible to retrieve it from the device initialization because that is called as part of the mmc_bus scanning, which needs a specific sequence of commands and keeps the bus locked to prevent drivers to insert their own commands in the middle of that sequence. TODO: - Move the DMA restrictions definition to sdhci_pci and forward it up to mmc_disk (which is the one creating the IOScheduler) - Decide if we want to keep non-DMA support (probably should, but it makes things more complex, because it uses virtual addresses) Change-Id: Ib1dd14eacf62052d747bfb3ef7820bc5a34d3030 Reviewed-on: https://review.haiku-os.org/c/haiku/+/3471 Reviewed-by: Alex von Gluck IV <kallisti5@unixzen.com>
|
#
ff76d2df |
|
10-Feb-2019 |
Adrien Destugues <pulkomandy@pulkomandy.tk> |
sdhci and mmc implementation sdhci: - Add semaphore for interrupt management - Add basic operations (setting clock, executing a command) - Add early initialization (clocks and power up) - Wrap the bus in a C++ class to ease usage - Expose API to MMC bus manager - TODO: manage card insertion and removal interrupts - TODO: use MSI when available mmc_bus: - Implements SD card management independant of the way we access the bus (later on different drivers can provide the same API as SDHCI) - Worker thread to do the initialization - Implement card initialization process up until getting an RCA from the card. This is the generic part to assign an ID to the card, after this point commands can be targetted at the specific card so it can be handed over to the mmc_disk driver. - TODO: initialization for non-SDHC cards which do not reply to CMD8. Change-Id: I71950ca3ce206378a68fa7f97c19f638183d6cdd Reviewed-on: https://review.haiku-os.org/c/1032 Reviewed-by: waddlesplash <waddlesplash@gmail.com>
|
#
25b6a6f1 |
|
28-Apr-2018 |
krish_iyer <krishnaniyer97@gmail.com> |
SDHCI MMC Driver 1. SDHCI PCI Bus: Discovering SDHC device from the PCI bus and registers a child node(MMC bus) to which slots are attached. SDHC registers are mapped by MMUIO, they are binded in a structure(struct* registers). A pin based interrupt handler is also installed, which triggers the handler function and interrupts are being taken care of. Added API's to set-up and the clock for SD/MMC card, change frequency and reset the registers. 2. Device Manager: Currently, busses subdir lists are har- dcoded and in order to load the driver. We hard coded the bus dir under PCI devices. 3. MMC Disk Driver: In order to register the slots under /dev/disk/mmc and hence data transfer and other operations can be done. 4. MMC Bus Manager: Setted up a bus manager to create an object to do a particular for eg certain data transfer and get freed until another operation is requested. Change-Id: I369354da6b79adc6b6dfb08fe160334af1392a34 Reviewed-on: https://review.haiku-os.org/318 Reviewed-by: Alexander von Gluck IV <kallisti5@unixzen.com>
|