This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] Linux/AM3352:GPMC 中的外部 UART 不工作

Guru**** 2540720 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/600463/linux-am3352-external-uart-in-gpmc-not-work

器件型号:AM3352

工具/软件:Linux

您好!

我们的定制板希望使用 GPMC 连接到外部 UART 芯片(EXAR XR16C850)。 但是当我们执行命令:echo 123>/dev/ttyS1时,命令会暂停一会儿(Ctrl+C 可以返回到命令提示符),有时会显示类似于“serial8250:对于 irq42来说太多了”的消息。 此外、COM 端口没有任何输出。

我们使用 Processor SDK v02.00.02.11 (Kernel 4.1)。 CS0用于 UART 芯片、地址引脚从 A6开始、原理图如下:

设备树:

 nandflash_pins_default:nandflash_pins_default{

pinctrl-single、pins =<
0xa0 (PIN_INPUT_PULLUP | MUX_MODE1)/* LCD_Data0.GPMC_a0 *
/ 0x58 (PIN_INPUT_PULLUP | MUX_MODE0)/* GPMC_A6.GPMC_A6 *
0x5c (PIN_MODE0*/GPMC_A8/INPULLU_MODE0*/GPMC_AM_AD0*
(GPMC_GPMC_A8/GPMC_MODE0*
)


/*





| GPMC_ad1.GPMC_ad1 */ 0x8 (PIN_INPUT_PULLUP | MUX_MODE0)/* GPMC_AD2.GPMC_AD2 */ 0xc (PIN_INPUT_PULLUP | MUX_MODE0)/* GPMC_AD3* 0x10 (PIN_ADMC_PULLUP)/0xMC_ADM0*输入/GPMC_ADM0*(GPMC_ADM0_PIN_ADUX_PULUP)/GPMC_ADM0*输入/GPMC_ADM0*(0xMC_ADM0_PIN_ADM0_ADM0_PIN_ADM0*

输入/GPMC_ADUX_ADM0* GPMC_PULLUX)/*





| GPMC_AD8.GPMC_AD8 */ 0x24 (PIN_INPUT 上拉| MUX_MODE0)/* GPMC_AD9.GPMC_AD9 */ 0x28 (PIN_INPU_PULLUP | MUX_MODE0)/* GPMC_AD10.GPMC_AD10 */ 0x2C (PIN_MODE14)/0xMC_PUMP_MODE14
*输入/GPMC_ADDR_INPUT 11*(0xMC_MODEUX_ADUX_INPUT)/GPMC_MODE14 * 0xMC_MODE14 (GPMC_MODEUX_INPUMP_MODE14)/* GPMC_ad15.GPMC_ad15 */

0x7c (PIN_OUTPUT | MUX_MODE0)/* GPMC_csn0.GPMC_csn0 *
/ 0x80 (PIN_OUTPUT | MUX_MODE0)/* GPMC_CSRn1.GPMC_CSRn1 *
0x84 (PIN_MOMC_OUTPUT * 0x94_MOMC_MODE0)



*/GPMC_MOMC_OUTPUT * 0xMC_MOUX_ON_MOUX_IN_MOUX.0*(GPMC_MODEUX_IN_IN_MODEW_OUTPUT */0xMC_MOUX_EN_MOUX_MODE0)*(GPMC_MOUX_LM_MOUX_LM_OUTPUT * 0xMC_IN_MOUX_LM_MOUX_IN_IN_MODEW_IN_OUTPUT */0xMC_MOUX_LM_MOUX_EN_MOUX_IN_MOUX.0*(0xMC_IN_MODEW_/* GPMC_be0n_cle。GPMC_be0n_cle */
>;
};

/* XR16C850 IRQ GPIO。 //
ext_UART_PINS:EXT_UART_PINS{
pinctrl-single、PINS =<
0x120 0x27//* mii1_txd2.GPIO0_17、输入| MODE7 COM1 IRQ */
>;
}

;&GPMC{
status ="确定";
pinctrl-names ="默认";
pipextrl-0 = 0x1000000

/默认范围:0;选择 AR0*缺省值:0x0000_0+引脚:0x000_OFFSET:0x0000_0_AR0_OFFSET:0x0000_0_INTRS 0x01000000、长度:16MB (0x1000000)*

/ UART@0、0{//*芯片选择:0、偏移:0 */
兼容="ns16850";
reg =<0 0 0x200>; /* CS0、偏移量:0x100、IO 大小:0x200 */
reg-shift =<6>;
reg-IO-width =<1>;
interrupt-parent =<&GPIO0>;
中断=<17 IRQ_TYPEE_EDGE_RIST>;// GPIO 0_17、高电平有效*
/时钟频率=<14745600>;//* uartbank>
;//* uartbank-width =<1 /* 8位器件*/*

读取时序*/
GPMC、cs-on-ns =<0>;// GPMC_t->cs_on
GPMC、adv-on-ns =<0>;// t.adv_on = t.cs_on;*/
GPMC、adv-rd -off-ns =<1>;/ GPMC_off-on <0>

;*/tob_off-off-ns/<t+-off-ns/<0>
/* t.OE_OFF + 1 */
GPMC、ACCESS-ns =<9>;/* t.cs_rd_OFF */
GPMC、rd 周期-ns =<10>;/* t.access + 1 */
* write timing */
GPMC、adv-adv-wr-off-ns =<1>;/* tmc_off-off-ns
=<10>;/*
tmc+ GPMC_off-off-off-off-off-off-ns/<8 *
= GPMC_off-off-off-off-off-off/<10> /* t.we_off + 1 */
GPMC、wer-cycle-ns =<9>;/* t.cs_wer_off */
};
}; 

内核启动消息:  

[0.000000]在物理 CPU 上引导 Linux 0x0
[0.000000]


CPU 初始化 cgroup 子系统 CPU [0.000000]初始化 cgroup 子系统 cpuacct [0.000000] Linux 版本4.1.18-gbbe8cfc (Adv@Jun-machine)(gcc 版本4.9.3 20150413 (GCC 易用性)(Linaro 4.9-2015.05))(PRC 版本4.9-2015.15:2015) 2:15星期五 ARMv7处理器[413fc082]修订版2 (ARMv7)、CR=10c5387d
[ 0.000000] CPU:PIPT / VIPT 非混叠数据高速缓存、VIPT 指令高速缓存
[ 0.000000
m]机器模型:TI AM335x EVM [ 0.000000 mc]:保留24
个0x8d000000的写回缓存[ 0.000000 mib]
CPU 策略: 所有 CPU 均在 SVC 模式下启动。
[0.000000] AM335X ES2.1 (NEON)
[0.000000]在区域顺序中构建了1个区域列表,移动分组打开。 总页数:64960
[0.000000]内核命令行:console=ttyO0、115200n8 root=PARTUUUUUID=0000-02 RW rootfstype=ext4


高速缓存等待[0.000000] PID 哈希表条目:1024 (顺序:0、4096字节)[0.000000]条目高速缓存根表条目:32768 (顺序:5、131072字节)
226036K/262144K 可用(6023K 内核代码、228K rwdata、2016K rodata、260K init、229K BSS、 11532K 保留、24576K CMA 保留、0K HIGHMEM)
[0.000000]虚拟内核内存布局:
[0.000000] 向量:0xffffff0000 - 0xffffff1000 (4KB)
[0.000000] Fixmap:0xc00000 - 0xc00000 (3072 KB)
[0.000000] vmalloc:0xd0800000 - 0xc000000 (744MB)
[0.000000] 低内存:0xC0000000 - 0xd0000000 (256 MB)
[0.000000] pkmap:bfe00000 - 0xC0000000 (2 MB)
[0.000000] 模块:bbbf000000 - bbfe00000 (14 MB)
[0.000000] .text:0xc0008000 - 0xc07e202c (8041KB)
[0.000000] init:0xc07e3000 - 0xc0824000 (260KB)
[0.000000] .data:0xc0824000 - 0xc085d3e0 (229KB)
[0.000000] .bss:0xc0860000 - 0xc08997c8 (230KB)
[0.000000] slub:HWalign=64、order=0-3、MinObjects=0、CPU=1、Nodes=1
[0.000000]可抢占分层 RCU 实现。
[0.000000]打印的每个 CPU 的附加信息有停转。
[0.000000] NR_IRQ:16 nr_IRQ:16
16 [0.000000] IRQ:在0xfa200000 (修订版本5.0)处找到 INTC、具有128个中断
[0.000000] OMAP 时钟事件源:timer2 (240000Hz
[0.000016]) sched_clock:32位(24MHz)、分辨率41ns、每894784849ns 换行
一次 TimerFFFF 时钟源:0x0000_max:0x0000FFFF 时钟源:0x0000_FFFF 时钟源:0x0000.FFFF:0x0000.000ns 79635851949 ns
[0.000054] OMAP 时钟源:24000000 Hz
[0.000264]控制台:彩色虚拟设备80x30
[0.000294]警告:'console=ttyO0'已被'ttyS0'
[0.000303]取代,这可确保您仍能看到内核消息。 请
[0.000310]更新您的内核命令行。
[0.000331]校准延迟环路... 597.60 BogoMips (lpj=2988032)
[0.119041] pid_max:默认值:32768最小值:301
[0.119157] Security Framework 已初始
化[0.119219]安装高速缓存哈希表条目:1024 (顺序:0、4096字节)
[0.119233]安装点高速缓存哈希表条目:1024 (顺序: 0、4096字节)
[0.120034]初始化 cgroup 子系统 blkio
[0.120064]初始化 cgroup 子系统存储
器[0.120112]初始化 cgroup 子系统器件
[0.120131]初始化 cgroup 子系统冷冻器
[0.120148]初
始化 cgroup 子系统事件[0.120181] CPU:测试写入缓冲区: OK
[ 0.120605]为0x80008200 - 0x80008270
[ 0.122377] devtmpfs 设置静态身份映射:已初始化
[ 0.134190] VFP 支持 v0.3:Implementor 41体系结构3第30部分变量 c rev 3
[0.150471] OMAP-hwmod:debugss:_wait_target_disable 失败
[ 0.207424] clock_max_from_cludes:0xFFFF:0xFFFF:0xFFFF cyclus_max_clocks:0xFFFF:0xFFFF:0xFFFF:0xFFFF 19112604462750000 ns
[0.210114] pinctrl 内核:已初始化的 pinctrl 子系统
[0.211683] NET:注册协议系列16
[0.214456] DMA:预分配的256 KiB 池用于原子相干分配
[0.239041] cputle:使用调速器[0.269032]
cputle:使用调速器菜单[0.27400mc@gp2840050
[0.274mcmc]硬件[0.125]
找不到节点/ocp/l4_wkup@44c00000/SCM@210000/ pinmux@800/nandflash_pins_default 的 pctldev、推迟探测器
[0.284604]没有 ATAG?
[0.284633]硬件断点:不支持调试架构0x4。
[0.331677] EDMA 49000000.EDMA:TI EDMA 引擎驱动
程序[0.335945] SCSI 子系统已初始化
[0.336554] OMA_i2c 44e0b000.i2c:找不到节点/ocp/l4_wkup@44c00000/CSCM@2K00/pinuxx@800/pinmux_i2c0_inc 的 pctldev、pinvert
API:p0.67pps 延迟[0.3326] pinumps API:pintrlingsp 1寄存
式[0.336737] pps_core:软件版本。 5.3.6 -版权所有2005-2007 Rodolfo Giometti 
[0.336779] PTP 时钟支持已注册
[0.3337355] OMAP-mailbox 480c8000. mailbox:找不到可用的 mbox 设备
[0.338511]已切换到时钟源 Timer1[0.352553]
NET:已注册协议系列2[0.353568]
TCP 已建立哈希表条目:2048 (订单:1、8192字节)
[0.353613](TCP 绑定订单:2048) 1、8192字节)
[0.353651] TCP:配置的哈希表(建立2048 BIND 2048)
[0.353739] UDP 哈希表条目:256 (顺序:0、4096字节)
[0.353765] UP-Lite 哈希表条目:256 (顺序:0、4096字节)
[0.353958] NET:注册协议系列1[0.354395]
RPC: 注册的 UNIX 套接字传输模块。
[0.354412] RPC:注册的 UDP 传输模块。
[0.354420] RPC:注册的 TCP 传输模块。
[0.354429] RPC:注册的 TCP NFSv4.1反向通道传输模块。
[0.35753] futex hash 表条目:256 (顺序:-1、3072字节)
[0.35762]审核:初始化 netlink 子系统(禁用)
[0.35713]审核:type=2000审核(0.330:1):已初始
化[0.367680] VFS:磁盘配额 dquot_6.6.0
[0.367955] VFS](0.367952])条目
:09620 (NFS) 注册 id_resolver 密钥类型
[0.370952]注册的密钥类型 id_resoler
[0.370963]注册的密钥类型 id_legacy
[0.371055] jffs2:版本2.2。 (NAND)(摘要) c 2001-2006 Red Hat, Inc.
[0.373267] NET: registered protocol family 38[0.373352]
io scheduler noop registered
[0.373370] io scheduler deadline registered
[0.37343737] io scheduler cfq registered (default)
[0.374560] pinctrl-single 44e10800.pinmux:142 pin PA f9e10800 size 568
[0.370/7836]、禁用串行驱动程序共享[0.825381036]端口[0.371550][0.3715823836] 44e09000.serial:、禁用串行驱动程序
MMIO 0x44e09000 (IRQ = 156、base_baud = 3000000)处的 ttyS0是启用的8250
[0.986282]控制台[ttyS0]
serial8250_register_8250_port:mapbase:44e09000、


366 base:fffffffffff9e09000、IRQ=1.0456]模块已初始化[1.0248][1.0248][drm 模块1.000852][1.0248][1.0248][drm:1.00085200000852][1.0248]:1.000854] tm:1.00085200m]模块已初始化[drm:1.000454]
必须提供 MTD 器件(mtddev=name/number)
[ 1.098582] DaVinci_MDIO 4a101000.MDIO:达芬奇 MDIO 修订版本1.6
[ 1.104731] DaVinci_MDIO 4a101000.MDIO:检测到的 phy 掩码 fff5
[ 1.112832] libphy:4a101000.MDIO
:probed [1.0701.778.1mphy] DMDIO:t101000.1mphy[DMDIO:probed [1.101000.1mphy] TI MDIO:1.101000.101000.101000.1mphy] DMDIO:1000.101000.1mphy[DMDIO]
器件4a101000.MDIO:03、驱动程序 TI TLK10X 10/100Mbps PHY
[ 1.137035] cpsw 4a100000.以太网:检测到的 MACID = 00:d0:C9:00:02
[ 1.144936] cpsw 4a100000.以太网:cpsw:检测到的 MACID = 00:00:00:00:00:00:00:00:00:00:00:00


:00:00 mcmc3 [1.144936] mcp 针对 OMAP 器件的常见条目4a100000.100000.16c:1.00_mcp:1.962] mcp mcp:1、 获取 CD GPIO
[1.209279] ledtrig-CPU:注册以指示 CPU 上的活动
[1.219760] o 配置文件:无性能计数
器[1.224290] o 配置文件:使用计时器中断。
[1.229160]初始化 XFRM netlink 插座
[1.233559] NET:注册协议系列17[1.238133]
NET:注册协议系列15[1.242847]
注册的密钥类型 DNS_旋 变传感器
[1.248604] OMAP-VOLTGE_LARD_INIT:未添加电压驱动程序支持
[1.257604] cpufreq: OnDemand 调节器失败、硬件过渡延迟过长、支持性能调节
器回退[1.268629] ThumbEE CPU 扩展。
[1.272950]正在注册 SWP/SWPB 仿真处理程序
[1.28087] OMAP-GPMC 50000000。GPMC:GPMC 版本6.0
[ 1.286064] GPMC_mem_init:禁用在0x0-0x1000000 [1.292664]
OMAP-GPMC 50000000。GPMC:GPMC 流程子级:UART [GPMC_50000000
/ocp/gpmc
:GPMC 1.2900000@@GPMC 80、GPMC 80、GPMC 0
[1.312769] OMAP-GPMC 50000000。GPMC:GPMC cs 组宽度:2
[1.336139] 1000000.UART:MMIO 0x1000000处的 ttyS1 (IRQ = 42、base_baud = 921600)是 XR16850
[1.345488] serial8250_register_8250_port:ttyS1、inq = 100862c.03250]、iQ256kHz、e03250[1.024000[1.042] fb
、ina.i642c800] fb、inq
= 10086_86_862c.03240kHz、i64b000[1.03b] f_b] 主机不支持读取只读开关、假设写入启用
[ 1.370653] hctosys:无法打开 RTC 器件(rtc0)
[ 1.380184] WLAN-en-regulator:禁用
[ 1.384341] mmc0:地址 AAAA
的新高速 SDHC 卡[ 1.391164]正在等待根器件 PARTUUUUUUUUUUID=000002...
[ 1.397441] mmcblk0:mmc0:AAAA SL08G 7.40 GiB
[ 1.403775] mmcblk0:P1 P2
[ 1.956527] EXT4-FS (mmcblk0p2):恢复完成
[ 1.962992] EXT4-FS (mmcblk0p2):使用有序数据模式安装文件系统。 opts:(null)
[ 1.971229] VFS:在设备179:2上安装根(ext4文件系统)。
[1.980357] devtmpfs:mounted
[1.983824]释放未使用的内核内存:260k (c07e3000 - c0824000)
init:2.88版引导
错误打开/dev/fb0:没有此类文件或目录
启动 udev
[2.680795] udevd[75]:启动版本182
[ 3.097194] OMAP_WDT:OMAP Timer 3.3e000[0x2000]初始 RTC 超时[0x4e000]
RTC 内核:将44e3e000.RTC 注册为 rtc0
[3.346247] EXT4-FS (mmcblk0p2):重新安装。 opts:data=ordered
[3.408096] omap_rng 48310010.rng:OMAP 随机数生成器版本。 20
bootlogd:无法分配伪 TTY:无此类文件或目录
[4.030540] OMAP-SHAM 53100000.sham:OMAP 修订版本4.3
[4.059750] PM 上的硬件加速器:am33xx_prepe_sush_sam_didle:无法获取 ocmcram 的 SRAM 池
[4.261721] OMAP-AES 53500000、000.3AES
、随机 AES、AES、AES、AES、AES、AES、4.2: 在43位熵可用

的 udevadm settle 下读取 DD urandom -达到3秒超时、事件队列包含:
/sys/devices/platform/ocp/48060000.mmc/mmc_host/mmc0/mmc0:AAAA/block/mmcblk0/mmcblk0p1 (728)
/sys/devices/platform/ocp/48060000.mmc/mmc_host/mmc0/mmc0:AAAA/block/mmcblk0/mmcblk0p2 (729)
/sys/devices/virtual/block/ram3 (881)
/sys/devices/virtual/block/ram4


/sys/devices/virtual/block/ram8 (/sys/devices/virtual/block/ram5
/sys/devices/virtual/block/ram9)
(/sys/devices/virtual/block/ram7) 8881 ()()未正确安装)(8881 ()() 某些数据可能已损坏。 请运行 fsck。
Thu Mar 9 08:54:17 UTC 2017
初始化:输入运行级别:5
正在配置网络接口... [7.764827] net eth0:正在初始化 cpsw 版本1.12 (0)
[7.848903] net eth0:找到 PHY:id:0x2000a211
udhcpc (v1.23.1)开始
发送 discover...
[9.849181] cpsw 4a100000.ethernet eth0:链路打开- 100Mbps/全-流控制 Rx/TX
发送发现...
正在发送192.168.100.50...的选择
已获得192.168.100.50的租用时间,租用时间600
ifconfig:SIOCGIFFLAGS:无此类设备
ifconfig:SIOCSIFADDR:无此类设备
完成。
启动 telnet 守护程序。
正在启动看门狗:[12.466805] NET: registered protocol family 10[
确定]
正在启动 syslogd/klogd:已完成
启动 thttpd。
正在启动 crond:可以
启用散热区...
/etc/rc5.d/S98thermal-zone-init:第7行:/sys/class/thermal/thermal_zone */模式:没有这样的文件或目录

______ _________ _ _
|_|_|_______|_|_|_|
|| |_|.'|。 |. ||_|_|. |||-_|||
||||、||||||||||||||||||
|__| ||

Arago Project http://arago-project.org am335xevm /dev/ttyO0

Arago 2016.03 am335xevm /dev/ttyO0

am335xevm 登录名: 

 谢谢你。