Home | History | Annotate | Download | only in sdmmc
History log of /src/sys/dev/sdmmc/sdmmcvar.h
RevisionDateAuthorComments
 1.38  17-Jan-2025  jmcneill sdmmc: Capture lan_nid and expose sdmmc_cisptr

LAN NID contains the MAC address for networking adapters.

Device drivers may want to processor vendor specific tuple codes, so
expose sdmmc_cisptr to help this.
 1.37  18-Oct-2024  jmcneill sdmmc: Add support for SD card caches.

SD physical 6.0 specification introduced Application Performance Class 2
(A2), which adds support for drive caches and command queueing.

Add support for enabling and flushing the cache when this feature is
present.
 1.36  13-Mar-2021  mlelstv branches: 1.36.18; 1.36.24;
define NO_STOP flag
 1.35  24-May-2020  riastradh branches: 1.35.2;
Fix races in sdmmc tasks and teach ld@sdmmc to abort xfers on detach.

- Teach sdmmc_add_task to queue it only if not already queued.
- Remove now-redundant logic to avoid repeated queueing elsewhere.
- Teach sdmmc_del_task to wait until task has completed.
- Call sdmmc_del_task in various needful places.
- Replace abuse of pcq by a lock and a tailq.
(pcq is multi-producer, _single_-consumer, but there are potentially
multiple consumers here and really only one producer.)
- Teach ld_sdmmc to abort xfers on detach.
(Mechanism is kinda kludgey but it'll do for now; any effort one is
tempted to spend overhauling this should be spent overhauling sdmmc
to support proper asynchronous commands.)
- Make sure ld_sdmmc_discard either returns failure or eventually calls
ldenddiscard.

XXX Currently ld_sdmmc_detach aborts xfers _before_ ldbegindetach has
has committed to detaching or not. This is currently necessary to
avoid a deadlock because ldbegindetach waits for xfers to drain --
which strikes me as wrong; ldbegindetach shouldn't wait for anything,
and should only make the decision to commit to detaching or not so
the caller can decide whether to abort xfers before we actually wait
for them in ldenddetach.

XXX pullup -- although this changes some kernel symbols (sdmmc_add_task
and sdmmc_del_task), it shouldn't affect any existing modules; the only
module that uses sdmmc is ld_sdmmc.kmod, which is `.if 0' in the build
so there shouldn't be any of them floating around.
 1.34  28-Oct-2019  mlelstv Simplyfy sdmmc_io_set_blocklen function signature by dropping the
extra softc pointer. Aligns with OpenBSD.
 1.33  28-Oct-2019  mlelstv Add and use sdmmc_pause to avoid long-term busy waits.
Add sdio abort function.
Additional error messages.
Print parameters for SDIO devices.
Minor cosmetics.
 1.32  23-Oct-2019  hkenken Add SDHC flags.

+ SDHC_FLAG_BROKEN_ADMA2_ZEROLEN
Broken ADMA2 Zero length descriptor.
Can't 64K Byte data transfer.
+ SDHC_FLAG_NO_1_8_V
Support no 1.8V Supply.
Disable UHS-I bus speed mode (SDR50, DDR50, SDR104).
 1.31  01-Sep-2019  mlelstv From OpenBSD:
- support block length per function
- add functions to read/write regions
Decode (but not use) SDIO tuple in CIS.
Fix locking.
Add more SDIO defines (partially from version 3.0).
 1.30  25-Feb-2019  jmcneill branches: 1.30.4;
Add SCF_NEED_BOUNCE command flag. Can be used by a driver to keep track of
which command(s) need data transfers to go through DMA bounce buffers.
 1.29  20-Aug-2017  mlelstv branches: 1.29.4;
make the sc_discard interface for the ld backend asynchronous and
signal completion through new callback lddiscardend. Use a standard
struct buf to pass disk address and range instead of two off_t values.

make lddiscard synchronous again. This is a requirement of the current
ffs discard code.
 1.28  16-Jul-2017  jmcneill branches: 1.28.2;
Add support for eMMC 4.5's optional cache feature. If a cache is present,
and the host controller reports the SMC_CAPS_POLLING capability (needed
to flush cache at shutdown), it will be automatically enabled and used.
 1.27  24-Jun-2017  jmcneill Revert part of previous; the SD card spec recommends not to issue a DISCARD
command to the file system area.
 1.26  24-Jun-2017  jmcneill Read SD status register and print card status when a new SD card is found:

sdmmc0: SD card status: 4-bit, C10, U1, V10

If the SD status register reports discard support, set the DISCARD arg to
the ERASE operation to let the card know that the host doesn't care if the
erase is performed.
 1.25  24-Jun-2017  jmcneill Add discard support to ld@sdmmc using the ERASE (CMD38) command.
 1.24  04-Jun-2017  jmcneill Give a hint to controllers in the command flags if we are performing a
transfer with an SDHC capable card. If the controller needs to adjust
command args, it can use this hint to understand how it is encoded.
 1.23  17-Feb-2017  nonaka branches: 1.23.6;
sdhc(4): hardware reset support for Intel eMMC controller
 1.22  17-Feb-2017  nonaka sdmmc(4): Add MMC HS DDR52 timing support bit and use __BIT() macro.
 1.21  29-Nov-2015  jmcneill branches: 1.21.2; 1.21.4;
Add some event counters to track transfer sizes.
 1.20  06-Oct-2015  mlelstv support hiding command timeout messages with a new command flag and use this
when probing for cards. Should fix PR 50302.
 1.19  09-Aug-2015  mlelstv Send an explicit CMD12 (stop transmission) when there was an error
in multi-sector I/O.

The SDHC spec has a complex flowchart describing when an explicit
CMD12 is necessary, so we probably use it too often.
 1.18  03-Aug-2015  jmcneill Add support for DDR50 transfer modes.
 1.17  02-Aug-2015  jmcneill Add basic UHS-I support. SDR50 and SDR104 are supported, but not DDR50.
 1.16  27-Feb-2015  nonaka fix to simulate multi-segment dma transfer for pq3sdhc(4).
 1.15  19-Mar-2014  nonaka branches: 1.15.4; 1.15.6;
Add a driver for Realtek RTS5209/RTS5229 Card Reader.
Ported from OpenBSD.
 1.14  12-Jul-2012  jakllsch branches: 1.14.2; 1.14.4;
Replace integer constant SDMMC_MAXNSEGS with the formula said value was
calculated from.
 1.13  11-Jul-2012  jakllsch Fix transposition typo in comment.
 1.12  01-Feb-2012  matt Use "opt_sdmmc.h" for SDMMC_DEBUG, etc.
 1.11  18-May-2011  dyoung branches: 1.11.4; 1.11.8;
#include <sys/bus.h>, not <machine/bus.h>.
 1.10  13-Feb-2011  nonaka - Don't switch MMC high-speed timing, if host controller isn't supported.
- Only check EXT_CSD STRUCTURE version when CSD version is 3.
- initialize width at sdmmc_function_alloc().
 1.9  05-Feb-2011  nonaka Don't switch SD high-speed timing, if host controller isn't supported.
 1.8  07-Oct-2010  kiyohara branches: 1.8.2; 1.8.4;
Support High-Speed mode.
 1.7  01-Oct-2010  kiyohara Use DMA bounce buffer, if DMA buffer is making by multiple segments. A lot
of host controllers do not support to two or more segments.
 1.6  23-Sep-2010  kiyohara Print bus width and clock for feature(High speed support).
 1.5  22-Sep-2010  kiyohara Back out previous change. "automagically" is NOT a typo.
 1.4  21-Sep-2010  kiyohara + Add macro SMC_CAPS_8BIT_MODE for 8bit mode support.
+ Typo. s/automagically/automatically/.
 1.3  06-Apr-2010  nonaka branches: 1.3.2;
- mention MMC SPI mode.
- support SD 4bit bus width mode.
 1.2  28-Nov-2009  nonaka branches: 1.2.2; 1.2.4;
Always sector size is treated as 512 bytes.
 1.1  21-Apr-2009  nonaka branches: 1.1.2; 1.1.4; 1.1.6; 1.1.8;
Added SD/MMC support from OpenBSD.
tested on i386, amd64 at current-users ML by pgoyette@.
tested on zaurus by myself.
 1.1.8.3  02-Dec-2009  sborrill Pull up the following revisions(s) (requested by nonaka in ticket #1167):
sys/dev/sdmmc/ld_sdmmc.c: revision 1.4
sys/dev/sdmmc/sdmmc_mem.c: revision 1.3
sys/dev/sdmmc/sdmmcvar.h: revision 1.2

Always treat sector size as 512 bytes.
 1.1.8.2  07-Oct-2009  sborrill Pull up the following revisions(s) (requested by jmcneill in ticket #1044):
distrib/sets/lists/man/mi: patch
share/man/man4/Makefile: patch
sys/arch/amd64/conf/files.amd64: 1.67
sys/arch/i386/conf/files.i386: 1.349
sys/conf/files 1.945
share/man/man4/sdmmc.4: 1.1-1.4
sys/dev/sdmmc/Makefile.sdmmcdevs 1.1
sys/dev/sdmmc/devlist2h.awk 1.1
sys/dev/sdmmc/files.sdmmc 1.1-1.2
sys/dev/sdmmc/ld_sdmmc.c 1.1-1.3
sys/dev/sdmmc/sbt.c 1.1-1.2
sys/dev/sdmmc/sdhc.c 1.1-1.3
sys/dev/sdmmc/sdhcreg.h 1.1
sys/dev/sdmmc/sdhcvar.h 1.1
sys/dev/sdmmc/sdmmc.c 1.1
sys/dev/sdmmc/sdmmc_cis.c 1.1
sys/dev/sdmmc/sdmmc_io.c 1.1
sys/dev/sdmmc/sdmmc_ioreg.h 1.1
sys/dev/sdmmc/sdmmc_mem.c 1.1-1.2
sys/dev/sdmmc/sdmmcchip.h 1.1
sys/dev/sdmmc/sdmmcdevs 1.1
sys/dev/sdmmc/sdmmcdevs.h 1.1-1.2
sys/dev/sdmmc/sdmmcreg.h 1.1-1.3
sys/dev/sdmmc/sdmmcvar.h 1.1

Add sdmmc framework
 1.1.8.1  21-Apr-2009  sborrill file sdmmcvar.h was added on branch netbsd-5 on 2009-10-07 15:41:13 +0000
 1.1.6.2  13-May-2009  jym Sync with HEAD.

Commit is split, to avoid a "too many arguments" protocol error.
 1.1.6.1  21-Apr-2009  jym file sdmmcvar.h was added on branch jym-xensuspend on 2009-05-13 17:21:29 +0000
 1.1.4.5  09-Oct-2010  yamt sync with head
 1.1.4.4  11-Aug-2010  yamt sync with head.
 1.1.4.3  11-Mar-2010  yamt sync with head
 1.1.4.2  04-May-2009  yamt sync with head.
 1.1.4.1  21-Apr-2009  yamt file sdmmcvar.h was added on branch yamt-nfs-mp on 2009-05-04 08:13:18 +0000
 1.1.2.2  28-Apr-2009  skrll Sync with HEAD.
 1.1.2.1  21-Apr-2009  skrll file sdmmcvar.h was added on branch nick-hppapmap on 2009-04-28 07:36:34 +0000
 1.2.4.3  31-May-2011  rmind sync with head
 1.2.4.2  05-Mar-2011  rmind sync with head
 1.2.4.1  30-May-2010  rmind sync with head
 1.2.2.2  22-Oct-2010  uebayasi Sync with HEAD (-D20101022).
 1.2.2.1  30-Apr-2010  uebayasi Sync with HEAD.
 1.3.2.2  21-Apr-2010  matt sync to netbsd-5
 1.3.2.1  06-Apr-2010  matt file sdmmcvar.h was added on branch matt-nb5-mips64 on 2010-04-21 00:27:52 +0000
 1.8.4.2  17-Feb-2011  bouyer Sync with HEAD
 1.8.4.1  08-Feb-2011  bouyer Sync with HEAD
 1.8.2.1  06-Jun-2011  jruoho Sync with HEAD.
 1.11.8.1  18-Feb-2012  mrg merge to -current.
 1.11.4.3  22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.11.4.2  30-Oct-2012  yamt sync with head
 1.11.4.1  17-Apr-2012  yamt sync with head
 1.14.4.1  18-May-2014  rmind sync with head
 1.14.2.2  03-Dec-2017  jdolecek update from HEAD
 1.14.2.1  20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.15.6.4  28-Aug-2017  skrll Sync with HEAD
 1.15.6.3  27-Dec-2015  skrll Sync with HEAD (as of 26th Dec)
 1.15.6.2  22-Sep-2015  skrll Sync with HEAD
 1.15.6.1  06-Apr-2015  skrll Sync with HEAD
 1.15.4.1  09-Mar-2015  snj Pull up following revision(s) (requested by nonaka in ticket #577):
sys/dev/sdmmc/sdmmc_mem.c: revision 1.34
sys/dev/sdmmc/sdmmcvar.h: revision 1.16
fix to simulate multi-segment dma transfer for pq3sdhc(4).
 1.21.4.1  21-Apr-2017  bouyer Sync with HEAD
 1.21.2.1  20-Mar-2017  pgoyette Sync with HEAD
 1.23.6.4  01-Sep-2017  martin Pull up following revision(s) (requested by mlelstv in ticket #261):
sys/dev/sdmmc/ld_sdmmc.c: revision 1.32
sys/dev/sdmmc/ld_sdmmc.c: revision 1.33
sys/dev/sdmmc/ld_sdmmc.c: revision 1.34
sys/dev/sdmmc/sdmmc_mem.c: revision 1.62
sys/dev/i2o/ld_iop.c: revision 1.39
sys/dev/ld.c: revision 1.102
sys/dev/ld.c: revision 1.103
sys/dev/dksubr.c: revision 1.98
sys/dev/dksubr.c: revision 1.99
sys/dev/sdmmc/sdmmcvar.h: revision 1.29
sys/dev/ic/ld_nvme.c: revision 1.17
sys/dev/ldvar.h: revision 1.31
sys/dev/ldvar.h: revision 1.32
sys/dev/ic/ld_cac.c: revision 1.31
sys/dev/pci/ld_virtio.c: revision 1.16
While ld(4) is MP safe, many backends are not.
Add a flag for backends that are MP safe. Take KERNEL_LOCK when calling
into a backend that doesn't have the flag set. Do the same for the
discard routine.
Fixes PR 52462.
Defer sdmmc discard operations to the sdmmc task queue. Fixes a panic
introduced by ld.c r1.102.
validate length for discard operation and split operation when byte length
doesn't fit into 'int'.
make the sc_discard interface for the ld backend asynchronous and
signal completion through new callback lddiscardend. Use a standard
struct buf to pass disk address and range instead of two off_t values.
make lddiscard synchronous again. This is a requirement of the current
ffs discard code.
Initialize error also in the case where len=0, which just succeeds.
while here, assert that the len is indeed non-negative. this is already
confirmed by sys_fdiscard, but let's be sure.
reported by: GCC, but with different compile flags
 1.23.6.3  25-Jul-2017  snj Pull up following revision(s) (requested by jmcneill in ticket #139):
sys/arch/arm/sunxi/sunxi_mmc.c: revision 1.2
sys/dev/sdmmc/ld_sdmmc.c: revision 1.31
sys/dev/sdmmc/sdmmc_mem.c: revision 1.61
sys/dev/sdmmc/sdmmcreg.h: revision 1.32
sys/dev/sdmmc/sdmmcvar.h: revision 1.28
Add support for eMMC 4.5's optional cache feature. If a cache is present,
and the host controller reports the SMC_CAPS_POLLING capability (needed
to flush cache at shutdown), it will be automatically enabled and used.
--
Add SMC_CAPS_POLLING support.
 1.23.6.2  01-Jul-2017  snj Pull up following revision(s) (requested by jmcneill in ticket #67):
sys/dev/sdmmc/ld_sdmmc.c: 1.28
sys/dev/sdmmc/sdmmc_mem.c: 1.58-1.60
sys/dev/sdmmc/sdmmcreg.h: 1.30, 1.31
sys/dev/sdmmc/sdmmcvar.h: 1.25-1.27
Add discard support to ld@sdmmc using the ERASE (CMD38) command.
--
Read SD status register and print card status when a new SD card is found:
sdmmc0: SD card status: 4-bit, C10, U1, V10
If the SD status register reports discard support, set the DISCARD arg to
the ERASE operation to let the card know that the host doesn't care if the
erase is performed.
--
Revert part of previous; the SD card spec recommends not to issue a DISCARD
command to the file system area.
 1.23.6.1  04-Jun-2017  bouyer Pull up following revision(s) (requested by jmcneill in ticket #3):
sys/dev/sdmmc/sdmmcvar.h: revision 1.24
sys/dev/sdmmc/sdmmc_mem.c: revision 1.57
sys/dev/ic/pl181.c: revision 1.4
Give a hint to controllers in the command flags if we are performing a
transfer with an SDHC capable card. If the controller needs to adjust
command args, it can use this hint to understand how it is encoded.
Re-introduce support for multi-block transfers and split transfers to fit
within the 65535-byte limit.
 1.28.2.2  16-Jul-2017  jmcneill 2978427
 1.28.2.1  16-Jul-2017  jmcneill file sdmmcvar.h was added on branch perseant-stdc-iso10646 on 2017-07-16 17:11:47 +0000
 1.29.4.2  13-Apr-2020  martin Mostly merge changes from HEAD upto 20200411
 1.29.4.1  10-Jun-2019  christos Sync with HEAD
 1.30.4.2  09-Aug-2020  martin Pull up following revision(s) (requested by mrg in ticket #1042):

sys/dev/sdmmc/if_bwfm_sdio.c: revision 1.19
sys/dev/sdmmc/ld_sdmmc.c: revision 1.38
sys/dev/sdmmc/sdmmcvar.h: revision 1.35
sys/dev/sdmmc/if_bwfm_sdio.c: revision 1.5
sys/dev/ic/bwfm.c: revision 1.26
sys/dev/ic/bwfm.c: revision 1.27
sys/dev/sdmmc/if_bwfm_sdio.c: revision 1.20
sys/dev/sdmmc/if_bwfm_sdio.c: revision 1.21
sys/dev/sdmmc/sdmmc_io.c: revision 1.20
sys/dev/sdmmc/sdmmc_mem.c: revision 1.72
sys/dev/sdmmc/sdmmc.c: revision 1.40
sys/dev/sdmmc/sdmmc_ioreg.h: revision 1.6
sys/dev/sdmmc/if_bwfm_sdio.c: revision 1.16

Don't pass empty mbufs to the network stack.

Avoid changing signedness bit with << in sdmmc_ioreg.h
Reported by <prlw1>

If the controller doesn't support switch func (opcode 6) then skip
setting this but continue with other settings. This allows us to use
a card, albeit at a lower speed.

Fix races in sdmmc tasks and teach ld@sdmmc to abort xfers on detach.
- Teach sdmmc_add_task to queue it only if not already queued.
- Remove now-redundant logic to avoid repeated queueing elsewhere.
- Teach sdmmc_del_task to wait until task has completed.
- Call sdmmc_del_task in various needful places.
- Replace abuse of pcq by a lock and a tailq.
(pcq is multi-producer, _single_-consumer, but there are potentially
multiple consumers here and really only one producer.)
- Teach ld_sdmmc to abort xfers on detach.
(Mechanism is kinda kludgey but it'll do for now; any effort one is
tempted to spend overhauling this should be spent overhauling sdmmc
to support proper asynchronous commands.)
- Make sure ld_sdmmc_discard either returns failure or eventually calls
ldenddiscard.

XXX Currently ld_sdmmc_detach aborts xfers _before_ ldbegindetach has
has committed to detaching or not. This is currently necessary to
avoid a deadlock because ldbegindetach waits for xfers to drain --
which strikes me as wrong; ldbegindetach shouldn't wait for anything,
and should only make the decision to commit to detaching or not so
the caller can decide whether to abort xfers before we actually wait
for them in ldenddetach.

XXX pullup -- although this changes some kernel symbols (sdmmc_add_task
and sdmmc_del_task), it shouldn't affect any existing modules; the only
module that uses sdmmc is ld_sdmmc.kmod, which is `.if 0' in the build
so there shouldn't be any of them floating around.

Make this work on big endian machines

move some of the patching of callbacks and other data after
ieee80211_ifattach() but before if_deferred_start_init().
may fix panic i saw in after restarting wpa_supplicant.
from mlelstv.

only ask for SDPCMD_INTSTATUS_HMB_SW_MASK and SDPCMD_INTSTATUS_CHIPACTIVE
interrupts, not all of them. we only ack these ones.
mostly fixes pinebookpro wifi hard hangs. still is problematic and can
trigger interrupt storm that appears as a hard hang without NET_MPSAFE,
and a follow up, less clearly right, change will reduce that to a soft
hang of the interface that can be cleared with 'ifconfig bwfm0 down up',
and even often recovers itself now.

clear all interrupts, not just those we expect from the hostintmask.
this removes the final hard hang i have seen in pinebookpro wifi,
though one may still need to 'ifconfig bwfm0 down up' occasionally,
so we still have bugs to fix here (the hang is usually associated
with 'checksum error' from bwfm/sdio.)

Sort #includes. Nix trailing whitespace.
No functional change intended.
 1.30.4.1  25-Feb-2020  martin Pull up following revision(s) (requested by mrg in ticket #717):

sys/dev/fdt/dwcmmc_fdt.c 1.11
sys/dev/ic/bwfm.c 1.15-1.18
sys/dev/ic/bwfmreg.h 1.4-1.6
sys/dev/ic/bwfmvar.h 1.4,1.5
sys/dev/ic/dwc_mmc.c 1.21,1.22
sys/dev/ic/dwc_mmc_reg.h 1.8,1.9,1.12,1.13
sys/dev/pcmcia/pcmciareg.h 1.11
sys/dev/sdmmc/if_bwfm_sdio.c 1.4,1.6-1.12
sys/dev/sdmmc/if_bwfm_sdio.h 1.1,1.2
sys/dev/sdmmc/sdhc.c 1.105,1.106
sys/dev/sdmmc/sdmmc.c 1.37,1.39
sys/dev/sdmmc/sdmmc_cis.c 1.6,1.8
sys/dev/sdmmc/sdmmc_io.c 1.15-1.19
sys/dev/sdmmc/sdmmc_ioreg.h 1.4,1.5
sys/dev/sdmmc/sdmmc_mem.c 1.69-1.71
sys/dev/sdmmc/sdmmcdevs 1.5-1.8
sys/dev/sdmmc/sdmmcvar.h 1.31,1.33,1.34
sys/net/if_media.h 1.66

Add Broadcom devices
-
Fix typo
-
add PCMCIA_CISTPL_SDIO definition.
-
From OpenBSD:
- move event handling to workqueue
- check for save/restore capability
-
Tag work queue as MPsafe and increase length.
-
Juse use bpf_mtap(), the 802.11 encapsulation is handled by firmware.
-
From OpenBSD:
- support block length per function
- add functions to read/write regions
-
Decode (but not use) SDIO tuple in CIS.
-
Fix locking.
-
Add more SDIO defines (partially from version 3.0).
-
From OpenBSD:
- All the missing pieces (firmware load, chip setup, protocol handling)
TX queue and interrupt handling via sdmmc_task.
-
Fix locking.
-
Fix packet parsing.
-
Add parser for original firmware config files.
-
tagging work queue as MPSAFE was premature. Revert.
-
SD_IO_RW_EXTENDED is a data transfer command, so set ADTC flag instead of AC
Use correct function to verify if a task has been queued. Avoids race
that can corrupt the task queue.
-
More register definitions.
-
Add IFM_IEEE80211_VHT subtype, IFM_IEEE80211_11AC operating mode, and missing descriptions
-
If firmware is connected in HT or VHT mode, report it to SIOCGIFMEDIA
-
white space police.

Skip setting power when the voltage doesn't change.
Also increase some timeouts.
-
Add and use sdmmc_pause to avoid long-term busy waits.
-
Add sdio abort function.
-
Additional error messages.
-
Print parameters for SDIO devices.
-
Minor cosmetics.
-
Simplyfy sdmmc_io_set_blocklen function signature by dropping the
extra softc pointer. Aligns with OpenBSD.
-
Missing commit for sdio abort function.
-
More code from OpenBSD
-
no need to splnet() when enqueing packets
-
explicit structure padding
-
make internal functions static
-
also prepare for GPIO interrupts.
-
Avoid warnings for tautological shifts as sole conditional.
-
Follow the Linux driver an use the FDT "compatible" property to build a
filename for the nvram config file, fall back to the standard filename.
E.g.
[Caching 123 nodes and 1093 properties]
compatible 73696e6f 766f6970 2c627069 2d6d322d "sinovoip,bpi-m2-
0010: 7a65726f 00...... ........ ........ zero"
0015: 616c6c77 696e6e65 722c7375 6e38692d "allwinner,sun8i-
0025: 68322d70 6c757300 ........ ........ h2-plus"
interrupt-parent 00000001 ........ ........ ........ ....
model 42616e61 6e612050 69204250 492d4d32 "Banana Pi BPI-M2
0010: 2d5a6572 6f00.... ........ ........ -Zero"
name 00...... ........ ........ ........ ""
serial-number 30326330 30303432 65636431 36376566 02c00042ecd167ef
0010: 00...... ........ ........ ........ .
-rw-r--r-- 1 root wheel 875 Nov 2 12:06 brcmfmac43430-sdio.AP6212.txt
lrwxr-xr-x 1 root wheel 29 Dec 30 16:19 brcmfmac43430-sdio.sinovoip,bpi-m2-zero.txt -> brcmfmac43430-sdio.AP6212.txt
-rw-r--r-- 1 root wheel 874 Jun 30 2019 brcmfmac43430-sdio.raspberrypi,3-model-b.txt
-rw-r--r-- 1 root wheel 1864 Jun 30 2019 brcmfmac43455-sdio.raspberrypi,3-model-b-plus.txt
lrwxr-xr-x 1 root wheel 29 Dec 30 11:24 brcmfmac43455-sdio.raspberrypi,4-model-b-plus.txt -> brcmfmac43455-sdio.raspberrypi,3-model-b-plus.txt
-
Add product ID for Broadcom BCM43455
-
Use correct firmware for BCM43456
-
size check was backwards.
-
Be less noisy for some commands.
-
Fix DWC_MMC_INT_SDIO_INT bit
-
dwc_mmc fixes:
- Rockchip uses a different SDIO int bit, so take this into consideration
- Avoid unnecessary resets and always wait for resets to complete
- kpause instead of delay while holding spinlock
- Do not attempt autostop for SD_IO_RW_EXTENDED commands
- Allow for sub-blklen byte counts for single block transfers
-
More SDIO stability and performance fixes
 1.35.2.1  03-Apr-2021  thorpej Sync with HEAD.
 1.36.24.1  02-Aug-2025  perseant Sync with HEAD
 1.36.18.2  02-Feb-2025  martin Pull up following revision(s) (requested by jmcneill in ticket #1041):

sys/dev/ic/bwi.c: revision 1.40
share/man/man4/bwi.4: revision 1.15
sys/dev/sdmmc/if_bwi_sdio.c: revision 1.1
sys/dev/ic/bwi.c: revision 1.41
sys/dev/sdmmc/sdmmcvar.h: revision 1.38
sys/dev/ic/bwireg.h: revision 1.5
sys/dev/ic/bwi.c: revision 1.39
sys/dev/ic/bwivar.h: revision 1.11
sys/dev/sdmmc/sdmmc_cis.c: revision 1.10
sys/dev/sdmmc/files.sdmmc: revision 1.6
sys/arch/evbppc/conf/WII: revision 1.7

bwi: Remove unnecessary pcivar.h include

sdmmc: Capture lan_nid and expose sdmmc_cisptr
LAN NID contains the MAC address for networking adapters.
Device drivers may want to processor vendor specific tuple codes, so
expose sdmmc_cisptr to help this.

bwi(4): Add support for Nintendo Wii WLAN.

Adapt the bwi(4) driver to support SDIO attachment and driving TX/RX using
PIO instead of DMA since the latter is not supported on SDIO busses.

fix uninitialized
 1.36.18.1  26-Oct-2024  martin Pull up following revision(s) (requested by jmcneill in ticket #985):

sys/dev/sdmmc/sdmmcvar.h: revision 1.37
sys/dev/sdmmc/sdmmcreg.h: revision 1.35
sys/dev/sdmmc/ld_sdmmc.c: revision 1.44
sys/dev/sdmmc/sdmmc_mem.c: revision 1.76

sdmmc: Add support for SD card caches.

SD physical 6.0 specification introduced Application Performance Class 2
(A2), which adds support for drive caches and command queueing.

Add support for enabling and flushing the cache when this feature is
present.

RSS XML Feed