MA35D1 FAQ

编程入门 行业动态 更新时间:2024-10-24 02:25:44

MA35D1 <a href=https://www.elefans.com/category/jswz/34/1755531.html style=FAQ"/>

MA35D1 FAQ

默认NAU8822IIC接口用GPIO-base的驱动,如何换成硬件IIC的驱动

修改dts配置文件,以som 256的camera为例,查看实际硬件连接的是i2C3:

&i2c_gpio0 {

        status = "disabled";

        hm1055@24 {

                compatible = "himax,hm1055";

                reg = <0x24>;

                pinctrl-names = "default";

                pinctrl-0 = <&pinctrl_ccap0>;

                clocks = <&clk CCAP0_GATE>;

                clock-names = "xclk";

                reset-gpios = <&gpiom 1 GPIO_ACTIVE_LOW>; /* PM1 */

                powerdown-gpios = <&gpiok 8 GPIO_ACTIVE_HIGH>; /* PK8 */

                port {

                        hm1055_0: endpoint {

                                remote-endpoint = <&ccap0_1>;

                        };

                };

        };

};

修改为:

&i2c3 {

        status = "okay";

        pinctrl-names = "default";

        pinctrl-0 = <&pinctrl_i2c3>;

        hm1055@24 {

                compatible = "himax,hm1055";

                reg = <0x24>;

                pinctrl-names = "default";

                pinctrl-0 = <&pinctrl_ccap0>;

                clocks = <&clk CCAP0_GATE>;

                clock-names = "xclk";

                reset-gpios = <&gpiom 1 GPIO_ACTIVE_LOW>; /* PM1 */

                powerdown-gpios = <&gpiok 8 GPIO_ACTIVE_HIGH>; /* PK8 */

                port {

                        hm1055_0: endpoint {

                                remote-endpoint = <&ccap0_1>;

                        };

                };

        };

};

然后增加i2c3相关配置:

       i2c3 {

                pinctrl_i2c3: i2c3grp{

                        nuvoton,pins =

                                <SYS_GPM_MFPH_PM14MFP_I2C3_SDA   &pcfg_default>,

                                <SYS_GPM_MFPH_PM15MFP_I2C3_SCL   &pcfg_default>;

                };

        };

【MA35D1】在IOT开发板的DTS基础上如何修改可以支持EBI接口

以ma35d1-iot-512m.dts配置为例:

文件ma35d1.dtsi中有定义EBI,默认是disable的,如果需要打开,把status状态修改为“okay”

        ebi0: ebi@40100000 {

                compatible = "nuvoton,ma35d1-ebi";

                reg = <0x0 0x40100000 0x0 0x10>;

                bank = <0>;

                clock-enable = "ebi_gate";

                clock-names = "ebi_gate";

                clocks = <&clk EBI_GATE>;

                status = "disabled";

                busmode = <1>;//Address/Data Bus Separate Mode. 0:Disabled, 1:Enabled

                csactiveLevel = <0>;//0:Low, 1: High

                datawidth = <1>;//0:8bit, 1: 16bit

                MCLKDIV = <2>;//0 ~ 7,EBI_CTL0[10:8]

                tALE = <1>;//0 ~ 7,EBI_CTL0[18:16]

                tACC = <1>;//0 ~ 31, EBI_TCTLx[7:3]

                tAHD = <1>;//0 ~ 7, EBI_TCTLx[10:9]

                IDLE  = <3>;//0 ~ 15, EBI_TCTLx[27:24] and EBI_TCTLx[15:12]

        };

 

然后在文件ma35d1-iot-512m.dts中添加ebi 管脚配置(可以参考ma35d1-som-256m.dts):

&ebi0 {

        pinctrl-names = "default";

        pinctrl-0 = <&pinctrl_ebi0_16bit>;

};

       ebi0 {

                pinctrl_ebi0_16bit: ebi0_16bitgrp{

                        nuvoton,pins =

                                <SYS_GPG_MFPH_PG11MFP_EBI_AD0           &pcfg_default>,

                                <SYS_GPG_MFPH_PG12MFP_EBI_AD1           &pcfg_default>,

                                <SYS_GPG_MFPH_PG13MFP_EBI_AD2           &pcfg_default>,

                                <SYS_GPG_MFPH_PG14MFP_EBI_AD3           &pcfg_default>,

                                <SYS_GPG_MFPH_PG15MFP_EBI_AD4           &pcfg_default>,

......

 

 

具体的管脚需要确认电路图有没有和其他模块复用,然后根据实际情况来配置管脚。

然后make linux-menuconfig,

打开ebi配置选项:Device Driver->Misc devices

找到Nuvoton MA35D1 EBI support并勾选这个

修改保存后make linux-rebuild

然后make

【MA35D1】支持RGMII和RMII,在设备树应该如何配置?

在文件ma35d1.dtsi中原始配置默认的是千兆,即:phy-mode = "rgmii-id"

如需要修改,在对应的DTS文件中进行相应的配置,以ma35d1-som-256m.dts为例:

&gmac0 {

        status = "okay";

        pinctrl-names = "default";

        pinctrl-0 = <&pinctrl_gmac0>;

};

没有重定义phy-mode,默认是1000M,如果要配置成100M,修改如下:

&gmac0 {

        status = "okay";

        phy-mode = "rmii";

        pinctrl-names = "default";

        pinctrl-0 = <&pinctrl_gmac0>;

};

备注:

100M:

phy-mode = "rmii";

1000M:

phy-mode = "rgmii-id";

【MA35D1】如何修改配置让MT29F8G08ABACA NAND可以正常启动

nand flash 8G, page size 4K, 64pages/block, block size 256Kbytes

W29N08GVxxA flash 8G, page size 2K, 64pages, block size 128KB

1、NuWriter:

header-nand.json:

{

    "header":

    {

        "version": "0x20210119",

        "spiinfo":

        {

            "pagesize": "4096",

            "sparearea": "224",

            "pageperblk": "64",

            "quadread": "0x6B",

            "readsts": "0x05",

            "writests": "0x01",

            "stsvalue": "0x02",

            "dummy1": "0",

            "dummy2": "1",

            "suspintvl": "1"

        },

        "secureboot": "no",

        "entrypoint": "0x28000000",

        "aeskey" : "5E76953BF598581F925B7995157844747FABE669ABF000345E0EE21B63624D59",

        "ecdsakey": "5E76953BF598581F925B7995157844747FABE669ABF000345E0EE21B63624D59",

        "image":

        [

            {

              "offset": "0x300000",

              "loadaddr": "0x28023000",

              "type": "3",

              "file": "bl2.dtb"

            },

            {

              "offset": "0x380000",

              "loadaddr": "0x28000000",

              "type": "4",

              "file": "bl2.bin"

            }

        ]

    }

}

pack-nand.json:

{

    "image":

    [

        {  

          "offset": "0x000000",

          "file": "header.bin",

          "type": 1

        },

        {

          "offset": "0x300000",

          "file": "bl2.dtb",

          "type": 0

        },

        {

          "offset": "0x380000",

          "file": "bl2.bin",

          "type": 0

        },

        {

          "offset": "0x400000",

          "file": "fip.bin-nand",

          "type": 1

        },

        {

          "offset": "0x600000",

          "file": "uboot-env.bin-nand",

          "type": 1

        },

        {

          "offset": "0x700000",

          "file": "Image.dtb",

          "type": 1

        },

        {

          "offset": "0x800000",

          "file": "Image",

          "type": 1

        },

        {

          "offset": "0x1C00000",

          "file": "rootfs.ubi",

          "type": 1

        }

    ]

}

2、TFA:

ma35d1.dtsi:

        nand: nand@401A0000 {

                compatible = "nuvoton,ma35d1-nand";

                nand-on-flash-bbt;

                /* nand information */

                nand-ecc-strength = <8>;

                nand-ecc-step-size = <512>;

                nand-page-size = <4096>;

                nand-oob-size = <224>;

                nand-page-count = <64>;

                nand-block-count = <4096>;

                nand-image-offset = <0x400000>;

        };

3、uboot:

CONFIG_NAND_BOOT=y

CONFIG_ENV_SIZE=0x100000

CONFIG_ENV_OFFSET=0x600000

CONFIG_MTDPARTS_DEFAULT="mtdparts=nand0:6m(uboot),1m(uboot-env),1m(device-tree),20m(kernel),100m(rootfs)"

4、Linux:

ma35d1.dtsi:

                nand-ecc-strength = <8>;

                nand-ecc-step-size = <512>;

                nand-on-flash-bbt;

                partitions {

                        compatible = "fixed-partitions";

                        #address-cells = <1>;

                        #size-cells = <1>;

                        uboot@0 {

                                label = "nand-uboot";

                                reg = <0x0000000 0x600000>;

                                read-only;

                        };

                        uboot-env@600000 {

                                label = "nand-uboot-env";

                                reg = <0x600000 0x100000>;

                        };

                        device-tree@700000 {

                                label = "nand-device-tree";

                                reg = <0x700000 0x100000>;

                        };

                        kernel@800000 {

                                label = "nand-kernel";

                                reg = <0x800000 0x1400000>;

                        };

                        rootfs@1C00000 {

                                label = "nand-rootfs";

                                reg = <0x1C00000 0x6400000>;

                        };

                };

        };

5、Rootfs:

BR2_TARGET_ROOTFS_UBI_PEBSIZE=0x40000

BR2_TARGET_ROOTFS_UBI_SUBSIZE=4096

BR2_TARGET_ROOTFS_UBIFS_LEBSIZE=0x3E000

BR2_TARGET_ROOTFS_UBIFS_MINIOSIZE=0x1000

BR2_TARGET_ROOTFS_UBIFS_MAXLEBCNT=400

更多推荐

MA35D1 FAQ

本文发布于:2024-02-25 21:16:49,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1700320.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:FAQ

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!