SlideShare a Scribd company logo
1 of 26
Download to read offline
Kernel recipies 2018
SD/eMMC: new speed modes and
their support in Linux
Gregory CLEMENT
Bootlin gregory@bootlin.com
embedded Linux and kernel engineering
- Kernel, drivers and embedded Linux - Development, consulting, training and support - https://bootlin.com 1/26
Gregory CLEMENT
▶ Embedded Linux engineer and trainer at
Bootlin
▶ Embedded Linux expertise
▶ Development, consulting and training
▶ Strong open-source focus
▶ Open-source contributor
▶ Contributing to kernel support for the
Armada 370, 375, 38x, 39x and Armada XP
ARM SoCs and Armada 3700, 7K/8K ARM64
SoCs from Marvell.
▶ Co-maintainer of mvebu sub-architecture
(SoCs from Marvell Engineering Business Unit)
▶ Living near Lyon, France
embedded Linux and kernel engineering
- Kernel, drivers and embedded Linux - Development, consulting, training and support - https://bootlin.com 2/26
SD card and eMMC
SD card and eMMC have common point:
▶ Both come from MMC (MultiMediaCards).
▶ Increase their bandwidth as new versions of the
standards were released
▶ Now they can reach more than 400MB/s in theory
▶ Supported in Linux though the mmc subystem
Photographies from Wikipedia, credit:
MMC: Pixelk - CC BY 1.0
SD Card: Adryan R. Villanueva - CC BY-SA 4.0
eMMC: Toniperis - CC BY-SA 4.0
- Kernel, drivers and embedded Linux - Development, consulting, training and support - https://bootlin.com 3/26
Overview of this talk
▶ Presentation of SD Card and eMMC
▶ Initial support in Linux
▶ The new speed modes
▶ State of the support for these new speed modes in Linux
- Kernel, drivers and embedded Linux - Development, consulting, training and support - https://bootlin.com 4/26
SD card
▶ SD stands for Secure Digital
▶ “Secure“ for copyright content
▶ Introduced in 1999
▶ MMC extension
▶ Standardized by SDA (SD Association created in 2000)
- Kernel, drivers and embedded Linux - Development, consulting, training and support - https://bootlin.com 5/26
SD card - Hardware
▶ Flash chip + small micro-controller in a card
▶ 9 pins: CLK, CMD, DAT0-3, VDD, VSS1-2
▶ SPI mode compatibility
▶ DAT3 -> CS, CMD -> DI, DAT0 -> DO
▶ In initial release 25MHz clock
- Kernel, drivers and embedded Linux - Development, consulting, training and support - https://bootlin.com 6/26
SD card - Protocol
SD Bus protocol
▶ Command and data bit stream
▶ Command and response on CMD line
▶ Data on the data lines
▶ Basic transaction command/response
▶ Some operations can have data token
▶ All communication initiated by the host
▶ Data transfer in block with CRC
▶ Multiple data block: always stop by a host command
- Kernel, drivers and embedded Linux - Development, consulting, training and support - https://bootlin.com 7/26
SD card vs MMC
▶ Initial version: 1 data line for MMC vs 4 for SD card
▶ Nowadays MMC can go up to 8 data lines
▶ No DRM in MMC
▶ Command set diverged
▶ Both have SPI compatibility mode
- Kernel, drivers and embedded Linux - Development, consulting, training and support - https://bootlin.com 8/26
eMMC
▶ other MMC extension from MMCA and JDEC
▶ eMMC stands for embedded MultiMedia Card
▶ Mentioned in the MMC spec v4.1 in 2007
- Kernel, drivers and embedded Linux - Development, consulting, training and support - https://bootlin.com 9/26
eMMC - Hardware
▶ Flash chip + small micro-controller in BGA chip
▶ Pinout:
▶ Since 4.1, 14 pins: CLK, CMD, DAT0-7, VccQ, VssQ, Vcc, Vss
▶ With 4.4 version, one more pin: RST_n (Reset)
▶ With 5.0 version, one more pin: DS (Data Strobe)
▶ No more SPI mode compatibility since 4.3
▶ In initial release: 52 MHz clock
- Kernel, drivers and embedded Linux - Development, consulting, training and support - https://bootlin.com 10/26
eMMC - Protocol
Bus protocol same than the SD bus protocol (both came from MMC)
▶ Command, response on CMD line
▶ Data on the data lines
▶ Basic transaction command/response
▶ Some operation can have data token
▶ All communication initiate by the host
▶ Data transfer in block with CRC
▶ Multiple data blocks: always stop by a host command
- Kernel, drivers and embedded Linux - Development, consulting, training and support - https://bootlin.com 11/26
eMMC vs MMC card
Both defined by the same specification but there still differences:
▶ eMMC BGA chip soldered to a board
▶ MMC card removable part
▶ Dedicated feature for eMMC such as partitioning, device information
▶ eMMC widely used whereas the MMC card are hard to find
- Kernel, drivers and embedded Linux - Development, consulting, training and support - https://bootlin.com 12/26
Support in Linux - History
▶ MMC Framework added in 2004 with 2.6.9 by Russell King
▶ SD card Support added in 2005 with 2.6.14 by Pierre Ossman (who became
MMC maintainer in 2006)
▶ SDHCI (Secure Digital Host Controller Interface) added with 2.6.17 in 2006
▶ High Speed mode (clock up to 52MHz) for MMC added with 2.6.20
▶ High Speed mode for SD Card added in the same release
▶ SDIO extension support with 2.6.24 in 2007
- Kernel, drivers and embedded Linux - Development, consulting, training and support - https://bootlin.com 13/26
Support in Linux
▶ Code located in drivers/mmc and headers in include/linux/mmc/
▶ Currently maintained by Ulf Hansson since 2014
▶ Code separated in two parts:
▶ core: protocol for MMC/eMMC and SD Card as well as common functions for
the framework
▶ host: support for the controllers
▶ host/sdhci* for the controller based on SDHCI maintained by Adrian Hunter
▶ SPI mode supported in host/mmc_spi.c but currently without maintainer
- Kernel, drivers and embedded Linux - Development, consulting, training and support - https://bootlin.com 14/26
Speed mode improvement - High Speed
▶ Maximum clock from 26MHz to 52MHz for MMC
▶ Maximum clock from 25MHz to 50MHz for SD Card
▶ Introduce the speed mode selection sequence using CMD6
▶ Introduce since SD v2 and MMC v4
- Kernel, drivers and embedded Linux - Development, consulting, training and support - https://bootlin.com 15/26
Speed mode improvement - UHS-I 1/2
▶ Introduced with SD 3.01 (2010)
▶ New speed modes (name are base on the bandwidth):
▶ SDR12 (max bandwidth: 12MB/s)
▶ SDR25 (max bandwidth: 25MB/s)
▶ SDR50 (max bandwidth: 50MB/s)
▶ SDR104 (max bandwidth: 104MB/s)
▶ DDR50 (max bandwidth: 50MB/s)
▶ All these new modes under 1.8V compared to the 3.3V for DS (Default Speed
25MHz) and HS (High Speed at 50MHz)
▶ New step in the switch sequence: modifying the voltage
- Kernel, drivers and embedded Linux - Development, consulting, training and support - https://bootlin.com 16/26
Speed mode improvement - UHS-I 2/2
▶ SDR12: simple data rate with clock at 25MHz (with 4 lines)
▶ SDR25: simple data rate with clock at 50MHz (with 4 lines)
▶ SDR50: simple data rate with clock at 100MHz (with 4 lines)
▶ SDR104: simple data rate with clock at 208MHz (with 4 lines).
For this speed mode tuning (CMD19) is required
▶ DDR50: double data rate with clock at 50MHz. Data sample on each front of
the clock
- Kernel, drivers and embedded Linux - Development, consulting, training and support - https://bootlin.com 17/26
Speed mode improvement - DDR mode for eMMC
▶ Introduced with MMC 4.4 (2009)
▶ Up to 52MHz (as high Speed mode)
▶ Configured with CMD6 but with different arguments than SD Card
▶ Can be used at 3V
▶ At host controller level, same configuration used than for DDR50
- Kernel, drivers and embedded Linux - Development, consulting, training and support - https://bootlin.com 18/26
Speed mode improvement - HS-200
▶ Introduced with MMC 4.5 (2011)
▶ Up to 200MHz at single data rate
▶ Tuning command (CMD21) can be used to find optimal data sampling.
▶ Must be used at 1.8V or 1.2V
- Kernel, drivers and embedded Linux - Development, consulting, training and support - https://bootlin.com 19/26
Speed mode improvement - HS-400
▶ Introduced with MMC 5.0 (2013)
▶ Up to 200MHz at dual data rate
▶ New DS (Data Strobe) line: used during DATA out and CRC response
▶ Tuning command (CMD21) can be used to find optimal data sampling.
▶ Must be used at 1.8V or 1.2V
▶ With MMC 5.1 (2014), Enhanced Strobe added: strobe also provided during
CMD Response
- Kernel, drivers and embedded Linux - Development, consulting, training and support - https://bootlin.com 20/26
Speed mode improvement - UHS-II
▶ Introduced with SD 4.1 (2013)
▶ Completely new mode
▶ New set of signal: RCLK+, RCLK-, D0+,D0-,D1+,D1-, VSS3-5, VDD1-2
▶ 2 data lanes (D0, D1) using 2 differential signals
▶ RCLK: 26 to 52 MHZ
▶ Data x15 or x30 depending of the mode, up to 312MB/s
▶ Completely different protocol: exchange of packet messages on both way
▶ Each packet have header and payload data
▶ At transaction layer possibility to encapsulate SD packet
▶ At lower level still needed to be able to use the new protocol
▶ With SD 6.0 (2017): UHS-III (624 MB/s)
- Kernel, drivers and embedded Linux - Development, consulting, training and support - https://bootlin.com 21/26
New speed Support in Linux - History
▶ DDR 50 mode added with 2.6.37 in 2010
▶ UHS-I added with 3.0 in 2011
▶ HS200 added with 3.10 in 2012
▶ HS400 added with 3.16 in 2014
▶ HS400 retuning added with 4.2 in 2015
▶ HS400es (Enhanced Strobe) added with 4.8 in 2016
- Kernel, drivers and embedded Linux - Development, consulting, training and support - https://bootlin.com 22/26
Current support in Linux
▶ Signal voltage switching needed for most of the new speed mode
▶ Supported by the framework in core.c
▶ Make use of the regulator framework
▶ Tuning used by eMMC and SD Card
▶ Function present in the core
▶ But implemented at controller driver level
▶ Switching sequence handled by the core but most of the steps can be customized
for the host controller.
- Kernel, drivers and embedded Linux - Development, consulting, training and support - https://bootlin.com 23/26
Missing part and future challenge in Linux
▶ eMMC speed mode support quite complete, most of the development now at
driver level and specific to each controller.
▶ SD Card: no support at all for UHS-II (and UHS III), adding this new protocol
would be a big task.
- Kernel, drivers and embedded Linux - Development, consulting, training and support - https://bootlin.com 24/26
Future SD improvement: SD Express
▶ In June 2018, the SDA provided a white paper about the next version of the SD
spec: SD Express – A Revolutionary Innovation for SD Memory Cards
▶ The next SD 7.0 will be based on PCIe and NVMe
▶ SD Express will be compatible with UHS-I but not with UHS-II or UHS III
▶ Add also a new power supply support: 1.2V
▶ There is hope that it should be supported straight forward in Linux thanks to the
existing PCIe support
- Kernel, drivers and embedded Linux - Development, consulting, training and support - https://bootlin.com 25/26
Questions? Suggestions? Comments?
Gregory CLEMENT
gregory@bootlin.com
Slides under CC-BY-SA 3.0
http://bootlin.com/pub/conferences/2018/kr/clement-overview-sd-emmc-high-speed-linux
- Kernel, drivers and embedded Linux - Development, consulting, training and support - https://bootlin.com 26/26

More Related Content

What's hot

Q4.11: Next Gen Mobile Storage – UFS
Q4.11: Next Gen Mobile Storage – UFSQ4.11: Next Gen Mobile Storage – UFS
Q4.11: Next Gen Mobile Storage – UFSLinaro
 
Universal Flash Storage
Universal Flash StorageUniversal Flash Storage
Universal Flash StorageBhaumik Bhatt
 
Introduction to armv8 aarch64
Introduction to armv8 aarch64Introduction to armv8 aarch64
Introduction to armv8 aarch64Yi-Hsiu Hsu
 
LAS16-402: ARM Trusted Firmware – from Enterprise to Embedded
LAS16-402: ARM Trusted Firmware – from Enterprise to EmbeddedLAS16-402: ARM Trusted Firmware – from Enterprise to Embedded
LAS16-402: ARM Trusted Firmware – from Enterprise to EmbeddedLinaro
 
SFO15-TR9: PSCI, ACPI (and UEFI to boot)
SFO15-TR9: PSCI, ACPI (and UEFI to boot)SFO15-TR9: PSCI, ACPI (and UEFI to boot)
SFO15-TR9: PSCI, ACPI (and UEFI to boot)Linaro
 
Virtualization Support in ARMv8+
Virtualization Support in ARMv8+Virtualization Support in ARMv8+
Virtualization Support in ARMv8+Aananth C N
 
Linux MMAP & Ioremap introduction
Linux MMAP & Ioremap introductionLinux MMAP & Ioremap introduction
Linux MMAP & Ioremap introductionGene Chang
 
Static partitioning virtualization on RISC-V
Static partitioning virtualization on RISC-VStatic partitioning virtualization on RISC-V
Static partitioning virtualization on RISC-VRISC-V International
 
Slideshare - PCIe
Slideshare - PCIeSlideshare - PCIe
Slideshare - PCIeJin Wu
 
Experience on porting HIGHMEM and KASAN to RISC-V at COSCUP 2020
Experience on porting HIGHMEM and KASAN to RISC-V at COSCUP 2020Experience on porting HIGHMEM and KASAN to RISC-V at COSCUP 2020
Experience on porting HIGHMEM and KASAN to RISC-V at COSCUP 2020Eric Lin
 
Kernel Recipes 2019 - Marvels of Memory Auto-configuration (SPD)
Kernel Recipes 2019 - Marvels of Memory Auto-configuration (SPD)Kernel Recipes 2019 - Marvels of Memory Auto-configuration (SPD)
Kernel Recipes 2019 - Marvels of Memory Auto-configuration (SPD)Anne Nicolas
 
Introduction of ram ddr3
Introduction of ram ddr3Introduction of ram ddr3
Introduction of ram ddr3Technocratz
 

What's hot (20)

Q4.11: Next Gen Mobile Storage – UFS
Q4.11: Next Gen Mobile Storage – UFSQ4.11: Next Gen Mobile Storage – UFS
Q4.11: Next Gen Mobile Storage – UFS
 
Universal Flash Storage
Universal Flash StorageUniversal Flash Storage
Universal Flash Storage
 
Introduction to armv8 aarch64
Introduction to armv8 aarch64Introduction to armv8 aarch64
Introduction to armv8 aarch64
 
LAS16-402: ARM Trusted Firmware – from Enterprise to Embedded
LAS16-402: ARM Trusted Firmware – from Enterprise to EmbeddedLAS16-402: ARM Trusted Firmware – from Enterprise to Embedded
LAS16-402: ARM Trusted Firmware – from Enterprise to Embedded
 
SFO15-TR9: PSCI, ACPI (and UEFI to boot)
SFO15-TR9: PSCI, ACPI (and UEFI to boot)SFO15-TR9: PSCI, ACPI (and UEFI to boot)
SFO15-TR9: PSCI, ACPI (and UEFI to boot)
 
Virtualization Support in ARMv8+
Virtualization Support in ARMv8+Virtualization Support in ARMv8+
Virtualization Support in ARMv8+
 
DDR SDRAM : Notes
DDR SDRAM : NotesDDR SDRAM : Notes
DDR SDRAM : Notes
 
Linux MMAP & Ioremap introduction
Linux MMAP & Ioremap introductionLinux MMAP & Ioremap introduction
Linux MMAP & Ioremap introduction
 
SSD PPT BY SAURABH
SSD PPT BY SAURABHSSD PPT BY SAURABH
SSD PPT BY SAURABH
 
Static partitioning virtualization on RISC-V
Static partitioning virtualization on RISC-VStatic partitioning virtualization on RISC-V
Static partitioning virtualization on RISC-V
 
Slideshare - PCIe
Slideshare - PCIeSlideshare - PCIe
Slideshare - PCIe
 
DDR2 SDRAM
DDR2 SDRAMDDR2 SDRAM
DDR2 SDRAM
 
Experience on porting HIGHMEM and KASAN to RISC-V at COSCUP 2020
Experience on porting HIGHMEM and KASAN to RISC-V at COSCUP 2020Experience on porting HIGHMEM and KASAN to RISC-V at COSCUP 2020
Experience on porting HIGHMEM and KASAN to RISC-V at COSCUP 2020
 
DDR
DDRDDR
DDR
 
Kernel Recipes 2019 - Marvels of Memory Auto-configuration (SPD)
Kernel Recipes 2019 - Marvels of Memory Auto-configuration (SPD)Kernel Recipes 2019 - Marvels of Memory Auto-configuration (SPD)
Kernel Recipes 2019 - Marvels of Memory Auto-configuration (SPD)
 
Introduction of ram ddr3
Introduction of ram ddr3Introduction of ram ddr3
Introduction of ram ddr3
 
Dd sdram
Dd sdramDd sdram
Dd sdram
 
Linux dma engine
Linux dma engineLinux dma engine
Linux dma engine
 
Ufs whitepaper
Ufs whitepaperUfs whitepaper
Ufs whitepaper
 
Disk memory systems
Disk memory systemsDisk memory systems
Disk memory systems
 

Similar to Kernel Recipes 2018 - Overview of SD/eMMC, their high speed modes and Linux support - Gregory Clément

4 p9 architecture overview japan meetup
4 p9 architecture overview japan meetup4 p9 architecture overview japan meetup
4 p9 architecture overview japan meetupYutaka Kawai
 
Cellular technology with Embedded Linux - COSCUP 2016
Cellular technology with Embedded Linux - COSCUP 2016Cellular technology with Embedded Linux - COSCUP 2016
Cellular technology with Embedded Linux - COSCUP 2016SZ Lin
 
The Power of One: Supermicro’s High-Performance Single-Processor Blade Systems
The Power of One: Supermicro’s High-Performance Single-Processor Blade SystemsThe Power of One: Supermicro’s High-Performance Single-Processor Blade Systems
The Power of One: Supermicro’s High-Performance Single-Processor Blade SystemsRebekah Rodriguez
 
MYS-6ULX Single Board Computer for Industry 4.0 and IoT Applications
MYS-6ULX Single Board Computer for Industry 4.0 and IoT ApplicationsMYS-6ULX Single Board Computer for Industry 4.0 and IoT Applications
MYS-6ULX Single Board Computer for Industry 4.0 and IoT ApplicationsLinda Zhang
 
VJITSk 6713 user manual
VJITSk 6713 user manualVJITSk 6713 user manual
VJITSk 6713 user manualkot seelam
 
A+chapter 1 identify principles of personal computers
A+chapter 1  identify principles of personal computersA+chapter 1  identify principles of personal computers
A+chapter 1 identify principles of personal computersSherief Elmetwali
 
E3100 introduction to computer
E3100 introduction to computerE3100 introduction to computer
E3100 introduction to computerDhom Nawhki
 
Design installation-commissioning-red raider-cluster-ttu
Design installation-commissioning-red raider-cluster-ttuDesign installation-commissioning-red raider-cluster-ttu
Design installation-commissioning-red raider-cluster-ttuAlan Sill
 
Tesla Hacking to FreedomEV
Tesla Hacking to FreedomEVTesla Hacking to FreedomEV
Tesla Hacking to FreedomEVJasper Nuyens
 
S5pc100 Brochure 200902
S5pc100 Brochure 200902S5pc100 Brochure 200902
S5pc100 Brochure 200902guestc82ba2
 
Xilinx Data Center Strategy and CCIX
Xilinx Data Center Strategy and CCIXXilinx Data Center Strategy and CCIX
Xilinx Data Center Strategy and CCIXYoshihiro Horie
 
HKG18-110 - net_mdev: Fast path user space I/O
HKG18-110 - net_mdev: Fast path user space I/OHKG18-110 - net_mdev: Fast path user space I/O
HKG18-110 - net_mdev: Fast path user space I/OLinaro
 
PowerEdge Rack and Tower Server Masters AMD Processors.pptx
PowerEdge Rack and Tower Server Masters AMD Processors.pptxPowerEdge Rack and Tower Server Masters AMD Processors.pptx
PowerEdge Rack and Tower Server Masters AMD Processors.pptxNeoKenj
 
20160927-tierney-improving-performance-40G-100G-data-transfer-nodes.pdf
20160927-tierney-improving-performance-40G-100G-data-transfer-nodes.pdf20160927-tierney-improving-performance-40G-100G-data-transfer-nodes.pdf
20160927-tierney-improving-performance-40G-100G-data-transfer-nodes.pdfJunZhao68
 
POWER9 AC922 Newell System - HPC & AI
POWER9 AC922 Newell System - HPC & AI POWER9 AC922 Newell System - HPC & AI
POWER9 AC922 Newell System - HPC & AI Anand Haridass
 

Similar to Kernel Recipes 2018 - Overview of SD/eMMC, their high speed modes and Linux support - Gregory Clément (20)

4 p9 architecture overview japan meetup
4 p9 architecture overview japan meetup4 p9 architecture overview japan meetup
4 p9 architecture overview japan meetup
 
uCluster
uClusteruCluster
uCluster
 
Cellular technology with Embedded Linux - COSCUP 2016
Cellular technology with Embedded Linux - COSCUP 2016Cellular technology with Embedded Linux - COSCUP 2016
Cellular technology with Embedded Linux - COSCUP 2016
 
The Power of One: Supermicro’s High-Performance Single-Processor Blade Systems
The Power of One: Supermicro’s High-Performance Single-Processor Blade SystemsThe Power of One: Supermicro’s High-Performance Single-Processor Blade Systems
The Power of One: Supermicro’s High-Performance Single-Processor Blade Systems
 
MYS-6ULX Single Board Computer for Industry 4.0 and IoT Applications
MYS-6ULX Single Board Computer for Industry 4.0 and IoT ApplicationsMYS-6ULX Single Board Computer for Industry 4.0 and IoT Applications
MYS-6ULX Single Board Computer for Industry 4.0 and IoT Applications
 
VJITSk 6713 user manual
VJITSk 6713 user manualVJITSk 6713 user manual
VJITSk 6713 user manual
 
A+chapter 1 identify principles of personal computers
A+chapter 1  identify principles of personal computersA+chapter 1  identify principles of personal computers
A+chapter 1 identify principles of personal computers
 
Persistent memory
Persistent memoryPersistent memory
Persistent memory
 
E3100 introduction to computer
E3100 introduction to computerE3100 introduction to computer
E3100 introduction to computer
 
1083 wang
1083 wang1083 wang
1083 wang
 
Design installation-commissioning-red raider-cluster-ttu
Design installation-commissioning-red raider-cluster-ttuDesign installation-commissioning-red raider-cluster-ttu
Design installation-commissioning-red raider-cluster-ttu
 
Tesla Hacking to FreedomEV
Tesla Hacking to FreedomEVTesla Hacking to FreedomEV
Tesla Hacking to FreedomEV
 
100 M pps on PC.
100 M pps on PC.100 M pps on PC.
100 M pps on PC.
 
S5pc100 Brochure 200902
S5pc100 Brochure 200902S5pc100 Brochure 200902
S5pc100 Brochure 200902
 
Xilinx Data Center Strategy and CCIX
Xilinx Data Center Strategy and CCIXXilinx Data Center Strategy and CCIX
Xilinx Data Center Strategy and CCIX
 
HKG18-110 - net_mdev: Fast path user space I/O
HKG18-110 - net_mdev: Fast path user space I/OHKG18-110 - net_mdev: Fast path user space I/O
HKG18-110 - net_mdev: Fast path user space I/O
 
PowerEdge Rack and Tower Server Masters AMD Processors.pptx
PowerEdge Rack and Tower Server Masters AMD Processors.pptxPowerEdge Rack and Tower Server Masters AMD Processors.pptx
PowerEdge Rack and Tower Server Masters AMD Processors.pptx
 
20160927-tierney-improving-performance-40G-100G-data-transfer-nodes.pdf
20160927-tierney-improving-performance-40G-100G-data-transfer-nodes.pdf20160927-tierney-improving-performance-40G-100G-data-transfer-nodes.pdf
20160927-tierney-improving-performance-40G-100G-data-transfer-nodes.pdf
 
POWER9 AC922 Newell System - HPC & AI
POWER9 AC922 Newell System - HPC & AI POWER9 AC922 Newell System - HPC & AI
POWER9 AC922 Newell System - HPC & AI
 
kripashree
kripashreekripashree
kripashree
 

More from Anne Nicolas

Kernel Recipes 2019 - Driving the industry toward upstream first
Kernel Recipes 2019 - Driving the industry toward upstream firstKernel Recipes 2019 - Driving the industry toward upstream first
Kernel Recipes 2019 - Driving the industry toward upstream firstAnne Nicolas
 
Kernel Recipes 2019 - No NMI? No Problem! – Implementing Arm64 Pseudo-NMI
Kernel Recipes 2019 - No NMI? No Problem! – Implementing Arm64 Pseudo-NMIKernel Recipes 2019 - No NMI? No Problem! – Implementing Arm64 Pseudo-NMI
Kernel Recipes 2019 - No NMI? No Problem! – Implementing Arm64 Pseudo-NMIAnne Nicolas
 
Kernel Recipes 2019 - Hunting and fixing bugs all over the Linux kernel
Kernel Recipes 2019 - Hunting and fixing bugs all over the Linux kernelKernel Recipes 2019 - Hunting and fixing bugs all over the Linux kernel
Kernel Recipes 2019 - Hunting and fixing bugs all over the Linux kernelAnne Nicolas
 
Kernel Recipes 2019 - Metrics are money
Kernel Recipes 2019 - Metrics are moneyKernel Recipes 2019 - Metrics are money
Kernel Recipes 2019 - Metrics are moneyAnne Nicolas
 
Kernel Recipes 2019 - Kernel documentation: past, present, and future
Kernel Recipes 2019 - Kernel documentation: past, present, and futureKernel Recipes 2019 - Kernel documentation: past, present, and future
Kernel Recipes 2019 - Kernel documentation: past, present, and futureAnne Nicolas
 
Embedded Recipes 2019 - Knowing your ARM from your ARSE: wading through the t...
Embedded Recipes 2019 - Knowing your ARM from your ARSE: wading through the t...Embedded Recipes 2019 - Knowing your ARM from your ARSE: wading through the t...
Embedded Recipes 2019 - Knowing your ARM from your ARSE: wading through the t...Anne Nicolas
 
Kernel Recipes 2019 - GNU poke, an extensible editor for structured binary data
Kernel Recipes 2019 - GNU poke, an extensible editor for structured binary dataKernel Recipes 2019 - GNU poke, an extensible editor for structured binary data
Kernel Recipes 2019 - GNU poke, an extensible editor for structured binary dataAnne Nicolas
 
Kernel Recipes 2019 - Analyzing changes to the binary interface exposed by th...
Kernel Recipes 2019 - Analyzing changes to the binary interface exposed by th...Kernel Recipes 2019 - Analyzing changes to the binary interface exposed by th...
Kernel Recipes 2019 - Analyzing changes to the binary interface exposed by th...Anne Nicolas
 
Embedded Recipes 2019 - Remote update adventures with RAUC, Yocto and Barebox
Embedded Recipes 2019 - Remote update adventures with RAUC, Yocto and BareboxEmbedded Recipes 2019 - Remote update adventures with RAUC, Yocto and Barebox
Embedded Recipes 2019 - Remote update adventures with RAUC, Yocto and BareboxAnne Nicolas
 
Embedded Recipes 2019 - Making embedded graphics less special
Embedded Recipes 2019 - Making embedded graphics less specialEmbedded Recipes 2019 - Making embedded graphics less special
Embedded Recipes 2019 - Making embedded graphics less specialAnne Nicolas
 
Embedded Recipes 2019 - Linux on Open Source Hardware and Libre Silicon
Embedded Recipes 2019 - Linux on Open Source Hardware and Libre SiliconEmbedded Recipes 2019 - Linux on Open Source Hardware and Libre Silicon
Embedded Recipes 2019 - Linux on Open Source Hardware and Libre SiliconAnne Nicolas
 
Embedded Recipes 2019 - From maintaining I2C to the big (embedded) picture
Embedded Recipes 2019 - From maintaining I2C to the big (embedded) pictureEmbedded Recipes 2019 - From maintaining I2C to the big (embedded) picture
Embedded Recipes 2019 - From maintaining I2C to the big (embedded) pictureAnne Nicolas
 
Embedded Recipes 2019 - Testing firmware the devops way
Embedded Recipes 2019 - Testing firmware the devops wayEmbedded Recipes 2019 - Testing firmware the devops way
Embedded Recipes 2019 - Testing firmware the devops wayAnne Nicolas
 
Embedded Recipes 2019 - Herd your socs become a matchmaker
Embedded Recipes 2019 - Herd your socs become a matchmakerEmbedded Recipes 2019 - Herd your socs become a matchmaker
Embedded Recipes 2019 - Herd your socs become a matchmakerAnne Nicolas
 
Embedded Recipes 2019 - LLVM / Clang integration
Embedded Recipes 2019 - LLVM / Clang integrationEmbedded Recipes 2019 - LLVM / Clang integration
Embedded Recipes 2019 - LLVM / Clang integrationAnne Nicolas
 
Embedded Recipes 2019 - Introduction to JTAG debugging
Embedded Recipes 2019 - Introduction to JTAG debuggingEmbedded Recipes 2019 - Introduction to JTAG debugging
Embedded Recipes 2019 - Introduction to JTAG debuggingAnne Nicolas
 
Embedded Recipes 2019 - Pipewire a new foundation for embedded multimedia
Embedded Recipes 2019 - Pipewire a new foundation for embedded multimediaEmbedded Recipes 2019 - Pipewire a new foundation for embedded multimedia
Embedded Recipes 2019 - Pipewire a new foundation for embedded multimediaAnne Nicolas
 
Kernel Recipes 2019 - ftrace: Where modifying a running kernel all started
Kernel Recipes 2019 - ftrace: Where modifying a running kernel all startedKernel Recipes 2019 - ftrace: Where modifying a running kernel all started
Kernel Recipes 2019 - ftrace: Where modifying a running kernel all startedAnne Nicolas
 
Kernel Recipes 2019 - Suricata and XDP
Kernel Recipes 2019 - Suricata and XDPKernel Recipes 2019 - Suricata and XDP
Kernel Recipes 2019 - Suricata and XDPAnne Nicolas
 
Kernel Recipes 2019 - Formal modeling made easy
Kernel Recipes 2019 - Formal modeling made easyKernel Recipes 2019 - Formal modeling made easy
Kernel Recipes 2019 - Formal modeling made easyAnne Nicolas
 

More from Anne Nicolas (20)

Kernel Recipes 2019 - Driving the industry toward upstream first
Kernel Recipes 2019 - Driving the industry toward upstream firstKernel Recipes 2019 - Driving the industry toward upstream first
Kernel Recipes 2019 - Driving the industry toward upstream first
 
Kernel Recipes 2019 - No NMI? No Problem! – Implementing Arm64 Pseudo-NMI
Kernel Recipes 2019 - No NMI? No Problem! – Implementing Arm64 Pseudo-NMIKernel Recipes 2019 - No NMI? No Problem! – Implementing Arm64 Pseudo-NMI
Kernel Recipes 2019 - No NMI? No Problem! – Implementing Arm64 Pseudo-NMI
 
Kernel Recipes 2019 - Hunting and fixing bugs all over the Linux kernel
Kernel Recipes 2019 - Hunting and fixing bugs all over the Linux kernelKernel Recipes 2019 - Hunting and fixing bugs all over the Linux kernel
Kernel Recipes 2019 - Hunting and fixing bugs all over the Linux kernel
 
Kernel Recipes 2019 - Metrics are money
Kernel Recipes 2019 - Metrics are moneyKernel Recipes 2019 - Metrics are money
Kernel Recipes 2019 - Metrics are money
 
Kernel Recipes 2019 - Kernel documentation: past, present, and future
Kernel Recipes 2019 - Kernel documentation: past, present, and futureKernel Recipes 2019 - Kernel documentation: past, present, and future
Kernel Recipes 2019 - Kernel documentation: past, present, and future
 
Embedded Recipes 2019 - Knowing your ARM from your ARSE: wading through the t...
Embedded Recipes 2019 - Knowing your ARM from your ARSE: wading through the t...Embedded Recipes 2019 - Knowing your ARM from your ARSE: wading through the t...
Embedded Recipes 2019 - Knowing your ARM from your ARSE: wading through the t...
 
Kernel Recipes 2019 - GNU poke, an extensible editor for structured binary data
Kernel Recipes 2019 - GNU poke, an extensible editor for structured binary dataKernel Recipes 2019 - GNU poke, an extensible editor for structured binary data
Kernel Recipes 2019 - GNU poke, an extensible editor for structured binary data
 
Kernel Recipes 2019 - Analyzing changes to the binary interface exposed by th...
Kernel Recipes 2019 - Analyzing changes to the binary interface exposed by th...Kernel Recipes 2019 - Analyzing changes to the binary interface exposed by th...
Kernel Recipes 2019 - Analyzing changes to the binary interface exposed by th...
 
Embedded Recipes 2019 - Remote update adventures with RAUC, Yocto and Barebox
Embedded Recipes 2019 - Remote update adventures with RAUC, Yocto and BareboxEmbedded Recipes 2019 - Remote update adventures with RAUC, Yocto and Barebox
Embedded Recipes 2019 - Remote update adventures with RAUC, Yocto and Barebox
 
Embedded Recipes 2019 - Making embedded graphics less special
Embedded Recipes 2019 - Making embedded graphics less specialEmbedded Recipes 2019 - Making embedded graphics less special
Embedded Recipes 2019 - Making embedded graphics less special
 
Embedded Recipes 2019 - Linux on Open Source Hardware and Libre Silicon
Embedded Recipes 2019 - Linux on Open Source Hardware and Libre SiliconEmbedded Recipes 2019 - Linux on Open Source Hardware and Libre Silicon
Embedded Recipes 2019 - Linux on Open Source Hardware and Libre Silicon
 
Embedded Recipes 2019 - From maintaining I2C to the big (embedded) picture
Embedded Recipes 2019 - From maintaining I2C to the big (embedded) pictureEmbedded Recipes 2019 - From maintaining I2C to the big (embedded) picture
Embedded Recipes 2019 - From maintaining I2C to the big (embedded) picture
 
Embedded Recipes 2019 - Testing firmware the devops way
Embedded Recipes 2019 - Testing firmware the devops wayEmbedded Recipes 2019 - Testing firmware the devops way
Embedded Recipes 2019 - Testing firmware the devops way
 
Embedded Recipes 2019 - Herd your socs become a matchmaker
Embedded Recipes 2019 - Herd your socs become a matchmakerEmbedded Recipes 2019 - Herd your socs become a matchmaker
Embedded Recipes 2019 - Herd your socs become a matchmaker
 
Embedded Recipes 2019 - LLVM / Clang integration
Embedded Recipes 2019 - LLVM / Clang integrationEmbedded Recipes 2019 - LLVM / Clang integration
Embedded Recipes 2019 - LLVM / Clang integration
 
Embedded Recipes 2019 - Introduction to JTAG debugging
Embedded Recipes 2019 - Introduction to JTAG debuggingEmbedded Recipes 2019 - Introduction to JTAG debugging
Embedded Recipes 2019 - Introduction to JTAG debugging
 
Embedded Recipes 2019 - Pipewire a new foundation for embedded multimedia
Embedded Recipes 2019 - Pipewire a new foundation for embedded multimediaEmbedded Recipes 2019 - Pipewire a new foundation for embedded multimedia
Embedded Recipes 2019 - Pipewire a new foundation for embedded multimedia
 
Kernel Recipes 2019 - ftrace: Where modifying a running kernel all started
Kernel Recipes 2019 - ftrace: Where modifying a running kernel all startedKernel Recipes 2019 - ftrace: Where modifying a running kernel all started
Kernel Recipes 2019 - ftrace: Where modifying a running kernel all started
 
Kernel Recipes 2019 - Suricata and XDP
Kernel Recipes 2019 - Suricata and XDPKernel Recipes 2019 - Suricata and XDP
Kernel Recipes 2019 - Suricata and XDP
 
Kernel Recipes 2019 - Formal modeling made easy
Kernel Recipes 2019 - Formal modeling made easyKernel Recipes 2019 - Formal modeling made easy
Kernel Recipes 2019 - Formal modeling made easy
 

Recently uploaded

[ CNCF Q1 2024 ] Intro to Continuous Profiling and Grafana Pyroscope.pdf
[ CNCF Q1 2024 ] Intro to Continuous Profiling and Grafana Pyroscope.pdf[ CNCF Q1 2024 ] Intro to Continuous Profiling and Grafana Pyroscope.pdf
[ CNCF Q1 2024 ] Intro to Continuous Profiling and Grafana Pyroscope.pdfSteve Caron
 
Mastering Project Planning with Microsoft Project 2016.pptx
Mastering Project Planning with Microsoft Project 2016.pptxMastering Project Planning with Microsoft Project 2016.pptx
Mastering Project Planning with Microsoft Project 2016.pptxAS Design & AST.
 
Best Angular 17 Classroom & Online training - Naresh IT
Best Angular 17 Classroom & Online training - Naresh ITBest Angular 17 Classroom & Online training - Naresh IT
Best Angular 17 Classroom & Online training - Naresh ITmanoharjgpsolutions
 
The Ultimate Guide to Performance Testing in Low-Code, No-Code Environments (...
The Ultimate Guide to Performance Testing in Low-Code, No-Code Environments (...The Ultimate Guide to Performance Testing in Low-Code, No-Code Environments (...
The Ultimate Guide to Performance Testing in Low-Code, No-Code Environments (...kalichargn70th171
 
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4j
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4jGraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4j
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4jNeo4j
 
2024 DevNexus Patterns for Resiliency: Shuffle shards
2024 DevNexus Patterns for Resiliency: Shuffle shards2024 DevNexus Patterns for Resiliency: Shuffle shards
2024 DevNexus Patterns for Resiliency: Shuffle shardsChristopher Curtin
 
Ronisha Informatics Private Limited Catalogue
Ronisha Informatics Private Limited CatalogueRonisha Informatics Private Limited Catalogue
Ronisha Informatics Private Limited Catalogueitservices996
 
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdf
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdfEnhancing Supply Chain Visibility with Cargo Cloud Solutions.pdf
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdfRTS corp
 
Amazon Bedrock in Action - presentation of the Bedrock's capabilities
Amazon Bedrock in Action - presentation of the Bedrock's capabilitiesAmazon Bedrock in Action - presentation of the Bedrock's capabilities
Amazon Bedrock in Action - presentation of the Bedrock's capabilitiesKrzysztofKkol1
 
The Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptx
The Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptxThe Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptx
The Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptxRTS corp
 
Pros and Cons of Selenium In Automation Testing_ A Comprehensive Assessment.pdf
Pros and Cons of Selenium In Automation Testing_ A Comprehensive Assessment.pdfPros and Cons of Selenium In Automation Testing_ A Comprehensive Assessment.pdf
Pros and Cons of Selenium In Automation Testing_ A Comprehensive Assessment.pdfkalichargn70th171
 
OpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full Recording
OpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full RecordingOpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full Recording
OpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full RecordingShane Coughlan
 
2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdf
2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdf2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdf
2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdfAndrey Devyatkin
 
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...OnePlan Solutions
 
Keeping your build tool updated in a multi repository world
Keeping your build tool updated in a multi repository worldKeeping your build tool updated in a multi repository world
Keeping your build tool updated in a multi repository worldRoberto Pérez Alcolea
 
VictoriaMetrics Q1 Meet Up '24 - Community & News Update
VictoriaMetrics Q1 Meet Up '24 - Community & News UpdateVictoriaMetrics Q1 Meet Up '24 - Community & News Update
VictoriaMetrics Q1 Meet Up '24 - Community & News UpdateVictoriaMetrics
 
What’s New in VictoriaMetrics: Q1 2024 Updates
What’s New in VictoriaMetrics: Q1 2024 UpdatesWhat’s New in VictoriaMetrics: Q1 2024 Updates
What’s New in VictoriaMetrics: Q1 2024 UpdatesVictoriaMetrics
 
Understanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM ArchitectureUnderstanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM Architecturerahul_net
 
Effectively Troubleshoot 9 Types of OutOfMemoryError
Effectively Troubleshoot 9 Types of OutOfMemoryErrorEffectively Troubleshoot 9 Types of OutOfMemoryError
Effectively Troubleshoot 9 Types of OutOfMemoryErrorTier1 app
 
Strategies for using alternative queries to mitigate zero results
Strategies for using alternative queries to mitigate zero resultsStrategies for using alternative queries to mitigate zero results
Strategies for using alternative queries to mitigate zero resultsJean Silva
 

Recently uploaded (20)

[ CNCF Q1 2024 ] Intro to Continuous Profiling and Grafana Pyroscope.pdf
[ CNCF Q1 2024 ] Intro to Continuous Profiling and Grafana Pyroscope.pdf[ CNCF Q1 2024 ] Intro to Continuous Profiling and Grafana Pyroscope.pdf
[ CNCF Q1 2024 ] Intro to Continuous Profiling and Grafana Pyroscope.pdf
 
Mastering Project Planning with Microsoft Project 2016.pptx
Mastering Project Planning with Microsoft Project 2016.pptxMastering Project Planning with Microsoft Project 2016.pptx
Mastering Project Planning with Microsoft Project 2016.pptx
 
Best Angular 17 Classroom & Online training - Naresh IT
Best Angular 17 Classroom & Online training - Naresh ITBest Angular 17 Classroom & Online training - Naresh IT
Best Angular 17 Classroom & Online training - Naresh IT
 
The Ultimate Guide to Performance Testing in Low-Code, No-Code Environments (...
The Ultimate Guide to Performance Testing in Low-Code, No-Code Environments (...The Ultimate Guide to Performance Testing in Low-Code, No-Code Environments (...
The Ultimate Guide to Performance Testing in Low-Code, No-Code Environments (...
 
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4j
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4jGraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4j
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4j
 
2024 DevNexus Patterns for Resiliency: Shuffle shards
2024 DevNexus Patterns for Resiliency: Shuffle shards2024 DevNexus Patterns for Resiliency: Shuffle shards
2024 DevNexus Patterns for Resiliency: Shuffle shards
 
Ronisha Informatics Private Limited Catalogue
Ronisha Informatics Private Limited CatalogueRonisha Informatics Private Limited Catalogue
Ronisha Informatics Private Limited Catalogue
 
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdf
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdfEnhancing Supply Chain Visibility with Cargo Cloud Solutions.pdf
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdf
 
Amazon Bedrock in Action - presentation of the Bedrock's capabilities
Amazon Bedrock in Action - presentation of the Bedrock's capabilitiesAmazon Bedrock in Action - presentation of the Bedrock's capabilities
Amazon Bedrock in Action - presentation of the Bedrock's capabilities
 
The Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptx
The Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptxThe Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptx
The Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptx
 
Pros and Cons of Selenium In Automation Testing_ A Comprehensive Assessment.pdf
Pros and Cons of Selenium In Automation Testing_ A Comprehensive Assessment.pdfPros and Cons of Selenium In Automation Testing_ A Comprehensive Assessment.pdf
Pros and Cons of Selenium In Automation Testing_ A Comprehensive Assessment.pdf
 
OpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full Recording
OpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full RecordingOpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full Recording
OpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full Recording
 
2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdf
2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdf2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdf
2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdf
 
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...
 
Keeping your build tool updated in a multi repository world
Keeping your build tool updated in a multi repository worldKeeping your build tool updated in a multi repository world
Keeping your build tool updated in a multi repository world
 
VictoriaMetrics Q1 Meet Up '24 - Community & News Update
VictoriaMetrics Q1 Meet Up '24 - Community & News UpdateVictoriaMetrics Q1 Meet Up '24 - Community & News Update
VictoriaMetrics Q1 Meet Up '24 - Community & News Update
 
What’s New in VictoriaMetrics: Q1 2024 Updates
What’s New in VictoriaMetrics: Q1 2024 UpdatesWhat’s New in VictoriaMetrics: Q1 2024 Updates
What’s New in VictoriaMetrics: Q1 2024 Updates
 
Understanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM ArchitectureUnderstanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM Architecture
 
Effectively Troubleshoot 9 Types of OutOfMemoryError
Effectively Troubleshoot 9 Types of OutOfMemoryErrorEffectively Troubleshoot 9 Types of OutOfMemoryError
Effectively Troubleshoot 9 Types of OutOfMemoryError
 
Strategies for using alternative queries to mitigate zero results
Strategies for using alternative queries to mitigate zero resultsStrategies for using alternative queries to mitigate zero results
Strategies for using alternative queries to mitigate zero results
 

Kernel Recipes 2018 - Overview of SD/eMMC, their high speed modes and Linux support - Gregory Clément

  • 1. Kernel recipies 2018 SD/eMMC: new speed modes and their support in Linux Gregory CLEMENT Bootlin gregory@bootlin.com embedded Linux and kernel engineering - Kernel, drivers and embedded Linux - Development, consulting, training and support - https://bootlin.com 1/26
  • 2. Gregory CLEMENT ▶ Embedded Linux engineer and trainer at Bootlin ▶ Embedded Linux expertise ▶ Development, consulting and training ▶ Strong open-source focus ▶ Open-source contributor ▶ Contributing to kernel support for the Armada 370, 375, 38x, 39x and Armada XP ARM SoCs and Armada 3700, 7K/8K ARM64 SoCs from Marvell. ▶ Co-maintainer of mvebu sub-architecture (SoCs from Marvell Engineering Business Unit) ▶ Living near Lyon, France embedded Linux and kernel engineering - Kernel, drivers and embedded Linux - Development, consulting, training and support - https://bootlin.com 2/26
  • 3. SD card and eMMC SD card and eMMC have common point: ▶ Both come from MMC (MultiMediaCards). ▶ Increase their bandwidth as new versions of the standards were released ▶ Now they can reach more than 400MB/s in theory ▶ Supported in Linux though the mmc subystem Photographies from Wikipedia, credit: MMC: Pixelk - CC BY 1.0 SD Card: Adryan R. Villanueva - CC BY-SA 4.0 eMMC: Toniperis - CC BY-SA 4.0 - Kernel, drivers and embedded Linux - Development, consulting, training and support - https://bootlin.com 3/26
  • 4. Overview of this talk ▶ Presentation of SD Card and eMMC ▶ Initial support in Linux ▶ The new speed modes ▶ State of the support for these new speed modes in Linux - Kernel, drivers and embedded Linux - Development, consulting, training and support - https://bootlin.com 4/26
  • 5. SD card ▶ SD stands for Secure Digital ▶ “Secure“ for copyright content ▶ Introduced in 1999 ▶ MMC extension ▶ Standardized by SDA (SD Association created in 2000) - Kernel, drivers and embedded Linux - Development, consulting, training and support - https://bootlin.com 5/26
  • 6. SD card - Hardware ▶ Flash chip + small micro-controller in a card ▶ 9 pins: CLK, CMD, DAT0-3, VDD, VSS1-2 ▶ SPI mode compatibility ▶ DAT3 -> CS, CMD -> DI, DAT0 -> DO ▶ In initial release 25MHz clock - Kernel, drivers and embedded Linux - Development, consulting, training and support - https://bootlin.com 6/26
  • 7. SD card - Protocol SD Bus protocol ▶ Command and data bit stream ▶ Command and response on CMD line ▶ Data on the data lines ▶ Basic transaction command/response ▶ Some operations can have data token ▶ All communication initiated by the host ▶ Data transfer in block with CRC ▶ Multiple data block: always stop by a host command - Kernel, drivers and embedded Linux - Development, consulting, training and support - https://bootlin.com 7/26
  • 8. SD card vs MMC ▶ Initial version: 1 data line for MMC vs 4 for SD card ▶ Nowadays MMC can go up to 8 data lines ▶ No DRM in MMC ▶ Command set diverged ▶ Both have SPI compatibility mode - Kernel, drivers and embedded Linux - Development, consulting, training and support - https://bootlin.com 8/26
  • 9. eMMC ▶ other MMC extension from MMCA and JDEC ▶ eMMC stands for embedded MultiMedia Card ▶ Mentioned in the MMC spec v4.1 in 2007 - Kernel, drivers and embedded Linux - Development, consulting, training and support - https://bootlin.com 9/26
  • 10. eMMC - Hardware ▶ Flash chip + small micro-controller in BGA chip ▶ Pinout: ▶ Since 4.1, 14 pins: CLK, CMD, DAT0-7, VccQ, VssQ, Vcc, Vss ▶ With 4.4 version, one more pin: RST_n (Reset) ▶ With 5.0 version, one more pin: DS (Data Strobe) ▶ No more SPI mode compatibility since 4.3 ▶ In initial release: 52 MHz clock - Kernel, drivers and embedded Linux - Development, consulting, training and support - https://bootlin.com 10/26
  • 11. eMMC - Protocol Bus protocol same than the SD bus protocol (both came from MMC) ▶ Command, response on CMD line ▶ Data on the data lines ▶ Basic transaction command/response ▶ Some operation can have data token ▶ All communication initiate by the host ▶ Data transfer in block with CRC ▶ Multiple data blocks: always stop by a host command - Kernel, drivers and embedded Linux - Development, consulting, training and support - https://bootlin.com 11/26
  • 12. eMMC vs MMC card Both defined by the same specification but there still differences: ▶ eMMC BGA chip soldered to a board ▶ MMC card removable part ▶ Dedicated feature for eMMC such as partitioning, device information ▶ eMMC widely used whereas the MMC card are hard to find - Kernel, drivers and embedded Linux - Development, consulting, training and support - https://bootlin.com 12/26
  • 13. Support in Linux - History ▶ MMC Framework added in 2004 with 2.6.9 by Russell King ▶ SD card Support added in 2005 with 2.6.14 by Pierre Ossman (who became MMC maintainer in 2006) ▶ SDHCI (Secure Digital Host Controller Interface) added with 2.6.17 in 2006 ▶ High Speed mode (clock up to 52MHz) for MMC added with 2.6.20 ▶ High Speed mode for SD Card added in the same release ▶ SDIO extension support with 2.6.24 in 2007 - Kernel, drivers and embedded Linux - Development, consulting, training and support - https://bootlin.com 13/26
  • 14. Support in Linux ▶ Code located in drivers/mmc and headers in include/linux/mmc/ ▶ Currently maintained by Ulf Hansson since 2014 ▶ Code separated in two parts: ▶ core: protocol for MMC/eMMC and SD Card as well as common functions for the framework ▶ host: support for the controllers ▶ host/sdhci* for the controller based on SDHCI maintained by Adrian Hunter ▶ SPI mode supported in host/mmc_spi.c but currently without maintainer - Kernel, drivers and embedded Linux - Development, consulting, training and support - https://bootlin.com 14/26
  • 15. Speed mode improvement - High Speed ▶ Maximum clock from 26MHz to 52MHz for MMC ▶ Maximum clock from 25MHz to 50MHz for SD Card ▶ Introduce the speed mode selection sequence using CMD6 ▶ Introduce since SD v2 and MMC v4 - Kernel, drivers and embedded Linux - Development, consulting, training and support - https://bootlin.com 15/26
  • 16. Speed mode improvement - UHS-I 1/2 ▶ Introduced with SD 3.01 (2010) ▶ New speed modes (name are base on the bandwidth): ▶ SDR12 (max bandwidth: 12MB/s) ▶ SDR25 (max bandwidth: 25MB/s) ▶ SDR50 (max bandwidth: 50MB/s) ▶ SDR104 (max bandwidth: 104MB/s) ▶ DDR50 (max bandwidth: 50MB/s) ▶ All these new modes under 1.8V compared to the 3.3V for DS (Default Speed 25MHz) and HS (High Speed at 50MHz) ▶ New step in the switch sequence: modifying the voltage - Kernel, drivers and embedded Linux - Development, consulting, training and support - https://bootlin.com 16/26
  • 17. Speed mode improvement - UHS-I 2/2 ▶ SDR12: simple data rate with clock at 25MHz (with 4 lines) ▶ SDR25: simple data rate with clock at 50MHz (with 4 lines) ▶ SDR50: simple data rate with clock at 100MHz (with 4 lines) ▶ SDR104: simple data rate with clock at 208MHz (with 4 lines). For this speed mode tuning (CMD19) is required ▶ DDR50: double data rate with clock at 50MHz. Data sample on each front of the clock - Kernel, drivers and embedded Linux - Development, consulting, training and support - https://bootlin.com 17/26
  • 18. Speed mode improvement - DDR mode for eMMC ▶ Introduced with MMC 4.4 (2009) ▶ Up to 52MHz (as high Speed mode) ▶ Configured with CMD6 but with different arguments than SD Card ▶ Can be used at 3V ▶ At host controller level, same configuration used than for DDR50 - Kernel, drivers and embedded Linux - Development, consulting, training and support - https://bootlin.com 18/26
  • 19. Speed mode improvement - HS-200 ▶ Introduced with MMC 4.5 (2011) ▶ Up to 200MHz at single data rate ▶ Tuning command (CMD21) can be used to find optimal data sampling. ▶ Must be used at 1.8V or 1.2V - Kernel, drivers and embedded Linux - Development, consulting, training and support - https://bootlin.com 19/26
  • 20. Speed mode improvement - HS-400 ▶ Introduced with MMC 5.0 (2013) ▶ Up to 200MHz at dual data rate ▶ New DS (Data Strobe) line: used during DATA out and CRC response ▶ Tuning command (CMD21) can be used to find optimal data sampling. ▶ Must be used at 1.8V or 1.2V ▶ With MMC 5.1 (2014), Enhanced Strobe added: strobe also provided during CMD Response - Kernel, drivers and embedded Linux - Development, consulting, training and support - https://bootlin.com 20/26
  • 21. Speed mode improvement - UHS-II ▶ Introduced with SD 4.1 (2013) ▶ Completely new mode ▶ New set of signal: RCLK+, RCLK-, D0+,D0-,D1+,D1-, VSS3-5, VDD1-2 ▶ 2 data lanes (D0, D1) using 2 differential signals ▶ RCLK: 26 to 52 MHZ ▶ Data x15 or x30 depending of the mode, up to 312MB/s ▶ Completely different protocol: exchange of packet messages on both way ▶ Each packet have header and payload data ▶ At transaction layer possibility to encapsulate SD packet ▶ At lower level still needed to be able to use the new protocol ▶ With SD 6.0 (2017): UHS-III (624 MB/s) - Kernel, drivers and embedded Linux - Development, consulting, training and support - https://bootlin.com 21/26
  • 22. New speed Support in Linux - History ▶ DDR 50 mode added with 2.6.37 in 2010 ▶ UHS-I added with 3.0 in 2011 ▶ HS200 added with 3.10 in 2012 ▶ HS400 added with 3.16 in 2014 ▶ HS400 retuning added with 4.2 in 2015 ▶ HS400es (Enhanced Strobe) added with 4.8 in 2016 - Kernel, drivers and embedded Linux - Development, consulting, training and support - https://bootlin.com 22/26
  • 23. Current support in Linux ▶ Signal voltage switching needed for most of the new speed mode ▶ Supported by the framework in core.c ▶ Make use of the regulator framework ▶ Tuning used by eMMC and SD Card ▶ Function present in the core ▶ But implemented at controller driver level ▶ Switching sequence handled by the core but most of the steps can be customized for the host controller. - Kernel, drivers and embedded Linux - Development, consulting, training and support - https://bootlin.com 23/26
  • 24. Missing part and future challenge in Linux ▶ eMMC speed mode support quite complete, most of the development now at driver level and specific to each controller. ▶ SD Card: no support at all for UHS-II (and UHS III), adding this new protocol would be a big task. - Kernel, drivers and embedded Linux - Development, consulting, training and support - https://bootlin.com 24/26
  • 25. Future SD improvement: SD Express ▶ In June 2018, the SDA provided a white paper about the next version of the SD spec: SD Express – A Revolutionary Innovation for SD Memory Cards ▶ The next SD 7.0 will be based on PCIe and NVMe ▶ SD Express will be compatible with UHS-I but not with UHS-II or UHS III ▶ Add also a new power supply support: 1.2V ▶ There is hope that it should be supported straight forward in Linux thanks to the existing PCIe support - Kernel, drivers and embedded Linux - Development, consulting, training and support - https://bootlin.com 25/26
  • 26. Questions? Suggestions? Comments? Gregory CLEMENT gregory@bootlin.com Slides under CC-BY-SA 3.0 http://bootlin.com/pub/conferences/2018/kr/clement-overview-sd-emmc-high-speed-linux - Kernel, drivers and embedded Linux - Development, consulting, training and support - https://bootlin.com 26/26