am335x system upgrade kernel tf(五)
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(五)的更多相关文章
- am335x system upgrade kernel i2c rtc eeprom(六)
1 Scope of Document This document describes i2c bus hardware design and support i2c-devices: ee ...
- am335x system upgrade kernel ethernet(四)
1 Scope of Document This document describes ethernet hardware design and porting KZS8081 to ubo ...
- am335x system upgrade kernel gpio(九)
1 Hardware Overview gpio interface,pin map: AM335X_I2C0_W_C----------------------MCASP0_AXR1 /* ...
- am335x system upgrade kernel can(八)
1 Scope of Document This document describes can bus hardware design and can bus driver developm ...
- am335x system upgrade kernel uart(七)
1 Scope of Document This document describes UART hardware design, uart driver porting 2 Re ...
- am335x system upgrade kernel ec20 simcom7600ce(十一)
1 Scope of Document This document describes 4G hardware design, support quectel ec20 4G module/ ...
- am335x system upgrade kernel usb stroage(十)
1 Scope of Document This document describes USB hardware design, support stardard usb2.0 port o ...
- am335x system upgrade kernel f-ram fm25l16b(十六)
1 Scope of Document This document describes SPI F-RAM hardware design 2 Requiremen 2.1 ...
- am335x system upgrade kernel emmc(十八)
1 Scope of Document This document describes EMMC hardware design 2 Requiremen 2.1 Func ...
随机推荐
- Java-手动搭建SSH(maven版)
创建maven项目 把maven项目变为动态网站,步骤如下: 项目结构图如下: 开始搭建spring+springmvc+Hibernate项目 环境版本就不多说了,直接贴出pom.xml文件 < ...
- 【题解】Luogu P5337 [TJOI2019]甲苯先生的字符串
原题传送门 我们设计一个\(26*26\)的矩阵\(A\)表示\(a~z\)和\(a~z\)是否能够相邻,这个矩阵珂以由\(s1\)得出.答案显然是矩阵\(A^{len_{s2}-1}\)的所有元素之 ...
- Tr/ee AtCoder - 4433 (构造)
大意: 给定长$n$的字符串$s$, 要求构造一棵树, 满足若第$i$个字符为$1$, 那么可以删一条边, 得到一个大小为$i$的连通块. 若为$0$则表示不存在一条边删去后得到大小为$i$的连通块. ...
- TCP协议学习笔记
TCP协议数据格式 TCP协议在互联网ISO协议的传输层. 在互联网传输过程中,互联网包在数据链路层,是传输数据的最基础的包.一个互联网的包包含IP包,即互联网包 = 互联网信息包头(至少20字节)+ ...
- 全栈项目|小书架|服务器端-NodeJS+Koa2 实现评论功能
评论功能分析 上图可以看出评论功能主要实现了:评论的发布.评论列表的展示. 在不考虑子评论以及图片评论的场景下,评论功能主要有以下两个接口: 发布评论 获取评论列表(考虑分页) 评论 Model 的建 ...
- C#开启和关闭UAC功能
在制作软件安装包的时候,可以使用这个功能,关闭用户电脑UAC. 实现比较简单, 找到注册表 计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Curr ...
- .Net Core WepApi-JWT认证
JWT 介绍 JWT(Json Web Token)是一种开放标准,已Json对象的方式在各方之间安全地传输信息 JWT登陆状态不在服务器端进行存储,而是通过秘钥生成一个具有有效时间的Token返回给 ...
- jQuery.Form.js使用方法
一.jQuery.Form.js 插件的作用是实现Ajax提交表单. 方法: 1.formSerilize() 用于序列化表单中的数据,并将其自动整理成适合AJAX异步请求的URL地址格式. 2.cl ...
- api封装
const sql={ insert: function(collection,insertData){ return new Promise(function(resolve,reject){ co ...
- js删除对象里的某一个属性
var a={"id":1,"name":"danlis"}; //添加属性 a.age=18; console.log(a); //结果: ...