<feed xmlns='http://www.w3.org/2005/Atom'>
<title>src/sys/dev/mmc, branch release/10.1.0</title>
<subtitle>FreeBSD source tree</subtitle>
<id>https://cgit-dev.freebsd.org/src/atom?h=release%2F10.1.0</id>
<link rel='self' href='https://cgit-dev.freebsd.org/src/atom?h=release%2F10.1.0'/>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/'/>
<updated>2014-08-11T01:22:10Z</updated>
<entry>
<title>MFC r269341: Populate disk-&gt;d_ident with the sd or mmc card's serial number.</title>
<updated>2014-08-11T01:22:10Z</updated>
<author>
<name>Ian Lepore</name>
<email>ian@FreeBSD.org</email>
</author>
<published>2014-08-11T01:22:10Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=cdc42107a7b59619e364a3d0f863b10ee1f7c1f3'/>
<id>urn:sha1:cdc42107a7b59619e364a3d0f863b10ee1f7c1f3</id>
<content type='text'>
</content>
</entry>
<entry>
<title>MFC r261938, r261939, r261940, r261944, r261945, r261946, r261947, r261956, r261957, r261983, r261094,</title>
<updated>2014-05-15T22:35:04Z</updated>
<author>
<name>Ian Lepore</name>
<email>ian@FreeBSD.org</email>
</author>
<published>2014-05-15T22:35:04Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=68602f513a7eefc7bbb559936a5d47ae64cbc25f'/>
<id>urn:sha1:68602f513a7eefc7bbb559936a5d47ae64cbc25f</id>
<content type='text'>
    r261955, r261958,

  Add a driver to provide access to imx6 on-chip one-time-programmble data.

  Make it possible to access the ocotp registers before the ocotp device
  is attached, by establishing a temporary mapping of the registers when
  necessary.

  It turns out Freescale cleverly made the ocotp device compatible across
  several different families of SoCs, so move it to the freescale directory
  and prefix everything with fsl rather than imx6.

  Convert the imx6 sdhci "R1B fix" from a busy-loop in the interrupt handler
  to a callout.

  Increase the wait time for acquiring the SD bus from 10 to 250ms.

  If no compatible cards were found after probing the SD bus, say so.

  Add timeout logic to sdhci, separate from the timeouts done by the hardware.

  After a timeout, reset the controller using SDHCI_RESET_CMD|SDHCI_RESET_DATA
  rather than SDHCI_RESET_ALL; the latter turns off clocks and power, removing
  any possibility of recovering from the error.

  Add a helper routine to depth-search the device tree for a node with a
  matching 'compatible' property.
</content>
</entry>
<entry>
<title>MFC r261423, r261424, r261516, r261513, r261562, r261563, r261564, r261565,</title>
<updated>2014-05-15T17:30:16Z</updated>
<author>
<name>Ian Lepore</name>
<email>ian@FreeBSD.org</email>
</author>
<published>2014-05-15T17:30:16Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=aac49345d30f4a7d3a1f7d0a2736340168cc31d3'/>
<id>urn:sha1:aac49345d30f4a7d3a1f7d0a2736340168cc31d3</id>
<content type='text'>
    r261596, r261606

  Add the imx sdhci controller.

  Move Open Firmware device root on PowerPC, ARM, and MIPS systems to
  a sub-node of nexus (ofwbus) rather than direct attach under nexus. This
  fixes FDT on x86 and will make coexistence with ACPI on ARM systems easier.
  SPARC is unchanged.

  Add the missing ')' at end of sentence.  Reword it to use a more common idiom.

  Pass the kernel physical address to initarm through the boot param struct.

  Make functions only used in vfp.c static, and remove vfp_enable.

  Fix __syscall on armeb EABI. As it returns a 64-bit value it needs to
  place 32-bit data in r1, not r0. 64-bit data is already packed correctly.

  Use abp_physaddr for the physical address over KERNPHYSADDR. This helps us
  remove the need to load the kernel at a fixed address.

  Remove references to PHYSADDR where it's used only in debugging output.

  Dynamically generate the page table. This will allow us to detect the
  physical address we are loaded at to change the mapping.
</content>
</entry>
<entry>
<title>Don't give up so easily on failure of CMD55 to put the card into app-cmd</title>
<updated>2013-08-23T15:07:54Z</updated>
<author>
<name>Ian Lepore</name>
<email>ian@FreeBSD.org</email>
</author>
<published>2013-08-23T15:07:54Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=a6e2415cc4b2f026f7c6dfa3cc55dd2c6a9180d8'/>
<id>urn:sha1:a6e2415cc4b2f026f7c6dfa3cc55dd2c6a9180d8</id>
<content type='text'>
mode.  We don't know why it failed, so we can't know that a retry will
also fail (the low-level driver might have reset the controller state
machine or something similar that would allow a retry to work).
</content>
</entry>
<entry>
<title>Make the standard sdhci(4) driver work for the TI OMAP family SoCs.</title>
<updated>2013-08-20T12:33:35Z</updated>
<author>
<name>Ian Lepore</name>
<email>ian@FreeBSD.org</email>
</author>
<published>2013-08-20T12:33:35Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=59769a581f13e040d88d5f5b2302887e7bc6c63f'/>
<id>urn:sha1:59769a581f13e040d88d5f5b2302887e7bc6c63f</id>
<content type='text'>
The MMCHS hardware is pretty much a standard SDHCI v2.0 controller with a
couple quirks, which are now supported by sdhci(4) as of r254507.

This should work for all TI SoCs that use the MMCHS hardware, but it has
only been tested on AM335x right now, so this enables it on those platforms
but leaves the existing ti_mmchs driver in place for other OMAP variants
until they can be tested.

This initial incarnation lacks DMA support (coming soon).  Even without it
this improves performance pretty noticibly over the ti_mmchs driver,
primarily because it now does multiblock IO.
</content>
</entry>
<entry>
<title>Consistently init all mmc request, command, and data structures to zero</title>
<updated>2013-08-17T00:19:27Z</updated>
<author>
<name>Ian Lepore</name>
<email>ian@FreeBSD.org</email>
</author>
<published>2013-08-17T00:19:27Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=ed7142a72da78712e844f40399ea3844c0e7c70c'/>
<id>urn:sha1:ed7142a72da78712e844f40399ea3844c0e7c70c</id>
<content type='text'>
before using them.
</content>
</entry>
<entry>
<title>Handle command retries for commands originating at the mmc layer, and</title>
<updated>2013-08-16T23:05:34Z</updated>
<author>
<name>Ian Lepore</name>
<email>ian@FreeBSD.org</email>
</author>
<published>2013-08-16T23:05:34Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=a8328210d05a13ccb5efb3e3ffe8424746c0228f'/>
<id>urn:sha1:a8328210d05a13ccb5efb3e3ffe8424746c0228f</id>
<content type='text'>
ensure that all such commands have a non-zero retry count except for those
that are expected to fail (for example, because they are used to probe for
feature support).

While it is possible to pass a retry count down to the hardware driver in
the command request structure, no hardware driver currently implements any
retry logic.  The hardware doesn't know much about the context of a single
request, so it makes more sense to handle retries at a layer that does.

This adds retry loops to the mmc_wait_for_cmd() and mmc_wait_for_app_cmd()
functions.  These functions are the gateway from other code within mmc.c
to the hardware.  App commands are a sequence of two commands and a retry
has to rerun both of them in order, so it needs its own retry loop.

Retry looping is specifically NOT implemented in mmc_wait_for_request()
because it is the gateway for children on the bus, and they have to
implement their own retry logic depending on what makes sense for them.
</content>
</entry>
<entry>
<title>During card identification, run the bus at 400KHz, not the minimum</title>
<updated>2013-08-16T20:32:56Z</updated>
<author>
<name>Ian Lepore</name>
<email>ian@FreeBSD.org</email>
</author>
<published>2013-08-16T20:32:56Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=df736d55a1bbf6f53e0d166e71920dbb80fcaef8'/>
<id>urn:sha1:df736d55a1bbf6f53e0d166e71920dbb80fcaef8</id>
<content type='text'>
speed the bus claims to be capable of.  The 400KHz speed is dictated
by the SD and MMC standards.
</content>
</entry>
<entry>
<title>Print the card relative address in hex, because that's what all the</title>
<updated>2013-08-16T20:22:57Z</updated>
<author>
<name>Ian Lepore</name>
<email>ian@FreeBSD.org</email>
</author>
<published>2013-08-16T20:22:57Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=65f63c73cb2b44bb378f46875acef64ba14bf865'/>
<id>urn:sha1:65f63c73cb2b44bb378f46875acef64ba14bf865</id>
<content type='text'>
other debugging output does (when it appears in command arguments,
for example).
</content>
</entry>
<entry>
<title>Use meaningful names when creating mmc/sd threads.</title>
<updated>2013-07-09T03:00:06Z</updated>
<author>
<name>Rui Paulo</name>
<email>rpaulo@FreeBSD.org</email>
</author>
<published>2013-07-09T03:00:06Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=88e07d922d89a6c36502eab5c2729ead700d6e9c'/>
<id>urn:sha1:88e07d922d89a6c36502eab5c2729ead700d6e9c</id>
<content type='text'>
This can be useful when we want to be able to identify which mmcsd is stuck.
</content>
</entry>
</feed>
