IMX6q UART5 Bluetooth connection

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

IMX6q UART5 Bluetooth connection

10,115 Views
saurabh206
Senior Contributor III

Hi,

All

I am using custom hardware based on IMX6q.

Bluetooth chip is connected on UART5.

Bluetooth pins          imx6

BT_RXD          --> KEY_COL1

BT_TXD          --> KEY_ROW1

BT_CTS          --> KEY_COL4

BT_RTS          --> KEY_ROW4

Following code i have added to enable UART5.

static iomux_v3_cfg_t mx6q_uart5_pads[] = {

    MX6Q_PAD_KEY_ROW1__UART5_RXD,

    MX6Q_PAD_KEY_COL1__UART5_TXD,

    MX6Q_PAD_KEY_ROW4__UART5_CTS,

    MX6Q_PAD_KEY_COL4__UART5_RTS,

};

static const struct imxuart_platform_data mx6q_sd_uart5_data __initconst = {

    .flags      = IMXUART_HAVE_RTSCTS ,

    .dma_req_rx = MX6Q_DMA_REQ_UART5_RX,

    .dma_req_tx = MX6Q_DMA_REQ_UART5_TX,

};

static void __init uart5_init(void)

{

    printk(KERN_INFO "uart5 is added\n");

    mxc_iomux_v3_setup_multiple_pads(mx6q_uart5_pads,

            ARRAY_SIZE(mx6q_uart5_pads));

    imx6q_add_imx_uart(4, &mx6q_sd_uart5_data);

}

With this setup I am getting error for firmware load, It seems that my UART5 configuration is not proper.

How to debug RTS/CTS issue?

27 Replies

3,510 Views
shawnyang
Contributor I

Hi, Brian, 

We hit this issue as well. We use UART5 to connect to an ultrasonic sensor. 

We use IMX6QP, and Linux kernel is 4.1.28.

We found that no matter how we swap the TXD/RXD lines in sw,  it does not work.

But if we swap the TX/RX lines in hw, it immediately works.

We tried your suggestion of adding  dma-names = "","tx" line to the DTS. It did not help however.

0 Kudos

3,518 Views
sivakumarganesa
Contributor III

Hi Saurabh patel,

now i can see the "Found a Texas Instruments' chip!" in the hyperterminal. but after that i am getting "Initialization timed out." below i have mentioned the log file which i am getting in the hyper terminal.

ÿ

U-Boot 2014.10 (Feb 27 2015 - 17:55:20)

CPU:   Freescale i.MX6SL rev1.2 at 792 MHz

Reset cause: POR

Board: MX6SLEVK

I2C:   ready

DRAM:  512 MiB

padMux SCL = 0x20e016c data = 0x11

padMux SDA = 0x20e018c data = 0x11

pad contorl SCL = 0x20e0474 data = 0x1b8b1

pad contol SDA = 0x20e0494 data = 0x1b8b1

Sel input In SCL = 0x20e0728 data = 0x2

Sel input iN SCL = 0x20e0724 data = 0x2

ADD IADR = 0x21a4000 data = 0x0

ADD IFDR = 0x21a4004 data = 0x14

ADD I2CR = 0x21a4008 data = 0x80

ADD I2SR = 0x21a400c data = 0x81

ADD I2DR = 0x21a4010 data = 0x0

PMIC pmic_get

wait_for_sr_state: failed sr=81 cr=a0 state=2020

i2c_init_transfer: failed for chip 0x18 retry=0

wait_for_sr_state: failed sr=81 cr=a0 state=2020

i2c_init_transfer: failed for chip 0x18 retry=1

wait_for_sr_state: failed sr=81 cr=a0 state=2020

i2c_init_transfer: failed for chip 0x18 retry=2

i2c_init_transfer: give up i2c_regs=021a8000

Can't find PMIC:PFUZE100

Satya: PMIC found test print -1

Satya: Reading the PMIC Data...

Satya: PMIC Value at add generated 1.2V 0x6c = 0x18

Satya: PMIC Value at add generated 1.5V 0x6d = 0x1e

Satya: PMIC Value at add generated 1.8V 0x6e = 0x10

Satya: PMIC Value at add generated 1.8V 0x6f = 0x10

Satya: PMIC Value at add generated 2.5V 0x70 = 0x17

Satya: PMIC Value at add generated 2.8V 0x71 = 0x1a

MMC:   FSL_SDHC: 0

*** Warning - bad CRC, using default environment

In:    serial

Out:   serial

Err:   serial

Net:   Phy not found

FEC [PRIME]

Error: FEC address not set.

Hit any key to stop autoboot:  3     2     1     0

switch to partitions #0, OK

mmc0 is current device

switch to partitions #0, OK

mmc0 is current device

reading boot.scr

** Unable to read file boot.scr **

reading zImage

4823088 bytes read in 233 ms (19.7 MiB/s)

Booting from mmc ...

reading imx6sl-evk.dtb

25980 bytes read in 18 ms (1.4 MiB/s)

Kernel image @ 0x82000000 [ 0x000000 - 0x499830 ]

## Flattened Device Tree blob at 88000000

   Booting using the fdt blob at 0x88000000

   Using Device Tree in place at 88000000, end 8800957b

Starting kernel ...

Booting Linux on physical CPU 0x0

Linux version 3.10.53 (root@vivek-To-be-filled-by-O-E-M) (gcc version 4.8.1 (GCC) ) #147 SMP PREEMPT Mon Mar 2 11:04:38 IST 2015

CPU: ARMv7 Processor [412fc09a] revision 10 (ARMv7), cr=10c53c7d

CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache

Machine: Freescale i.MX6 SoloLite (Device Tree), model: Freescale i.MX6 SoloLite EVK Board(PFUZE100)

cma: CMA: reserved 320 MiB at 8c000000

Memory policy: ECC disabled, Data cache writealloc

PERCPU: Embedded 8 pages/cpu @80cec000 s8960 r8192 d15616 u32768

Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 130048

Kernel command line: console=ttymxc0,115200 root=/dev/mmcblk0p2 rootwait rw

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: 512MB = 512MB total

Memory: 182260k/182260k available, 342028k reserved, 0K highmem

Virtual kernel memory layout:

    vector  : 0xffff0000 - 0xffff1000   (   4 kB)

    fixmap  : 0xfff00000 - 0xfffe0000   ( 896 kB)

    vmalloc : 0xa0800000 - 0xff000000   (1512 MB)

    lowmem  : 0x80000000 - 0xa0000000   ( 512 MB)

    pkmap   : 0x7fe00000 - 0x80000000   (   2 MB)

    modules : 0x7f000000 - 0x7fe00000   (  14 MB)

      .text : 0x80008000 - 0x807db8dc   (8015 kB)

      .init : 0x807dc000 - 0x80826300   ( 297 kB)

      .data : 0x80828000 - 0x80875320   ( 309 kB)

       .bss : 0x80875320 - 0x808dd55c   ( 417 kB)

SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=1, Nodes=1

Preemptible hierarchical RCU implementation.

  RCU restricting CPUs from NR_CPUS=4 to nr_cpu_ids=1.

NR_IRQS:16 nr_irqs:16 16

L310 cache controller enabled

l2x0: 16 ways, CACHE_ID 0x410000c8, AUX_CTRL 0x32030000, Cache size: 262144 B

sched_clock: 32 bits at 24MHz, resolution 41ns, wraps every 178956ms

Console: colour dummy device 80x30

Calibrating delay loop... 1581.05 BogoMIPS (lpj=7905280)

pid_max: default: 32768 minimum: 301

Mount-cache hash table entries: 512

CPU: Testing write buffer coherency: ok

CPU0: thread -1, cpu 0, socket 0, mpidr 80000000

Setting up static identity map for 0x805ce878 - 0x805ce8d0

Brought up 1 CPUs

SMP: Total of 1 processors activated (1581.05 BogoMIPS).

CPU: All CPU(s) started in SVC mode.

devtmpfs: initialized

pinctrl core: initialized pinctrl subsystem

regulator-dummy: no parameters

NET: Registered protocol family 16

DMA: preallocated 256 KiB pool for atomic coherent allocations

Use WDOG1 as reset source

syscon 20c8000.anatop: regmap [mem 0x020c8000-0x020c8fff] registered

vdd1p1: 800 <--> 1375 mV at 1125 mV

vdd3p0: 2800 <--> 3150 mV at 3000 mV

vdd2p5: 2100 <--> 2850 mV at 2525 mV

cpu: 725 <--> 1450 mV at 1100 mV

vddpu: 725 <--> 1450 mV at 1100 mV

vddsoc: 725 <--> 1450 mV at 1175 mV

syscon 20e0000.iomuxc-gpr: regmap [mem 0x020e0000-0x020e0037] registered

syscon 21bc000.ocotp-ctrl: regmap [mem 0x021bc000-0x021bffff] registered

hw-breakpoint: found 5 (+1 reserved) breakpoint and 1 watchpoint registers.

hw-breakpoint: maximum watchpoint size is 4 bytes.

imx6sl-pinctrl 20e0000.iomuxc: initialized IMX pinctrl driver

bio: create slab <bio-0> at 0

lcd-3v3: no parameters

wm8962-supply-3v15: 3150 mV

wm8962-supply-4v2: 4325 mV

wm8962-supply-1v8: 1800 mV

ov5642-supply-2v8: 2800 mV

ov5642-supply-1v8: 1800 mV

ov5642-supply-1v5: 1500 mV

wlan-en-regulator: 1800 mV

reg-fixed-voltage regulator.21: Fixed regulator specified with variable voltages

reg-fixed-voltage: probe of regulator.21 failed with error -22

i2c-core: driver [max17135] using legacy suspend method

i2c-core: driver [max17135] using legacy resume method

SCSI subsystem initialized

i2c i2c-0: IMX I2C adapter registered

i2c i2c-1: IMX I2C adapter registered

media: Linux media interface: v0.10

Linux video capture interface: v2.00

pps_core: LinuxPPS API ver. 1 registered

pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>

PTP clock support registered

MIPI CSI2 driver module loaded

ads129x: Driver-Driver Init

ads129x: mutex init

ads129x: sem init

ads129x: Init succesfull

ads129x: 0, 0 ret

Advanced Linux Sound Architecture Driver Initialized.

Bluetooth: Core ver 2.16

NET: Registered protocol family 31

Bluetooth: HCI device and connection manager initialized

Bluetooth: HCI socket layer initialized

Bluetooth: L2CAP socket layer initialized

Bluetooth: SCO socket layer initialized

pureg-dummy: no parameters

Switching to clocksource mxc_timer1

NET: Registered protocol family 2

TCP established hash table entries: 4096 (order: 3, 32768 bytes)

TCP bind hash table entries: 4096 (order: 3, 32768 bytes)

TCP: Hash tables configured (established 4096 bind 4096)

TCP: reno registered

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: enabled with ARMv7 Cortex-A9 PMU driver, 7 counters available

imx6_busfreq busfreq.2: busfreq_probe: failed to get pll3_usb_otg

imx6_busfreq: probe of busfreq.2 failed with error -2

Bus freq driver module loaded

futex hash table entries: 256 (order: 2, 16384 bytes)

VFS: Disk quotas dquot_6.5.2

Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)

NFS: Registering the id_resolver key type

Key type id_resolver registered

Key type id_legacy registered

jffs2: version 2.2. (NAND) © 2001-2006 Red Hat, Inc.

fuse init (API version 7.22)

msgmni has been set to 995

io scheduler noop registered

io scheduler deadline registered

io scheduler cfq registered (default)

MIPI DSI driver module loaded

ILI9163 driver init

imx-sdma 20ec000.sdma: loaded firmware 1.1

imx-sdma 20ec000.sdma: initialized

pfuze100-regulator 0-0008: unrecognized pfuze chip ID!

pfuze100-regulator: probe of 0-0008 failed with error -5

Serial: IMX driver

imx:uart RTS failed

2020000.serial: ttymxc0 at MMIO 0x2020000 (irq = 58) is a IMX

console [ttymxc0] enabled

imx:uart has RTS/CTS

2038000.serial: ttymxc3 at MMIO 0x2038000 (irq = 61) is a IMX

serial: Freescale lpuart driver

imx sema4 driver is registered.

[drm] Initialized drm 1.1.0 20060810

brd: module loaded

loop: module loaded

kim:/dev/ttymxc3

kim:1

kim:0

kim:115200

Kim: requested shutdown gpio succesfully

(stk) :sysfs entries created

debugfs entries created ads129x: ads129x_probe

ads129x spi32766.0: No reset-gpios gpio

IRQ: 238

ads129x:ADS Chip registered, 1 chips total.

spi_imx 2008000.ecspi: probed

ili9163: LCD probe function called

ili9163: Request CTS

ili9163: Request Shutdown

ili9163: pmw ON

ili9163: vmem ON

Console: switching to colour frame buffer device 16x20

ili9163: registerFB done

ili9163: spi_set_drv_data

fb0: ili9163fb frame buffer device,

  using 40960 KiB of video memory

spi_imx 200c000.ecspi: probed

CAN device driver interface

mousedev: PS/2 mouse device common for all mice

input: TSC2007 Touchscreen as /devices/virtual/input/input0

snvs_rtc 20cc034.snvs-rtc-lp: rtc core: registered 20cc034.snvs-rtc-lp as rtc0

i2c /dev entries driver

i2c-core: driver [mag3110] using legacy suspend method

i2c-core: driver [mag3110] using legacy resume method

imx2-wdt 20bc000.wdog: IMX2+ Watchdog Timer enabled. timeout=60s (nowayout=0)

Bluetooth: HCI UART driver ver 2.2

Bluetooth: HCI H4 protocol initialized

Bluetooth: HCI BCSP protocol initialized

Bluetooth: HCILL protocol initialized

Bluetooth: Generic Bluetooth SDIO driver ver 0.1

hdev 8602d000

HCI device registered (hdev 8602d000)

cpuidle: using governor ladder

cpuidle: using governor menu

hci0 8602d000

(stc):  chnl_id list empty :4

(stk) : st_kim_startuse device tree datakim: Bluetooth GPIO start

sdhci: Secure Digital Host Controller Interface driver

sdhci: Copyright(c) Pierre Ossman

sdhci-pltfm: SDHCI platform and OF driver helper

mmc0: no vqmmc regulator found

mmc0: no vmmc regulator found

mmc0: SDHCI controller on 2190000.usdhc [2190000.usdhc] using DMA

sdhci-esdhc-imx 2198000.usdhc: could not get ultra high speed state, work on normal mode

mmc1: no vqmmc regulator found

mmc0: new high speed SDHC card at address 59b4

mmcblk0: mmc0:59b4 USD   3.74 GiB

mmcblk0: p1 p2

(stk) :ldisc_install = 1mmc1: SDHCI controller on 2198000.usdhc [2198000.usdhc] using DMA

[drm] Supports vblank timestamp caching Rev 1 (10.10.2010).

mmc1: card claims to support voltages below the defined range. These will be ignored.

[drm] No driver support for vblank timestamp query.

[drm] Initialized imx-drm 1.0.0 20120507 on minor 0

mmc1: queuing unknown CIS tuple 0x91 (3 bytes)

mmc1: new high speed SDIO card at address 0001

wm8962 1-001a: customer id 0 revision F

input: WM8962 Beep Generator as /devices/soc0/soc.1/2100000.aips-bus/21a8000.i2c/i2c-1/1-001a/input/input1

imx-wm8962 sound.24:  wm8962 <-> 202c000.ssi mapping ok

NET: Registered protocol family 26

TCP: cubic registered

NET: Registered protocol family 10

sit: IPv6 over IPv4 tunneling driver

NET: Registered protocol family 17

can: controller area network core (rev 20120528 abi 9)

NET: Registered protocol family 29

can: raw protocol (rev 20120528)

can: broadcast manager protocol (rev 20120528 t)

can: netlink gateway (rev 20130117) max_hops=1

Bluetooth: RFCOMM TTY layer initialized

Bluetooth: RFCOMM socket layer initialized

Bluetooth: RFCOMM ver 1.11

Bluetooth: BNEP (Ethernet Emulation) ver 1.3

Bluetooth: BNEP filters: protocol multicast

Bluetooth: BNEP socket layer initialized

Bluetooth: HIDP (Human Interface Emulation) ver 1.2

Bluetooth: HIDP socket layer initialized

8021q: 802.1Q VLAN Support v1.8

Key type dns_resolver registered

VFP support v0.3: implementor 41 architecture 3 part 30 variant 9 rev 4

imx6-cpufreq imx6-cpufreq.0: failed to get regulators

imx6-cpufreq: probe of imx6-cpufreq.0 failed with error -2

ov5642-supply-1v5: disabling

ov5642-supply-1v8: disabling

ov5642-supply-2v8: disabling

wm8962-supply-1v8: disabling

wm8962-supply-4v2: disabling

wm8962-supply-3v15: disabling

lcd-3v3: disabling

vddpu: disabling

regulator-dummy: disabling

imx mcc test is registered.

snvs_rtc 20cc034.snvs-rtc-lp: setting system clock to 1970-01-01 00:00:00 UTC (0)

ALSA device list:

  #0: wm8962-audio

kjournald starting.  Commit interval 5 seconds

EXT3-fs (mmcblk0p2): using internal journal

EXT3-fs (mmcblk0p2): recovery complete

EXT3-fs (mmcblk0p2): mounted filesystem with ordered data mode

VFS: Mounted root (ext3 filesystem) on device 179:2.

devtmpfs: mounted

Freeing unused kernel memory: 296K (807dc000 - 80826000)

INIT: (stk) :ldisc installation timeoutuse device tree data

(stk) :ldisc_install = 0version 2.88 booting

(stk) : timed out waiting for ldisc to be un-installedkim: Bluetooth GPIO start

(stk) :ldisc_install = 1Starting udev

udevd[120]: starting version 182

(stk) :ldisc installation timeoutuse device tree data

(stk) :ldisc_install = 0Loading modules backported from Linux version R8.5-0-gcb51164

Backport generated by backports.git R8.4-0-g0d46f43

bootlogd: cannot allocate pseudo tty: No such file or directory

ov5640_read_reg:write reg error:reg=300a

camera ov5640 is not found

(stk) : timed out waiting for ldisc to be un-installedkim: Bluetooth GPIO start

(stk) :ldisc_install = 1csi_v4l_open: Internal error, camera is not found!

cfg80211: Calling CRDA to update world regulatory domain

cfg80211: World regulatory domain updated:

cfg80211:  DFS Master region: unsetcfg80211:   (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp), (dfs_cac_time)

wlcore: ERROR could not get configuration binary ti-connectivity/wl18xx-conf.bin: -2

wlcore: WARNING falling back to default config

cfg80211:   (2402000 KHz - 2472000 KHz @ 40000 KHz), (N/A, 2000 mBm), (N/A)

cfg80211:   (2457000 KHz - 2482000 KHz @ 40000 KHz), (N/A, 2000 mBm), (N/A)

cfg80211:   (2474000 KHz - 2494000 KHz @ 20000 KHz), (N/A, 2000 mBm), (N/A)

(stk) :ldisc installation timeoutuse device tree data

(stk) :ldisc_install = 0cfg80211:   (5170000 KHz - 5250000 KHz @ 160000 KHz), (N/A, 2000 mBm), (N/A)

cfg80211:   (5250000 KHz - 5330000 KHz @ 160000 KHz), (N/A, 2000 mBm), (0 s)

cfg80211:   (5490000 KHz - 5730000 KHz @ 160000 KHz), (N/A, 2000 mBm), (0 s)

cfg80211:   (5735000 KHz - 5835000 KHz @ 80000 KHz), (N/A, 2000 mBm), (N/A)

cfg80211:   (57240000 KHz - 63720000 KHz @ 2160000 KHz), (N/A, 0 mBm), (N/A)

wlcore: wl18xx HW: 183x or 180x, PG 2.2 (ROM 0x11)

wlcore: loaded

wlcore: driver version: R8.5

wlcore: compilation time: Mon Mar  2 05:40:54 2015

FAT-fs (mmcblk0p1): Volume was not properly unmounted. Some data may be corrupt. Please run fsck.

ALSA: Restoring mixer settings...

Fri Feb 20 11:27:36 UTC 2015

INIT: Entering runlevel: 5

Configuring network interfaces... ifconfig: SIOCGIFFLAGS: No such device

Starting Xserver

(stk) : timed out waiting for ldisc to be un-installedkim: Bluetooth GPIO start

(stk) :ldisc_install = 1Starting system message bus: Unknown username "xuser" in message bus configuration file

Unknown username "avahi" in message bus configuration file

dbus.

Starting Connection Manager

(stk) :ldisc installation timeoutuse device tree data(stk) :ldisc_install = 0Starting Dropbear SSH server: dropbear.

(stk) : timed out waiting for ldisc to be un-installedkim: Bluetooth GPIO start

(stk) :ldisc_install = 1Starting rpcbind daemon...done.

rpcbind: cannot get uid of 'rpc': Success

Starting advanced power management daemon: No APM support in kernel

(failed.)

Starting syslogd/klogd: done

* Starting Avahi mDNS/DNS-SD Daemon: avahi-daemon

(stk) :ldisc installation timeoutuse device tree data

(stk) :ldisc_install = 0(stk) : timed out waiting for ldisc to be un-installedkim: Bluetooth GPIO start

(stk) :ldisc_install = 1

(stk) :ldisc installation timeoutuse device tree data

(stk) :ldisc_install = 0(stk) : timed out waiting for ldisc to be un-installed

Bluetooth: st_register failed -22

Timeout reached while wating for return value

Could not receive return value from daemon process.

   ...fail!

Starting Telephony daemon

Starting Linux NFC daemon

/etc/rc5.d/S64neard: line 26: /usr/lib/neard/neard: No such file or directory

Running local boot scripts (/etc/rc.local)Successfully initialized wpa_supplicant

Line 61: unknown global field 'p2p_go_ht40=1'.

Line 61: Invalid configuration line 'p2p_go_ht40=1'.

Line 63: unknown global field 'concurrent_sched_scan=1'.

Line 63: Invalid configuration line 'concurrent_sched_scan=1'.

Line 64: unknown global field 'p2p_disabled=1'.

Line 64: Invalid configuration line 'p2p_disabled=1'.

Failed to read or parse configuration '/etc/wpa_supplicant.conf'.

wlcore: PHY firmware version: Rev 8.2.0.0.224

wlcore: firmware booted (Rev 8.9.0.0.31)

IPv6: ADDRCONF(NETDEV_UP): wlan0: link is not ready

.

Poky (Yocto Project Reference Distro) 1.7 imx6slevk /dev/ttymxc0

imx6slevk login: root

root@imx6slevk:~# hciattach -t 30 -s 115200 /dev/ttymxc3 texas 115200 flow

Found a Texas Instruments' chip!

Firmware file : /lib/firmware/TIInit_11.8.32.bts

Loaded BTS script version 1

texas: changing baud rate to 3000000, flow control to 1

Initialization timed out.

root@imx6slevk:~#

Thanks,

Sivakumar

0 Kudos

3,518 Views
briankennedy
Contributor I

Did you ever find a solution to this issue?  I'm encountering the same exact issue with an iMX6 connected to a TiWi5 module via UART 5.  I see the TI device and it says the bts file is loaded but I get the same timeout.

0 Kudos

3,518 Views
briankennedy
Contributor I

I solved our issue this morning.  It turns out that the version of the kernel we were using has a bug with the UART DMA handling.  As a short-term workaround, I was able to disable the RX DMA in the device tree by adding:

   &uart5 {

           status = "okay";

           dma-names = "","tx";

    };

The more permanent solution was to patch drivers/tty/serial/imx.c .

For more details on this issue see this thread: Linux iMX6 UART Driver Issues - Toradex Community 

0 Kudos

3,518 Views
sivakumarganesa
Contributor III

Hi Sauabh,

What are pad settings register you have done in UART signal in iMX6SL processor ?  We connected physically what u mentioned in previous reply. But still we are facing problem in Bluetooth communication.

Thanks,

Sivakumar.

0 Kudos

3,518 Views
saurabh206
Senior Contributor III

Hi Siva

My connection is like

static iomux_v3_cfg_t mx6q_uart5_pads[] = {

    MX6Q_PAD_KEY_ROW1__UART5_RXD,

    MX6Q_PAD_KEY_COL1__UART5_TXD,

    MX6Q_PAD_KEY_COL4__UART5_RTS,

    MX6Q_PAD_KEY_ROW4__UART5_CTS,

};

And physically

BT RXD is connected to IMX6 TXD.

BT TXD is connected to IMX6 RXD.

BT RTS is connected to IMX6 RTS.

BT CTS is connected to IMX6 CTS.

What type of error you are getting?

0 Kudos

3,518 Views
sivakumarganesa
Contributor III

Hi Saurabh Patel,

Thanks for replying us. As you said previous reply, Physically we connected correctly in the iMX6 Sololite processor design. i will send the log file soon, which we got the error when we loading the kernal.

Thanks,

Sivakumar

0 Kudos

3,518 Views
sivakumarganesa
Contributor III

Hi Saurabh patel,

here i have attached the log files for Bluetooth issue. Please help me to solve this problem.\

---------------------------------------------------------------------------------------------------------------------------------------------

Starting kernel ...

Booting Linux on physical CPU 0x0

Linux version 3.10.53 (root@vivek-To-be-filled-by-O-E-M) (gcc version 4.8.1 (GCC) ) #147 SMP PREEMPT Mon Mar 2 11:04:38 IST 2015

CPU: ARMv7 Processor [412fc09a] revision 10 (ARMv7), cr=10c53c7d

CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache

Machine: Freescale i.MX6 SoloLite (Device Tree), model: Freescale i.MX6 SoloLite EVK Board(PFUZE100)

cma: CMA: reserved 320 MiB at 8c000000

Memory policy: ECC disabled, Data cache writealloc

PERCPU: Embedded 8 pages/cpu @80cec000 s8960 r8192 d15616 u32768

Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 130048

Kernel command line: console=ttymxc0,115200 root=/dev/mmcblk0p2 rootwait rw

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: 512MB = 512MB total

Memory: 182260k/182260k available, 342028k reserved, 0K highmem

Virtual kernel memory layout:

    vector  : 0xffff0000 - 0xffff1000   (   4 kB)

    fixmap  : 0xfff00000 - 0xfffe0000   ( 896 kB)

    vmalloc : 0xa0800000 - 0xff000000   (1512 MB)

    lowmem  : 0x80000000 - 0xa0000000   ( 512 MB)

    pkmap   : 0x7fe00000 - 0x80000000   (   2 MB)

    modules : 0x7f000000 - 0x7fe00000   (  14 MB)

      .text : 0x80008000 - 0x807db8dc   (8015 kB)

      .init : 0x807dc000 - 0x80826300   ( 297 kB)

      .data : 0x80828000 - 0x80875320   ( 309 kB)

       .bss : 0x80875320 - 0x808dd55c   ( 417 kB)

SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=1, Nodes=1

Preemptible hierarchical RCU implementation.

  RCU restricting CPUs from NR_CPUS=4 to nr_cpu_ids=1.

NR_IRQS:16 nr_irqs:16 16

L310 cache controller enabled

l2x0: 16 ways, CACHE_ID 0x410000c8, AUX_CTRL 0x32030000, Cache size: 262144 B

sched_clock: 32 bits at 24MHz, resolution 41ns, wraps every 178956ms

Console: colour dummy device 80x30

Calibrating delay loop... 1581.05 BogoMIPS (lpj=7905280)

pid_max: default: 32768 minimum: 301

Mount-cache hash table entries: 512

CPU: Testing write buffer coherency: ok

CPU0: thread -1, cpu 0, socket 0, mpidr 80000000

Setting up static identity map for 0x805ce878 - 0x805ce8d0

Brought up 1 CPUs

SMP: Total of 1 processors activated (1581.05 BogoMIPS).

CPU: All CPU(s) started in SVC mode.

devtmpfs: initialized

pinctrl core: initialized pinctrl subsystem

regulator-dummy: no parameters

NET: Registered protocol family 16

DMA: preallocated 256 KiB pool for atomic coherent allocations

Use WDOG1 as reset source

syscon 20c8000.anatop: regmap [mem 0x020c8000-0x020c8fff] registered

vdd1p1: 800 <--> 1375 mV at 1125 mV

vdd3p0: 2800 <--> 3150 mV at 3000 mV

vdd2p5: 2100 <--> 2850 mV at 2525 mV

cpu: 725 <--> 1450 mV at 1100 mV

vddpu: 725 <--> 1450 mV at 1100 mV

vddsoc: 725 <--> 1450 mV at 1175 mV

syscon 20e0000.iomuxc-gpr: regmap [mem 0x020e0000-0x020e0037] registered

syscon 21bc000.ocotp-ctrl: regmap [mem 0x021bc000-0x021bffff] registered

hw-breakpoint: found 5 (+1 reserved) breakpoint and 1 watchpoint registers.

hw-breakpoint: maximum watchpoint size is 4 bytes.

imx6sl-pinctrl 20e0000.iomuxc: initialized IMX pinctrl driver

bio: create slab <bio-0> at 0

lcd-3v3: no parameters

wm8962-supply-3v15: 3150 mV

wm8962-supply-4v2: 4325 mV

wm8962-supply-1v8: 1800 mV

ov5642-supply-2v8: 2800 mV

ov5642-supply-1v8: 1800 mV

ov5642-supply-1v5: 1500 mV

wlan-en-regulator: 1800 mV

reg-fixed-voltage regulator.21: Fixed regulator specified with variable voltages

reg-fixed-voltage: probe of regulator.21 failed with error -22

i2c-core: driver [max17135] using legacy suspend method

i2c-core: driver [max17135] using legacy resume method

SCSI subsystem initialized

i2c i2c-0: IMX I2C adapter registered

i2c i2c-1: IMX I2C adapter registered

media: Linux media interface: v0.10

Linux video capture interface: v2.00

pps_core: LinuxPPS API ver. 1 registered

pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>

PTP clock support registered

MIPI CSI2 driver module loaded

ads129x: Driver-Driver Initads129x: mutex init ads129x: sem init ads129x: Init succesfullads129x: 0, 0 retAdvanced Linux Sound Architecture Driver Initialized.

Bluetooth: Core ver 2.16

NET: Registered protocol family 31

Bluetooth: HCI device and connection manager initialized

Bluetooth: HCI socket layer initialized

Bluetooth: L2CAP socket layer initialized

Bluetooth: SCO socket layer initialized

pureg-dummy: no parameters

Switching to clocksource mxc_timer1

NET: Registered protocol family 2

TCP established hash table entries: 4096 (order: 3, 32768 bytes)

TCP bind hash table entries: 4096 (order: 3, 32768 bytes)

TCP: Hash tables configured (established 4096 bind 4096)

TCP: reno registered

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: enabled with ARMv7 Cortex-A9 PMU driver, 7 counters available

imx6_busfreq busfreq.2: busfreq_probe: failed to get pll3_usb_otg

imx6_busfreq: probe of busfreq.2 failed with error -2

Bus freq driver module loaded

futex hash table entries: 256 (order: 2, 16384 bytes)

VFS: Disk quotas dquot_6.5.2

Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)

NFS: Registering the id_resolver key type

Key type id_resolver registered

Key type id_legacy registered

jffs2: version 2.2. (NAND) © 2001-2006 Red Hat, Inc.

fuse init (API version 7.22)

msgmni has been set to 995

io scheduler noop registered

io scheduler deadline registered

io scheduler cfq registered (default)

MIPI DSI driver module loaded

ILI9163 driver initimx-sdma 20ec000.sdma: loaded firmware 1.1

imx-sdma 20ec000.sdma: initialized

pfuze100-regulator 0-0008: unrecognized pfuze chip ID!

pfuze100-regulator: probe of 0-0008 failed with error -5

Serial: IMX driver

imx:uart RTS failed2020000.serial: ttymxc0 at MMIO 0x2020000 (irq = 58) is a IMX

console [ttymxc0] enabled

imx:uart has RTS/CTS2038000.serial: ttymxc3 at MMIO 0x2038000 (irq = 61) is a IMX

serial: Freescale lpuart driver

imx sema4 driver is registered.

[drm] Initialized drm 1.1.0 20060810

brd: module loaded

loop: module loaded

kim:/dev/ttymxc3 kim:1 kim:0 kim:115200 Kim: requested shutdown gpio succesfully(stk) :sysfs entries created

debugfs entries created ads129x: ads129x_probe

ads129x spi32766.0: No reset-gpios gpio

IRQ: 238

ads129x:ADS Chip registered, 1 chips total.

spi_imx 2008000.ecspi: probed

ili9163: LCD probe function calledili9163: Request CTS ili9163: Request Shutdown ili9163: pmw ON

ili9163: vmem ON

Console: switching to colour frame buffer device 16x20

ili9163: registerFB done

ili9163: spi_set_drv_data

fb0: ili9163fb frame buffer device,

  using 40960 KiB of video memory

spi_imx 200c000.ecspi: probed

CAN device driver interface

mousedev: PS/2 mouse device common for all mice

input: TSC2007 Touchscreen as /devices/virtual/input/input0

snvs_rtc 20cc034.snvs-rtc-lp: rtc core: registered 20cc034.snvs-rtc-lp as rtc0

i2c /dev entries driver

i2c-core: driver [mag3110] using legacy suspend method

i2c-core: driver [mag3110] using legacy resume method

imx2-wdt 20bc000.wdog: IMX2+ Watchdog Timer enabled. timeout=60s (nowayout=0)

Bluetooth: HCI UART driver ver 2.2

Bluetooth: HCI H4 protocol initialized

Bluetooth: HCI BCSP protocol initialized

Bluetooth: HCILL protocol initialized

Bluetooth: Generic Bluetooth SDIO driver ver 0.1

hdev 8602d000

HCI device registered (hdev 8602d000)

cpuidle: using governor ladder

cpuidle: using governor menu

hci0 8602d000

(stc):  chnl_id list empty :4

(stk) : st_kim_startuse device tree data

kim: Bluetooth GPIO startsdhci: Secure Digital Host Controller Interface driver

sdhci: Copyright(c) Pierre Ossman

sdhci-pltfm: SDHCI platform and OF driver helper

mmc0: no vqmmc regulator found

mmc0: no vmmc regulator found

mmc0: SDHCI controller on 2190000.usdhc [2190000.usdhc] using DMA

sdhci-esdhc-imx 2198000.usdhc: could not get ultra high speed state, work on normal mode

mmc1: no vqmmc regulator found

mmc0: new high speed SDHC card at address 59b4

mmcblk0: mmc0:59b4 USD   3.74 GiB

mmcblk0: p1 p2

(stk) :ldisc_install = 1mmc1: SDHCI controller on 2198000.usdhc [2198000.usdhc] using DMA

[drm] Supports vblank timestamp caching Rev 1 (10.10.2010).

mmc1: card claims to support voltages below the defined range. These will be ignored.

[drm] No driver support for vblank timestamp query.

[drm] Initialized imx-drm 1.0.0 20120507 on minor 0

mmc1: queuing unknown CIS tuple 0x91 (3 bytes)

mmc1: new high speed SDIO card at address 0001

wm8962 1-001a: customer id 0 revision F

input: WM8962 Beep Generator as /devices/soc0/soc.1/2100000.aips-bus/21a8000.i2c/i2c-1/1-001a/input/input1

imx-wm8962 sound.24:  wm8962 <-> 202c000.ssi mapping ok

NET: Registered protocol family 26

TCP: cubic registered

NET: Registered protocol family 10

sit: IPv6 over IPv4 tunneling driver

NET: Registered protocol family 17

can: controller area network core (rev 20120528 abi 9)

NET: Registered protocol family 29

can: raw protocol (rev 20120528)

can: broadcast manager protocol (rev 20120528 t)

can: netlink gateway (rev 20130117) max_hops=1

Bluetooth: RFCOMM TTY layer initialized

Bluetooth: RFCOMM socket layer initialized

Bluetooth: RFCOMM ver 1.11

Bluetooth: BNEP (Ethernet Emulation) ver 1.3

Bluetooth: BNEP filters: protocol multicast

Bluetooth: BNEP socket layer initialized

Bluetooth: HIDP (Human Interface Emulation) ver 1.2

Bluetooth: HIDP socket layer initialized

8021q: 802.1Q VLAN Support v1.8

Key type dns_resolver registered

VFP support v0.3: implementor 41 architecture 3 part 30 variant 9 rev 4

imx6-cpufreq imx6-cpufreq.0: failed to get regulators

imx6-cpufreq: probe of imx6-cpufreq.0 failed with error -2

ov5642-supply-1v5: disabling

ov5642-supply-1v8: disabling

ov5642-supply-2v8: disabling

wm8962-supply-1v8: disabling

wm8962-supply-4v2: disabling

wm8962-supply-3v15: disabling

lcd-3v3: disabling

vddpu: disabling

regulator-dummy: disabling

imx mcc test is registered.

snvs_rtc 20cc034.snvs-rtc-lp: setting system clock to 1970-01-01 00:00:00 UTC (0)

ALSA device list:

  #0: wm8962-audio

(stk) :ldisc installation timeoutuse device tree data

(stk) :ldisc_install = 0

(stk) : timed out waiting for ldisc to be un-installed

kim: Bluetooth GPIO start(stk) :ldisc_install = 1

(stk) :ldisc installation timeoutuse device tree data

(stk) :ldisc_install = 0

kjournald starting.  Commit interval 5 seconds

EXT3-fs (mmcblk0p2): using internal journal

EXT3-fs (mmcblk0p2): recovery complete

EXT3-fs (mmcblk0p2): mounted filesystem with ordered data mode

VFS: Mounted root (ext3 filesystem) on device 179:2.

devtmpfs: mounted

Freeing unused kernel memory: 296K (807dc000 - 80826000)

INIT: version 2.88 booting(stk) : timed out waiting for ldisc to be un-installed

kim: Bluetooth GPIO start(stk) :ldisc_install = 1

Starting udev

udevd[121]: starting version 182

(stk) :ldisc installation timeoutuse device tree data

(stk) :ldisc_install = 0

bootlogd: cannot allocate pseudo tty: No such file or directory

Loading modules backported from Linux version R8.5-0-gcb51164

Backport generated by backports.git R8.4-0-g0d46f43

ov5640_read_reg:write reg error:reg=300a

camera ov5640 is not found

(stk) : timed out waiting for ldisc to be un-installed

kim: Bluetooth GPIO start(stk) :ldisc_install = 1

csi_v4l_open: Internal error, camera is not found!

cfg80211: Calling CRDA to update world regulatory domain

(stk) :ldisc installation timeoutuse device tree data

(stk) :ldisc_install = 0

cfg80211: World regulatory domain updated:

wlcore: ERROR could not get configuration binary ti-connectivity/wl18xx-conf.bin: -2

cfg80211:  DFS Master region: unset

cfg80211:   (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp), (dfs_cac_time)

wlcore: WARNING falling back to default config

cfg80211:   (2402000 KHz - 2472000 KHz @ 40000 KHz), (N/A, 2000 mBm), (N/A)

cfg80211:   (2457000 KHz - 2482000 KHz @ 40000 KHz), (N/A, 2000 mBm), (N/A)

cfg80211:   (2474000 KHz - 2494000 KHz @ 20000 KHz), (N/A, 2000 mBm), (N/A)

cfg80211:   (5170000 KHz - 5250000 KHz @ 160000 KHz), (N/A, 2000 mBm), (N/A)

cfg80211:   (5250000 KHz - 5330000 KHz @ 160000 KHz), (N/A, 2000 mBm), (0 s)

cfg80211:   (5490000 KHz - 5730000 KHz @ 160000 KHz), (N/A, 2000 mBm), (0 s)

cfg80211:   (5735000 KHz - 5835000 KHz @ 80000 KHz), (N/A, 2000 mBm), (N/A)

cfg80211:   (57240000 KHz - 63720000 KHz @ 2160000 KHz), (N/A, 0 mBm), (N/A)

wlcore: wl18xx HW: 183x or 180x, PG 2.2 (ROM 0x11)

wlcore: loaded

wlcore: driver version: R8.5

wlcore: compilation time: Mon Mar  2 05:40:54 2015

FAT-fs (mmcblk0p1): Volume was not properly unmounted. Some data may be corrupt. Please run fsck.

(stk) : timed out waiting for ldisc to be un-installed

kim: Bluetooth GPIO start(stk) :ldisc_install = 1ALSA: Restoring mixer settings...

Fri Feb 20 11:27:36 UTC 2015

INIT: Entering runlevel: 5Configuring network interfaces... ifconfig: SIOCGIFFLAGS: No such device

Starting Xserver

Starting system message bus: Unknown username "xuser" in message bus configuration file

Unknown username "avahi" in message bus configuration file

dbus.

(stk) :ldisc installation timeoutuse device tree data

(stk) :ldisc_install = 0

Starting Connection Manager

Starting Dropbear SSH server: dropbear.

(stk) : timed out waiting for ldisc to be un-installed

kim: Bluetooth GPIO start(stk) :ldisc_install = 1

Starting rpcbind daemon...done.

rpcbind: cannot get uid of 'rpc': Success

(stk) :ldisc installation timeoutuse device tree data

(stk) :ldisc_install = 0

Starting advanced power management daemon: No APM support in kernel

(failed.)

Starting syslogd/klogd: done

* Starting Avahi mDNS/DNS-SD Daemon: avahi-daemon

(stk) : timed out waiting for ldisc to be un-installed

Bluetooth: st_register failed -22

Timeout reached while wating for return value

Could not receive return value from daemon process.

   ...fail!

Starting Telephony daemon

Starting Linux NFC daemon

/etc/rc5.d/S64neard: line 26: /usr/lib/neard/neard: No such file or directory

Running local boot scripts (/etc/rc.local)Successfully initialized wpa_supplicant

Line 61: unknown global field 'p2p_go_ht40=1'.

Line 61: Invalid configuration line 'p2p_go_ht40=1'.

Line 63: unknown global field 'concurrent_sched_scan=1'.

Line 63: Invalid configuration line 'concurrent_sched_scan=1'.

Line 64: unknown global field 'p2p_disabled=1'.

Line 64: Invalid configuration line 'p2p_disabled=1'.

Failed to read or parse configuration '/etc/wpa_supplicant.conf'.

wlcore: PHY firmware version: Rev 8.2.0.0.224

wlcore: firmware booted (Rev 8.9.0.0.31)

IPv6: ADDRCONF(NETDEV_UP): wlan0: link is not ready

.

Poky (Yocto Project Reference Distro) 1.7 imx6slevk /dev/ttymxc0

imx6slevk login:

------------------------------------------------------------------------------------------------------------------------------------------------

Thanks,

Sivakumar

0 Kudos

3,519 Views
saurabh206
Senior Contributor III

Hi

I have used the IMXUART_HAVE_RTSCTS.

Saurabh

0 Kudos

3,519 Views
alfred_liu
NXP Employee
NXP Employee

Hi, Patel

please exchange RX and TX.

RM document may descripe these two pins incorrectly.

if so , I will push document team to correct this error.

0 Kudos

3,519 Views
saurabh206
Senior Contributor III

Hi,

Weisong

Thanks for reply.

I will try to change the RX and TX.

Can you describe the correct pin connection and configuration?

Thanks

Saurabh

0 Kudos

3,519 Views
alfred_liu
NXP Employee
NXP Employee

Hi, Patel

any test result from you?

0 Kudos

3,519 Views
saurabh206
Senior Contributor III

Hi,

Weisong

To test this we need to modified the hardware. Is there any alternative in software?

From following link

https://community.freescale.com/docs/DOC-97509

For the Uart IP, the CTS_B is always an output and RTS_B always an input. But the RTS_B & CTS_B IO will be swapped  when UART operates in different DTE or DCE mode. 

Is it possible that we change the RTS_B and CTS_B?

Thanks

Saurabh

0 Kudos

3,519 Views
alfred_liu
NXP Employee
NXP Employee


Hi, Patel

the issue is not related to RTS and CTS, these two signals are just control signals.

the issue is that MX6Q_PAD_KEY_ROW1 is actual UART5_TX can not be used as UART5_RX.

so you can measure the waveform on TX and RX, you can see the data on MX6Q_PAD_KEY_ROW1 when you transmmit data.

3,519 Views
saurabh206
Senior Contributor III

Hi,

Thanks for your suggestions.

UART TX, RX, RTS, CTS pin remains always high.

I have tried to send the data to /dev/ttymxc4 using echo "abcd" > /dev/ttymxc4.

0 Kudos

3,519 Views
saurabh206
Senior Contributor III

Hi,

Weisong

echo "abcd" > /dev/ttymxc4 gives output on BT_RX so I think MX6Q_PAD_KEY_COL1 is UART5 TX.

Thanks

Saurabh

0 Kudos

3,519 Views
alfred_liu
NXP Employee
NXP Employee

Hi, Patel

It's very difficult to explain this to you.

we have done test on our SDB board.

yes, you can configure MX6Q_PAD_KEY_COL1 as UART5 TX and ROW1 as UART5_RX.

but when you send data to device, I believe you will capture data on ROW1 whcih should be on COL1.

anyway I will check with SOC design team to get the explaination.

please wait for my response.

0 Kudos

3,519 Views
saurabh206
Senior Contributor III

Hi, Weisong

Is there any update?

0 Kudos

3,519 Views
alfred_liu
NXP Employee
NXP Employee

Hi, Patel

could you help to dump out the following registers:

UART1:

0x021EC090

0x020e0280

0x020e0284

0x020e0920

UART5:

0x021f4090

0x020e0200

0x020e0204

0x020e0940

that would be helpful for use to locate the issue.

0 Kudos

3,518 Views
saurabh206
Senior Contributor III

Hi

Weisong

I have fixed the UART issue.

My working setup is as follows

static iomux_v3_cfg_t mx6q_uart5_pads[] = {

    MX6Q_PAD_KEY_ROW1__UART5_RXD,

    MX6Q_PAD_KEY_COL1__UART5_TXD,

    MX6Q_PAD_KEY_COL4__UART5_RTS,

    MX6Q_PAD_KEY_ROW4__UART5_CTS,

};

And physically

BT RXD is connected to IMX6 TXD.

BT TXD is connected to IMX6 RXD.

BT RTS is connected to IMX6 RTS.

BT CTS is connected to IMX6 CTS.

Thanks

Saurabh.