Перейти к содержанию
    

Не работает UART под linux на Zynq`e

Добрый день.

Не могу вывести данные через uart . ls /dev выдаёт наличие 2 uart : ttyPS0 и ttyPS1.

echo "1" >/dev/ttyPS0  выводит данные , а echo "1" >/dev/ttyPS1 нет.

Может быть кто сталкивался или знает где копать?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А можно скриншот, как настроена коммутация? Оно соответствует нужным позициям пинов? т.е. сначала надо убедиться что коммутация верна, и что оно идет на правильные позиции выводов

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 2/20/2022 at 6:05 PM, AVR said:

А можно скриншот, как настроена коммутация? Оно соответствует нужным позициям пинов? т.е. сначала надо убедиться что коммутация верна, и что оно идет на правильные позиции выводов

В fsbl работают оба Uarta.

zynq.png

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

8 minutes ago, карамболь said:

может, в DTB выключен ?

Вроде бы включен. Я не знаю есть ли возможность посмотреть , что включено на работающем ядре?

13 minutes ago, карамболь said:

может, в DTB выключен ?

serial@e0000000 {
            clock-names = "uart_clk", "pclk";
            clocks = <0x1 0x17 0x1 0x28>;
            compatible = "xlnx,xuartps", "cdns,uart-r1p8";
            device_type = "serial";
            interrupts = <0x0 0x1b 0x4>;
            linux,phandle = <0x13>;
            phandle = <0x13>;
            port-number = <0x0>;
            reg = <0xe0000000 0x1000>;
            status = "okay";
        };

        serial@e0001000 {
            clock-names = "uart_clk", "pclk";
            clocks = <0x1 0x18 0x1 0x29>;
            compatible = "xlnx,xuartps", "cdns,uart-r1p8";
            device_type = "serial";
            interrupts = <0x0 0x32 0x4>;
            linux,phandle = <0x14>;
            phandle = <0x14>;
            port-number = <0x1>;
            reg = <0xe0001000 0x1000>;
            status = "okay";
        };
 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

18.02.2022 в 19:34, usonic сказал:

Добрый день.

Не могу вывести данные через uart . ls /dev выдаёт наличие 2 uart : ttyPS0 и ttyPS1.

echo "1" >/dev/ttyPS0  выводит данные , а echo "1" >/dev/ttyPS1 нет.

Может быть кто сталкивался или знает где копать?

А console куда пристегнута?

Покажите эту часть dts.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 часа назад, usonic сказал:

В dts оба UART присутствуют. console на ttyPS0, выводу не мешает.

Может скорость и режим на приемной стороне ttyPS1 не те установлены?

Для диагностики нужен вывод команд

dmesg

stty -F /dev/ttyPS0 -a

stty -F /dev/ttyPS1 -a

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

8 minutes ago, faa said:

В dts оба UART присутствуют. console на ttyPS0, выводу не мешает.

Может скорость и режим на приемной стороне ttyPS1 не те установлены?

Для диагностики нужен вывод команд

dmesg

stty -F /dev/ttyPS0 -a

stty -F /dev/ttyPS1 -a

 

 

root@linaro-alip:~# stty -F /dev/ttyPS0 -a
speed 115200 baud; rows 24; columns 80; line = 0;
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>;
eol2 = <undef>; swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R;
werase = ^W; lnext = ^V; flush = ^O; min = 1; time = 0;
-parenb -parodd cs8 hupcl -cstopb cread clocal -crtscts
-ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon ixoff
-iuclc -ixany -imaxbel -iutf8
opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
isig icanon -iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt
echoctl echoke

root@linaro-alip:~# stty -F /dev/ttyPS1 -a
speed 115200 baud; rows 0; columns 0; line = 0;
intr = <undef>; quit = <undef>; erase = <undef>; kill = <undef>; eof = <undef>;
eol = <undef>; eol2 = <undef>; swtch = <undef>; start = <undef>; stop = <undef>;
susp = <undef>; rprnt = <undef>; werase = <undef>; lnext = <undef>;
flush = <undef>; min = 1; time = 5;
-parenb -parodd cs8 -hupcl -cstopb cread clocal -crtscts
ignbrk -brkint ignpar -parmrk -inpck -istrip -inlcr -igncr -icrnl -ixon -ixoff
-iuclc -ixany -imaxbel iutf8
-opost -olcuc -ocrnl -onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
-isig -icanon -iexten -echo -echoe -echok -echonl -noflsh -xcase -tostop -echoprt
-echoctl -echoke

 

Приёмная сторона - осциллограф.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 3/15/2022 at 8:06 AM, faa said:

Вывод

dmesg

будет? Или все заработало?

Не заработало!

root@linaro-alip:~# dmesg
Booting Linux on physical CPU 0x0
Linux version 4.4.0-xilinx (vovag@vovag-VirtualBox) (gcc version 4.9.2 (Sourcery CodeBench Lite 2015.05-17) ) #41 SMP PREEMPT Tue Sep 18 15:52:56 MSK 2018
CPU: ARMv7 Processor [413fc090] revision 0 (ARMv7), cr=18c5387d
CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
Machine model: Xilinx Zynq
cma: Reserved 16 MiB at 0x3b000000
Memory policy: Data cache writealloc
On node 0 totalpages: 245760
free_area_init_node: node 0, pgdat c05c6600, node_mem_map ef878000
  Normal zone: 1536 pages used for memmap
  Normal zone: 0 pages reserved
  Normal zone: 196608 pages, LIFO batch:31
  HighMem zone: 49152 pages, LIFO batch:15
PERCPU: Embedded 12 pages/cpu @ef855000 s19264 r8192 d21696 u49152
pcpu-alloc: s19264 r8192 d21696 u49152 alloc=12*4096
pcpu-alloc: [0] 0 [0] 1
Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 244224
Kernel command line: console=ttyPS0,115200 root=/dev/mmcblk1p2 rw earlyprintk rootfstype=ext4 rootwait devtmpfs.mount=0
PID hash table entries: 4096 (order: 2, 16384 bytes)
Dentry cache hash table entries: 131072 (order: 7, 524288 bytes)
Inode-cache hash table entries: 65536 (order: 6, 262144 bytes)
Memory: 951872K/983040K available (4052K kernel code, 199K rwdata, 1412K rodata, 244K init, 195K bss, 14784K reserved, 16384K cma-reserved, 180224K highmem)
Virtual kernel memory layout:
    vector  : 0xffff0000 - 0xffff1000   (   4 kB)
    fixmap  : 0xffc00000 - 0xfff00000   (3072 kB)
    vmalloc : 0xf0800000 - 0xff800000   ( 240 MB)
    lowmem  : 0xc0000000 - 0xf0000000   ( 768 MB)
    pkmap   : 0xbfe00000 - 0xc0000000   (   2 MB)
    modules : 0xbf000000 - 0xbfe00000   (  14 MB)
      .text : 0xc0008000 - 0xc055e398   (5465 kB)
      .init : 0xc055f000 - 0xc059c000   ( 244 kB)
      .data : 0xc059c000 - 0xc05cdea0   ( 200 kB)
       .bss : 0xc05cdea0 - 0xc05fee44   ( 196 kB)
Preemptible hierarchical RCU implementation.
        Build-time adjustment of leaf fanout to 32.
        RCU restricting CPUs from NR_CPUS=4 to nr_cpu_ids=2.
RCU: Adjusting geometry for rcu_fanout_leaf=32, nr_cpu_ids=2
NR_IRQS:16 nr_irqs:16 16
slcr mapped to f0800000
L2C: platform modifies aux control register: 0x72360000 -> 0x72760000
L2C: DT/platform modifies aux control register: 0x72360000 -> 0x72760000
L2C-310 erratum 769419 enabled
L2C-310 enabling early BRESP for Cortex-A9
L2C-310 full line of zeros enabled for Cortex-A9
L2C-310 ID prefetch enabled, offset 1 lines
L2C-310 dynamic clock gating enabled, standby mode enabled
L2C-310 cache controller enabled, 8 ways, 512 kB
L2C-310: CACHE_ID 0x410000c8, AUX_CTRL 0x76760001
zynq_clock_init: clkc starts at f0800100
Zynq clock init
clocksource: ttc_clocksource: mask: 0xffff max_cycles: 0xffff, max_idle_ns: 537538477 ns
sched_clock: 16 bits at 54kHz, resolution 18432ns, wraps every 603975816ns
timer #0 at f0808000, irq=16
sched_clock: 64 bits at 333MHz, resolution 3ns, wraps every 4398046511103ns
clocksource: arm_global_timer: mask: 0xffffffffffffffff max_cycles: 0x4ce07af025, max_idle_ns: 440795209040 ns
Console: colour dummy device 80x30
Calibrating delay loop... 1332.01 BogoMIPS (lpj=6660096)
pid_max: default: 32768 minimum: 301
Mount-cache hash table entries: 2048 (order: 1, 8192 bytes)
Mountpoint-cache hash table entries: 2048 (order: 1, 8192 bytes)
CPU: Testing write buffer coherency: ok
CPU0: thread -1, cpu 0, socket 0, mpidr 80000000
Setting up static identity map for 0x8280 - 0x82d8
CPU1: thread -1, cpu 1, socket 0, mpidr 80000001
Brought up 2 CPUs
SMP: Total of 2 processors activated (2664.03 BogoMIPS).
CPU: All CPU(s) started in SVC mode.
devtmpfs: initialized
VFP support v0.3: implementor 41 architecture 3 part 30 variant 9 rev 4
clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
pinctrl core: initialized pinctrl subsystem
NET: Registered protocol family 16
DMA: preallocated 256 KiB pool for atomic coherent allocations
cpuidle: using governor ladder
cpuidle: using governor menu
hw-breakpoint: found 5 (+1 reserved) breakpoint and 1 watchpoint registers.
hw-breakpoint: maximum watchpoint size is 4 bytes.
zynq-ocm f800c000.ocmc: ZYNQ OCM pool: 256 KiB @ 0xf0880000
zynq-pinctrl 700.pinctrl: zynq pinctrl initialized
SCSI subsystem initialized
usbcore: registered new interface driver usbfs
usbcore: registered new interface driver hub
usbcore: registered new device driver usb
pps_core: LinuxPPS API ver. 1 registered
pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <[email protected]>
PTP clock support registered
EDAC MC: Ver: 3.0.0
FPGA manager framework
clocksource: Switched to clocksource arm_global_timer
NET: Registered protocol family 2
TCP established hash table entries: 8192 (order: 3, 32768 bytes)
TCP bind hash table entries: 8192 (order: 4, 65536 bytes)
TCP: Hash tables configured (established 8192 bind 8192)
UDP hash table entries: 512 (order: 2, 16384 bytes)
UDP-Lite hash table entries: 512 (order: 2, 16384 bytes)
NET: Registered protocol family 1
RPC: Registered named UNIX socket transport module.
RPC: Registered udp transport module.
RPC: Registered tcp transport module.
RPC: Registered tcp NFSv4.1 backchannel transport module.
hw perfevents: enabled with armv7_cortex_a9 PMU driver, 7 counters available
futex hash table entries: 512 (order: 3, 32768 bytes)
bounce: pool size: 64 pages
io scheduler noop registered
io scheduler deadline registered
io scheduler cfq registered (default)
dma-pl330 f8003000.dmac: Loaded driver for PL330 DMAC-241330
dma-pl330 f8003000.dmac:        DBUFF-128x8bytes Num_Chans-8 Num_Peri-4 Num_Events-16
e0000000.serial: ttyPS1 at MMIO 0xe0000000 (irq = 26, base_baud = 6249999) is a xuartps
e0001000.serial: ttyPS0 at MMIO 0xe0001000 (irq = 27, base_baud = 6249999) is a xuartps
console [ttyPS0] enabled
xdevcfg f8007000.devcfg: ioremap 0xf8007000 to f0860000
brd: module loaded
loop: module loaded
m25p80 spi0.0: found w25q256, expected n25q128a11
m25p80 spi0.0: failed to read ear reg
m25p80 spi0.0: w25q256 (65536 Kbytes)
3 ofpart partitions found on MTD device spi0.0
Creating 3 MTD partitions on "spi0.0":
0x000000000000-0x000000080000 : "qspi-boot"
0x000000080000-0x0000000a0000 : "qspi-bootenv"
0x0000000a0000-0x000000500000 : "qspi-bitstream"
libphy: MACB_mii_bus: probed
macb e000b000.ethernet eth0: Cadence GEM rev 0x00020118 at 0xe000b000 irq 29 (00:0a:35:00:01:22)
macb e000b000.ethernet eth0: attached PHY driver [Micrel KSZ9031 Gigabit PHY] (mii_bus:phy_addr=e000b000.etherne:00, irq=-1)
ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
usbcore: registered new interface driver usb-storage
e0002000.usb supply vbus not found, using dummy regulator
ci_hdrc ci_hdrc.0: EHCI Host Controller
ci_hdrc ci_hdrc.0: new USB bus registered, assigned bus number 1
ULPI transceiver vendor/product ID 0x0424/0x0007
Found SMSC USB3320 ULPI transceiver.
ULPI integrity check: passed.
ci_hdrc ci_hdrc.0: USB 2.0 started, EHCI 1.00
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 1 port detected
mousedev: PS/2 mouse device common for all mice
EDAC MC: ECC not enabled
Xilinx Zynq CpuIdle Driver started
sdhci: Secure Digital Host Controller Interface driver
sdhci: Copyright(c) Pierre Ossman
sdhci-pltfm: SDHCI platform and OF driver helper
sdhci-arasan e0101000.sdhci: No vmmc regulator found
sdhci-arasan e0101000.sdhci: No vqmmc regulator found
mmc0: SDHCI controller on e0101000.sdhci [e0101000.sdhci] using ADMA
sdhci-arasan e0100000.sdhci: No vmmc regulator found
sdhci-arasan e0100000.sdhci: No vqmmc regulator found
mmc1: SDHCI controller on e0100000.sdhci [e0100000.sdhci] using ADMA
usbcore: registered new interface driver usbhid
usbhid: USB HID core driver
nf_conntrack version 0.5.0 (15129 buckets, 60516 max)
ipip: IPv4 over IPv4 tunneling driver
ip_tables: (C) 2000-2006 Netfilter Core Team
NET: Registered protocol family 17
Registering SWP/SWPB emulation handler
of_cfs_init
of_cfs_init: OK
Waiting for root device /dev/mmcblk1p2...
mmc0: MAN_BKOPS_EN bit is not set
mmc0: new high speed MMC card at address 0001
mmcblk0: mmc0:0001 S40004 3.64 GiB
mmcblk0boot0: mmc0:0001 S40004 partition 1 4.00 MiB
mmcblk0boot1: mmc0:0001 S40004 partition 2 4.00 MiB
mmcblk0rpmb: mmc0:0001 S40004 partition 3 4.00 MiB
 mmcblk0: p1
mmc1: new high speed SDHC card at address b368
mmcblk1: mmc1:b368 00000 3.67 GiB
 mmcblk1: p1 p2
EXT4-fs (mmcblk1p2): recovery complete
EXT4-fs (mmcblk1p2): mounted filesystem with ordered data mode. Opts: (null)
VFS: Mounted root (ext4 filesystem) on device 179:34.
Freeing unused kernel memory: 244K (c055f000 - c059c000)
random: init urandom read with 10 bits of entropy available
init: hwclock main process (632) terminated with status 1
init: ureadahead main process (633) terminated with status 5
udevd[729]: starting version 175
tarantula_trk_mod=[0x43c40000:0xf0b00000][v1.1.0][Oct 29 2018][20:39:59]
=== g_par_buff ok
init: failsafe main process (1164) killed by TERM signal
macb e000b000.ethernet eth0: link up (1000/Full)
init: tty1 main process (1339) killed by TERM signal
 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

6 hours ago, faa said:

Ну тогда начнем от печки.

Что за плата?

С железом все в порядке?

Плата MYIR: MYC-C7Z010-4E1D-667-C.

С железом всё в порядке, в FSBL работают оба порта.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

6 часов назад, usonic сказал:

Плата MYIR: MYC-C7Z010-4E1D-667-C.

С железом всё в порядке, в FSBL работают оба порта.

посмотрите в загруженной системе

cat /proc/interrupts

есть ли прерывания по второму уарту при попытках передачи

далее сравните по возможности свои настройки с этим FSBL, раз там работает, то железо исправно, т.е. проблема в настройках

может не на те пины настроили или не сделали полную пересборку проекта

при сомнениях можно замапить блок регистров, который отвечает за настройки пинов на определенные функции и посмотреть, что там реально прописано, цифры и биты д.б. в даташите

и вот этот момент уточните:

e0000000.serial: ttyPS1 at MMIO 0xe0000000 (irq = 26, base_baud = 6249999) is a xuartps
e0001000.serial: ttyPS0 at MMIO 0xe0001000 (irq = 27, base_baud = 6249999) is a xuartps

крест по нумерации, знаю, что альтера грешит подобным с блоками gpio

вот для сравнения выхлоп похожего xilinx 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

19 hours ago, usonic said:

Плата MYIR: MYC-C7Z010-4E1D-667-C.

С железом всё в порядке, в FSBL работают оба порта.

вы уверены, что правильный Fsbl засунули в Boot.bin ? 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...