[meta-xilinx] 16550 linux drivers won't recognise AXI UART 16550 modules
Mike Looijmans
mike.looijmans at topic.nl
Thu Jul 12 22:47:42 PDT 2018
I think you forgot the devicetree. You'll need to provide the 12 addresses,
IRQ lines etc. from there.
On 12-07-18 13:10, Simon VII wrote:
> Greetings!
>
>
> I am facing following problem with my UARTS on a zybo board running the
> yocto-minimal image.
>
>
> I am running on a xilinx-zybo board the yocto-minimal image created with the
> meta-xilinx layer. Boot files and kernel image are all copied on an SD card
> together with the bitstream of the following vivado design (basically 12 16550
> v2.0 UARTS going out to the PMODs of the zybo).
>
>
> Vivado design: 12x axi uart 16550 ip core + axi interconnect + PS reset +
> ZYNQ7 PS
>
>
> the systems boots up, bitstream loads and the kernel as well.
>
>
> In order to make the UARTs work in linux, I enable the serial drivers (not as
> modules) in the menuconfig GUI (bitbake linux-yocto -c menuconfig).
>
>
> My problem now is that after booting into the linux on the zybo, the UARTs do
> not show up at all. I am quite sure that I am missing an obvious step here but
> I am not experienced enough/capable of figuring it out alone.
>
>
> I would appreciate any help or suggestion towards the right direction. I am
> also attaching the boot log in case it helps.
>
>
> -------------------------------------------------------------------------------------------------------------------------------------------------------------
>
> /U-Boot 2018.01 (Jul 10 2018 - 15:26:55 +0000)
>
> Model: Zynq ZYBO Development Board
> Board: Xilinx Zynq
> Silicon: v3.1
> I2C: ready
> DRAM: ECC disabled 512 MiB
> MMC: sdhci at e0100000: 0
> SF: Detected s25fl128s_64k with page size 256 Bytes, erase size 64 KiB, total
> 16 MiB
> *** Warning - bad CRC, using default environment
>
> In: serial at e0001000
> Out: serial at e0001000
> Err: serial at e0001000
> Net: ZYNQ GEM: e000b000, phyaddr 0, interface rgmii-id
> I2C EEPROM MAC address read failed
>
> Warning: ethernet at e000b000 (eth0) using random MAC address - 7e:68:0d:b7:1e:8b
> eth0: ethernet at e000b000
> reading uEnv.txt
> 668 bytes read in 12 ms (53.7 KiB/s)
> Importing environment from mmc ...
> Checking if uenvcmd is set ...
> Running uenvcmd ...
> reading bitstream
> 2083852 bytes read in 129 ms (15.4 MiB/s)
> design filename = "design_1_wrapper;UserID=0XFFFFFFFF;Version=2017.2"
> part number = "7z010clg400"
> date = "2018/05/25"
> time = "15:53:10"
> bytes in bitstream = 2083740
> zynq_align_dma_buffer: Align buffer at 1000070 to ffff80(swap 1)
> reading uImage
> 5459064 bytes read in 310 ms (16.8 MiB/s)
> reading zynq-zybo.dtb
> 8080 bytes read in 17 ms (463.9 KiB/s)
> ## Booting kernel from Legacy Image at 03000000 ...
> Image Name: Linux-4.14.30-yocto-standard
> Image Type: ARM Linux Kernel Image (uncompressed)
> Data Size: 5459000 Bytes = 5.2 MiB
> Load Address: 00008000
> Entry Point: 00008000
> Verifying Checksum ... OK
> ## Flattened Device Tree blob at 02a00000
> Booting using the fdt blob at 0x2a00000
> Loading Kernel Image ... OK
> Loading Device Tree to 1eb22000, end 1eb26f8f ... OK
>
> Starting kernel ...
>
> Booting Linux on physical CPU 0x0
> Linux version 4.14.30-yocto-standard (oe-user at oe-host) (gcc version 7.3.0
> (GCC)) #1 SMP PREEMPT Wed Ju8
> CPU: ARMv7 Processor [413fc090] revision 0 (ARMv7), cr=18c5387d
> CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
> OF: fdt: Machine model: Zynq ZYBO Development Board
> Memory policy: Data cache writealloc
> percpu: Embedded 17 pages/cpu @dfb4e000 s40012 r8192 d21428 u69632
> Built 1 zonelists, mobility grouping on. Total pages: 129920
> Kernel command line: root=/dev/mmcblk0p2 rw rootwait
> PID hash table entries: 2048 (order: 1, 8192 bytes)
> Dentry cache hash table entries: 65536 (order: 6, 262144 bytes)
> Inode-cache hash table entries: 32768 (order: 5, 131072 bytes)
> Memory: 504980K/524288K available (8192K kernel code, 669K rwdata, 2332K
> rodata, 1024K init, 609K bss,)
> Virtual kernel memory layout:
> vector : 0xffff0000 - 0xffff1000 ( 4 kB)
> fixmap : 0xffc00000 - 0xfff00000 (3072 kB)
> vmalloc : 0xe0800000 - 0xff800000 ( 496 MB)
> lowmem : 0xc0000000 - 0xe0000000 ( 512 MB)
> pkmap : 0xbfe00000 - 0xc0000000 ( 2 MB)
> modules : 0xbf000000 - 0xbfe00000 ( 14 MB)
> .text : 0xc0008000 - 0xc0900000 (9184 kB)
> .init : 0xc0c00000 - 0xc0d00000 (1024 kB)
> .data : 0xc0d00000 - 0xc0da75f0 ( 670 kB)
> .bss : 0xc0dae9b8 - 0xc0e46f24 ( 610 kB)
> SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=2, Nodes=1
> ftrace: allocating 29035 entries in 86 pages
> Preemptible hierarchical RCU implementation.
> RCU restricting CPUs from NR_CPUS=4 to nr_cpu_ids=2.
> Tasks RCU enabled.
> RCU: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=2
> NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16
> slcr mapped to e0800000
> L2C: platform modifies aux control register: 0x02060000 -> 0x02460000
> L2C: DT/platform modifies aux control register: 0x02060000 -> 0x02460000
> 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 dynamic clock gating enabled, standby mode enabled
> L2C-310 cache controller enabled, 8 ways, 512 kB
> L2C-310: CACHE_ID 0x410000c8, AUX_CTRL 0x46460001
> zynq_clock_init: clkc starts at e0800100
> Zynq clock init
> sched_clock: 64 bits at 325MHz, resolution 3ns, wraps every 4398046511103ns
> clocksource: arm_global_timer: mask: 0xffffffffffffffff max_cycles:
> 0x4af477f6aa, max_idle_ns: 4407952s
> Switching to timer-based delay loop, resolution 3ns
> clocksource: ttc_clocksource: mask: 0xffff max_cycles: 0xffff, max_idle_ns:
> 551318127 ns
> timer #0 at e0808000, irq=17
> Console: colour dummy device 80x30
> console [tty0] enabled
> Calibrating delay loop (skipped), value calculated using timer frequency..
> 650.00 BogoMIPS (lpj=325000)
> pid_max: default: 32768 minimum: 301
> Security Framework initialized
> Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)
> Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes)
> CPU: Testing write buffer coherency: ok
> CPU0: thread -1, cpu 0, socket 0, mpidr 80000000
> Setting up static identity map for 0x100000 - 0x100060
> Hierarchical SRCU implementation.
> smp: Bringing up secondary CPUs ...
> CPU1: thread -1, cpu 1, socket 0, mpidr 80000001
> smp: Brought up 1 node, 2 CPUs
> SMP: Total of 2 processors activated (1300.00 BogoMIPS).
> CPU: All CPU(s) started in SVC mode.
> devtmpfs: initialized
> random: get_random_u32 called from bucket_table_alloc+0x1d0/0x210 with
> crng_init=0
> 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
> futex hash table entries: 512 (order: 3, 32768 bytes)
> xor: measuring software checksum speed
> arm4regs : 975.200 MB/sec
> 8regs : 744.800 MB/sec
> 32regs : 786.800 MB/sec
> xor: using function: arm4regs (975.200 MB/sec)
> pinctrl core: initialized pinctrl subsystem
> NET: Registered protocol family 16
> DMA: preallocated 256 KiB pool for atomic coherent allocations
> cpuidle: using governor menu
> hw-breakpoint: found 5 (+1 reserved) breakpoint and 1 watchpoint registers.
> hw-breakpoint: maximum watchpoint size is 4 bytes.
> zynq-pinctrl 700.pinctrl: zynq pinctrl initialized
> raid6: int32x1 gen() 106 MB/s
> raid6: int32x1 xor() 98 MB/s
> raid6: int32x2 gen() 104 MB/s
> raid6: int32x2 xor() 101 MB/s
> raid6: int32x4 gen() 110 MB/s
> raid6: int32x4 xor() 76 MB/s
> raid6: int32x8 gen() 110 MB/s
> raid6: int32x8 xor() 80 MB/s
> raid6: using algorithm int32x4 gen() 110 MB/s
> raid6: .... xor() 76 MB/s, rmw enabled
> raid6: using intx1 recovery algorithm
> SCSI subsystem initialized
> usbcore: registered new interface driver usbfs
> usbcore: registered new interface driver hub
> usbcore: registered new device driver usb
> usb_phy_generic phy0: phy0 supply vcc not found, using dummy regulator
> pps_core: LinuxPPS API ver. 1 registered
> pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti
> <giometti at linux.it>
> PTP clock support registered
> EDAC MC: Ver: 3.0.0
> FPGA manager framework
> fpga-region fpga-full: FPGA Region probed
> clocksource: Switched to clocksource arm_global_timer
> NET: Registered protocol family 2
> TCP established hash table entries: 4096 (order: 2, 16384 bytes)
> TCP bind hash table entries: 4096 (order: 3, 32768 bytes)
> TCP: Hash tables configured (established 4096 bind 4096)
> UDP hash table entries: 256 (order: 1, 8192 bytes)
> UDP-Lite hash table entries: 256 (order: 1, 8192 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: no interrupt-affinity property for /pmu at f8891000, guessing.
> hw perfevents: enabled with armv7_cortex_a9 PMU driver, 7 counters available
> workingset: timestamp_bits=14 max_order=17 bucket_order=3
> NFS: Registering the id_resolver key type
> Key type id_resolver registered
> Key type id_legacy registered
> random: fast init done
> Block layer SCSI generic (bsg) driver version 0.4 loaded (major 247)
> io scheduler noop registered
> io scheduler deadline registered
> io scheduler cfq registered (default)
> io scheduler mq-deadline registered
> io scheduler kyber registered
> 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
> *Serial: 8250/16550 driver, 12 ports, IRQ sharing enabled
> e0001000.serial: ttyPS0 at MMIO 0xe0001000 (irq = 24, base_baud = 6250000) is
> a xuartps *
> console [ttyPS0] enabled
> brd: module loaded
> libphy: Fixed MDIO Bus: probed
> CAN device driver interface
> libphy: MACB_mii_bus: probed
> RTL8211E Gigabit Ethernet e000b000.ethernet-ffffffff:00: attached PHY driver
> [RTL8211E Gigabit Etherne)
> macb e000b000.ethernet eth0: Cadence GEM rev 0x00020118 at 0xe000b000 irq 25
> (7e:68:0d:b7:1e:8b)
> ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
> usbcore: registered new interface driver usb-storage
> chipidea-usb2 e0002000.usb: 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
> 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
> i2c /dev entries driver
> IR NEC protocol handler initialized
> IR RC5(x/sz) protocol handler initialized
> IR RC6 protocol handler initialized
> IR JVC protocol handler initialized
> IR Sony protocol handler initialized
> IR SANYO protocol handler initialized
> IR Sharp protocol handler initialized
> IR MCE Keyboard/mouse protocol handler initialized
> IR XMP protocol handler initialized
> cdns-wdt f8005000.watchdog: Xilinx Watchdog Timer at e08f7000 with timeout 10s
> device-mapper: ioctl: 4.37.0-ioctl (2017-09-20) initialised: dm-devel at redhat.com
> EDAC MC: ECC not enabled
> cpufreq: cpufreq_online: CPU0: Running at unlisted freq: 650000 KHz
> cpufreq: cpufreq_online: CPU0: Unlisted initial frequency changed to: 666667 KHz
> 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
> mmc0: SDHCI controller on e0100000.sdhci [e0100000.sdhci] using ADMA
> usbcore: registered new interface driver usbhid
> usbhid: USB HID core driver
> fpga_manager fpga0: Xilinx Zynq FPGA Manager registered
> oprofile: using arm/armv7-ca9
> u32 classifier
> Actions configured
> NET: Registered protocol family 10
> Segment Routing with IPv6
> sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver
> NET: Registered protocol family 17
> can: controller area network core (rev 20170425 abi 9)
> NET: Registered protocol family 29
> can: raw protocol (rev 20170425)
> can: broadcast manager protocol (rev 20170425 t)
> can: netlink gateway (rev 20170425) max_hops=1
> Key type dns_resolver registered
> Registering SWP/SWPB emulation handler
> Btrfs loaded, crc32c=crc32c-generic
> Key type encrypted registered
> mmc0: new high speed SDHC card at address 0007
> mmcblk0: mmc0:0007 SD16G 14.5 GiB
> console [netcon0] enabled
> mmcblk0: p1 p2
> netconsole: network logging started
> hctosys: unable to open rtc device (rtc0)
> md: Waiting for all devices to be available before autodetect
> md: If you don't use raid, use raid=noautodetect
> md: Autodetecting RAID arrays.
> md: autorun ...
> md: ... autorun DONE.
> EXT4-fs (mmcblk0p2): couldn't mount as ext3 due to feature incompatibilities
> EXT4-fs (mmcblk0p2): couldn't mount as ext2 due to feature incompatibilities
> EXT4-fs (mmcblk0p2): warning: maximal mount count reached, running e2fsck is
> recommended
> EXT4-fs (mmcblk0p2): recovery complete
> EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Opts: (null)
> VFS: Mounted root (ext4 filesystem) on device 179:2.
> devtmpfs: mounted
> Freeing unused kernel memory: 1024K
> INIT: version 2.88 booting
> Starting udev
> udevd[91]: starting version 3.2.5
> udevd[92]: starting eudev-3.2.5
> EXT4-fs (mmcblk0p2): re-mounted. Opts: data=ordered
> Thu Jul 12 09:21:00 UTC 2018
> INIT: Entering runlevel: 5
> Configuring network interfaces... IPv6: ADDRCONF(NETDEV_UP): eth0: link is not
> ready
> udhcpc: started, v1.27.2
> udhcpc: sending discover
> udhcpc: sending discover
> udhcpc: sending discover
> udhcpc: no lease, forking to background
> done.
> Starting syslogd/klogd: done
>
> Poky (Yocto Project Reference Distro) 2.5 zybo-zynq7 /dev/ttyPS0
>
> zybo-zynq7 login: root
> root at zybo-zynq7:~#
> root at zybo-zynq7:~# dmesg | grep serial
> e0001000.serial: ttyPS0 at MMIO 0xe0001000 (irq = 24, base_baud = 6250000) is
> a xuartps
> root at zybo-zynq7:~# /
>
> -------------------------------------------------------------------------------------------------------------------------------------------------------------
>
>
> Thank you very much
>
> Simon
>
>
>
Kind regards,
Mike Looijmans
System Expert
TOPIC Products
Materiaalweg 4, NL-5681 RJ Best
Postbus 440, NL-5680 AK Best
Telefoon: +31 (0) 499 33 69 79
E-mail: mike.looijmans at topicproducts.com
Website: www.topicproducts.com
Please consider the environment before printing this e-mail
More information about the meta-xilinx
mailing list