summaryrefslogtreecommitdiffstats
path: root/sys/dev/sdmmc
AgeCommit message (Collapse)AuthorFilesLines
2021-03-27Fix SDMMC_DEBUG buildkn2-8/+8
- Replace undefined SDMMCDEVNAME macro with usual DEVNAME from sdmmcvar.h - typofix struct member name
2021-02-26Refactor bwfm(4) firmware loading. The PCIe backend will need to be ablepatrick1-100/+3
to load the CLM blob like the SDIO backend already does. Additionally it is also helpful for the PCIe backend to try a file named after the device tree compatible. Thus refactor the SDIO code and make it available for both SDIO and PCIe.
2020-12-26sdmmc(4): sdmmc_io_function_enable(): don't sleep on lboltcheloha1-2/+2
Just sleep for 1 second on the nowake channel instead. With input from kettenis@, mpi@, and claudio@. ok kettenis@
2020-10-15Replace simple one-line bcopy()/memcpy() of faked data into scsi_xfer with callkrw1-2/+2
to scsi_copy_internal_data(). Thus getting xs->resid properly set and adding the usual uio/size sanity checks.
2020-09-22Since dlg@'s 2009 scsi midlayer refactoring the 'struct scsi_generic *cmd'krw1-9/+9
member of 'struct scsi_xfer' has always been pointed at the 'struct scsi_generic cmdstore' member of the same instance. So nuke 'cmdstore' and remove the '*' from cmd. Take the address of cmd as required by the various casts. No intentional functional change. luna88k test by aoyama@, sparc64 test by jmatthew@ Identification of 2009's last *cmd use and ok jmatthew@
2020-09-05Replace '32' with SID_SCSI2_ALEN (a.k.a. 31) when building emulated INQUIRYkrw1-2/+2
responses. This is what the SCSI specifications say is the correct value and already used in several cases.
2020-09-03Replace '.response_format = 2' with '.response_format = SID_SCSI2_RESPONSE'.krw1-2/+2
2020-09-02When building emulated INQUIRY results use the SCSI_REV_* #define's tokrw1-2/+2
initialize the 'version' field. Not numbers.
2020-09-01Rename [READ|WRITE]_BIG to [READ|WRITE]_10. Rename struct scsi_rw_big tokrw1-8/+8
struct scsi_rw_10. ok gnezdo@ jmatthew@ (who also did sparc64 compile test)
2020-08-24Implement UHS-I support in the sdmmc(4) midlayer.kettenis3-18/+156
ok mglocker@
2020-08-15Print ddr52 and hs200 indicators if those modes are supported.kettenis1-1/+5
ok stsp@
2020-08-14Add support for eMMC HS200 mode. Loosely based on code from NetBSD.kettenis5-72/+164
ok patrick@
2020-07-25No need for a bzero(), just init saa.sf to NULL. All the saa.saakrw1-2/+2
fields are explicitly initialized.
2020-07-24Turning on various scsi drivers' *DEBUG options reveals that this haskrw1-1/+5
rarely (if ever) been done. Fix many printf format errors to calm clang and gcc on amd64, i386, hppa. Missing #include, complaints if 'option <blah>DEBUG' is used in config files, etc. All in debug code.
2020-07-22Nuke unused struct scsi_link members of adapter softc's where thekrw1-2/+1
driver successfully compiles on one or more of amd64, i386, hppa.
2020-07-20Move remaining scsi bus initialization info from "prototype scsi link"krw1-5/+5
fields to struct scsibus_attach_args. Nuke the struct scsi_link * (saa_sc_link) in scaibus_attach_args. Explicitly initialize each field in scsibus_attach_args variables.
2020-07-19Move the adapter related items (luns, adapter, adapter_target,krw1-6/+6
adapter_buswidth, adapter_softc) from struct scsi_link to struct scsibus_attach_args. Additional compile tests by jmatthew@ (sparc64) and aoyam@ (luna88k).
2020-07-16Access adapter softc via link->bus->sb_adapter_softc.krw1-7/+7
In sparc64 autoconf access 'luns' via sb_luns and 'adapter_buswidth' via sb_adapter_buswidth. Removes last post-config uses of the copies of bus related information in scsi_link.
2020-07-13Remove some pointless casting of void * when assigning onekrw1-2/+2
(scsi_link.adapter_softc) to a pointer of a particular softc type.
2020-07-03Pass the expected 'scsibus_attach_args *' to scsibus_attach() viakrw2-5/+5
config_found(), not a 'scsi_link *'. Part of matthew@'s 2010 work.
2020-06-19Add support for BCM4359 SDIO variants such as the AP6359SA module foundkettenis1-1/+5
on the RockPro64 WiFi module. Note that there is no fiirmware for this chip in the bwfm-firmware package at the moment. ok patrick@
2020-06-14Make sure SDHC_HOST_CTL2 is consistently controlled using 2-byte accesses,patrick1-2/+2
otherwise it would lead to unaligned memory access. Fixes a panic on my MACCHIATObin. ok kettenis@
2020-05-22Add pre/post hooks for bus clock changes to sdhc(4). These will bepatrick2-2/+10
used by sdhc(4) attachment drivers to do additional MD initialization. ok kettenis@
2020-05-15Some newer bwfm(4) chips from Cypress hold their regulatorypatrick1-1/+12
constraints in a separate blob, instead of in the firmware. This .clm_blob needs to be loaded as well.
2020-05-13sdhc(4), sdmmc(4): tsleep(9) -> tsleep_nsec(9); ok patrick@cheloha2-18/+19
2020-04-29According to the SDIO Simplified Specification 3.0, a tuple lengthpatrick1-7/+1
(aka link field) of 0 specifies an empty tuple body. This implies that a tuple length of 0 is actually allowed, so we don't need to error out if we encounter one. Seen on an SDIO-connected ath10k. ok kettenis@
2020-04-27fix SDHC_DEBUG build, remove procname printf'sians1-5/+4
ok kettenis@
2020-04-19Add comments to clarify the hex IDs of some bwfm(4) devices on SD bus.stsp1-7/+7
ok jmc@ deraadt@ kettenis@ "thanks and don't wait for me" patrick@
2020-04-19Add support for hardware where an SDHC controller lives on a bus thatkettenis1-1/+2
only supports 32-bit access (hello Raspberry Pi). ok tobhe@
2020-04-19Add support for hardware where an SDHC controller lives on a bus thatkettenis1-21/+107
only supports 32-bit access (hello Raspberry Pi). ok tobhe@
2020-03-14On fdt platforms attempt to load system specific .txt and .bin filesjsg1-15/+71
with filenames constructed from the first compatible string of the root node. Matches the format used in the linux-firmware repository. If these are not found fallback to the generic filenames. When the compatible string contains a '/' as in 'solidrun,cubox-i/q' it will be handled as everything before the '/' so the cubox filename is brcmfmac4330-sdio.solidrun,cubox-i.txt. ok kurt@ patrick@
2020-03-13Recognize BCM43341 as a BCM43340 variant.patrick1-1/+2
From Rob Schmersel
2020-03-07Use snprintf(9) to create the names for the firmware and NVRAM files. Thispatrick1-55/+38
reduces the amount of duplicated lines per chip, and allows us to ship per- board files in the future. Based on a diff from jsg@ ok kurt@
2020-03-06Fixup bwfm(4) register bit regarding SDIO device suspend/resume.patrick1-2/+2
2020-03-06Process the NVRAM in bwfm(4) itself. So far we have relied on somepatrick1-6/+30
external tool to pre-process the NVRAM, even though it's simple to do ourselves. This allows easier firmware distribution. ok kurt@
2020-02-25Make bwfm(4) call if_input() only once per interrupt.patrick1-14/+18
This reduces drops caused by the ifq pressure drop mechanism and hence increases throughput. ok tobhe@
2020-02-20Relax the grip the dead hand of QBUS (a.k.a. MAXPHYS) has on thekrw1-1/+3
throat of physio(). Allows individual devices to eventually be modified to support larger physio() (a.k.a. 'raw') i/o's if they prove capable of them. No immediate functional change. Tested for many weeks by and ok robert@.
2020-02-12Bring a few stragglers into line with the idiom used by the other 40+krw1-6/+6
scsi drivers. i.e. eliminate the struct scsi_adapter member in the softc and rely on the pointer to a static scsi_adapter in the struct scsi_link member.
2020-01-26Shuffle some names around to make reading the code less headachekrw1-4/+4
inducing. Rename scsi_adapter member 'scsi_minphys' to 'dev_minphys' to reflect what it is supposed to do. Use consistent naming convention (<dev>_minphys) for the actual device functions. No functional change.
2020-01-25Drivers that implement their own *minphys() don't need to call thekrw1-3/+1
system minphys(). scsi_minphys() will do that and cd/sd/st will call scsi_minphys(). ok jmatthew@ as part of larger diff
2020-01-22Recognize BCM4345 rev 9, which requires a different firmware,patrick1-3/+8
as shipped with the Pinebook Pro as an AMPAK AP6256 module.
2020-01-22delete wasteful ;;deraadt1-3/+3
ok tedu
2019-12-31Convert infinite sleeps to {m,t}sleep_nsec(9).mpi2-5/+5
ok kn@
2019-04-02Don't detach non-removable devices during resume on "sdhc* at acpi?".stsp4-5/+11
Makes hibernate work with rootfs on built-in emmc storage. Tested on King Jim Portabook. ok deraadt@ kettenis@
2019-02-07Consistently use m_freem(9). This fixes possible leaks in a fewpatrick1-2/+2
error cases.
2019-02-04Turns out we do need to handle control messages that exceed MLEN, sokettenis1-6/+15
allocate a cluster if the message is larger than that. Fixes a panic on shutdown on my Asus X205TA. ok patrick@, stsp@
2018-12-29Allow passing the maximum size of a segment that a SD/MMC hostpatrick3-4/+8
controller can handle for DMA tranfers, since not all support 64k. ok kettenis@
2018-12-22Avoid using m_trailingspace(9) on an mbuf allocated with MGET(9) as it relieskettenis1-2/+4
on header fields that aren't initialized, which may trigger an assertion. Check whether the control message doesn't exceed MLEN instead and turn the check into a KASSERT as the driver should not generate control messages that are larger. with help form claudio@ (who points out that the driver should not use MT_CONTROL here). ok patrick@
2018-11-09M_LEADINGSPACE() and M_TRAILINGSPACE() are just wrappers forclaudio1-2/+2
m_leadingspace() and m_trailingspace(). Convert all callers to call directly the functions and remove the defines. OK krw@, mpi@
2018-09-06Implement 64-bit DMA support in sdhc(4).patrick2-10/+39
tested in snaps ok kettenis@