欧美性猛交xxxx免费看_牛牛在线视频国产免费_天堂草原电视剧在线观看免费_国产粉嫩高清在线观看_国产欧美日本亚洲精品一5区

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Linux MMC開發(fā)指南

嵌入式Linux那些事 ? 來源:嵌入式Linux那些事 ? 作者:嵌入式Linux那些事 ? 2023-03-06 10:21 ? 次閱讀

Linux MMC 開發(fā)指南

1 前言

1.1 文檔簡介

介紹 Linux 內(nèi)核中 SD/MMC 子系統(tǒng)的接口及使用方法,為 SD/MMC 設(shè)備驅(qū)動的開發(fā)提供參考。

1.2 目標(biāo)讀者

SD/MMC 驅(qū)動的開發(fā)/維護(hù)人員。

1.3 適用范圍

產(chǎn)品名稱 內(nèi)核版本 驅(qū)動文件
A133 Linux-5.4 sunxi_mmc*
h616 Linux-5.4 sunxi_mmc*
v853 Linux-4.9 sunxi_mmc*
R853 Linux-4.9 sunxi_mmc*
F133 Linux-5.4 sunxi_mmc*

2 模塊介紹

2.1 模塊功能介紹

Linux 提供了 MMC 子系統(tǒng)來實(shí)現(xiàn)對各種 SD/MMC/EMMC/SDIO 設(shè)備訪問,MMC 子系統(tǒng)由上到下可以分為三層,MMC/SD card 層,MMC/SD core 層以及 MMC/SD host 層,它們之間的層次關(guān)系如下所示。

MMC/SD card 層負(fù)主要是按照 LINUX 塊設(shè)備驅(qū)動程序的框架實(shí)現(xiàn)一個卡的塊設(shè)備驅(qū)動。負(fù)責(zé)塊設(shè)備請求的處理,以及請求隊(duì)列的管理。

MMC/SD core 層負(fù)責(zé)通信協(xié)議的處理,包括 SD/MMC/eMMC/SDIO,為上一層提供具體讀寫接口,同時為下一層提供 host 端接口。

MMC/SD host 層是實(shí)現(xiàn)對 SD/MMC 控制器相關(guān)的操作,直接操作硬件,也是主要實(shí)現(xiàn)部分。

2.2 相關(guān)術(shù)語介紹

2.2.1 硬件術(shù)語

術(shù)語 解釋說明
Sunxi 指 Allwinner 的一系列 SOC 硬件平臺。
SD Secure Digital Memory Card
MMC Multimedia Card
eMMC Embedded MultiMediaCard
host 指具體的 SD/MMC 控制器

2.2.2 軟件術(shù)語

2.3 模塊配置介紹

2.3.1 sys_config.fex 配置說明

[card0_boot_para]

card_ctrl = 0

card_high_speed = 1

card_line = 4

sdc_d1 = port:PF0<2><1><3>

sdc_d0 = port:PF1<2><1><3>

sdc_clk = port:PF2<2><1><3>

sdc_cmd = port:PF3<2><1><3>

sdc_d3 = port:PF4<2><1><3>

sdc_d2 = port:PF5<2><1><3>

各個配置項(xiàng)的意義如下:

配置項(xiàng) 配置項(xiàng)含義
card_ctrl 0:選擇卡量產(chǎn)相關(guān)的控制器
card_high_speed 速度模式 0 為低速,1 為高速
card_line 代表卡總線寬度,分別有 1,4,8
sdc_d1 sdc data1 的 GPIO 配置
sdc_d0 sdc data0 的 GPIO 配置
sdc_clk sdc clk 的 GPIO 配置
sdc_cmd sdc cmd 的 GPIO 配置
sdc_d3 sdc data3 的 GPIO 配置
sdc_d2 sdc data2 的 GPIO 配置

[card2_boot_para]

card_ctrl = 2

card_high_speed = 1

card_line = 8

sdc_clk = port:PC5<3><1><3>

sdc_cmd = port:PC6<3><1><3>

sdc_d0 = port:PC10<3><1><3>

sdc_d1 = port:PC13<3><1><3>

sdc_d2 = port:PC15<3><1><3>

sdc_d3 = port:PC8<3><1><3>

sdc_d4 = port:PC9<3><1><3>

sdc_d5 = port:PC11<3><1><3>

sdc_d6 = port:PC14<3><1><3>

sdc_d7 = port:PC16<3><1><3>

sdc_emmc_rst = port:PC1<3><1><3>

sdc_ds = port:PC0<3><2><3>

sdc_ex_dly_used = 2

sdc_io_1v8 = 1

各個配置項(xiàng)的意義如下:

配置項(xiàng) 配置項(xiàng)含義
card_ctrl 0:選擇卡量產(chǎn)相關(guān)的控制器
card_high_speed 速度模式 0 為低速,1 為高速
card_line 代表卡總線寬度,分別有 1,4,8
sdc_clk sdc clk 的 GPIO 配置
sdc_cmd sdc cmd 的 GPIO 配置
sdc_d0 sdc data0 的 GPIO 配置
sdc_d1 sdc data1 的 GPIO 配置
sdc_d3 sdc data3 的 GPIO 配置
sdc_d4 sdc data4 的 GPIO 配置
sdc_d5 sdc data5 的 GPIO 配置
sdc_d6 sdc data6 的 GPIO 配置
sdc_d7 sdc data7 的 GPIO 配置
sdc_emmc_rst emmc 復(fù)位信號的 GPIO 配置
sdc_ds sdc ds 線的 GPIO 配置
sdc_ex_dly_used 采樣模式控制,2: tune 采樣點(diǎn);1:固定采樣點(diǎn)方式,燒寫階段和啟動階段,通過 sys_config 配置采樣點(diǎn);其它值:燒寫階段和啟動階段使用預(yù)設(shè)的采樣點(diǎn),通常用 2,不建議修改
sdc_io_1v8 1: 表示 eMMC IO 電平是 1.8V ,需要根據(jù)實(shí)際 emmc io 供電配置
sdc_force_boot_tuning 1: 強(qiáng)制啟動 tuning
sdc_tm4_win_th Tune 采樣最小可選窗口
sdc_dis_host_caps 禁止某一種速度模式,bit1:Host 不支持 HS-SDR;Bit3:Host不支持 8 線模式;bit6:Host 不支持 HS-DDR;bit7:Host 不支持HS200;bit8:Host 不支持 HS400;其他值,不建議使用

2.3.2 Device Tree 配置說明

2.3.2.1 1.uboot 階段

放到板級目錄下面:uboot-board.dts

2.3.2.1.1(1)sdc0

&sdc0_pins_a {

allwinner,pins = "PF0", "PF1", "PF2",

"PF3", "PF4", "PF5";

allwinner,function = "sdc0";

allwinner,muxsel = <2>;

allwinner,drive = <3>;

allwinner,pull = <1>;

};

&card0_boot_para {

/* reg = <0x0 0x2 0x0 0x0>; */

device_type = "card0_boot_para";

card_ctrl = <0x0>;

card_high_speed = <0x1>;

card_line = <0x4>;

pinctrl-0 = <&sdc0_pins_a>;

};

配置項(xiàng) 配置項(xiàng)含義
card_ctrl 0:選擇卡量產(chǎn)相關(guān)的控制器
card_high_speed 速度模式 0 為低速,1 為高速
card_line 代表卡總線寬度,分別有 1,4,8
pinctrl-0 代表卡的 pin 設(shè)置
sdc0_pins_a 具體卡的 pin 設(shè)置,allwinner,pins 代表具體的 pin 名字,allwinner,function 表示 pin 選擇的功能,這里選擇 sdc0,allwinner,muxsel 代表 sdc0 對應(yīng) spec 里面的功能值,allwinner,drive 代表去掉能力,allwinner,pull 代表上下拉

2.3.2.1.2 (2)sdc2

&sdc2_pins_a {

allwinner,pins = "PC1", "PC5", "PC6",

"PC8", "PC9", "PC10", "PC11",

"PC13", "PC14", "PC15", "PC16";

allwinner,function = "sdc2";

allwinner,muxsel = <3>;

allwinner,drive = <3>;

allwinner,pull = <1>;

};

&sdc2_pins_b {

allwinner,pins = "PC0", "PC1", "PC5", "PC6",

"PC8", "PC9", "PC10", "PC11",

"PC13", "PC14", "PC15", "PC16";

allwinner,function = "io_disabled";

allwinner,muxsel = <7>;

allwinner,drive = <1>;

allwinner,pull = <1>;

};

&sdc2_pins_c {

allwinner,pins = "PC0";

allwinner,function = "sdc2";

allwinner,muxsel = <3>;

allwinner,drive = <3>;

allwinner,pull = <2>;

};

&card2_boot_para {

/*reg = <0x0 0x3 0x0 0x0>; */

device_type = "card2_boot_para";

card_ctrl = <0x2>;

card_high_speed = <0x1>;

card_line = <0x8>;

pinctrl-0 = <&sdc2_pins_a &sdc2_pins_c>;

sdc_ex_dly_used = <0x2>;

sdc_io_1v8 = <0x1>;

sdc_tm4_win_th = <0x08>;

sdc_tm4_hs200_max_freq = <150>;

sdc_tm4_hs400_max_freq = <100>;

sdc_type = "tm4";

};

配置項(xiàng) 配置項(xiàng)含義
card_ctrl 0:選擇卡量產(chǎn)相關(guān)的控制器
card_high_speed 速度模式 0 為低速,1 為高速
card_line 代表卡總線寬度,分別有 1,4,8
sdc_ex_dly_used 采樣模式控制,2: tune 采樣點(diǎn);1:固定采樣點(diǎn)方式,燒寫階段和啟動階段,通過 sys_config 配置采樣點(diǎn);其它值:燒寫階段和啟動階段使用預(yù)設(shè)的采樣點(diǎn),通常用 2
sdc_io_1v8 1: 表示 eMMC IO 電平是 1.8V, 需要根據(jù)實(shí)際 emmc io 供電配置
sdc_tm4_win_th Tune 采樣最小可選窗口
sdc_tm4_hs200_max_freq/ 代表 emmc 的 hs200/hs400 最大頻率設(shè)置, 不建議修改
sdc_tm4_hs400_max_freq
sdc2_pins_a, sdc2_pins_c 具體卡的 pin 設(shè)置,allwinner,pins 代表具體的 pin 名字,allwinner,function 表示 pin 選擇的功能,這里選擇 sdc0,allwinner,muxsel 代表sdc0 對應(yīng) spec 里面的功能值,allwinner,drive代表去掉能力,allwinner,pull 代表上下拉

2.3.2.2 2. 內(nèi)核階段

存放在 board.dts 或者內(nèi)核目錄下面 arch/armXX/boot/dts/sunxi/sunxiXiwXpX 中在不同的 Sunxi 硬件平臺中,SD/MMC 控制器的數(shù)目也不一定相同,但對于每一個 SD/MMC 控制器來說,在 board.dts 中配置的參數(shù)相似。各個項(xiàng)目的意義如下

2.3.2.2.1 [sdc0] 通常用作 SD 卡

sdc0: sdmmc@04020000 {

device_type = "sdc0";

cd-used-24M;

disable-wp;

pinctrl-0 = <&sdc0_pins_a>;

bus-width = <4>;

cd-gpios = <&pio PF 6 6 1 3 0xffffffff>;

/*non-removable;*/

/*broken-cd;*/

/*cd-inverted*/

/*data3-detect;*/

cap-sd-highspeed;

sd-uhs-sdr50;

sd-uhs-ddr50;

sd-uhs-sdr104;

no-sdio;

no-mmc;

sunxi-power-save-mode;

/*sunxi-dis-signal-vol-sw;*/

max-frequency = <150000000>;

ctl-spec-caps = <0x8>;

vmmc-supply = ;

vqmmc33sw-supply = ;

vdmmc33sw-supply = ;

vqmmc18sw-supply = ;

vdmmc18sw-supply = ;

status = "okay";

};

各個配置項(xiàng)的意義如下:

配置項(xiàng) 配置項(xiàng)含義
device_type phy 索引值的選擇
cd-used-24M 使用 24M 時鐘檢測插拔卡中斷
disable-wp 卡設(shè)置寫保護(hù),ro
pinctrl-0 第一組 pin 腳的 GPIO 配置
bus-width bus-width
cd-gpios 卡檢測的 GPIO 配置
non-removable 不可移除
broken-cd sd 卡檢測方式:輪訓(xùn)
cd-inverted 卡檢測的高電平有效還是低電平有效
data3-detect data3 線檢測卡
cap-sd-highspeed SD 卡的 High speed
sd-uhs-sdr50 SD 卡的 uhs-sdr50
sd-uhs-ddr50 SD 卡的 uhs-ddr50
sd-uhs-sdr104 SD 卡的 uhs-sdr104
no-sdio 無 sdio
no-mmc 無 mmc
sunxi-power-save-mode 發(fā)送數(shù)據(jù)或者命令才有時鐘輸出
sunxi-dis-signal-vol-sw 關(guān)閉電壓切換
max-frequency 最大頻率
ctl-spec-caps 控制 spec 能力
vmmc-supply 供電電壓、工作電壓,需要根據(jù)實(shí)際 pmu 供電方案修改
vqmmc33sw-supply 3.3V 的 IO 電壓,需要根據(jù)實(shí)際 pmu 供電方案修改
vdmmc33sw-supply 3.3V 的卡檢測電壓,需要根據(jù)實(shí)際 pmu 供電方案修改
vqmmc18sw-supply 1.8V 的 IO 電壓,需要根據(jù)實(shí)際 pmu 供電方案修改
vdmmc18sw-supply 1.8V 的卡檢測電壓,需要根據(jù)實(shí)際 pmu 供電方案修改
status 設(shè)備樹的狀態(tài)

2.3.2.2.2 [sdc1] 通常用作 SDIO WIFI

sdc1: sdmmc@04021000 {

pinctrl-0 = <&sdc0_pins_a>;

bus-width = <4>;

cap-sd-highspeed;

sd-uhs-sdr50;

sd-uhs-ddr50;

sd-uhs-sdr104;

no-sd;

no-mmc;

/*sunxi-power-save-mode;*/

/*sunxi-dis-signal-vol-sw;*/

cap-sdio-irq;

keep-power-in-suspend;

ignore-pm-notify;

max-frequency = <150000000>;

ctl-spec-caps = <0x8>;

sunxi-dly-208M = <1 1 0 0 0 1>;

vmmc-supply = ;

vqmmc33sw-supply = ;

vdmmc33sw-supply = ;

vqmmc18sw-supply = ;

vdmmc18sw-supply = ;

status = "okay";

};

各個配置項(xiàng)的意義如下:

配置項(xiàng) 配置項(xiàng)含義
pinctrl-0 第一組 pin 腳的 GPIO 配置
bus-width 線寬
cap-sd-highspeed SDIO 卡的 High speed
sd-uhs-sdr50 SDIO 卡的 uhs-sdr50
sd-uhs-ddr50 SDIO 卡的 uhs-ddr50
sd-uhs-sdr104 SDIO 卡的 uhs-sdr104
no-sd 無 sd
no-mmc 無 mmc
sunxi-power-save-mode 發(fā)送數(shù)據(jù)或者命令才有時鐘輸出
sunxi-dis-signal-vol-sw 關(guān)閉電壓切換
cap-sdio-irq 開啟 SDIO 中斷
keep-power-in-suspend 休眠時保持電源
ignore-pm-notify 忽略電源管理的通知
max-frequency 最大頻率
ctl-spec-caps 控制 spec 能力
sunxi-dly-208M <1(cmd driver phase) 1(data driver phase) 00 0(data sample phase) 0(cmd sample phase)>
vmmc-supply 供電電壓、工作電壓,需要根據(jù)實(shí)際 pmu 供電方案修改
vqmmc33sw-supply 3.3V 的 IO 電壓,需要根據(jù)實(shí)際 pmu 供電方案修改
vdmmc33sw-supply 3.3V 的卡檢測電壓,需要根據(jù)實(shí)際 pmu 供電方案修改
vqmmc18sw-supply 1.8V 的 IO 電壓,需要根據(jù)實(shí)際 pmu 供電方案修改
vdmmc18sw-supply 1.8V 的卡檢測電壓,需要根據(jù)實(shí)際 pmu 供電方案修改
status 設(shè)備樹的狀態(tài)

2.3.2.2.3 [sdc2] 通常用作 eMMC

sdc2: sdmmc@04022000 {

pinctrl-0 = <&sdc0_pins_a &sdc0_pins_c>;

bus-width = <8>;

non-removable;

cap-mmc-highspeed;

mmc-ddr-1_8v;

mmc-hs200-1_8v;

mmc-hs400-1_8v;

no-sdio;

no-sd;

sunxi-power-save-mode;

sunxi-dis-signal-vol-sw;

max-frequency = <100000000>;

ctl-spec-caps = <0x308>;

vmmc-supply = ;

vqmmc-supply = ;

fixed-emmc-driver-type = <0x1>;

sdc_tm4_sm0_freq0 = <0>;

status = "disabled";

};

各個配置項(xiàng)的意義如下:

配置項(xiàng) 配置項(xiàng)含義
pinctrl-0 第一組 pin 腳的 GPIO 配置
bus-width 線寬
non-removable 不可移除
cap-mmc-highspeed MMC 卡的 High speed
mmc-ddr-1_8v MMC 卡的 ddr50
mmc-hs200-1_8v MMC 卡的 hs200
mmc-hs400-1_8v MMC 卡的 hs400
no-sdio 無 sdio
no-sd 無 sd
sunxi-power-save-mode 發(fā)送數(shù)據(jù)或者命令才有時鐘輸出
sunxi-dis-signal-vol-sw 關(guān)閉電壓切換
max-frequency 最大頻率
vmmc-supply 供電電壓、工作電壓,需要根據(jù)實(shí)際 pmu 供電方案修改
vqmmc-supply IO 電壓,需要根據(jù)實(shí)際 pmu 供電方案修改
fixed-emmc-driver-type 驅(qū)動能力等級調(diào)整,對應(yīng)設(shè)置 Extended CSD register 中 HS_TIMING
sdc_tm4_sm0_freqn host timing setting
status 設(shè)備樹的狀態(tài)

2.3.3 kernel menuconfig 配置說明

在命令行中進(jìn)入內(nèi)核 longan 根目錄,執(zhí)行./build.sh menuconfig 進(jìn)入配置界面,并按以下步驟操作:

1.menuconfig 主界面

poYBAGQFTjyAa3BQAAD4QXxH6B4179.png

圖 2-1: menuconfig 主界面

進(jìn)入 Device Drivers,并選中 MMC/SD/SDIO card support 為 “ * ”

pYYBAGQFTj2AMOcrAADv13w4Nds014.png

圖 2-2: Device drivers 界面

選擇 Allwinner sunxi SD/MMC Host Controller support 為 “ * ”,編譯進(jìn)內(nèi)核(M 為編譯進(jìn)模塊)

poYBAGQFTj6AV4vkAAC4YZvMOj0971.png

圖 2-3: sdmmc 支持界面

2.4 源碼結(jié)構(gòu)介紹

SD/MMC 總線驅(qū)動的源代碼位于內(nèi)核在 drivers/mmc/host 目錄下:drivers/mmc/host

├── sunxi-mmc.c // 集中了所有的的控制器的公共部分以及主要的控制邏輯代碼,以及大部分的資源申請和使用,包括中斷,pin,ccmu 等

├── sunxi-mmc.h // 為 Sunxi 平臺的 SD/MMC 控制器驅(qū)動定義了一些公共的宏、數(shù)據(jù)結(jié)構(gòu)

|—— sunxi-mmc-v4p1x.c // 部分平臺的 sdc0、sdc1 的控制器差異部分驅(qū)動代碼

|—— sunxi-mmc-v4p1x.h // 部分平臺的 sdc0、sdc1 的控制器驅(qū)動定義了一些的宏、數(shù)據(jù)結(jié)構(gòu)

|—— sunxi-mmc-v4p5x.c // sdc2 的控制器差異部分驅(qū)動代碼

|—— sunxi-mmc-v4p5x.h // sdc2 的控制器驅(qū)動定義了一些的宏、數(shù)據(jù)結(jié)構(gòu)

|—— sunxi-mmc-v5p3x.c /部分平臺的 sdc0、sdc1 的控制器差異部分驅(qū)動代碼

|—— sunxi-mmc-v5p3x.h//部分平臺的 sdc0、sdc1 的控制器驅(qū)動定義了一些的宏、數(shù)據(jù)結(jié)構(gòu)

|—— sunxi-mmc-debug.c 用于 debug 的代碼

|—— sunxi-mmc-export.c 提供給其他模塊的獨(dú)立接口

2.5 驅(qū)動框架介紹

如源碼結(jié)構(gòu)介紹

3 模塊接口說明

對外函數(shù)接口

3.1 sunxi_mmc_rescan_card()

? 作用:用于其他模塊手動掃描 sd/sdio,主要提供給 wifi 驅(qū)動使用

? 參數(shù):

? 參數(shù) 1:id 對于的物理控制器 id

? 返回:

?

4 模塊使用范例

5 FAQ

pYYBAGQFTj-ARmB6AAMhzGUP_GI172.png

1、問:sd 卡和 wifi 經(jīng)常出現(xiàn) retry:start 等打印的原因和原理;

答:出現(xiàn)這種情況是因?yàn)?sdio 通信失敗了,一般是數(shù)據(jù) crc 校驗(yàn)錯誤;對于這種錯誤主要懷疑,

硬件信號受到干擾;而這個 retry 機(jī)制是通過重發(fā)改變相位等方法來規(guī)避單次通信失?。辉谕ㄐ?/p>

無法回復(fù)的情況下,會出現(xiàn)大量的 retrylog,此時請檢查硬件信號,供電等關(guān)鍵信息。

5.1 調(diào)試方法

5.1.1 調(diào)試工具

5.1.2 調(diào)試節(jié)點(diǎn)

5.1.2.1 1. 寄存器信息

linux5.4 內(nèi)核

a.sdc2

(1).sdc2 gpio 寄存器信息

cat /sys/devices/platform/soc@2900000/4022000.sdmmc/sunxi_dump_gpio_register

(2).sdc2 ccmu 寄存器信息

cat /sys/devices/platform/soc@2900000/4022000.sdmmc/sunxi_dump_ccmu_register

(3).sdc2 host 寄存器信息

cat /sys/devices/platform/soc@2900000/4022000.sdmmc/sunxi_dump_host_register

b.sdc0

(1).sdc0 gpio 寄存器信息

cat /sys/devices/platform/soc@2900000/4020000.sdmmc/sunxi_dump_gpio_register

(2).sdc0 ccmu 寄存器信息

cat /sys/devices/platform/soc@2900000/4020000.sdmmc/sunxi_dump_ccmu_register

(3).sdc0 host 寄存器信息

cat /sys/devices/platform/soc@2900000/4020000.sdmmc/sunxi_dump_host_register

(4)手動掃描卡接口

echo 1 > /sys/devices/platform/soc@2900000/4020000.sdmmc/sunxi_insert

c.sdc1

(1).sdc1 gpio 寄存器信息

cat /sys/devices/platform/soc@2900000/4021000.sdmmc/sunxi_dump_gpio_register

(2).sdc1 ccmu 寄存器信息

cat /sys/devices/platform/soc@2900000/4021000.sdmmc/sunxi_dump_ccmu_register

(3).sdc1 host 寄存器信息

cat /sys/devices/platform/soc@2900000/4021000.sdmmc/sunxi_dump_host_register

linux4.9 內(nèi)核

a.sdc2

(1).sdc2 gpio 寄存器信息

cat /sys/devices/platform/soc/sdc2/sunxi_dump_gpio_register

(2).sdc2 ccmu 寄存器信息

cat /sys/devices/platform/soc/sdc2/sunxi_dump_ccmu_register

(3).sdc2 host 寄存器信息

cat /sys/devices/platform/soc/sdc2/sunxi_dump_host_register

b.sdc0

(1).sdc0 gpio 寄存器信息

cat /sys/devices/platform/soc/sdc0/sunxi_dump_gpio_register

(2).sdc0 ccmu 寄存器信息

cat /sys/devices/platform/soc/sdc0/sunxi_dump_ccmu_register

(3).sdc0 host 寄存器信息

cat /sys/devices/platform/soc/sdc0/sunxi_dump_host_register

(4)手動掃描卡接口

echo 1 > /sys/devices/platform/soc/sdc0/sunxi_insert

c.sdc1

(1).sdc1 gpio 寄存器信息

cat /sys/devices/platform/soc/sdc1/sunxi_dump_gpio_register

(2).sdc1 ccmu 寄存器信息

cat /sys/devices/platform/soc/sdc1/sunxi_dump_ccmu_register

(3).sdc1 host 寄存器信息

cat /sys/devices/platform/soc/sdc1/sunxi_dump_host_register

5.1.2.2 2.emmc 信息

(1)獲取路徑:cd /sys/block/mmcblk0/device. 這里包含了大部分的 emmc 信息

block ffu_capable preferred_erase_size cid fwrev prv cmdq_en hwrev raw_rpmb_size_mult csd life_time rca date manfid rel_sectors driver mmcblk0rpmb rev dsr name serial enhanced_area_offset ocr subsystem enhanced_area_size oemid type enhanced_rpmb_supported power uevent erase_size pre_eol_info

(2)cat 需要的信息,

例如獲取壽命信息

cat life_time

cat pre_eol_info

獲取 emmc 名字

cat namd

獲取生產(chǎn)日期

cat data

獲取唯一識別碼

cat cid

獲取制造商 id

cat manfid

5.1.2.3 3、性能驗(yàn)證節(jié)點(diǎn)

該節(jié)點(diǎn)主要是用來記錄底層存儲的讀寫性能,該節(jié)點(diǎn)記錄的數(shù)據(jù)不參含調(diào)度以及文件系統(tǒng)的影響。

為了描述方便,這里設(shè)定 base 目錄這一概念,其中 X 代表控制器號;

內(nèi)核 linux4.9 base=/sys/devices/platform/soc/sdcX

內(nèi)核 linux5.4 base=/sys/devices/platform/soc@2900000/402X000.sdmmc

(1) 開始測量:echo 1 > /$base/sunxi_host_perf

(2) 進(jìn)行讀寫操作

(3) 獲取測試結(jié)果:cat /$base/sunxi_host_perf

pYYBAGQFTj-ASeCoAABNln9QNvI823.png

圖 5-1: sunxi_host_perf

(4) 速度計(jì)算:1073741824byte/105978400us = 9.66MB/s

(5) 清除測量數(shù)據(jù):echo 0 > /$base/sunxi_host_perf

動態(tài)設(shè)置

以下動態(tài)設(shè)置的節(jié)點(diǎn)均于 base 目錄下:

sunxi_host_perf 總開關(guān),打開后下面設(shè)置才有效

sunxi_host_filter_w_sector:單筆數(shù)據(jù)傳輸?shù)臄?shù)據(jù)大于等于這個數(shù)據(jù)量,

sunxi_host_filter_w_speed 才生效,單位是扇區(qū)

sunxi_host_filter_w_speed:速度低于這個值就打印出來,單位是 B/S

參考

echo 20971520 > /$base/sunxi_host_filter_w_speed

echo 8 > /$base/sunxi_host_filter_w_sector

echo 1 > /$base/sunxi_host_perf

效果

20190322_17:24:37.207 [ 64.922940] c=25,a=0x 3fc00,bs= 2560,t= 105463us,sp=12136KB/s

20190322_17:24:37.586 [ 65.301113] c=25,a=0x 43800,bs= 2560,t= 92740us,sp=13802KB/s

20190322_17:24:37.829 [ 65.544155] c=25,a=0x 46000,bs= 2560,t= 94162us,sp=13593KB/s

20190322_17:24:37.967 [ 65.682744] c=25,a=0x 47400,bs= 2560,t= 77371us,sp=16543KB/s

20190322_17:24:38.041 [ 65.755126] c=25,a=0x 47e00,bs= 2560,t= 64860us,sp=19734KB/s

開機(jī)默認(rèn)啟動

在 dts 或者 sysconfig.fex 里面加入下面配置

per_enable:總開關(guān),打開后下面設(shè)置才有效

fiter_sector :傳輸?shù)臄?shù)據(jù)大于等于這個數(shù)據(jù)量,

fiter_speed 才生效,單位是扇區(qū)

fiter_speed:速度低于這個值就打印出來,單位是 B/S

參考

poYBAGQFTkCAeULcAAOgVVWXHgE422.png

圖 5-2: sysconfig 性能測試配置

效果

20190322_17:24:37.207 [ 64.922940] c=25,a=0x 3fc00,bs= 2560,t= 105463us,sp=12136KB/s

20190322_17:24:37.586 [ 65.301113] c=25,a=0x 43800,bs= 2560,t= 92740us,sp=13802KB/s

20190322_17:24:37.829 [ 65.544155] c=25,a=0x 46000,bs= 2560,t= 94162us,sp=13593KB/s

20190322_17:24:37.967 [ 65.682744] c=25,a=0x 47400,bs= 2560,t= 77371us,sp=16543KB/s

20190322_17:24:38.041 [ 65.755126] c=25,a=0x 47e00,bs= 2560,t= 64860us,sp=19734KB/s

5.2 常見問題

參考《MMC 量產(chǎn)問題快速排查指南》《eMMC 硬件排查指南》

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 內(nèi)核
    +關(guān)注

    關(guān)注

    3

    文章

    1383

    瀏覽量

    40438
  • 接口
    +關(guān)注

    關(guān)注

    33

    文章

    8706

    瀏覽量

    151987
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11350

    瀏覽量

    210476
  • MMC
    MMC
    +關(guān)注

    關(guān)注

    0

    文章

    77

    瀏覽量

    30554
收藏 人收藏

    評論

    相關(guān)推薦

    EAC0945 linux開發(fā)指南

    EAC0945 linux開發(fā)指南
    發(fā)表于 09-28 12:40

    EAC0945 linux開發(fā)指南

    `EAC0945 linux開發(fā)指南`
    發(fā)表于 10-31 12:18

    Rockchip Linux SDK uboot logo開發(fā)指南

    arm嵌入式vs-rk3399 板卡uboot logo 開發(fā)指南概述:本文檔主要介紹 rockchip linux sdk uboot logo 顯示的相關(guān)功能、配置以及開發(fā)過程中的注意事項(xiàng)。適用于 rockhip
    發(fā)表于 10-09 08:12

    CPLD FPGA高級應(yīng)用開發(fā)指南

    CPLD FPGA高級應(yīng)用開發(fā)指南
    發(fā)表于 04-15 10:56 ?58次下載
    CPLD FPGA高級應(yīng)用<b class='flag-5'>開發(fā)指南</b>

    Tiny6410 Linux開發(fā)指南詳解

    Tiny6410 Linux 開發(fā)指南
    發(fā)表于 07-08 17:12 ?210次下載
    Tiny6410 <b class='flag-5'>Linux</b><b class='flag-5'>開發(fā)指南</b>詳解

    A64開發(fā)板LCD開發(fā)指南

    A64開發(fā)板LCD開發(fā)指南,驅(qū)動開發(fā)指南
    發(fā)表于 06-21 17:02 ?0次下載

    彩光燈開發(fā)指南

    彩光燈開發(fā)指南
    發(fā)表于 12-29 20:15 ?0次下載

    Linux的平臺下Mini210S裸機(jī)程序開發(fā)指南

    Linux的平臺下Mini210S裸機(jī)程序開發(fā)指南
    發(fā)表于 10-29 10:52 ?59次下載
    <b class='flag-5'>Linux</b>的平臺下Mini210S裸機(jī)程序<b class='flag-5'>開發(fā)指南</b>

    Rockchip Linux SDK的開發(fā)指南的詳細(xì)資料說明

    本文檔的主要內(nèi)容詳細(xì)介紹的是Rockchip Linux SDK的開發(fā)指南的詳細(xì)資料說明。
    發(fā)表于 01-10 17:17 ?74次下載
    Rockchip <b class='flag-5'>Linux</b> SDK的<b class='flag-5'>開發(fā)指南</b>的詳細(xì)資料說明

    迅為RK3399開發(fā)板嵌入式linux開發(fā)指南

    迅為RK3399開發(fā)板嵌入式linux開發(fā)指南迅為RK3399開發(fā)板發(fā)布《北京迅為嵌入式linux開發(fā)指
    發(fā)表于 11-01 16:58 ?77次下載
    迅為RK3399<b class='flag-5'>開發(fā)</b>板嵌入式<b class='flag-5'>linux</b><b class='flag-5'>開發(fā)指南</b>

    nRF52832開發(fā)指南-上冊

    nRF52832開發(fā)指南-上冊
    發(fā)表于 06-16 14:15 ?77次下載

    Tina_Linux_系統(tǒng)軟件開發(fā)指南

    Tina_Linux_系統(tǒng)軟件開發(fā)指南
    的頭像 發(fā)表于 03-02 15:25 ?2012次閱讀
    Tina_<b class='flag-5'>Linux</b>_系統(tǒng)軟件<b class='flag-5'>開發(fā)指南</b>

    Tina Linux配置開發(fā)指南

    Tina Linux配置開發(fā)指南
    的頭像 發(fā)表于 03-02 15:28 ?1.7w次閱讀
    Tina <b class='flag-5'>Linux</b>配置<b class='flag-5'>開發(fā)指南</b>

    Linux NOR開發(fā)指南

    Linux NOR開發(fā)指南
    的頭像 發(fā)表于 03-06 09:55 ?1049次閱讀
    <b class='flag-5'>Linux</b> NOR<b class='flag-5'>開發(fā)指南</b>

    【北京迅為】itop-龍芯2k1000開發(fā)指南Linux基礎(chǔ)入門vim 編輯器

    【北京迅為】itop-龍芯2k1000開發(fā)指南Linux基礎(chǔ)入門vim 編輯器
    的頭像 發(fā)表于 10-25 14:56 ?376次閱讀
    【北京迅為】itop-龍芯2k1000<b class='flag-5'>開發(fā)指南</b><b class='flag-5'>Linux</b>基礎(chǔ)入門vim 編輯器