做个好菜鸟

做个好菜鸟

0个粉丝

13

问答

0

专栏

0

资料

做个好菜鸟  发布于  2018-11-07 17:19:59
采纳率 0%
13个问答
3143

【已解决】HI3536c 添加串口问题请教

 
本帖最后由 做个好菜鸟 于 2018-11-8 12:02 编辑

大家好,现在有一块3536C的板子,板子引出了uart0与uart2,在使用uart2时需要在内核中添加支持,在之前用的3531中是修改/arch/arm/mach-godnet/core.c就可以,但在3536C中/arch/arm/mach-hisi/目录下并没有core.c文件,请问大家有知道3536c想要使用UART2需要修改内核哪个地方吗?谢谢!







解决方式:
针对3536c想要添加串口1与串口2支持,只需在/arch/arm/boot/dts/hi3536c-demb.dts中按照
&uart0 {
        status = "okay";
}; 的格式添加
&uart1 {
        status = "okay";
};

&uart2 {
        status = "okay";
};之后重新编译内核,
mknod /dev/ttyAMA1 c 204 65
mknod /dev/ttyAMA2 c 204 66
利用himm 工具复用为uart就可以进行操作了,
感谢@zhuangweiye 庄工指导 :)
我来回答
回答7个
时间排序
认可量排序

做个好菜鸟

0个粉丝

13

问答

0

专栏

0

资料

做个好菜鸟 2018-11-08 11:15:29
认可0
请问有人知道吗??

zhuangweiye

8个粉丝

0

问答

0

专栏

0

资料

zhuangweiye 2018-11-08 11:24:12
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=111011&ptid=53347]做个好菜鸟 发表于 2018-11-8 11:15[/url]
请问有人知道吗??[/quote]

3536c使用设备树来设置

做个好菜鸟

0个粉丝

13

问答

0

专栏

0

资料

做个好菜鸟 2018-11-08 11:40:17
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=111015&ptid=53347]zhuangweiye 发表于 2018-11-8 11:24[/url]
3536c使用设备树来设置[/quote]

庄工,您好,我找到了arch/arm/boot/dts/hi3536c.dtsi文件,是直接修改这个就行了吗?
下面是hi3536c.dtsi内容:
/*
* Copyright (c) 2013-2014 Linaro Ltd.
* Copyright (c) 2015-2017 HiSilicon Technologies Co., Ltd.
*
* This program is free software; you can redistribute  it and/or modify it
* under  the terms of  the GNU General  Public License as published by the
* Free Software Foundation;  either version 2 of the  License, or (at your
* option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program.  If not, see <[url]http://www.gnu.org/licenses/[/url]>.
*
*/

#include "skeleton.dtsi"
#include
/ {
        aliases {
                serial0 = &uart0;
                spi0 = &spi_bus0;
        };

        clock: clock@12040000 {
                compatible = "hisilicon,hi3536c-clock";
                #address-cells = <1>;
                #size-cells = <1>;
                #clock-cells = <1>;
                #reset-cells = <2>;
                reg = <0x12040000 0x1000>;
        };

        gic: interrupt-controller@10300000 {
                compatible = "arm,cortex-a7-gic";
                #interrupt-cells = <3>;
                #address-cells = <0>;
                interrupt-controller;
                /* gic dist base, gic cpu base , no virtual support */
                reg = <0x10301000 0x1000>, <0x10302000 0x100>;
         };

        soc {
                #address-cells = <1>;
                #size-cells = <1>;
                compatible = "simple-bus";
                interrupt-parent = <&gic>;
                ranges;

                sysctrl: system-controller@12050000 {
                        compatible = "hisilicon,sysctrl";
                        reg = <0x12050000 0x1000>;
                        reboot-offset = <0x4>;
                };

                pmu {
                        compatible = "arm,cortex-a7-pmu";
                        interrupts = <0 54 4>,
                                        <0 48 4>;
                };

                amba {
                        #address-cells = <1>;
                        #size-cells = <1>;
                        compatible = "arm,amba-bus";
                        ranges;

                        uart0: uart@12080000 {
                                compatible = "arm,pl011", "arm,primecell";
                                reg = <0x12080000 0x1000>;
                                interrupts = <0 6 4>;
                                clocks = <&clock HI3536C_UART0_CLK>;
                                clock-names = "apb_pclk";
                                status = "disabled";
                        };

                        uart1: uart@12090000 {
                                compatible = "arm,pl011", "arm,primecell";
                                reg = <0x12090000 0x1000>;
                                interrupts = <0 7 4>;
                                clocks = <&clock HI3536C_UART1_CLK>;
                                clock-names = "apb_pclk";
                                status = "disabled";
                        };

                        uart2: uart@120a0000 {
                                compatible = "arm,pl011", "arm,primecell";
                                reg = <0x120a0000 0x1000>;
                                interrupts = <0 8 4>;
                                clocks = <&clock HI3536C_UART2_CLK>;
                                clock-names = "apb_pclk";
                                status = "disabled";
                        };

                };

                dual_timer0: dual_timer@12000000 {
                        compatible = "arm,sp804";
                        /* timer0 & timer1 */
                        interrupts = <0 1 4>;
                        reg = <0x12000000 0x1000>;
                        clocks = <&clock HI3536C_FIXED_3M>;
                        clock-names = "apb_pclk";
                        status = "disabled";
                };

                dual_timer1: dual_timer@12010000 {
                        compatible = "arm,sp804";
                        /* timer2 & timer3 */
                        interrupts = <0 2 4>;
                        reg = <0x12010000 0x1000>;
                        clocks = <&clock HI3536C_FIXED_3M>;
                        clock-names = "apb_pclk";
                        status = "disabled";
                };

                dual_timer2: dual_timer@12020000 {
                        compatible = "arm,sp804";
                        /* timer4 & timer5 */
                        interrupts = <0 3 4>;
                        reg = <0x12020000 0x1000>;
                        clocks = <&clock HI3536C_FIXED_3M>;
                        clock-names = "apb_pclk";
                        status = "disabled";
                };

                dual_timer3: dual_timer@12030000 {
                        compatible = "arm,sp804";
                        /* timer4 & timer5 */
                        interrupts = <0 4 4>;
                        reg = <0x12030000 0x1000>;
                        clocks = <&clock HI3536C_FIXED_3M>;
                        clock-names = "apb_pclk";
                        status = "disabled";
                };

                spi_bus0: spi@120d0000 {
                                compatible = "arm,pl022", "arm,primecell";
                                arm,primecell-periphid = <0x00800022>;
                                reg = <0x120d0000 0x1000>, <0x12120014 0x4>;
                                interrupts = <0 14 4>;
                                clocks = <&clock HI3536C_SPI0_CLK>;
                                clock-names = "apb_pclk";
                                status = "disabled";
                                #address-cells = <1>;
                                #size-cells = <0>;
                                hisi,spi_cs_sb = <26>;
                                hisi,spi_cs_mask_bit = <0x0c000000>;
                };

                sata_phy: phy@11010000 {
                        compatible = "hisilicon,hisi-sata-nano-phy";
                        reg = <0x11010000 0x10000>;
                        #phy-cells = <0>;
                };

                ahci: sata@11010000 {
                        compatible = "hisilicon,hisi-ahci";
                        reg = <0x11010000 0x1000>;
                        interrupts = <0 17 4>;
                        phys = <&sata_phy>;
                        phy-names = "sata-phy";
                        #address-cells = <1>;
                        #size-cells = <0>;
                };

                usb_phy: usbphy {
                        compatible = "hisilicon,hi3536c-usb2-phy";
                        reg = <0x12040000 0x1000>, <0x12120000 0x1000>;
                };

                ehci@0x10120000 {
                        compatible = "generic-ehci";
                        reg = <0x10040000 0x10000>;
                        interrupts = <0 19 4>;
                };

                ohci@0x10110000 {
                        compatible = "generic-ohci";
                        reg = <0x10030000 0x10000>;
                        interrupts = <0 18 4>;
                };

                mdio: mdio@100a03c0 {
                        compatible = "hisilicon,hisi-gemac-mdio";
                        reg = <0x100a03c0 0x20>;
                        clocks = <&clock HI3536C_ETH_CLK>;
                        resets = <&clock 0x14c 5>;
                        reset-names = "phy_reset";
                        #address-cells = <1>;
                        #size-cells = <0>;
                };
                mdio1: mdio@100a13c0 {
                        compatible = "hisilicon,hisi-gemac-mdio";
                        reg = <0x100a13c0 0x20>;
                        clocks = <&clock HI3536C_ETH1_CLK>;
                        resets = <&clock 0x14c 13>;
                        reset-names = "phy_reset";
                        #address-cells = <1>;
                        #size-cells = <0>;
                };

                higmac: ethernet@100a0000 {
                        compatible = "hisilicon,higmac-v5";
                        reg = <0x100a0000 0x1000>,<0x100a300c 0x4>;
                        interrupts = <0 16 4>, <0 61 4>, <0 62 4>, <0 63 4>;

                        clocks = <&clock HI3536C_ETH_CLK>,
                                        <&clock HI3536C_ETH_MACIF_CLK>;
                        clock-names = "higmac_clk",
                                        "macif_clk";

                        resets = <&clock 0x14c 0>,
                                        <&clock 0x14c 2>,
                                        <&clock 0x14c 5>;
                        reset-names = "port_reset",
                                        "macif_reset",
                                        "phy_reset";

                        mac-address = [00 00 00 00 00 00];
                };
                higmac1: ethernet@100a1000 {
                        compatible = "hisilicon,higmac-v5";
                        reg = <0x100a1000 0x1000>,<0x100a3010 0x4>;
                        interrupts = <0 16 4>, <0 61 4>, <0 62 4>, <0 63 4>;

                        clocks = <&clock HI3536C_ETH1_CLK>,
                                        <&clock HI3536C_ETH_MACIF1_CLK>;
                        clock-names = "higmac_clk",
                                        "macif_clk";

                        resets = <&clock 0x14c 8>,
                                        <&clock 0x14c 10>,
                                        <&clock 0x14c 13>;
                        reset-names = "port_reset",
                                        "macif_reset",
                                        "phy_reset";

                        mac-address = [00 00 00 00 00 00];
                };


                fmc: flash-memory-controller@10000000 {
                        compatible = "hisilicon,hisi-fmc";
                        reg = <0x10000000 0x1000>, <0x14000000 0x1000000>;
                        reg-names = "control", "memory";
                        clocks = <&clock HI3536C_FMC_CLK>;
                        #address-cells = <1>;
                        #size-cells = <0>;

                        hisfc:spi_nor_controller {
                                compatible = "hisilicon,hisi-sfc";
                                assigned-clocks = <&clock HI3536C_FMC_CLK>;
                                assigned-clock-rates = <24000000>;
                                #address-cells = <1>;
                                #size-cells = <0>;
                        };

                        hisnfc:spi_nand_controller {
                                compatible = "hisilicon,hisi-spi-nand";
                                assigned-clocks = <&clock HI3536C_FMC_CLK>;
                                assigned-clock-rates = <24000000>;
                                #address-cells = <1>;
                                #size-cells = <0>;
                        };
                };
        };
};

是直接修改成这样吗:
aliases {
                serial0 = &uart0;
                serial1 = &uart1;
                serial2 = &uart2;
                spi0 = &spi_bus0;
        };


我修改成这样然后重新编译内核,
mknod /dev/ttyAMA2 c 204 66 在/dev/下面有ttyAMA2 但还是无法操作,也使用himm 工具复用为串口功能了

感谢庄工回复:)

zhuangweiye

8个粉丝

0

问答

0

专栏

0

资料

zhuangweiye 2018-11-08 11:44:54
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=111026&ptid=53347]做个好菜鸟 发表于 2018-11-8 11:40[/url]
庄工,您好,我找到了arch/arm/boot/dts/hi3536c.dtsi文件,是直接修改这个就行了吗?
下面是hi3536c.dt ...[/quote]

建议楼主看看 同一目录下的hi3536c-demb.dts

做个好菜鸟

0个粉丝

13

问答

0

专栏

0

资料

做个好菜鸟 2018-11-08 11:58:01
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=111028&ptid=53347]zhuangweiye 发表于 2018-11-8 11:44[/url]
建议楼主看看 同一目录下的hi3536c-demb.dts[/quote]

多谢庄工指导,已经可以了,修改了hi3536c-demb.dts,添加了
&uart1 {
        status = "okay";
};

&uart2 {
        status = "okay";
};
之后重新编译内核就可以了。

mt_glass

0个粉丝

5

问答

1

专栏

0

资料

mt_glass 2018-12-26 11:02:38
认可0
谢谢楼主,这个问题帮助我解决了怎么配置串口问题。

qn1555923575

0个粉丝

0

问答

0

专栏

0

资料

qn1555923575 2019-09-07 14:19:25
认可0
学习了,正好遇到这个问题
或将文件直接拖到这里
悬赏:
E币
网盘
* 网盘链接:
* 提取码:
悬赏:
E币

Markdown 语法

  • 加粗**内容**
  • 斜体*内容*
  • 删除线~~内容~~
  • 引用> 引用内容
  • 代码`代码`
  • 代码块```编程语言↵代码```
  • 链接[链接标题](url)
  • 无序列表- 内容
  • 有序列表1. 内容
  • 缩进内容
  • 图片![alt](url)
+ 添加网盘链接/附件

Markdown 语法

  • 加粗**内容**
  • 斜体*内容*
  • 删除线~~内容~~
  • 引用> 引用内容
  • 代码`代码`
  • 代码块```编程语言↵代码```
  • 链接[链接标题](url)
  • 无序列表- 内容
  • 有序列表1. 内容
  • 缩进内容
  • 图片![alt](url)
举报反馈

举报类型

  • 内容涉黄/赌/毒
  • 内容侵权/抄袭
  • 政治相关
  • 涉嫌广告
  • 侮辱谩骂
  • 其他

详细说明

易百纳技术社区