freebsd-nq/sys
Marius Strobl 0f34084f95 o Add support for eMMC DDR bus speed mode at 52 MHz to sdhci(4) and
mmc(4). For the most part, this consists of support for:
  - Switching the signal voltage (VCCQ) to 1.8 V or (if supported
    by the host controller) to 1.2 V,
  - setting the UHS mode as appropriate in the SDHCI_HOST_CONTROL2
    register,
  - setting the power class in the eMMC device according to the
    core supply voltage (VCC),
  - using different bits for enabling a bus width of 4 and 8 bits
    in the the eMMC device at DDR or higher timings respectively,
  - arbitrating timings faster than high speed if there actually
    are additional devices on the same MMC bus.

  Given that support for DDR52 is not denoted by SDHCI capability
  registers, availability of that timing is indicated by a new
  quirk SDHCI_QUIRK_MMC_DDR52 and only enabled for Intel SDHCI
  controllers so far. Generally, what it takes for a sdhci(4)
  front-end to enable support for DDR52 is to hook up the bridge
  method mmcbr_switch_vccq (which especially for 1.2 V signaling
  support is chip/board specific) and the sdhci_set_uhs_timing
  sdhci(4) method.

  As a side-effect, this change also fixes communication with
  some eMMC devices at SDR high speed mode with 52 MHz due to
  the signaling voltage and UHS bits in the SDHCI controller no
  longer being left in an inappropriate state.

  Compared to 52 MHz at SDR high speed which typically yields
  ~45 MB/s with the eMMC chips tested, throughput goes up to
  ~80 MB/s at DDR52.

  Additionally, this change already adds infrastructure and quite
  some code for modes up to HS400ES and SDR104 respectively (I did
  not want to add to much stuff at a time, though). Essentially,
  what is still missing in order to be able to activate support
  for these latter is is support for and handling of (re-)tuning.

o In sdhci(4), add two tunables hw.sdhci.quirk_clear as well as
  hw.sdhci.quirk_set, which (when hooked up in the front-end)
  allow to set/clear sdhci(4) quirks for debugging and testing
  purposes. However, especially for SDHCI controllers on the
  PCI bus which have no specific support code so far and, thus,
  are picked up as generic SDHCI controllers, hw.sdhci.quirk_set
  allows for setting the necessary quirks (if required).

o In mmc(4), check and handle the return values of some more
  function calls instead of assuming that everything went right.
  In case failures actually are not problematic, indicate that
  by casting the return value to void.

Reviewed by:	jmcneill
2017-03-19 23:27:17 +00:00
..
amd64 Implement getrandom() syscall. 2017-03-18 18:34:29 +00:00
arm Replace the hard-coded way-too-small minimum event timer period with a value 2017-03-19 21:53:12 +00:00
arm64 If ofw_bus_msimap fails don't try to use the invalid MSI/MSI-X parent node. 2017-03-16 17:49:37 +00:00
boot Delete our local imx53-qsb.dts file; the code now runs fine using the 2017-03-19 18:50:03 +00:00
bsm
cam Increase device openings to tagged maximum. 2017-03-11 18:46:46 +00:00
cddl Reduce ARC fragmentation threshold 2017-03-17 12:34:57 +00:00
compat Regenerate syscall files for r315526 2017-03-19 00:54:24 +00:00
conf use INT3 instead of NOP for x86 binary padding 2017-03-19 00:22:13 +00:00
contrib Copy needed include files from EDK2. This is a minimal set gleened 2017-03-08 02:47:59 +00:00
crypto Remove pc98 support completely. 2017-01-28 02:22:15 +00:00
ddb Fix right shifts on arches with db_expr_t larger than u_int (LP64 arches 2017-03-18 07:01:18 +00:00
dev o Add support for eMMC DDR bus speed mode at 52 MHz to sdhci(4) and 2017-03-19 23:27:17 +00:00
fs remove procfs ctl interface 2017-03-05 03:05:24 +00:00
gdb
geom After r315112 I broke the tests with eli, instead to pass 0, I should pass 2017-03-13 13:56:01 +00:00
gnu Update our device tree files to a Linux 4.10 2017-03-07 13:56:49 +00:00
i386 Implement getrandom() syscall. 2017-03-18 18:34:29 +00:00
isa Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
kern Style fixes. In particular, the variable "bogus" is used like a Boolean. 2017-03-19 23:06:11 +00:00
kgssapi
libkern Discard first 3072 bytes of RC4 keystream, this is a bandaid 2017-03-14 06:00:44 +00:00
mips Add MIPS boot support for the BCM4706/Northstar ChipCommon core. 2017-03-17 22:02:02 +00:00
modules Add a module to build imx5 dtb files. 2017-03-19 19:10:23 +00:00
net Change casting to a uintptr_t to be compatible with non-x86 architectures. 2017-03-14 22:25:07 +00:00
net80211 net80211: reschedule tasks properly after r315594. 2017-03-19 23:05:03 +00:00
netgraph mppc - Finish pluging NETGRAPH_MPPC_COMPRESSION. 2017-01-20 00:02:11 +00:00
netinet Add some ntohl() love to r315277 2017-03-14 20:57:54 +00:00
netinet6 Constrain IPv6 routes to single FIBs when net.add_addr_allfibs=0 2017-03-17 16:50:37 +00:00
netipsec Introduce the concept of IPsec security policies scope. 2017-03-07 00:13:53 +00:00
netnatm
netpfil pf: Fix rule evaluation after inet6 route-to 2017-03-19 03:06:09 +00:00
netsmb
nfs Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
nfsclient Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
nfsserver Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
nlm
ofed Add basic support for VIMAGE to the LinuxKPI and ibcore. 2017-03-16 09:59:35 +00:00
opencrypto
powerpc Introduce 64-bit PowerPC Book-E support 2017-03-17 21:40:14 +00:00
riscv Implement atomic_fcmpset_*() for RISC-V. 2017-02-05 00:32:12 +00:00
rpc Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
security Audit 'fd' and 'cmd' arguments to fcntl(2), and when generating BSM, 2016-11-22 00:41:24 +00:00
sparc64 Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
sys Regenerate syscall files for r315526 2017-03-19 00:54:24 +00:00
teken Fix bright colors for syscons, and make them work for the first time 2017-03-18 11:13:54 +00:00
tests
tools [fdt] Make DTBs generated by make_dtb.sh overlay-ready 2017-03-10 22:45:07 +00:00
ufs Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
vm Two changes to vm_fault_populate(): 2017-03-19 19:52:47 +00:00
x86 x86/srat: fix parsing of APIC IDs > MAX_APIC_ID 2017-03-16 09:33:36 +00:00
xdr
xen xenstore: fix suspension when using the xenstore device 2017-03-07 09:17:48 +00:00
Makefile Remove pc98 support completely. 2017-01-28 02:22:15 +00:00