1      Scope of Document

This document describes TF hardware design

2      Requiremen

2.1     Function Requirement

Enumerate tf card , support boot from tf and can mount in rootfs when nand boot.

2.2     Performance Requirement

Support common capacity tf card

3      Hardware Overview

tf interface,pin map:

// data signal

AM335X_MMC0_DAT3----------MMC0_DAT3

AM335X_MMC0_DAT2----------MMC0_DAT2

AM335X_MMC0_DAT1----------MMC0_DAT1

AM335X_MMC0_DAT0----------MMC0_DAT0

// clk/cmd signal

AM335X_MMC0_CLK-----------MMC0_CLK

AM335X_MMC0_CMD----------MMC0_CMD

// card detect signal

AM335X_MCASP0_ACLK-----MCASP0_ACLKR (gpio3_18)

Figure 1 tf interface block diagram

4      Functional Description

4.1     Functional Block Diagram

Figure 2  inter block diagram

4.2     TF

4.2.1 Overview

AM335x has 3 instances MMC/SD/SDIO host controller, which provides an interface between microprocessor and either MMC, SD memory cards, or SDIO cards.

The MMC/SD driver is implemented as a block driver on top of host controller as a HSMMC controller driver and supports SD, SD High Speed and SDHC cards. The driver only supports for 4 bit modes(no SPI mode, 1/8 Bit). Both DMA & polled mode of data transfer is supported.

5      Porting

5.1     Uboot porting

Index: u-boot-2018.01/include/configs/am335x_evm.h

===================================================================

--- am335x_evm.h     (revision 4)

+++ am335x_evm.h  (revision 5)

@@ -17,6 +17,7 @@

#define __CONFIG_AM335X_EVM_H

#include <configs/ti_am335x_common.h>

+#define CONFIG_SD_BOOT

#ifndef CONFIG_SPL_BUILD

# define CONFIG_TIMESTAMPKernel porting

Nand to do pin mux in board/ti/am335x/mux.c

configure_module_pin_mux(mmc0_pin_mux_sk_evm);

 

5.2     Kernel porting

Device Drivers --->

<*> MMC/SD/SDIO card support --->

<*> MMC block device driver

<*> TI OMAP High Speed Multimedia Card Interface support

<M> MMC/SD/SDIO card support --->
<M> MMC block device driver
<M> TI OMAP High Speed Multimedia Card Interface support

Dts file change:

regulators {

compatible = "simple-bus";

vcc3v3: fixedregulator1 {

compatible =
"regulator-fixed";

regulator-name = "vcc3v3";

regulator-min-microvolt
= <3300000>;

regulator-max-microvolt
= <3300000>;

regulator-boot-on;

};

};

mmc1_pins: pinmux_mmc1_pins {

pinctrl-single,pins = <

AM33XX_IOPAD(0x8fc,
PIN_INPUT_PULLUP | MUX_MODE0)       /*
mmc0_dat0.mmc0_dat0 */

AM33XX_IOPAD(0x8f8,
PIN_INPUT_PULLUP | MUX_MODE0)       /*
mmc0_dat1.mmc0_dat1 */

AM33XX_IOPAD(0x8f4,
PIN_INPUT_PULLUP | MUX_MODE0)       /*
mmc0_dat2.mmc0_dat2 */

AM33XX_IOPAD(0x8f0,
PIN_INPUT_PULLUP | MUX_MODE0)       /*
mmc0_dat3.mmc0_dat3 */

AM33XX_IOPAD(0x904,
PIN_INPUT_PULLUP | MUX_MODE0)       /*
mmc0_cmd.mmc0_cmd */

AM33XX_IOPAD(0x900,
PIN_INPUT_PULLUP | MUX_MODE0)       /*
mmc0_clk.mmc0_clk */

AM33XX_IOPAD(0x9a0,
PIN_INPUT_PULLUP | MUX_MODE7)       /*
mcasp0_aclkr.mmc0_sdwp */

>;

};

&mmc1
{

status = "okay";

/*vmmc-supply =
<&vmmc_reg>;*/

vmmc-supply = <&vcc3v3>;

bus-width = <4>;

pinctrl-names = "default";

pinctrl-0 = <&mmc1_pins>;

cd-gpios = <&gpio3 18
GPIO_ACTIVE_LOW>;

};

[   
1.272256] omap_hsmmc 48060000.mmc: using lookup tables for GPIO lookup

[   
1.272266] omap_hsmmc 48060000.mmc: lookup for GPIO wp failed

[   
1.513463] mmc0: host does not support reading read-only switch, assuming
write-enable

[   
1.532796] mmc0: new high speed SDHC card at address 0007

[   
1.542753] mmcblk0: mmc0:0007 SD16G 14.5 GiB

[   
1.554116]  mmcblk0: p1

6     
Follow-up

We can do some optimize: for example fs check
function

Manual fs check :

root@am335x-evm:~# fsck /dev/mmcblk0p1

fsck from util-linux 2.30

CP437: Invalid argument

fsck.fat 4.1 (2017-01-24)

0x41: Dirty bit is set. Fs was not properly
unmounted and some data may be corrupt.

1) Remove dirty bit

2) No action

? 1

Perform changes ? (y/n) y

/dev/mmcblk0p1: 10 files, 35768/1901241 clusters

Auto fs check:

root@am335x-evm:/etc# vi   /etc/fstab

# stock fstab - you probably want to override this
with a machine specific one

/dev/root           
/                    auto       defaults              1  1

proc                
/proc                proc       defaults              0 
0

devpts              
/dev/pts             devpts     mode=0620,gid=5       0 
0

usbdevfs            
/proc/bus/usb        usbdevfs   noauto                0  0

tmpfs                /run                 tmpfs      mode=0755,nodev,nosuid,strictatime 0  0

tmpfs               
/var/volatile        tmpfs      defaults,size=50M     0  0

tmpfs               
/media/ram           tmpfs      defaults,size=16M     0  0

# uncomment this if your device has a
SD/MMC/Transflash slot

/dev/mmcblk0p1       /media/card          auto       defaults,sync,noauto  0  1

am335x system upgrade kernel tf(五)的更多相关文章

  1. am335x system upgrade kernel i2c rtc eeprom(六)

    1      Scope of Document This document describes i2c bus hardware design and support i2c-devices: ee ...

  2. am335x system upgrade kernel ethernet(四)

    1      Scope of Document This document describes ethernet hardware design and porting KZS8081 to ubo ...

  3. am335x system upgrade kernel gpio(九)

    1      Hardware Overview gpio interface,pin map: AM335X_I2C0_W_C----------------------MCASP0_AXR1 /* ...

  4. am335x system upgrade kernel can(八)

    1      Scope of Document This document describes can bus hardware design and can bus driver developm ...

  5. am335x system upgrade kernel uart(七)

    1      Scope of Document This document describes UART hardware design, uart driver porting 2      Re ...

  6. am335x system upgrade kernel ec20 simcom7600ce(十一)

    1      Scope of Document This document describes 4G hardware design, support quectel ec20 4G module/ ...

  7. am335x system upgrade kernel usb stroage(十)

    1      Scope of Document This document describes USB hardware design, support stardard usb2.0 port o ...

  8. am335x system upgrade kernel f-ram fm25l16b(十六)

    1      Scope of Document This document describes SPI F-RAM hardware design 2      Requiremen 2.1     ...

  9. am335x system upgrade kernel emmc(十八)

    1      Scope of Document This document describes EMMC hardware design 2      Requiremen 2.1     Func ...

随机推荐

  1. golang微服务框架go-micro 入门笔记2.2 micro工具之微应用利器micro web

    micro web micro 功能非常强大,本文将详细阐述micro web 命令行的功能 阅读本文前你可能需要进行如下知识储备 golang分布式微服务框架go-micro 入门笔记1:搭建go- ...

  2. golang学习笔记 ---常用第三方包

    包的介绍 包类似Java中概念,jar是源代码管理,分发的最小单位. 目前多数包来自 Github官方包来自 golang.org/x/... 可以在如下网址查询到高频使用的第三方包清单https:/ ...

  3. MySQL单表数据量过千万,采坑优化记录,完美解决方案

    问题概述 使用阿里云rds for MySQL数据库(就是MySQL5.6版本),有个用户上网记录表6个月的数据量近2000万,保留最近一年的数据量达到4000万,查询速度极慢,日常卡死.严重影响业务 ...

  4. Visual Studio 2019 使用.Net Core 3.0 二

    一.遇到难题 在微软官方逛了一圈,看到了这个. 马上点击,进去看看什么情况. 1.安装previewVisual studio 2019 2.设置SDK previews in Visual Stud ...

  5. C# vb .net实现锐化效果滤镜

    在.net中,如何简单快捷地实现Photoshop滤镜组中的锐化效果呢?答案是调用SharpImage!专业图像特效滤镜和合成类库.下面开始演示关键代码,您也可以在文末下载全部源码: 设置授权 第一步 ...

  6. 有价证券secuerity英语

    证券业 证券业是为证券投资活动服务的专门行业.各国定义的证券业范围略有不同.按照美国的 “产业分类标准”,证券业由证券经纪公司.证券交易所和有关的商品经纪集团组成.证券业在世界各国都是一个小的产业部门 ...

  7. ABAP和Java里的单例模式攻击

    面向对象编程世界里的单例模式(Singleton)可能是设计模式里最简单的一种,大多数开发人员都觉得可以很容易掌握它的用法.单例模式保证一个类仅有一个实例,并提供一个访问它的全局访问点. 然而在某些场 ...

  8. java-检查IP和端口在超时时间内是否可以连接

    检查IP和端口在超时时间内是否可以连接 /** * 检查IP和端口是否可以连接 * @param ip * @param port * @return */ private static boolea ...

  9. PHP实现财务审核通过后返现金额到客户

    应用场景: 有这么一个返现的系统,当前端客户发起提现的时候,后端就要通过审核这笔返现订单,才可以返现到客户的账号里. 来看看下面的截图 这里的业务场景就是经过两轮审核:销售审核,财务审核都通过后,后端 ...

  10. Linux IO 概念(1)

    基础概念 文件描述fd 文件描述符(file description),用于表述指向文件引用的抽象话题概念 文件描述符在形式上是一个非负整数,实际上它是一个索引值,指向内核为每一个进程所维护的该进程打 ...