1
0
mirror of https://git.FreeBSD.org/src.git synced 2024-12-18 10:35:55 +00:00
Mirror of the FreeBSD src repository https://git.FreeBSD.org/src.git .
Go to file
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
bin sh: Fix build with -DDEBUG=2. 2017-03-19 21:18:53 +00:00
cddl cddl: normalize paths using SRCTOP-relative paths or :H when possible 2017-03-04 11:30:04 +00:00
contrib Add clock_nanosleep() 2017-03-19 00:51:12 +00:00
crypto Upgrade to OpenSSH 7.4p1. 2017-03-06 01:37:05 +00:00
etc Remove empty Big5 directory from share/nls 2017-03-19 18:03:52 +00:00
gnu Temporary readd GNU diff 2017-03-19 17:19:59 +00:00
include Add clock_nanosleep() 2017-03-19 00:51:12 +00:00
kerberos5 kerberos5: normalize paths using SRCTOP-relative paths or :H when possible 2017-03-04 11:34:36 +00:00
lib Remove a commented out line before kvm_getprocs(3) 2017-03-19 23:04:58 +00:00
libexec Remove unused vmmeter. 2017-03-17 04:16:14 +00:00
release ec2.conf and vmimage.subr can be used from the installation livecd after 2017-03-09 01:26:10 +00:00
rescue Make rescue use SRCTOP 2017-03-12 18:59:09 +00:00
sbin Document how to use reroot with NFS. 2017-03-19 15:49:51 +00:00
secure Upgrade to OpenSSH 7.4p1. 2017-03-06 01:37:05 +00:00
share Canada adheres to ISO 8601, let's make the locale reflecting that fact 2017-03-19 18:21:35 +00:00
sys o Add support for eMMC DDR bus speed mode at 52 MHz to sdhci(4) and 2017-03-19 23:27:17 +00:00
targets pwait: Add a -t flag to specify a timeout before exiting, and tests. 2017-03-07 22:16:55 +00:00
tests ptrace_test: eliminate assumption about thread scheduling 2017-03-18 15:25:51 +00:00
tools Remove zh_TW.Big5 locale 2017-03-19 17:52:46 +00:00
usr.bin diff(1): add --strip-trailing-cr to last example in the SYNOPSIS 2017-03-19 21:49:15 +00:00
usr.sbin Improve formatting. 2017-03-19 16:17:42 +00:00
.arcconfig callsign isn't required anymore 2016-09-29 06:19:45 +00:00
.arclint phabricator related changes: 2015-04-20 20:33:22 +00:00
COPYRIGHT Bump copyright year. 2016-12-31 12:41:42 +00:00
LOCKS Explicitly require Security Officer's approval for kernel PRNG bits. 2013-09-17 14:19:05 +00:00
MAINTAINERS As suggested by several people, note that I prefer to communicate by email. 2017-03-03 20:23:21 +00:00
Makefile Remove pc98 support completely. 2017-01-28 02:22:15 +00:00
Makefile.inc1 Temporary readd GNU diff 2017-03-19 17:19:59 +00:00
Makefile.libcompat Use cross-NM (XNM) in compat32 build 2017-01-27 03:43:18 +00:00
ObsoleteFiles.inc Remove empty Big5 directory from share/nls 2017-03-19 18:03:52 +00:00
README README: remove nonexistent 'games' directory. 2016-05-18 10:43:13 +00:00
README.md Remove hard line breaks from README.md 2017-03-01 15:39:58 +00:00
UPDATING Temporary readd GNU diff 2017-03-19 17:19:59 +00:00

FreeBSD Source:

This is the top level of the FreeBSD source directory. This file was last revised on: FreeBSD

For copyright information, please see the file COPYRIGHT in this directory (additional copyright information also exists for some sources in this tree - please see the specific source directories for more information).

The Makefile in this directory supports a number of targets for building components (or all) of the FreeBSD source tree. See build(7) and http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/makeworld.html for more information, including setting make(1) variables.

The buildkernel and installkernel targets build and install the kernel and the modules (see below). Please see the top of the Makefile in this directory for more information on the standard build targets and compile-time flags.

Building a kernel is a somewhat more involved process. See build(7), config(8), and http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/kernelconfig.html for more information.

Note: If you want to build and install the kernel with the buildkernel and installkernel targets, you might need to build world before. More information is available in the handbook.

The kernel configuration files reside in the sys/<arch>/conf sub-directory. GENERIC is the default configuration used in release builds. NOTES contains entries and documentation for all possible devices, not just those commonly used.

Source Roadmap:

bin				System/user commands.

cddl			Various commands and libraries under the Common Development  
				and Distribution License.

contrib			Packages contributed by 3rd parties.

crypto			Cryptography stuff (see crypto/README).

etc				Template files for /etc.

gnu				Various commands and libraries under the GNU Public License.  
				Please see gnu/COPYING* for more information.

include			System include files.

kerberos5		Kerberos5 (Heimdal) package.

lib				System libraries.

libexec			System daemons.

release			Release building Makefile & associated tools.

rescue			Build system for statically linked /rescue utilities.

sbin			System commands.

secure			Cryptographic libraries and commands.

share			Shared resources.

sys				Kernel sources.

tests			Regression tests which can be run by Kyua.  See tests/README
				for additional information.

tools			Utilities for regression testing and miscellaneous tasks.

usr.bin			User commands.

usr.sbin		System administration commands.

For information on synchronizing your source tree with one or more of the FreeBSD Project's development branches, please see:

http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/synching.html