rlev
Posts: 43
Joined: Sat Dec 15, 2018 2:20 pm

[SOLVED] CM3 Plus and WiFi/BT CYW43455

Wed Jul 10, 2019 3:34 am

I would like to add Wifi and Bluetooth 5 capabilities to a CM3 Plus. I am thinking about using the Cypress CYW43455 chipset .
Does anybody knows or has documentation about how to connect the SDIO (WiFi) and UART 4-wires (Bluetooth) interfaces between this module and the CM3 Plus CPU ?

Besides the hardware connections. Does a modification of the Raspian OS kernel overlay dts or something else wil be needed?

Any help is appreciated.

Thanks

rlev
Posts: 43
Joined: Sat Dec 15, 2018 2:20 pm

Re: CM3 Plus and WiFi/BT CYW43455

Sun Jul 14, 2019 8:01 pm

Anyone ?

PhilE
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 2572
Joined: Mon Sep 29, 2014 1:07 pm
Location: Cambridge

Re: CM3 Plus and WiFi/BT CYW43455

Sun Jul 14, 2019 8:49 pm

Code: Select all

dtoverlay=sdio,gpios_34_39
should be enough to enable WiFi. Configuring a UART to use pins 30-33 will need a custom overlay, but it should be fairly simple.

I'm not a hardware engineer, but you may need to be careful with the SDIO signals - 50MHz is quite fast; the overlay for the Balena Fin board drops the bus down to 35MHz for increased reliability.

techmasterjoe
Posts: 11
Joined: Thu Nov 02, 2017 2:40 pm

Re: CM3 Plus and WiFi/BT CYW43455

Wed Jul 17, 2019 4:40 am

Your best bet is dump the dt-blob and look at pi3+ it will give you clues.
I have done a lot with cm3.
I am a hardware engineer
And don't worry about the 50mhz sdio.. hdmi dsi & csi are much much faster and need impedance control.

rlev
Posts: 43
Joined: Sat Dec 15, 2018 2:20 pm

Re: CM3 Plus and WiFi/BT CYW43455

Wed Jul 31, 2019 2:24 am

Thank you PhilE and techmasterjoe for feedback.

After I added the next line to /boot/config.txt
dtoverlay=sdio,gpios_34_39,sdio_overclock=25

The mmc1 interface seems to be recognized.
The dmesg log shows :

mmc1: new high speed SDIO card at address 0001

but also shows :

brcmfmac: brcmf_chip_recognition: chip backplane type 15 is not supported

brcmfmac: brcmf_sdio_probe_attach: brcmf_chip_attach failed!

brcmfmac: brcmf_sdio_probe: brcmf_sdio_probe_attach failed

brcmfmac: brcmf_ops_sdio_probe: F2 error, probe failed -19...



The Wifi Device is not present after the system boots up.
What could be causing this behavior?
Any help fixing this its appreciated it.

rlev
Posts: 43
Joined: Sat Dec 15, 2018 2:20 pm

Re: CM3 Plus and WiFi/BT CYW43455

Wed Jul 31, 2019 11:53 pm

Can anyone help with the posted issue?

Thanks in advance.

rlev
Posts: 43
Joined: Sat Dec 15, 2018 2:20 pm

Re: CM3 Plus and WiFi/BT CYW43455

Wed Aug 07, 2019 10:44 am

Update :

I have managed to get a sd card recognized as a storage using the next line in config.txt and wiring the sd card breakout board to pins 22-27

dtoverlay=sdio, poll_once=off,bus_width=1,sdio_overclock=25

Note the use of "bus_width=1". Without this instruction the CM3 does not complete the boot up process and get stuck.

I would like to test a secondary sd card interface first on pins 22-27 or 34-39 in 4 bit mode and then try to interface with a CYW43455 wifi/ble SDIO module.

Any help is appreciated.

PhilE
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 2572
Joined: Mon Sep 29, 2014 1:07 pm
Location: Cambridge

Re: CM3 Plus and WiFi/BT CYW43455

Wed Aug 07, 2019 10:46 am

Please don't cross post.

rlev
Posts: 43
Joined: Sat Dec 15, 2018 2:20 pm

Re: CM3 Plus and WiFi/BT CYW43455

Wed Aug 07, 2019 10:51 am

Sorry PhilE my Bad.

PhilE
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 2572
Joined: Mon Sep 29, 2014 1:07 pm
Location: Cambridge

Re: CM3 Plus and WiFi/BT CYW43455

Wed Aug 07, 2019 11:05 am

The other post has been deleted - this is a better home.

Have you tried the 4-bit mode with sdio_overclock=25?

rlev
Posts: 43
Joined: Sat Dec 15, 2018 2:20 pm

Re: CM3 Plus and WiFi/BT CYW43455

Wed Aug 07, 2019 11:54 pm

I tried 4-bit mode:

dtoverlay=sdio, poll_once=off,sdio_overclock=25

The CM3 is not able to boot and gets stuck.

The log shows
mmc1: new high speed SDHC card at address aaaa
....
....
mmc1: Timeout waiting for hardware interrupt
random: crng init done

PhilE
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 2572
Joined: Mon Sep 29, 2014 1:07 pm
Location: Cambridge

Re: CM3 Plus and WiFi/BT CYW43455

Thu Aug 08, 2019 8:13 am

I think you should leave poll_once on for SDIO (the device is non-removable), but that probably wouldn't explain the error. It's most likely that one of the additional data lines is either broken or out-of-spec - do you have a scope or logic analyser to look at the signals?

[ If you hook a logic analyser up to SDCLK, SDCMD and SDDAT0-3, and dump the output to a CSV file, I can decode it. ]

rlev
Posts: 43
Joined: Sat Dec 15, 2018 2:20 pm

Re: CM3 Plus and WiFi/BT CYW43455

Thu Aug 08, 2019 11:29 am

After I connect a Digital Logic Analyzer the CM3 get stuck before reach the mmc driver loading.
I am able only to capture the SCLK signal.
clk.png
clk.png (2.55 KiB) Viewed 5861 times
I am using a direct connection to a sd card without pull up resistor. Maybe an impedance problem?

Thanks

PhilE
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 2572
Joined: Mon Sep 29, 2014 1:07 pm
Location: Cambridge

Re: CM3 Plus and WiFi/BT CYW43455

Thu Aug 08, 2019 11:40 am

Looking at the schematics, we put a 33 Ohm resistor in the SD_CLK line. The other signals are wired direct with no pull-ups, etc.

rlev
Posts: 43
Joined: Sat Dec 15, 2018 2:20 pm

Re: CM3 Plus and WiFi/BT CYW43455

Fri Aug 09, 2019 12:50 am

@PhilE thanks for you suggestions.

Using pins 22-27 and next line in config.txt
dtoverlay=sdio,poll_once=on,sdio_overclock=25

and a 1K pull up resistor on SD_CLK as you suggested seems like the 4-bit SDIO mode works.

I have connected the WiFi/BT CYW43455 module and dmesg shows :

Code: Select all

mmc1: new high speed SDIO card at address 0001
...
...
brcmfmac: F1 signature read @0x18000000=0x15264345
brcmfmac: brcmf_fw_alloc_request: using brcm/brcmfmac43455-sdio for chip BCM4345/6
....
....
mmc1 : Timeout waiting for hardware interrupt.
Looks like the wifi module was recognized and the right driver was loaded but
after I login into the CM3
ifconfig does not show a wlan0 interface?

Any hints?

Thanks

This is the full dmesg log :

Code: Select all

[    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] Linux version 4.19.57-v7+ ([email protected]) (gcc version 4.9.3 (crosstool-NG crosstool-ng-1.22.0-88-g8460611)) #1244 SMP Thu Jul 4 18:45:25 BST 2019
[    0.000000] CPU: ARMv7 Processor [410fd034] revision 4 (ARMv7), cr=10c5383d
[    0.000000] CPU: div instructions available: patching division code
[    0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
[    0.000000] OF: fdt: Machine model: Raspberry Pi Compute Module 3 Plus Rev 1.0
[    0.000000] Memory policy: Data cache writealloc
[    0.000000] cma: Reserved 8 MiB at 0x3ac00000
[    0.000000] On node 0 totalpages: 242688
[    0.000000]   Normal zone: 2133 pages used for memmap
[    0.000000]   Normal zone: 0 pages reserved
[    0.000000]   Normal zone: 242688 pages, LIFO batch:63
[    0.000000] random: get_random_bytes called from start_kernel+0xac/0x4b4 with crng_init=0
[    0.000000] percpu: Embedded 17 pages/cpu s39488 r8192 d21952 u69632
[    0.000000] pcpu-alloc: s39488 r8192 d21952 u69632 alloc=17*4096
[    0.000000] pcpu-alloc: [0] 0 [0] 1 [0] 2 [0] 3 
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 240555
[    0.000000] Kernel command line: coherent_pool=1M bcm2708_fb.fbwidth=1184 bcm2708_fb.fbheight=624 bcm2708_fb.fbswap=1 smsc95xx.macaddr=B8:27:EB:67:C1:46 vc_mem.mem_base=0x3ec00000 vc_mem.mem_size=0x40000000  dwc_otg.lpm_enable=0 console=ttyAMA0,115200 console=tty1 root=PARTUUID=2b0cc31c-02 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait
[    0.000000] Dentry cache hash table entries: 131072 (order: 7, 524288 bytes)
[    0.000000] Inode-cache hash table entries: 65536 (order: 6, 262144 bytes)
[    0.000000] Memory: 939092K/970752K available (8192K kernel code, 629K rwdata, 2176K rodata, 1024K init, 821K bss, 23468K reserved, 8192K cma-reserved)
[    0.000000] Virtual kernel memory layout:
                   vector  : 0xffff0000 - 0xffff1000   (   4 kB)
                   fixmap  : 0xffc00000 - 0xfff00000   (3072 kB)
                   vmalloc : 0xbb800000 - 0xff800000   (1088 MB)
                   lowmem  : 0x80000000 - 0xbb400000   ( 948 MB)
                   modules : 0x7f000000 - 0x80000000   (  16 MB)
                     .text : 0x(ptrval) - 0x(ptrval)   (9184 kB)
                     .init : 0x(ptrval) - 0x(ptrval)   (1024 kB)
                     .data : 0x(ptrval) - 0x(ptrval)   ( 630 kB)
                      .bss : 0x(ptrval) - 0x(ptrval)   ( 822 kB)
[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=4, Nodes=1
[    0.000000] ftrace: allocating 26351 entries in 78 pages
[    0.000000] rcu: Hierarchical RCU implementation.
[    0.000000] NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16
[    0.000000] arch_timer: cp15 timer(s) running at 19.20MHz (phys).
[    0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x46d987e47, max_idle_ns: 440795202767 ns
[    0.000007] sched_clock: 56 bits at 19MHz, resolution 52ns, wraps every 4398046511078ns
[    0.000023] Switching to timer-based delay loop, resolution 52ns
[    0.000279] Console: colour dummy device 80x30
[    0.000904] console [tty1] enabled
[    0.000960] Calibrating delay loop (skipped), value calculated using timer frequency.. 38.40 BogoMIPS (lpj=192000)
[    0.001005] pid_max: default: 32768 minimum: 301
[    0.001361] Mount-cache hash table entries: 2048 (order: 1, 8192 bytes)
[    0.001397] Mountpoint-cache hash table entries: 2048 (order: 1, 8192 bytes)
[    0.002333] CPU: Testing write buffer coherency: ok
[    0.002810] CPU0: thread -1, cpu 0, socket 0, mpidr 80000000
[    0.003486] Setting up static identity map for 0x100000 - 0x10003c
[    0.003656] rcu: Hierarchical SRCU implementation.
[    0.004479] smp: Bringing up secondary CPUs ...
[    0.005341] CPU1: thread -1, cpu 1, socket 0, mpidr 80000001
[    0.006271] CPU2: thread -1, cpu 2, socket 0, mpidr 80000002
[    0.007136] CPU3: thread -1, cpu 3, socket 0, mpidr 80000003
[    0.007257] smp: Brought up 1 node, 4 CPUs
[    0.007339] SMP: Total of 4 processors activated (153.60 BogoMIPS).
[    0.007363] CPU: All CPU(s) started in HYP mode.
[    0.007383] CPU: Virtualization extensions available.
[    0.008371] devtmpfs: initialized
[    0.021025] VFP support v0.3: implementor 41 architecture 3 part 40 variant 3 rev 4
[    0.021304] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[    0.021352] futex hash table entries: 1024 (order: 4, 65536 bytes)
[    0.021967] pinctrl core: initialized pinctrl subsystem
[    0.022847] NET: Registered protocol family 16
[    0.025795] DMA: preallocated 1024 KiB pool for atomic coherent allocations
[    0.031470] hw-breakpoint: found 5 (+1 reserved) breakpoint and 4 watchpoint registers.
[    0.031508] hw-breakpoint: maximum watchpoint size is 8 bytes.
[    0.031729] Serial: AMBA PL011 UART driver
[    0.034030] bcm2835-mbox 3f00b880.mailbox: mailbox enabled
[    0.069121] bcm2835-dma 3f007000.dma: DMA legacy API manager at (ptrval), dmachans=0x1
[    0.070846] SCSI subsystem initialized
[    0.071091] usbcore: registered new interface driver usbfs
[    0.071167] usbcore: registered new interface driver hub
[    0.071288] usbcore: registered new device driver usb
[    0.090120] raspberrypi-firmware soc:firmware: Attached to firmware from 2019-07-09 14:40, variant start
[    0.100396] raspberrypi-firmware soc:firmware: Firmware hash is 6c3fe3f096a93de3b34252ad98cdccadeb534be2
[    0.111708] clocksource: Switched to clocksource arch_sys_counter
[    0.200466] VFS: Disk quotas dquot_6.6.0
[    0.200579] VFS: Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)
[    0.200759] FS-Cache: Loaded
[    0.200981] CacheFiles: Loaded
[    0.211026] NET: Registered protocol family 2
[    0.211852] tcp_listen_portaddr_hash hash table entries: 512 (order: 0, 6144 bytes)
[    0.211917] TCP established hash table entries: 8192 (order: 3, 32768 bytes)
[    0.212047] TCP bind hash table entries: 8192 (order: 4, 65536 bytes)
[    0.212251] TCP: Hash tables configured (established 8192 bind 8192)
[    0.212405] UDP hash table entries: 512 (order: 2, 16384 bytes)
[    0.212471] UDP-Lite hash table entries: 512 (order: 2, 16384 bytes)
[    0.212801] NET: Registered protocol family 1
[    0.213376] RPC: Registered named UNIX socket transport module.
[    0.213403] RPC: Registered udp transport module.
[    0.213425] RPC: Registered tcp transport module.
[    0.213447] RPC: Registered tcp NFSv4.1 backchannel transport module.
[    0.215147] hw perfevents: enabled with armv7_cortex_a7 PMU driver, 7 counters available
[    0.218147] Initialise system trusted keyrings
[    0.218360] workingset: timestamp_bits=14 max_order=18 bucket_order=4
[    0.228181] FS-Cache: Netfs 'nfs' registered for caching
[    0.228782] NFS: Registering the id_resolver key type
[    0.228830] Key type id_resolver registered
[    0.228852] Key type id_legacy registered
[    0.228884] nfs4filelayout_init: NFSv4 File Layout Driver Registering...
[    0.231172] Key type asymmetric registered
[    0.231202] Asymmetric key parser 'x509' registered
[    0.231267] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 250)
[    0.231450] io scheduler noop registered
[    0.231474] io scheduler deadline registered (default)
[    0.231673] io scheduler cfq registered
[    0.231757] io scheduler mq-deadline registered (default)
[    0.231782] io scheduler kyber registered
[    0.234968] bcm2708_fb soc:fb: FB found 1 display(s)
[    0.256508] Console: switching to colour frame buffer device 148x39
[    0.268101] bcm2708_fb soc:fb: Registered framebuffer for display 0, size 1184x624
[    0.270435] bcm2835-rng 3f104000.rng: hwrng registered
[    0.270895] vc-mem: phys_addr:0x00000000 mem_base=0x3ec00000 mem_size:0x40000000(1024 MiB)
[    0.271633] vc-sm: Videocore shared memory driver
[    0.276139] gpiomem-bcm2835 3f200000.gpiomem: Initialised: Registers at 0x3f200000
[    0.291077] brd: module loaded
[    0.305355] loop: module loaded
[    0.310041] Loading iSCSI transport class v2.0-870.
[    0.314784] libphy: Fixed MDIO Bus: probed
[    0.318889] usbcore: registered new interface driver lan78xx
[    0.323040] usbcore: registered new interface driver smsc95xx
[    0.327060] dwc_otg: version 3.00a 10-AUG-2012 (platform bus)
[    0.359005] dwc_otg 3f980000.usb: base=(ptrval)
[    0.563332] Core Release: 2.80a
[    0.567335] Setting default values for core params
[    0.571323] Finished setting default values for core params
[    0.775647] Using Buffer DMA mode
[    0.779563] Periodic Transfer Interrupt Enhancement - disabled
[    0.783536] Multiprocessor Interrupt Enhancement - disabled
[    0.787517] OTG VER PARAM: 0, OTG VER FLAG: 0
[    0.791488] Dedicated Tx FIFOs mode
[    0.795916] WARN::dwc_otg_hcd_init:1045: FIQ DMA bounce buffers: virt = bad04000 dma = 0xfad04000 len=9024
[    0.800124] FIQ FSM acceleration enabled for :
               Non-periodic Split Transactions
               Periodic Split Transactions
               High-Speed Isochronous Endpoints
               Interrupt/Control Split Transaction hack enabled
[    0.820308] dwc_otg: Microframe scheduler enabled
[    0.820367] WARN::hcd_init_fiq:457: FIQ on core 1
[    0.824411] WARN::hcd_init_fiq:458: FIQ ASM at 80650d3c length 36
[    0.828478] WARN::hcd_init_fiq:497: MPHI regs_base at bb810000
[    0.832521] dwc_otg 3f980000.usb: DWC OTG Controller
[    0.836627] dwc_otg 3f980000.usb: new USB bus registered, assigned bus number 1
[    0.840799] dwc_otg 3f980000.usb: irq 56, io mem 0x00000000
[    0.844939] Init: Port Power? op_state=1
[    0.848919] Init: Power Port (0)
[    0.853065] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 4.19
[    0.857087] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    0.861034] usb usb1: Product: DWC OTG Controller
[    0.864891] usb usb1: Manufacturer: Linux 4.19.57-v7+ dwc_otg_hcd
[    0.868727] usb usb1: SerialNumber: 3f980000.usb
[    0.873211] hub 1-0:1.0: USB hub found
[    0.877071] hub 1-0:1.0: 1 port detected
[    0.881392] dwc_otg: FIQ enabled
[    0.881398] dwc_otg: NAK holdoff enabled
[    0.881404] dwc_otg: FIQ split-transaction FSM enabled
[    0.881415] Module dwc_common_port init
[    0.881673] usbcore: registered new interface driver usb-storage
[    0.885707] mousedev: PS/2 mouse device common for all mice
[    0.890486] bcm2835-wdt bcm2835-wdt: Broadcom BCM2835 watchdog timer
[    0.894693] bcm2835-cpufreq: min=600000 max=1200000
[    0.899055] sdhci: Secure Digital Host Controller Interface driver
[    0.903067] sdhci: Copyright(c) Pierre Ossman
[    0.907386] mmc-bcm2835 3f300000.mmc: could not get clk, deferring probe
[    0.911841] sdhost-bcm2835 3f202000.mmc: could not get clk, deferring probe
[    0.916031] sdhci-pltfm: SDHCI platform and OF driver helper
[    0.920581] ledtrig-cpu: registered to indicate activity on CPUs
[    0.924768] hidraw: raw HID events driver (C) Jiri Kosina
[    0.929018] usbcore: registered new interface driver usbhid
[    0.933125] usbhid: USB HID core driver
[    0.937886] vchiq: vchiq_init_state: slot_zero = (ptrval), is_master = 0
[    0.943447] [vc_sm_connected_init]: start
[    0.952581] [vc_sm_connected_init]: end - returning 0
[    0.957682] Initializing XFRM netlink socket
[    0.961676] NET: Registered protocol family 17
[    0.965770] Key type dns_resolver registered
[    0.970158] Registering SWP/SWPB emulation handler
[    0.974793] registered taskstats version 1
[    0.978759] Loading compiled-in X.509 certificates
[    0.989971] uart-pl011 3f201000.serial: cts_event_workaround enabled
[    0.994178] 3f201000.serial: ttyAMA0 at MMIO 0x3f201000 (irq = 81, base_baud = 0) is a PL011 rev2
[    1.992031] console [ttyAMA0] enabled
[    2.001795] mmc-bcm2835 3f300000.mmc: mmc_debug:0 mmc_debug2:0
[    2.011878] mmc-bcm2835 3f300000.mmc: DMA channel allocated
[    2.021745] Indeed it is in host mode hprt0 = 00021501
[    2.117216] sdhost: log_buf @ (ptrval) (fad07000)
[    2.119550] random: fast init done
[    2.167568] mmc1: queuing unknown CIS tuple 0x80 (2 bytes)
[    2.178710] mmc1: queuing unknown CIS tuple 0x80 (3 bytes)
[    2.188222] mmc0: sdhost-bcm2835 loaded - DMA enabled (>1)
[    2.199118] of_cfs_init
[    2.205687] of_cfs_init: OK
[    2.213071] Waiting for root device PARTUUID=2b0cc31c-02...
[    2.218904] mmc1: queuing unknown CIS tuple 0x80 (3 bytes)
[    2.232067] usb 1-1: new high-speed USB device number 2 using dwc_otg
[    2.242857] Indeed it is in host mode hprt0 = 00001101
[    2.314261] mmc1: queuing unknown CIS tuple 0x80 (7 bytes)
[    2.326246] mmc1: queuing unknown CIS tuple 0x80 (6 bytes)
[    2.375543] mmc0: new high speed MMC card at address 0001
[    2.386124] mmcblk0: mmc0:0001 BJTD4R 29.1 GiB
[    2.395473] mmcblk0boot0: mmc0:0001 BJTD4R partition 1 4.00 MiB
[    2.406117] mmcblk0boot1: mmc0:0001 BJTD4R partition 2 4.00 MiB
[    2.416117] mmcblk0rpmb: mmc0:0001 BJTD4R partition 3 4.00 MiB, chardev (246:0)
[    2.429067]  mmcblk0: p1 p2
[    2.458282] mmc1: new high speed SDIO card at address 0001
[    2.473521] EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Opts: (null)
[    2.485615] VFS: Mounted root (ext4 filesystem) readonly on device 179:2.
[    2.493121] usb 1-1: New USB device found, idVendor=05e3, idProduct=0608, bcdDevice=85.37
[    2.503719] devtmpfs: mounted
[    2.508520] usb 1-1: New USB device strings: Mfr=0, Product=1, SerialNumber=0
[    2.526720] usb 1-1: Product: USB2.0 Hub
[    2.535814] hub 1-1:1.0: USB hub found
[    2.536586] Freeing unused kernel memory: 1024K
[    2.543988] hub 1-1:1.0: 4 ports detected
[    2.560510] Run /sbin/init as init process
[    2.881762] usb 1-1.1: new low-speed USB device number 3 using dwc_otg
[    3.052254] usb 1-1.1: New USB device found, idVendor=03f0, idProduct=0024, bcdDevice= 3.00
[    3.064737] usb 1-1.1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[    3.076162] usb 1-1.1: Product: HP Basic USB Keyboard
[    3.085238] usb 1-1.1: Manufacturer: CHICONY
[    3.093694] systemd[1]: System time before build time, advancing clock.
[    3.110215] input: CHICONY HP Basic USB Keyboard as /devices/platform/soc/3f980000.usb/usb1/1-1/1-1.1/1-1.1:1.0/0003:03F0:0024.0001/input/input0
[    3.192383] hid-generic 0003:03F0:0024.0001: input,hidraw0: USB HID v1.10 Keyboard [CHICONY HP Basic USB Keyboard] on usb-3f980000.usb-1.1/input0
[    3.225813] NET: Registered protocol family 10
[    3.236248] Segment Routing with IPv6
[    3.283978] systemd[1]: systemd 241 running in system mode. (+PAM +AUDIT +SELINUX +IMA +APPARMOR +SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +XZ +LZ4 +SECCOMP +BLKID +ELFUTILS +KMOD -IDN2 +IDN -PCRE2 default-hierarchy=hybrid)
[    3.301755] usb 1-1.4: new high-speed USB device number 4 using dwc_otg
[    3.316676] systemd[1]: Detected architecture arm.
[    3.363417] systemd[1]: Set hostname to <raspberrypi>.
[    3.385028] systemd[1]: Failed to bump fs.file-max, ignoring: Invalid argument
[    3.454064] usb 1-1.4: New USB device found, idVendor=154b, idProduct=007a, bcdDevice=11.00
[    3.468602] usb 1-1.4: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[    3.482048] usb 1-1.4: Product: USB 2.0 FD
[    3.491935] usb 1-1.4: Manufacturer: PNY Technologies
[    3.502622] usb 1-1.4: SerialNumber: AEB20H16YE07000277
[    3.532785] usb-storage 1-1.4:1.0: USB Mass Storage device detected
[    3.554528] scsi host0: usb-storage 1-1.4:1.0
[    3.591020] uart-pl011 3f201000.serial: no DMA platform data
[    3.736502] systemd[1]: File /lib/systemd/system/systemd-journald.service:12 configures an IP firewall (IPAddressDeny=any), but the local system does not support BPF/cgroup based firewalling.
[    3.764429] systemd[1]: Proceeding WITHOUT firewalling in effect! (This warning is only shown for the first loaded unit using IP firewalling.)
[    4.208353] random: systemd: uninitialized urandom read (16 bytes read)
[    4.257168] systemd[1]: Condition check resulted in Journal Audit Socket being skipped.
[    4.271330] random: systemd: uninitialized urandom read (16 bytes read)
[    4.289208] systemd[1]: Created slice system-serial\x2dgetty.slice.
[    4.308758] random: systemd: uninitialized urandom read (16 bytes read)
[    4.322121] systemd[1]: Listening on udev Control Socket.
[    4.348019] systemd[1]: Listening on Syslog Socket.
[    4.826962] scsi 0:0:0:0: Direct-Access     PNY      USB 2.0 FD       1100 PQ: 0 ANSI: 4
[    4.828122] sd 0:0:0:0: [sda] 31405824 512-byte logical blocks: (16.1 GB/15.0 GiB)
[    4.828665] sd 0:0:0:0: [sda] Write Protect is off
[    4.828678] sd 0:0:0:0: [sda] Mode Sense: 43 00 00 00
[    4.829214] sd 0:0:0:0: [sda] No Caching mode page found
[    4.829225] sd 0:0:0:0: [sda] Assuming drive cache: write through
[    4.843290]  sda: sda1
[    4.846998] sd 0:0:0:0: [sda] Attached SCSI removable disk
[    5.313519] EXT4-fs (mmcblk0p2): re-mounted. Opts: (null)
[    5.470653] systemd-journald[122]: Received request to flush runtime journal from PID 1
[    5.907219] sd 0:0:0:0: Attached scsi generic sg0 type 0
[    6.292039] vc_sm_cma: module is from the staging directory, the quality is unknown, you have been warned.
[    6.294639] bcm2835_vc_sm_cma_probe: Videocore shared memory driver
[    6.294655] [vc_sm_connected_init]: start
[    6.297979] media: Linux media interface: v0.10
[    6.301371] [vc_sm_connected_init]: installed successfully
[    6.343503] videodev: Linux video capture interface: v2.00
[    6.401944] bcm2835_mmal_vchiq: module is from the staging directory, the quality is unknown, you have been warned.
[    6.401949] bcm2835_mmal_vchiq: module is from the staging directory, the quality is unknown, you have been warned.
[    6.419489] bcm2835_v4l2: module is from the staging directory, the quality is unknown, you have been warned.
[    6.429738] bcm2835_codec: module is from the staging directory, the quality is unknown, you have been warned.
[    6.437586] bcm2835-codec bcm2835-codec: Device registered as /dev/video10
[    6.437603] bcm2835-codec bcm2835-codec: Loaded V4L2 decode
[    6.446549] bcm2835-codec bcm2835-codec: Device registered as /dev/video11
[    6.446566] bcm2835-codec bcm2835-codec: Loaded V4L2 encode
[    6.455139] bcm2835-codec bcm2835-codec: Device registered as /dev/video12
[    6.455162] bcm2835-codec bcm2835-codec: Loaded V4L2 isp
[    6.502056] snd_bcm2835: module is from the staging directory, the quality is unknown, you have been warned.
[    6.528183] bcm2835_audio soc:audio: card created with 8 channels
[    6.630566] cfg80211: Loading compiled-in X.509 certificates for regulatory database
[    6.741673] cfg80211: Loaded X.509 cert 'sforshee: 00b28ddf47aef9cea7'
[    6.745828] usbcore: registered new interface driver uas
[    6.822539] brcmfmac: F1 signature read @0x18000000=0x15264345
[    6.835433] brcmfmac: brcmf_fw_alloc_request: using brcm/brcmfmac43455-sdio for chip BCM4345/6
[    6.835977] usbcore: registered new interface driver brcmfmac
[    8.597642] random: crng init done
[    8.597665] random: 7 urandom warning(s) missed due to ratelimiting
[    8.922441] 8021q: 802.1Q VLAN Support v1.8
[    9.007938] Adding 102396k swap on /var/swap.  Priority:-2 extents:1 across:102396k SSFS
[   17.111715] mmc1: Timeout waiting for hardware interrupt.

PhilE
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 2572
Joined: Mon Sep 29, 2014 1:07 pm
Location: Cambridge

Re: CM3 Plus and WiFi/BT CYW43455

Fri Aug 09, 2019 7:54 am

The 33 Ohm resistor is not pull-up, it's inline, i.e. it is connected between the CLK line on the card and the GPIO pin.

rlev
Posts: 43
Joined: Sat Dec 15, 2018 2:20 pm

Re: CM3 Plus and WiFi/BT CYW43455

Sat Aug 10, 2019 10:56 pm

PhilE,

I have put a 33 Ohm resistor in SD_CLK as you have recommended.
The WiFI/Bluetooth module seems to be initially detected but the dmesg show at the end :(

6.532410] brcmfmac: F1 signature read @0x18000000=0x15264345
[ 6.541010] brcmfmac: brcmf_fw_alloc_request: using brcm/brcmfmac43455-sdio for chip BCM4345/6
[ 6.541448] usbcore: registered new interface driver brcmfmac
[ 6.751548] brcmfmac: brcmf_sdiod_ramrw: membytes transfer failed
[ 6.751572] brcmfmac: brcmf_sdio_verifymemory: error -110 on reading 2048 membytes at 0x00200800
[ 6.751992] brcmfmac: brcmf_sdio_download_firmware: dongle image file download failed
[ 8.248855] random: crng init done
[ 8.248873] random: 7 urandom warning(s) missed due to ratelimiting
[ 8.266795] 8021q: 802.1Q VLAN Support v1.8
[ 8.463284] Adding 102396k swap on /var/swap. Priority:-2 extents:1 across:102396k SSFS
[ 17.111701] mmc1: Timeout waiting for hardware interrupt.
[ 38.231703] mmc1: Timeout waiting for hardware interrupt.


This is the full dmesg log :

Code: Select all

[    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] Linux version 4.19.57-v7+ ([email protected]) (gcc version 4.9.3 (crosstool-NG crosstool-ng-1.22.0-88-g8460611)) #1244 SMP Thu Jul 4 18:45:25 BST 2019
[    0.000000] CPU: ARMv7 Processor [410fd034] revision 4 (ARMv7), cr=10c5383d
[    0.000000] CPU: div instructions available: patching division code
[    0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
[    0.000000] OF: fdt: Machine model: Raspberry Pi Compute Module 3 Plus Rev 1.0
[    0.000000] Memory policy: Data cache writealloc
[    0.000000] cma: Reserved 8 MiB at 0x3ac00000
[    0.000000] On node 0 totalpages: 242688
[    0.000000]   Normal zone: 2133 pages used for memmap
[    0.000000]   Normal zone: 0 pages reserved
[    0.000000]   Normal zone: 242688 pages, LIFO batch:63
[    0.000000] random: get_random_bytes called from start_kernel+0xac/0x4b4 with crng_init=0
[    0.000000] percpu: Embedded 17 pages/cpu s39488 r8192 d21952 u69632
[    0.000000] pcpu-alloc: s39488 r8192 d21952 u69632 alloc=17*4096
[    0.000000] pcpu-alloc: [0] 0 [0] 1 [0] 2 [0] 3 
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 240555
[    0.000000] Kernel command line: coherent_pool=1M bcm2708_fb.fbwidth=1184 bcm2708_fb.fbheight=624 bcm2708_fb.fbswap=1 smsc95xx.macaddr=B8:27:EB:67:C1:46 vc_mem.mem_base=0x3ec00000 vc_mem.mem_size=0x40000000  dwc_otg.lpm_enable=0 console=ttyAMA0,115200 console=tty1 root=PARTUUID=2b0cc31c-02 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait
[    0.000000] Dentry cache hash table entries: 131072 (order: 7, 524288 bytes)
[    0.000000] Inode-cache hash table entries: 65536 (order: 6, 262144 bytes)
[    0.000000] Memory: 939092K/970752K available (8192K kernel code, 629K rwdata, 2176K rodata, 1024K init, 821K bss, 23468K reserved, 8192K cma-reserved)
[    0.000000] Virtual kernel memory layout:
                   vector  : 0xffff0000 - 0xffff1000   (   4 kB)
                   fixmap  : 0xffc00000 - 0xfff00000   (3072 kB)
                   vmalloc : 0xbb800000 - 0xff800000   (1088 MB)
                   lowmem  : 0x80000000 - 0xbb400000   ( 948 MB)
                   modules : 0x7f000000 - 0x80000000   (  16 MB)
                     .text : 0x(ptrval) - 0x(ptrval)   (9184 kB)
                     .init : 0x(ptrval) - 0x(ptrval)   (1024 kB)
                     .data : 0x(ptrval) - 0x(ptrval)   ( 630 kB)
                      .bss : 0x(ptrval) - 0x(ptrval)   ( 822 kB)
[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=4, Nodes=1
[    0.000000] ftrace: allocating 26351 entries in 78 pages
[    0.000000] rcu: Hierarchical RCU implementation.
[    0.000000] NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16
[    0.000000] arch_timer: cp15 timer(s) running at 19.20MHz (phys).
[    0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x46d987e47, max_idle_ns: 440795202767 ns
[    0.000007] sched_clock: 56 bits at 19MHz, resolution 52ns, wraps every 4398046511078ns
[    0.000023] Switching to timer-based delay loop, resolution 52ns
[    0.000282] Console: colour dummy device 80x30
[    0.000907] console [tty1] enabled
[    0.000963] Calibrating delay loop (skipped), value calculated using timer frequency.. 38.40 BogoMIPS (lpj=192000)
[    0.001008] pid_max: default: 32768 minimum: 301
[    0.001363] Mount-cache hash table entries: 2048 (order: 1, 8192 bytes)
[    0.001398] Mountpoint-cache hash table entries: 2048 (order: 1, 8192 bytes)
[    0.002332] CPU: Testing write buffer coherency: ok
[    0.002810] CPU0: thread -1, cpu 0, socket 0, mpidr 80000000
[    0.003488] Setting up static identity map for 0x100000 - 0x10003c
[    0.003657] rcu: Hierarchical SRCU implementation.
[    0.004478] smp: Bringing up secondary CPUs ...
[    0.005338] CPU1: thread -1, cpu 1, socket 0, mpidr 80000001
[    0.006270] CPU2: thread -1, cpu 2, socket 0, mpidr 80000002
[    0.007133] CPU3: thread -1, cpu 3, socket 0, mpidr 80000003
[    0.007254] smp: Brought up 1 node, 4 CPUs
[    0.007336] SMP: Total of 4 processors activated (153.60 BogoMIPS).
[    0.007360] CPU: All CPU(s) started in HYP mode.
[    0.007380] CPU: Virtualization extensions available.
[    0.008369] devtmpfs: initialized
[    0.021003] VFP support v0.3: implementor 41 architecture 3 part 40 variant 3 rev 4
[    0.021281] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[    0.021329] futex hash table entries: 1024 (order: 4, 65536 bytes)
[    0.021945] pinctrl core: initialized pinctrl subsystem
[    0.022820] NET: Registered protocol family 16
[    0.025769] DMA: preallocated 1024 KiB pool for atomic coherent allocations
[    0.031446] hw-breakpoint: found 5 (+1 reserved) breakpoint and 4 watchpoint registers.
[    0.031483] hw-breakpoint: maximum watchpoint size is 8 bytes.
[    0.031700] Serial: AMBA PL011 UART driver
[    0.033999] bcm2835-mbox 3f00b880.mailbox: mailbox enabled
[    0.069210] bcm2835-dma 3f007000.dma: DMA legacy API manager at (ptrval), dmachans=0x1
[    0.070941] SCSI subsystem initialized
[    0.071186] usbcore: registered new interface driver usbfs
[    0.071262] usbcore: registered new interface driver hub
[    0.071384] usbcore: registered new device driver usb
[    0.090124] raspberrypi-firmware soc:firmware: Attached to firmware from 2019-07-09 14:40, variant start
[    0.100398] raspberrypi-firmware soc:firmware: Firmware hash is 6c3fe3f096a93de3b34252ad98cdccadeb534be2
[    0.111699] clocksource: Switched to clocksource arch_sys_counter
[    0.200412] VFS: Disk quotas dquot_6.6.0
[    0.200523] VFS: Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)
[    0.200702] FS-Cache: Loaded
[    0.200925] CacheFiles: Loaded
[    0.211008] NET: Registered protocol family 2
[    0.211875] tcp_listen_portaddr_hash hash table entries: 512 (order: 0, 6144 bytes)
[    0.211940] TCP established hash table entries: 8192 (order: 3, 32768 bytes)
[    0.212072] TCP bind hash table entries: 8192 (order: 4, 65536 bytes)
[    0.212276] TCP: Hash tables configured (established 8192 bind 8192)
[    0.212437] UDP hash table entries: 512 (order: 2, 16384 bytes)
[    0.212504] UDP-Lite hash table entries: 512 (order: 2, 16384 bytes)
[    0.212835] NET: Registered protocol family 1
[    0.213406] RPC: Registered named UNIX socket transport module.
[    0.213434] RPC: Registered udp transport module.
[    0.213455] RPC: Registered tcp transport module.
[    0.213477] RPC: Registered tcp NFSv4.1 backchannel transport module.
[    0.215181] hw perfevents: enabled with armv7_cortex_a7 PMU driver, 7 counters available
[    0.218185] Initialise system trusted keyrings
[    0.218397] workingset: timestamp_bits=14 max_order=18 bucket_order=4
[    0.228209] FS-Cache: Netfs 'nfs' registered for caching
[    0.228807] NFS: Registering the id_resolver key type
[    0.228852] Key type id_resolver registered
[    0.228874] Key type id_legacy registered
[    0.228905] nfs4filelayout_init: NFSv4 File Layout Driver Registering...
[    0.231185] Key type asymmetric registered
[    0.231214] Asymmetric key parser 'x509' registered
[    0.231279] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 250)
[    0.231462] io scheduler noop registered
[    0.231486] io scheduler deadline registered (default)
[    0.231678] io scheduler cfq registered
[    0.231762] io scheduler mq-deadline registered (default)
[    0.231786] io scheduler kyber registered
[    0.234966] bcm2708_fb soc:fb: FB found 1 display(s)
[    0.256413] Console: switching to colour frame buffer device 148x39
[    0.268001] bcm2708_fb soc:fb: Registered framebuffer for display 0, size 1184x624
[    0.270343] bcm2835-rng 3f104000.rng: hwrng registered
[    0.270800] vc-mem: phys_addr:0x00000000 mem_base=0x3ec00000 mem_size:0x40000000(1024 MiB)
[    0.271530] vc-sm: Videocore shared memory driver
[    0.276023] gpiomem-bcm2835 3f200000.gpiomem: Initialised: Registers at 0x3f200000
[    0.291000] brd: module loaded
[    0.305330] loop: module loaded
[    0.309978] Loading iSCSI transport class v2.0-870.
[    0.314767] libphy: Fixed MDIO Bus: probed
[    0.318874] usbcore: registered new interface driver lan78xx
[    0.323024] usbcore: registered new interface driver smsc95xx
[    0.327026] dwc_otg: version 3.00a 10-AUG-2012 (platform bus)
[    0.358995] dwc_otg 3f980000.usb: base=(ptrval)
[    0.563331] Core Release: 2.80a
[    0.567343] Setting default values for core params
[    0.571335] Finished setting default values for core params
[    0.775642] Using Buffer DMA mode
[    0.779552] Periodic Transfer Interrupt Enhancement - disabled
[    0.783535] Multiprocessor Interrupt Enhancement - disabled
[    0.787516] OTG VER PARAM: 0, OTG VER FLAG: 0
[    0.791480] Dedicated Tx FIFOs mode
[    0.795903] WARN::dwc_otg_hcd_init:1045: FIQ DMA bounce buffers: virt = bad04000 dma = 0xfad04000 len=9024
[    0.800126] FIQ FSM acceleration enabled for :
               Non-periodic Split Transactions
               Periodic Split Transactions
               High-Speed Isochronous Endpoints
               Interrupt/Control Split Transaction hack enabled
[    0.820304] dwc_otg: Microframe scheduler enabled
[    0.820362] WARN::hcd_init_fiq:457: FIQ on core 1
[    0.824401] WARN::hcd_init_fiq:458: FIQ ASM at 80650d3c length 36
[    0.828444] WARN::hcd_init_fiq:497: MPHI regs_base at bb810000
[    0.832508] dwc_otg 3f980000.usb: DWC OTG Controller
[    0.836612] dwc_otg 3f980000.usb: new USB bus registered, assigned bus number 1
[    0.840787] dwc_otg 3f980000.usb: irq 56, io mem 0x00000000
[    0.844908] Init: Port Power? op_state=1
[    0.848910] Init: Power Port (0)
[    0.853061] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 4.19
[    0.857085] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    0.861019] usb usb1: Product: DWC OTG Controller
[    0.864898] usb usb1: Manufacturer: Linux 4.19.57-v7+ dwc_otg_hcd
[    0.868739] usb usb1: SerialNumber: 3f980000.usb
[    0.873231] hub 1-0:1.0: USB hub found
[    0.877072] hub 1-0:1.0: 1 port detected
[    0.881424] dwc_otg: FIQ enabled
[    0.881431] dwc_otg: NAK holdoff enabled
[    0.881437] dwc_otg: FIQ split-transaction FSM enabled
[    0.881448] Module dwc_common_port init
[    0.881742] usbcore: registered new interface driver usb-storage
[    0.885752] mousedev: PS/2 mouse device common for all mice
[    0.890534] bcm2835-wdt bcm2835-wdt: Broadcom BCM2835 watchdog timer
[    0.894718] bcm2835-cpufreq: min=600000 max=1200000
[    0.899099] sdhci: Secure Digital Host Controller Interface driver
[    0.903116] sdhci: Copyright(c) Pierre Ossman
[    0.907439] mmc-bcm2835 3f300000.mmc: could not get clk, deferring probe
[    0.911883] sdhost-bcm2835 3f202000.mmc: could not get clk, deferring probe
[    0.916093] sdhci-pltfm: SDHCI platform and OF driver helper
[    0.920649] ledtrig-cpu: registered to indicate activity on CPUs
[    0.924830] hidraw: raw HID events driver (C) Jiri Kosina
[    0.929069] usbcore: registered new interface driver usbhid
[    0.933199] usbhid: USB HID core driver
[    0.937960] vchiq: vchiq_init_state: slot_zero = (ptrval), is_master = 0
[    0.943443] [vc_sm_connected_init]: start
[    0.952723] [vc_sm_connected_init]: end - returning 0
[    0.957832] Initializing XFRM netlink socket
[    0.961854] NET: Registered protocol family 17
[    0.965930] Key type dns_resolver registered
[    0.970325] Registering SWP/SWPB emulation handler
[    0.974964] registered taskstats version 1
[    0.978920] Loading compiled-in X.509 certificates
[    0.990153] uart-pl011 3f201000.serial: cts_event_workaround enabled
[    0.994346] 3f201000.serial: ttyAMA0 at MMIO 0x3f201000 (irq = 81, base_baud = 0) is a PL011 rev2
[    1.992215] console [ttyAMA0] enabled
[    2.001992] mmc-bcm2835 3f300000.mmc: mmc_debug:0 mmc_debug2:0
[    2.012075] mmc-bcm2835 3f300000.mmc: DMA channel allocated
[    2.021958] Indeed it is in host mode hprt0 = 00021501
[    2.117404] sdhost: log_buf @ (ptrval) (fad07000)
[    2.119663] random: fast init done
[    2.168774] mmc1: queuing unknown CIS tuple 0x80 (2 bytes)
[    2.178381] mmc0: sdhost-bcm2835 loaded - DMA enabled (>1)
[    2.189329] of_cfs_init
[    2.195982] of_cfs_init: OK
[    2.203498] Waiting for root device PARTUUID=2b0cc31c-02...
[    2.209125] mmc1: queuing unknown CIS tuple 0x80 (3 bytes)
[    2.224318] mmc1: queuing unknown CIS tuple 0x80 (3 bytes)
[    2.233782] usb 1-1: new high-speed USB device number 2 using dwc_otg
[    2.244531] Indeed it is in host mode hprt0 = 00001101
[    2.315949] mmc1: queuing unknown CIS tuple 0x80 (7 bytes)
[    2.327953] mmc1: queuing unknown CIS tuple 0x80 (6 bytes)
[    2.377125] mmc0: new high speed MMC card at address 0001
[    2.387715] mmcblk0: mmc0:0001 BJTD4R 29.1 GiB
[    2.397061] mmcblk0boot0: mmc0:0001 BJTD4R partition 1 4.00 MiB
[    2.407715] mmcblk0boot1: mmc0:0001 BJTD4R partition 2 4.00 MiB
[    2.417671] mmcblk0rpmb: mmc0:0001 BJTD4R partition 3 4.00 MiB, chardev (246:0)
[    2.430659]  mmcblk0: p1 p2
[    2.460163] mmc1: new high speed SDIO card at address 0001
[    2.473468] EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Opts: (null)
[    2.485536] VFS: Mounted root (ext4 filesystem) readonly on device 179:2.
[    2.493080] usb 1-1: New USB device found, idVendor=05e3, idProduct=0608, bcdDevice=85.37
[    2.503612] devtmpfs: mounted
[    2.508471] usb 1-1: New USB device strings: Mfr=0, Product=1, SerialNumber=0
[    2.526667] usb 1-1: Product: USB2.0 Hub
[    2.535798] hub 1-1:1.0: USB hub found
[    2.536551] Freeing unused kernel memory: 1024K
[    2.543976] hub 1-1:1.0: 4 ports detected
[    2.560573] Run /sbin/init as init process
[    2.881768] usb 1-1.1: new low-speed USB device number 3 using dwc_otg
[    3.050968] usb 1-1.1: New USB device found, idVendor=03f0, idProduct=0024, bcdDevice= 3.00
[    3.063466] usb 1-1.1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[    3.074891] usb 1-1.1: Product: HP Basic USB Keyboard
[    3.083949] usb 1-1.1: Manufacturer: CHICONY
[    3.092440] systemd[1]: System time before build time, advancing clock.
[    3.107963] input: CHICONY HP Basic USB Keyboard as /devices/platform/soc/3f980000.usb/usb1/1-1/1-1.1/1-1.1:1.0/0003:03F0:0024.0001/input/input0
[    3.192348] hid-generic 0003:03F0:0024.0001: input,hidraw0: USB HID v1.10 Keyboard [CHICONY HP Basic USB Keyboard] on usb-3f980000.usb-1.1/input0
[    3.224147] NET: Registered protocol family 10
[    3.234571] Segment Routing with IPv6
[    3.281912] systemd[1]: systemd 241 running in system mode. (+PAM +AUDIT +SELINUX +IMA +APPARMOR +SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +XZ +LZ4 +SECCOMP +BLKID +ELFUTILS +KMOD -IDN2 +IDN -PCRE2 default-hierarchy=hybrid)
[    3.314740] systemd[1]: Detected architecture arm.
[    3.350472] systemd[1]: Set hostname to <raspberrypi>.
[    3.372094] systemd[1]: Failed to bump fs.file-max, ignoring: Invalid argument
[    3.587990] uart-pl011 3f201000.serial: no DMA platform data
[    3.691255] systemd[1]: File /lib/systemd/system/systemd-journald.service:12 configures an IP firewall (IPAddressDeny=any), but the local system does not support BPF/cgroup based firewalling.
[    3.719820] systemd[1]: Proceeding WITHOUT firewalling in effect! (This warning is only shown for the first loaded unit using IP firewalling.)
[    4.171224] random: systemd: uninitialized urandom read (16 bytes read)
[    4.194907] random: systemd: uninitialized urandom read (16 bytes read)
[    4.208140] systemd[1]: Listening on udev Kernel Socket.
[    4.226430] random: systemd: uninitialized urandom read (16 bytes read)
[    4.244185] systemd[1]: Created slice system-getty.slice.
[    4.287138] systemd[1]: Condition check resulted in Journal Audit Socket being skipped.
[    4.301498] systemd[1]: Reached target Swap.
[    5.191186] EXT4-fs (mmcblk0p2): re-mounted. Opts: (null)
[    5.293086] systemd-journald[113]: Received request to flush runtime journal from PID 1
[    5.882975] vc_sm_cma: module is from the staging directory, the quality is unknown, you have been warned.
[    5.885540] bcm2835_vc_sm_cma_probe: Videocore shared memory driver
[    5.885556] [vc_sm_connected_init]: start
[    5.886100] media: Linux media interface: v0.10
[    5.891139] [vc_sm_connected_init]: installed successfully
[    5.933212] videodev: Linux video capture interface: v2.00
[    5.959273] bcm2835_mmal_vchiq: module is from the staging directory, the quality is unknown, you have been warned.
[    5.982614] bcm2835_codec: module is from the staging directory, the quality is unknown, you have been warned.
[    6.000523] bcm2835-codec bcm2835-codec: Device registered as /dev/video10
[    6.000537] bcm2835-codec bcm2835-codec: Loaded V4L2 decode
[    6.014485] bcm2835-codec bcm2835-codec: Device registered as /dev/video11
[    6.014501] bcm2835-codec bcm2835-codec: Loaded V4L2 encode
[    6.014844] bcm2835_v4l2: module is from the staging directory, the quality is unknown, you have been warned.
[    6.024990] bcm2835-codec bcm2835-codec: Device registered as /dev/video12
[    6.025004] bcm2835-codec bcm2835-codec: Loaded V4L2 isp
[    6.106620] snd_bcm2835: module is from the staging directory, the quality is unknown, you have been warned.
[    6.120812] bcm2835_audio soc:audio: card created with 8 channels
[    6.350943] cfg80211: Loading compiled-in X.509 certificates for regulatory database
[    6.469451] cfg80211: Loaded X.509 cert 'sforshee: 00b28ddf47aef9cea7'
[    6.532410] brcmfmac: F1 signature read @0x18000000=0x15264345
[    6.541010] brcmfmac: brcmf_fw_alloc_request: using brcm/brcmfmac43455-sdio for chip BCM4345/6
[    6.541448] usbcore: registered new interface driver brcmfmac
[    6.751548] brcmfmac: brcmf_sdiod_ramrw: membytes transfer failed
[    6.751572] brcmfmac: brcmf_sdio_verifymemory: error -110 on reading 2048 membytes at 0x00200800
[    6.751992] brcmfmac: brcmf_sdio_download_firmware: dongle image file download failed
[    8.248855] random: crng init done
[    8.248873] random: 7 urandom warning(s) missed due to ratelimiting
[    8.266795] 8021q: 802.1Q VLAN Support v1.8
[    8.463284] Adding 102396k swap on /var/swap.  Priority:-2 extents:1 across:102396k SSFS
[   17.111701] mmc1: Timeout waiting for hardware interrupt.
[   38.231703] mmc1: Timeout waiting for hardware interrupt.
[   54.231705] mmc1: Timeout waiting for hardware interrupt.
[   70.231704] mmc1: Timeout waiting for hardware interrupt.
[   86.231702] mmc1: Timeout waiting for hardware interrupt.
[  102.231701] mmc1: Timeout waiting for hardware interrupt.
[  118.231701] mmc1: Timeout waiting for hardware interrupt.
[  134.231702] mmc1: Timeout waiting for hardware interrupt.
[  150.231702] mmc1: Timeout waiting for hardware interrupt.
[  166.231701] mmc1: Timeout waiting for hardware interrupt.
[  182.231702] mmc1: Timeout waiting for hardware interrupt.
[  198.231701] mmc1: Timeout waiting for hardware interrupt.
[  214.231702] mmc1: Timeout waiting for hardware interrupt.
[  230.231704] mmc1: Timeout waiting for hardware interrupt.
[  246.231701] mmc1: Timeout waiting for hardware interrupt.
[  262.231702] mmc1: Timeout waiting for hardware interrupt.
[  278.231702] mmc1: Timeout waiting for hardware interrupt.
[  294.231702] mmc1: Timeout waiting for hardware interrupt.
[  310.231702] mmc1: Timeout waiting for hardware interrupt.
I am wondering what "mmc1: Timeout waiting for hardware interrupt." means?

rlev
Posts: 43
Joined: Sat Dec 15, 2018 2:20 pm

Re: CM3 Plus and WiFi/BT CYW43455

Sun Aug 11, 2019 6:11 pm

/* UPDATE */

PhilE,

After rechecking my wiring and shorting some cables I was able to get the SDIO interface working :

ifconfig shows :

Code: Select all

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 2  bytes 78 (78.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 2  bytes 78 (78.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

wlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.1.9  netmask 255.255.255.0  broadcast 192.168.1.255
        inet6 fe80::29d:6bff:fea0:7eb9  prefixlen 64  scopeid 0x20<link>
        ether 00:9d:6b:a0:7e:b9  txqueuelen 1000  (Ethernet)
        RX packets 1721  bytes 159523 (155.7 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 297  bytes 31285 (30.5 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

And I am able to ping google.com

Thank you very much for your help PhilE.

Now second part is to get the BLUETOOTH to work.

For the CM3 Plus board. How to configure a UART to use pins 30-33 using a custom overlay?

Any help is appreciated it.

PhilE
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 2572
Joined: Mon Sep 29, 2014 1:07 pm
Location: Cambridge

Re: CM3 Plus and WiFi/BT CYW43455

Sun Aug 11, 2019 7:36 pm

There isn't anything off-the-shelf that enables UART0 with flow control, but you can start with the uart0 overlay.

Code: Select all

/dts-v1/;
/plugin/;

/{
	compatible = "brcm,bcm2835";

	[email protected] {
		target = <&uart0>;
		__overlay__ {
			pinctrl-names = "default";
			pinctrl-0 = <&uart0_pins>;
			status = "okay";
		};
	};

	[email protected] {
		target = <&gpio>;
		__overlay__ {
			uart0_pins: uart0_pins {
				brcm,pins = <14 15 14 15>;
				brcm,function = <0 0 4 4>; /* alt0 */
				brcm,pull = <0 0 0 2>;
			};
		};
	};

	__overrides__ {
		txd0_pin = <&uart0_pins>,"brcm,pins:8";
		rxd0_pin = <&uart0_pins>,"brcm,pins:12";
		pin_func = <&uart0_pins>,"brcm,function:8",
			   <&uart0_pins>,"brcm,function:12";
	};
};
This is almost enough to get Bluetooth working, if you give it the right parameters, but it is lacking flow control and the necessary aliases. By filling in the flow control pins and adapting a bit of the miniuart-bt overlay to set up the aliases, we can build up a custom overlay something like this:

Code: Select all

/dts-v1/;
/plugin/;

/{
	compatible = "brcm,bcm2835";

	[email protected] {
		target = <&uart0>;
		__overlay__ {
			pinctrl-names = "default";
			pinctrl-0 = <&uart0_pins>;
			status = "okay";
		};
	};

	[email protected] {
		target = <&gpio>;
		__overlay__ {
			uart0_pins: uart0_pins {
				brcm,pins = <32 33 30 31>;
				brcm,function = <7 7 7 7>; /* alt3 */
				brcm,pull = <0 2 2 0>;
			};
		};
	};

	[email protected] {
		target-path = "/aliases";
		__overlay__ {
			serial0 = "/soc/[email protected]";
			serial1 = "/soc/[email protected]";
		};
	};
};
Call it something like cm-bt-overlay.dts and compile and install it with:

Code: Select all

$ dtc [email protected] -I dts -O dtb -o cm-bt.dtbo cm-bt-overlay.dts
$ sudo cp cm-bt.dtbo /boot/overlays
I haven't tested it in a live system, but it applies OK and should work.

rlev
Posts: 43
Joined: Sat Dec 15, 2018 2:20 pm

Re: CM3 Plus and WiFi/BT CYW43455

Sun Aug 11, 2019 10:30 pm

PhilE,

From your previous post regarding Bluetooth overlay.

Do I have to modify or add something to /boot/config.txt ?

Thanks

PhilE
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 2572
Joined: Mon Sep 29, 2014 1:07 pm
Location: Cambridge

Re: CM3 Plus and WiFi/BT CYW43455

Mon Aug 12, 2019 12:43 am

Yes - like any overlay you need to tell the firmware to apply it by adding the following to config.txt:

Code: Select all

 dtoverlay=cm-bt

rlev
Posts: 43
Joined: Sat Dec 15, 2018 2:20 pm

Re: CM3 Plus and WiFi/BT CYW43455

Tue Aug 13, 2019 1:18 am

PhilE,

I have :
- Wired the Bluetooth (tx,rx,cts,rts) pins from the CYW43455 module to the CM3 board.
- Compiled the second cm-bt-overlay.dts you posted ( the one with flow control ) and copy to /boot/overlays

Code: Select all

/dts-v1/;
/plugin/;

/{
	compatible = "brcm,bcm2835";

	[email protected] {
		target = <&uart0>;
		__overlay__ {
			pinctrl-names = "default";
			pinctrl-0 = <&uart0_pins>;
			status = "okay";
		};
	};

	[email protected] {
		target = <&gpio>;
		__overlay__ {
			uart0_pins: uart0_pins {
				brcm,pins = <32 33 30 31>;
				brcm,function = <7 7 7 7>; /* alt3 */
				brcm,pull = <0 2 2 0>;
			};
		};
	};

	[email protected] {
		target-path = "/aliases";
		__overlay__ {
			serial0 = "/soc/[email protected]";
			serial1 = "/soc/[email protected]";
		};
	};
};

- Added dtoverlay=cm-bt to /boot/config.txt

After the CM3 boots up the WiFi works but I see no Bluetooth interface ON.

sudo systemctl status hciuart.service shows

Code: Select all

● hciuart.service - Configure Bluetooth Modems connected by UART
   Loaded: loaded (/lib/systemd/system/hciuart.service; enabled; vendor preset: enabled)
   Active: inactive (dead)
Condition: start condition failed at Tue 2019-08-13 02:02:42 BST; 2min 4s ago
           └─ ConditionFileNotEmpty=/proc/device-tree/soc/[email protected]/bt_pins/brcm,pins was not met

Aug 13 02:02:42 raspberrypi systemd[1]: Condition check resulted in Configure Bluetooth Modems connected by UART being skipped.
I have note that this commands makes a reference to "[email protected]"
but the cm-bt-overlay.dts file makes reference to :

Code: Select all

__overlay__ {
			serial0 = "/soc/[email protected]";
			serial1 = "/soc/[email protected]";
		};
Not sure is this is relevant. Any hints?

Thanks

PhilE
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 2572
Joined: Mon Sep 29, 2014 1:07 pm
Location: Cambridge

Re: CM3 Plus and WiFi/BT CYW43455

Tue Aug 13, 2019 8:07 am

You're very close now - if you run "sudo btuart" I think Bluetooth will spring into life. The only remaining issue is that the systemd service that runs btuart at boot time is bailing out early:

Code: Select all

ConditionFileNotEmpty=/proc/device-tree/soc/[email protected]/bt_pins/brcm,pins was not met
The reason is that the service needs an indication of when it should run, i.e. whether the Pi is configured to have Bluetooth enabled, and in Raspbian we use the fact that the "brcm,pins" property of "bt_pins" exists and is not empty. On many Pis this property contains the identifier of a GPIO used to pass a low-speed clock to the BT modem, but it can be anything. On Pi 4 that clock isn't used and there were no other obvious candidates, so we use a bit of a hack:

Code: Select all

brcm,pins = "-"; // non-empty to keep btuart happy, /4 = 0
This line assigns a string value to property that is expecting an array of integers, but the FDT (Flattened Device Tree) encoding has no type information and encodes everything as arrays of bytes. The above string encodes to a 2-byte array - [ 0x2d, 0x00 ] - the content doesn't matter, but the length does. The hciuart service requires a non-zero length, but the Device Tree GPIO parser demands that all GPIO identifiers are valid and available. Luckily these identifiers are 4 bytes each, so the first thing the parser does is to calculate the length in 4-byte integers, and as the comment suggests 2/4 = 0. In this way brcm,pins is both non-empty and empty at the same time.

The upshot is that your overlay needs one more fragment:

Code: Select all

/dts-v1/;
/plugin/;

/{
	compatible = "brcm,bcm2835";

	[email protected] {
		target = <&uart0>;
		__overlay__ {
			pinctrl-names = "default";
			pinctrl-0 = <&uart0_pins>;
			status = "okay";
		};
	};

	[email protected] {
		target = <&gpio>;
		__overlay__ {
			uart0_pins: uart0_pins {
				brcm,pins = <32 33 30 31>;
				brcm,function = <7 7 7 7>; /* alt3 */
				brcm,pull = <0 2 2 0>;
			};
		};
	};

	[email protected] {
		target-path = "/aliases";
		__overlay__ {
			serial0 = "/soc/[email protected]";
			serial1 = "/soc/[email protected]";
		};
	};

	[email protected] {
		target = <&gpio>;
		__overlay__ {
			bt_pins {
				brcm,pins = "-"; // non-empty to keep btuart happy, /4 = 0
						 // to fool pinctrl
				brcm,function = <0>;
				brcm,pull = <2>;
			};
		};
	};
};

rlev
Posts: 43
Joined: Sat Dec 15, 2018 2:20 pm

Re: CM3 Plus and WiFi/BT CYW43455

Wed Aug 14, 2019 12:52 am

PhilE,

I have compiled the new cm-bt-overlay.dts and generated a new cm-bt.dtbo.

After the CM3 boots up I see no Bluetooth .

sudo btuart shows :

Code: Select all

Can't open serial port: No such file or directory
Can't initialize device : No such file or directory

sudo systemctl status hciuart.service shows :

Code: Select all

● hciuart.service - Configure Bluetooth Modems connected by UART
   Loaded: loaded (/lib/systemd/system/hciuart.service; enabled; vendor preset: enabled)
   Active: inactive (dead)

Aug 14 01:35:25 raspberrypi systemd[1]: Dependency failed for Configure Bluetooth Modems connected by UART.
Aug 14 01:35:25 raspberrypi systemd[1]: hciuart.service: Job hciuart.service/start failed with result 'dependency'.
I have checked the wiring and looks ok.

PhilE
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 2572
Joined: Mon Sep 29, 2014 1:07 pm
Location: Cambridge

Re: CM3 Plus and WiFi/BT CYW43455

Wed Aug 14, 2019 8:00 am

That's the downside of copying code - it's easy to miss the necessary changes for the new environment. The Compute Modules don't have a bt_pins node - not even an empty one - so it is necessary to create one. I've updated the overlay above accordingly and verified that it applies.

Return to “Compute Module”