zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    异常显示页面
    SpringBoot项目打包的两种类型1-WAR方式
    SpringBoot项目打包的两种类型1-JAR方式
    Spring Boot项目打包部署
    json转义处理
    xadmin使用
    nginx 反向代理
    python 队列、栈
    Django logging配置
    Tensorflow学习教程------普通神经网络对mnist数据集分类
  • 原文地址:https://www.cnblogs.com/lianghong881018/p/10008803.html
Copyright © 2011-2022 走看看