ctag
Posts: 7
Joined: Mon Apr 30, 2018 1:02 pm

DT overlay does not seem to have effect

Tue Oct 02, 2018 6:57 pm

Hi,

I'm trying to reach an LBEE5KL1DX (https://wireless.murata.com/RFM/data/lbee5kl1dx.pdf) wireless chip from a Compute Module 3 over sdio.

The SDIO pinout is:
* GPIO34 -- SDIO_CLK
* GPIO35 -- SDIO_CMD
* GPIO36 -- SDIO_DATA_0
* GPIO37 -- SDIO_DATA_1
* GPIO38 -- SDIO_DATA_2
* GPIO39 -- SDIO_DATA_3
* GPIO41 -- WL_REG_ON

GPIO41 is brought high in config.txt:

Code: Select all

gpio=41=op,dh
It works as expected.


On booting the system, the SDIO pins are in this configuration:

Code: Select all

[email protected]:~# raspi-gpio get 34-39
GPIO 34: level=1 fsel=1 func=OUTPUT
GPIO 35: level=1 fsel=1 func=OUTPUT
GPIO 36: level=1 fsel=1 func=OUTPUT
GPIO 37: level=1 fsel=0 func=INPUT
GPIO 38: level=1 fsel=0 func=INPUT
GPIO 39: level=0 fsel=1 func=OUTPUT

I enable sdio-sdhost.dtbo to turn on SDIO for the above pins. In config.txt:

Code: Select all

dtoverlay=sdio-sdhost:poll_once=off,bus_width=4,sdio_overclock=20

Upon rebooting, not all of the pins are configured:

Code: Select all

[email protected]:~# raspi-gpio get 34-39
GPIO 34: level=1 fsel=1 func=OUTPUT
GPIO 35: level=1 fsel=1 func=OUTPUT
GPIO 36: level=1 fsel=1 func=OUTPUT
GPIO 37: level=1 fsel=7 alt=3 func=SD1_DAT1
GPIO 38: level=1 fsel=7 alt=3 func=SD1_DAT2
GPIO 39: level=0 fsel=1 func=OUTPUT


It looks like only two pins are taking func=7 / alt=3. And the peripheral does not seem to be visible in the system. I've placed the overlay at the bottom of config.txt in an attempt to make it the last thing to configure the pins. How do I determine what's controlling those pins and get SDIO working?



The forum page says invalid file extension, so I'm pasting the contents of config.txt here.

Code: Select all

# For more options and information see
# http://www.raspberrypi.org/documentation/configuration/config-txt.md
# Some settings may impact device functionality. See link above for details

# uncomment if you get no picture on HDMI for a default "safe" mode
#hdmi_safe=1

# uncomment this if your display has a black border of unused pixels visible
# and your display can output without overscan
#disable_overscan=1

# uncomment the following to adjust overscan. Use positive numbers if console
# goes off screen, and negative if there is too much border
#overscan_left=16
#overscan_right=16
#overscan_top=16
#overscan_bottom=16

# uncomment to force a console size. By default it will be display's size minus
# overscan.
#framebuffer_width=1280
#framebuffer_height=720

# uncomment if hdmi display is not detected and composite is being output
#hdmi_force_hotplug=1

# uncomment to force a specific HDMI mode (this will force VGA)
#hdmi_group=1
#hdmi_mode=1

# uncomment to force a HDMI mode rather than DVI. This can make audio work in
# DMT (computer monitor) modes
#hdmi_drive=2

# uncomment to increase signal to HDMI, if you have interference, blanking, or
# no display
#config_hdmi_boost=4

# uncomment for composite PAL
#sdtv_mode=2

#uncomment to overclock the arm. 700 MHz is the default.
#arm_freq=800

#######################################
###### NEEDED FOR CAMERA SUPPORT ######
#######################################
####  Uncomment to enable cameras  ####
#######################################
#start_x=1
#gpu_mem=128
#######################################

# Additional overlays and parameters are documented /boot/overlays/README
##############################################################################################
# DEVICE OVERLAY CONFIG
###############################################################################################
# Additional overlays and parameters are documented /boot/overlays/README
# https://raw.githubusercontent.com/raspberrypi/firmware/master/boot/overlays/README
###############################################################################################

# Enable overlay debug, show after boot via : vcdbg log msg
dtdebug=on


### UART0 ###
# MODE 1 : Enable ttyAMA0 TX/RX to pins 32/33
# Changed name to avoid conflict with official RPi overlay (don't work for us)
#dtoverlay=mypi-uart0,txd0_pin=32,rxd0_pin=33

# MODE 2 : Enable ttyAMA0 CTS/RTS/TX/RX to pins 30/31/32/33 
dtoverlay=uart0-full


### UART1 ###
# Console Port (Alter cmdline.txt to disable)
# Enable ttyS0 TX/RX to pins 14/15
# Note : set 'core_freq=250' below to avoid baud rate issues
dtoverlay=uart1,txd1_pin=14,rxd1_pin=15


# Both lines required to correct firmware serial port assignments from their Pi3 defaults
dtoverlay=uart_swap
enable_uart=1


### I2C0 ###
# These appear on the default RPi ALT1 pins 0+1
# Used by CAM1 and RPi-IO (HAT board EEPROM)
#dtparam=i2c0=on
# Alternate example with params
#dtparam=i2c0=on,i2c0_baudrate=150000


### I2C1 ###
# These appear on the default RPi ALT1 pins 2+3
# Used by RTC, ASIO and RPI-IO
# This now includes the i2c_arm param 
#dtparam=i2c_arm=on
#dtparam=i2c1=on
# Alternate example with params
#dtparam=i2c1=on,i2c1_baudrate=180000

### RTC ##
#dtoverlay=i2c-rtc,ds1307


#gpio=34-39=a3
dtoverlay=sdio-sdhost:poll_once=off,bus_width=4,sdio_overclock=20
gpio=41=op,dh


### SPI ###
# These appear on the default RPi ALT1 pins 7-11
# Used by ASIO and RPI-IO
#dtparam=spi=on

# CAN-BUS Overlay
#dtoverlay=mcp2515-can0,oscillator=16000000,interrupt=25
#dtoverlay=spi0-hw-cs

#########################################
# CM3 Thermal Management
#########################################
#temp_limit=<temp in degC>
#temp_limit=70
#arm_freq=900
#arm_freq_min=600
core_freq=250
#gpu_freq=250
#sdram_freq=400
#over_voltage=0
#bootdelay=1
# Also can add maxcpus=X to /boot/cmdline.txt 
# set maxcpus=2 for lower heat dissipation
##########################################

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

Re: DT overlay does not seem to have effect

Tue Oct 02, 2018 9:13 pm

The kernel would not allow a device to use some of its required pins and deny it others - I think that something else is trampling on GPIOs 34-36 & 39. Unused pins default to inputs, so use raspi-gpio to check for other unexplained pin usage - it may give you a clue.

ctag
Posts: 7
Joined: Mon Apr 30, 2018 1:02 pm

Re: DT overlay does not seem to have effect

Wed Oct 03, 2018 3:33 pm

Thanks PhilE.

The raspi-gpio output is included. I'm still going over it, but so far haven't found anything that makes sense to me.

Code: Select all

BANK0 (GPIO 0 to 27):
GPIO 0: level=1 fsel=0 func=INPUT
GPIO 1: level=1 fsel=0 func=INPUT
GPIO 2: level=1 fsel=0 func=INPUT
GPIO 3: level=1 fsel=0 func=INPUT
GPIO 4: level=0 fsel=1 func=OUTPUT
GPIO 5: level=0 fsel=1 func=OUTPUT
GPIO 6: level=1 fsel=1 func=OUTPUT
GPIO 7: level=1 fsel=0 func=INPUT
GPIO 8: level=1 fsel=0 func=INPUT
GPIO 9: level=0 fsel=0 func=INPUT
GPIO 10: level=0 fsel=0 func=INPUT
GPIO 11: level=0 fsel=0 func=INPUT
GPIO 12: level=0 fsel=0 func=INPUT
GPIO 13: level=0 fsel=0 func=INPUT
GPIO 14: level=1 fsel=2 alt=5 func=TXD1
GPIO 15: level=1 fsel=2 alt=5 func=RXD1
GPIO 16: level=1 fsel=0 func=INPUT
GPIO 17: level=0 fsel=1 func=OUTPUT
GPIO 18: level=0 fsel=0 func=INPUT
GPIO 19: level=0 fsel=0 func=INPUT
GPIO 20: level=0 fsel=0 func=INPUT
GPIO 21: level=0 fsel=1 func=OUTPUT
GPIO 22: level=0 fsel=1 func=OUTPUT
GPIO 23: level=0 fsel=0 func=INPUT
GPIO 24: level=0 fsel=0 func=INPUT
GPIO 25: level=0 fsel=0 func=INPUT
GPIO 26: level=0 fsel=0 func=INPUT
GPIO 27: level=0 fsel=0 func=INPUT
BANK1 (GPIO 28 to 45):
GPIO 28: level=0 fsel=0 func=INPUT
GPIO 29: level=0 fsel=0 func=INPUT
GPIO 30: level=1 fsel=7 alt=3 func=CTS0
GPIO 31: level=1 fsel=7 alt=3 func=RTS0
GPIO 32: level=1 fsel=7 alt=3 func=TXD0
GPIO 33: level=1 fsel=7 alt=3 func=RXD0
GPIO 34: level=1 fsel=1 func=OUTPUT
GPIO 35: level=1 fsel=1 func=OUTPUT
GPIO 36: level=1 fsel=1 func=OUTPUT
GPIO 37: level=1 fsel=7 alt=3 func=SD1_DAT1
GPIO 38: level=1 fsel=7 alt=3 func=SD1_DAT2
GPIO 39: level=0 fsel=1 func=OUTPUT
GPIO 40: level=0 fsel=0 func=INPUT
GPIO 41: level=1 fsel=1 func=OUTPUT
GPIO 42: level=0 fsel=0 func=INPUT
GPIO 43: level=0 fsel=0 func=INPUT
GPIO 44: level=1 fsel=1 func=OUTPUT
GPIO 45: level=0 fsel=0 func=INPUT
BANK2 (GPIO 46 to 53):
GPIO 46: level=1 fsel=0 func=INPUT
GPIO 47: level=1 fsel=1 func=OUTPUT
GPIO 48: level=0 fsel=4 alt=0 func=SD0_CLK
GPIO 49: level=1 fsel=4 alt=0 func=SD0_CMD
GPIO 50: level=1 fsel=4 alt=0 func=SD0_DAT0
GPIO 51: level=1 fsel=4 alt=0 func=SD0_DAT1
GPIO 52: level=1 fsel=4 alt=0 func=SD0_DAT2
GPIO 53: level=1 fsel=4 alt=0 func=SD0_DAT3

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

Re: DT overlay does not seem to have effect

Wed Oct 03, 2018 3:37 pm

Can you also post the CM3 section of your dt-blob.dts (assuming you have a custom dt-blob.bin)?

ctag
Posts: 7
Joined: Mon Apr 30, 2018 1:02 pm

Re: DT overlay does not seem to have effect

Wed Oct 03, 2018 5:19 pm

dt-blob.dts is attached.

I inherited this project, and have noticed that stock rasbian does not include this file. I read on one of the DT documentation pages that compute modules would probably want a custom dt-blob.bin, but I'm not sure how this one was generated.

I tried renaming dt-blob.bin to dt-blob.bin.bkup in order to use the built-in from start.elf, with no change in the pin configuration upon reboot.

Code: Select all

/dts-v1/;

/ {

	videocore {

		pins_cm3 {

			pin_config {

				[email protected] {
					polarity = "active_high";
					termination = "pull_down";
					startup_state = "inactive";
					function = "input";
				};

				[email protected] {
					function = "input";
					termination = "pull_up";
				};

				[email protected] {
					function = "input";
					termination = "pull_up";
				};

				[email protected] {
					function = "input";
					termination = "pull_up";
				};

				[email protected] {
					function = "input";
					termination = "pull_up";
				};

				[email protected] {
					function = "input";
					termination = "pull_up";
				};

				[email protected] {
					function = "input";
					termination = "pull_up";
				};

				[email protected] {
					function = "input";
					termination = "pull_up";
				};

				[email protected] {
					function = "input";
					termination = "pull_down";
				};

				[email protected] {
					function = "input";
					termination = "pull_down";
				};

				[email protected] {
					function = "input";
					termination = "pull_down";
				};

				[email protected] {
					function = "input";
					termination = "pull_down";
				};

				[email protected] {
					function = "input";
					termination = "pull_down";
				};

				[email protected] {
					function = "input";
					termination = "pull_down";
				};

				[email protected] {
					function = "input";
					termination = "pull_down";
				};

				[email protected] {
					function = "input";
					termination = "pull_down";
				};

				[email protected] {
					function = "input";
					termination = "pull_down";
				};

				[email protected] {
					function = "input";
					termination = "pull_down";
				};

				[email protected] {
					function = "input";
					termination = "pull_down";
				};

				[email protected] {
					function = "input";
					termination = "pull_down";
				};

				[email protected] {
					function = "input";
					termination = "pull_down";
				};

				[email protected] {
					function = "input";
					termination = "pull_down";
				};

				[email protected] {
					function = "input";
					termination = "pull_down";
				};

				[email protected] {
					function = "input";
					termination = "pull_down";
				};

				[email protected] {
					function = "input";
					termination = "pull_down";
				};

				[email protected] {
					function = "input";
					termination = "pull_down";
				};

				[email protected] {
					function = "input";
					termination = "pull_down";
				};

				[email protected] {
					function = "input";
					termination = "pull_down";
				};

				[email protected] {
					function = "input";
					termination = "pull_down";
				};

				[email protected] {
					function = "input";
					termination = "pull_down";
				};

				[email protected] {
					function = "input";
					termination = "pull_down";
				};

				[email protected] {
					function = "input";
					termination = "pull_down";
				};

				[email protected] {
					function = "input";
					termination = "pull_down";
				};

				[email protected] {
					function = "input";
					termination = "pull_down";
				};

				[email protected] {
					function = "input";
					termination = "pull_down";
				};

				[email protected] {
					function = "input";
					termination = "pull_down";
				};

				[email protected] {
					function = "input";
					termination = "pull_down";
				};

				[email protected] {
					function = "input";
					termination = "pull_down";
				};

				[email protected] {
					function = "output";
					termination = "no_pulling";
				};

				[email protected] {
					function = "output";
					termination = "no_pulling";
				};

				[email protected] {
					function = "output";
					termination = "no_pulling";
				};

				[email protected] {
					function = "output";
					termination = "no_pulling";
				};

				[email protected] {
					function = "output";
					termination = "no_pulling";
					startup_state = "inactive";
					polarity = "active_high";
				};

				[email protected] {
					function = "output";
					termination = "no_pulling";
					startup_state = "inactive";
					polarity = "active_low";
				};

				[email protected] {
					function = "output";
					termination = "no_pulling";
					startup_state = "inactive";
					polarity = "active_low";
				};

				[email protected] {
					function = "output";
					termination = "no_pulling";
					startup_state = "inactive";
					polarity = "active_low";
				};

				[email protected] {
					function = "output";
					termination = "no_pulling";
					startup_state = "inactive";
					polarity = "active_low";
				};

				[email protected] {
					function = "input";
					termination = "pull_up";
				};

				[email protected] {
					function = "input";
					termination = "pull_up";
				};

				[email protected] {
					function = "sdcard";
					termination = "pull_up";
					drive_strength_mA = <0x8>;
				};

				[email protected] {
					function = "sdcard";
					termination = "pull_up";
					drive_strength_mA = <0x8>;
				};

				[email protected] {
					function = "sdcard";
					termination = "pull_up";
					drive_strength_mA = <0x8>;
				};

				[email protected] {
					function = "sdcard";
					termination = "pull_up";
					drive_strength_mA = <0x8>;
				};

				[email protected] {
					function = "sdcard";
					termination = "pull_up";
					drive_strength_mA = <0x8>;
				};

				[email protected] {
					function = "sdcard";
					termination = "pull_up";
					drive_strength_mA = <0x8>;
				};

				[email protected] {
					function = "input";
					termination = "no_pulling";
					polarity = "active_low";
				};

				[email protected] {
					function = "output";
					termination = "no_pulling";
					polarity = "active_low";
				};
			};

			pin_defines {

				[email protected]_CONTROL_ATTACHED {
					type = "external";
					number = <0x0>;
				};

				[email protected]_ENABLE {
					type = "external";
					number = <0x1>;
				};

				[email protected]_LOW {
					type = "absent";
				};

				[email protected]_DISK_ACTIVITY {
					type = "absent";
				};

				[email protected]_RUN {
					type = "absent";
				};

				[email protected]_SDA {
					type = "internal";
					number = <0x2e>;
				};

				[email protected]_SCL {
					type = "internal";
					number = <0x2f>;
				};

				[email protected]_CLK {
					type = "absent";
				};

				[email protected]_LPO_CLK {
					type = "absent";
				};

				[email protected]_LIMIT_1A2 {
					type = "absent";
				};

				[email protected]_1V8_SEL {
					type = "absent";
				};

				[email protected] {
					type = "absent";
				};

				[email protected] {
					type = "absent";
				};

				[email protected]_MODE {
					type = "absent";
				};

				[email protected]_CARD_DETECT {
					type = "absent";
				};

				[email protected]_SDA {
					type = "absent";
				};

				[email protected]_SCL {
					type = "absent";
				};

				[email protected]_CAMERAS {
					type = "internal";
					number = <0x2>;
				};

				[email protected]_1_LED {
					type = "internal";
					number = <0x15>;
				};

				[email protected]_1_SHUTDOWN {
					type = "internal";
					number = <0x5>;
				};

				[email protected]_1_UNICAM_PORT {
					type = "internal";
					number = <0x1>;
				};

				[email protected]_1_I2C_PORT {
					type = "internal";
					number = <0x0>;
				};

				[email protected]_1_SDA_PIN {
					type = "internal";
					number = <0x0>;
				};

				[email protected]_1_SCL_PIN {
					type = "internal";
					number = <0x1>;
				};

				[email protected]_0_LED {
					type = "internal";
					number = <0x16>;
				};

				[email protected]_0_SHUTDOWN {
					type = "internal";
					number = <0x4>;
				};

				[email protected]_0_UNICAM_PORT {
					type = "internal";
					number = <0x0>;
				};

				[email protected]_0_I2C_PORT {
					type = "internal";
					number = <0x0>;
				};

				[email protected]_0_SDA_PIN {
					type = "internal";
					number = <0x1c>;
				};

				[email protected]_0_SCL_PIN {
					type = "internal";
					number = <0x1d>;
				};
			};
		};
	};
};

ctag
Posts: 7
Joined: Mon Apr 30, 2018 1:02 pm

Re: DT overlay does not seem to have effect

Wed Oct 03, 2018 8:04 pm

I looked at a clean raspbian image and noticed some of the overlays and device tree files were different. So I flashed a clean installation of Rasbian to test against.

With the clean system image, all of the pins are INPUT, like PhilE said. I didn't see a /boot/overlays/sdio-sdhost.dtbo file, so I tweaked the brcm,pins field of sdio.dtbo to use 0x22-0x27 and recompiled it as sdio-wifi.dtbo. Then I enabled it in config.txt:

Code: Select all

dtoverlay=sdio-wifi,poll_once=off,bus_width=4,sdio_overclock=50
gpio=41=op,dh
On reboot the SDIO pins are configured!

Code: Select all

BANK1 (GPIO 28 to 45):
GPIO 28: level=0 fsel=0 func=INPUT
GPIO 29: level=0 fsel=0 func=INPUT
GPIO 30: level=1 fsel=0 func=INPUT
GPIO 31: level=1 fsel=0 func=INPUT
GPIO 32: level=1 fsel=0 func=INPUT
GPIO 33: level=1 fsel=0 func=INPUT
GPIO 34: level=1 fsel=7 alt=3 func=SD1_CLK
GPIO 35: level=1 fsel=7 alt=3 func=SD1_CMD
GPIO 36: level=1 fsel=7 alt=3 func=SD1_DAT0
GPIO 37: level=1 fsel=7 alt=3 func=SD1_DAT1
GPIO 38: level=1 fsel=7 alt=3 func=SD1_DAT2
GPIO 39: level=1 fsel=7 alt=3 func=SD1_DAT3
GPIO 40: level=0 fsel=0 func=INPUT
GPIO 41: level=1 fsel=1 func=OUTPUT
GPIO 42: level=0 fsel=0 func=INPUT
GPIO 43: level=0 fsel=0 func=INPUT
GPIO 44: level=0 fsel=0 func=INPUT
GPIO 45: level=0 fsel=0 func=INPUT
The peripheral still isn't recognized. I can manually modprobe brcmfmac, but it doesn't discover anything.

Code: Select all

[    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] Linux version 4.14.50-v7+ ([email protected]) (gcc version 4.9.3 (crosstool-NG crosstool-ng-1.22.0-88-g8460611)) #1122 SMP Tue Jun 19 12:26:26 BST 2018
[    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 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] free_area_init_node: node 0, pgdat 80c85000, node_mem_map ba3a1000
[    0.000000]   Normal zone: 2133 pages used for memmap
[    0.000000]   Normal zone: 0 pages reserved
[    0.000000]   Normal zone: 242688 pages, LIFO batch:31
[    0.000000] percpu: Embedded 17 pages/cpu @ba34b000 s38720 r8192 d22720 u69632
[    0.000000] pcpu-alloc: s38720 r8192 d22720 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: bcm2708_fb.fbwidth=656 bcm2708_fb.fbheight=416 bcm2708_fb.fbswap=1 smsc95xx.macaddr=B8:27:EB:B1:65:C7 vc_mem.mem_base=0x3ec00000 vc_mem.mem_size=0x40000000  dwc_otg.lpm_enable=0 console=ttyAMA0,115200 console=tty1 root=PARTUUID=a35dd44f-02 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait
[    0.000000] PID hash table entries: 4096 (order: 2, 16384 bytes)
[    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: 940244K/970752K available (7168K kernel code, 575K rwdata, 2072K rodata, 1024K init, 706K bss, 22316K 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 : 0x80008000 - 0x80800000   (8160 kB)
                     .init : 0x80b00000 - 0x80c00000   (1024 kB)
                     .data : 0x80c00000 - 0x80c8fef4   ( 576 kB)
                      .bss : 0x80c96f40 - 0x80d478b4   ( 707 kB)
[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=4, Nodes=1
[    0.000000] ftrace: allocating 25253 entries in 75 pages
[    0.000000] 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.000022] Switching to timer-based delay loop, resolution 52ns
[    0.000267] Console: colour dummy device 80x30
[    0.000809] console [tty1] enabled
[    0.000846] Calibrating delay loop (skipped), value calculated using timer frequency.. 38.40 BogoMIPS (lpj=192000)
[    0.000886] pid_max: default: 32768 minimum: 301
[    0.001217] Mount-cache hash table entries: 2048 (order: 1, 8192 bytes)
[    0.001250] Mountpoint-cache hash table entries: 2048 (order: 1, 8192 bytes)
[    0.002201] Disabling memory control group subsystem
[    0.002299] CPU: Testing write buffer coherency: ok
[    0.002708] CPU0: thread -1, cpu 0, socket 0, mpidr 80000000
[    0.003106] Setting up static identity map for 0x100000 - 0x10003c
[    0.003242] Hierarchical SRCU implementation.
[    0.003893] smp: Bringing up secondary CPUs ...
[    0.004596] CPU1: thread -1, cpu 1, socket 0, mpidr 80000001
[    0.005346] CPU2: thread -1, cpu 2, socket 0, mpidr 80000002
[    0.006079] CPU3: thread -1, cpu 3, socket 0, mpidr 80000003
[    0.006182] smp: Brought up 1 node, 4 CPUs
[    0.006253] SMP: Total of 4 processors activated (153.60 BogoMIPS).
[    0.006275] CPU: All CPU(s) started in HYP mode.
[    0.006293] CPU: Virtualization extensions available.
[    0.007166] devtmpfs: initialized
[    0.016769] random: get_random_u32 called from bucket_table_alloc+0xfc/0x24c with crng_init=0
[    0.017440] VFP support v0.3: implementor 41 architecture 3 part 40 variant 3 rev 4
[    0.017684] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[    0.017728] futex hash table entries: 1024 (order: 4, 65536 bytes)
[    0.018302] pinctrl core: initialized pinctrl subsystem
[    0.019064] NET: Registered protocol family 16
[    0.021667] DMA: preallocated 1024 KiB pool for atomic coherent allocations
[    0.026429] hw-breakpoint: found 5 (+1 reserved) breakpoint and 4 watchpoint registers.
[    0.026462] hw-breakpoint: maximum watchpoint size is 8 bytes.
[    0.026681] Serial: AMBA PL011 UART driver
[    0.028496] bcm2835-mbox 3f00b880.mailbox: mailbox enabled
[    0.059983] bcm2835-dma 3f007000.dma: DMA legacy API manager at bb813000, dmachans=0x1
[    0.061516] SCSI subsystem initialized
[    0.061760] usbcore: registered new interface driver usbfs
[    0.061830] usbcore: registered new interface driver hub
[    0.061930] usbcore: registered new device driver usb
[    0.070100] raspberrypi-firmware soc:firmware: Attached to firmware from 2018-06-07 15:31
[    0.071427] clocksource: Switched to clocksource arch_sys_counter
[    0.148507] VFS: Disk quotas dquot_6.6.0
[    0.148620] VFS: Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)
[    0.148824] FS-Cache: Loaded
[    0.149033] CacheFiles: Loaded
[    0.157799] NET: Registered protocol family 2
[    0.158536] TCP established hash table entries: 8192 (order: 3, 32768 bytes)
[    0.158665] TCP bind hash table entries: 8192 (order: 4, 65536 bytes)
[    0.158868] TCP: Hash tables configured (established 8192 bind 8192)
[    0.159014] UDP hash table entries: 512 (order: 2, 16384 bytes)
[    0.159075] UDP-Lite hash table entries: 512 (order: 2, 16384 bytes)
[    0.159318] NET: Registered protocol family 1
[    0.159784] RPC: Registered named UNIX socket transport module.
[    0.159808] RPC: Registered udp transport module.
[    0.159827] RPC: Registered tcp transport module.
[    0.159846] RPC: Registered tcp NFSv4.1 backchannel transport module.
[    0.161269] hw perfevents: enabled with armv7_cortex_a7 PMU driver, 7 counters available
[    0.164109] workingset: timestamp_bits=14 max_order=18 bucket_order=4
[    0.172121] FS-Cache: Netfs 'nfs' registered for caching
[    0.172732] NFS: Registering the id_resolver key type
[    0.172780] Key type id_resolver registered
[    0.172799] Key type id_legacy registered
[    0.172828] nfs4filelayout_init: NFSv4 File Layout Driver Registering...
[    0.174724] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 251)
[    0.174871] io scheduler noop registered
[    0.174894] io scheduler deadline registered (default)
[    0.175181] io scheduler cfq registered
[    0.175203] io scheduler mq-deadline registered
[    0.175223] io scheduler kyber registered
[    0.177884] BCM2708FB: allocated DMA memory fad10000
[    0.177929] BCM2708FB: allocated DMA channel 0 @ bb813000
[    0.186477] Console: switching to colour frame buffer device 82x26
[    0.194772] bcm2835-rng 3f104000.rng: hwrng registered
[    0.197192] vc-mem: phys_addr:0x00000000 mem_base=0x3ec00000 mem_size:0x40000000(1024 MiB)
[    0.202358] vc-sm: Videocore shared memory driver
[    0.204941] gpiomem-bcm2835 3f200000.gpiomem: Initialised: Registers at 0x3f200000
[    0.219121] brd: module loaded
[    0.230064] loop: module loaded
[    0.232403] Loading iSCSI transport class v2.0-870.
[    0.235384] libphy: Fixed MDIO Bus: probed
[    0.237763] usbcore: registered new interface driver lan78xx
[    0.240091] usbcore: registered new interface driver smsc95xx
[    0.242284] dwc_otg: version 3.00a 10-AUG-2012 (platform bus)
[    0.472531] Core Release: 2.80a
[    0.474704] Setting default values for core params
[    0.476947] Finished setting default values for core params
[    0.679478] Using Buffer DMA mode
[    0.681786] Periodic Transfer Interrupt Enhancement - disabled
[    0.684160] Multiprocessor Interrupt Enhancement - disabled
[    0.686588] OTG VER PARAM: 0, OTG VER FLAG: 0
[    0.688972] Dedicated Tx FIFOs mode
[    0.691687] WARN::dwc_otg_hcd_init:1046: FIQ DMA bounce buffers: virt = 0xbad04000 dma = 0xfad04000 len=9024
[    0.696394] FIQ FSM acceleration enabled for :
               Non-periodic Split Transactions
               Periodic Split Transactions
               High-Speed Isochronous Endpoints
               Interrupt/Control Split Transaction hack enabled
[    0.707456] dwc_otg: Microframe scheduler enabled
[    0.707505] WARN::hcd_init_fiq:459: FIQ on core 1 at 0x805e7d20
[    0.709784] WARN::hcd_init_fiq:460: FIQ ASM at 0x805e8088 length 36
[    0.712050] WARN::hcd_init_fiq:486: MPHI regs_base at 0xbb87e000
[    0.714342] dwc_otg 3f980000.usb: DWC OTG Controller
[    0.716661] dwc_otg 3f980000.usb: new USB bus registered, assigned bus number 1
[    0.719027] dwc_otg 3f980000.usb: irq 62, io mem 0x00000000
[    0.721353] Init: Port Power? op_state=1
[    0.723633] Init: Power Port (0)
[    0.726021] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002
[    0.728337] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    0.730639] usb usb1: Product: DWC OTG Controller
[    0.732907] usb usb1: Manufacturer: Linux 4.14.50-v7+ dwc_otg_hcd
[    0.735187] usb usb1: SerialNumber: 3f980000.usb
[    0.738023] hub 1-0:1.0: USB hub found
[    0.740231] hub 1-0:1.0: 1 port detected
[    0.742807] dwc_otg: FIQ enabled
[    0.742812] dwc_otg: NAK holdoff enabled
[    0.742816] dwc_otg: FIQ split-transaction FSM enabled
[    0.742826] Module dwc_common_port init
[    0.743040] usbcore: registered new interface driver usb-storage
[    0.745328] mousedev: PS/2 mouse device common for all mice
[    0.747548] IR NEC protocol handler initialized
[    0.749715] IR RC5(x/sz) protocol handler initialized
[    0.751944] IR RC6 protocol handler initialized
[    0.754124] IR JVC protocol handler initialized
[    0.756198] IR Sony protocol handler initialized
[    0.758280] IR SANYO protocol handler initialized
[    0.760364] IR Sharp protocol handler initialized
[    0.762368] IR MCE Keyboard/mouse protocol handler initialized
[    0.764390] IR XMP protocol handler initialized
[    0.767052] bcm2835-wdt 3f100000.watchdog: Broadcom BCM2835 watchdog timer
[    0.769390] bcm2835-cpufreq: min=600000 max=1200000
[    0.771866] sdhci: Secure Digital Host Controller Interface driver
[    0.773990] sdhci: Copyright(c) Pierre Ossman
[    0.776389] mmc-bcm2835 3f300000.sdio: could not get clk, deferring probe
[    0.778890] sdhost-bcm2835 3f202000.mmc: could not get clk, deferring probe
[    0.781175] sdhci-pltfm: SDHCI platform and OF driver helper
[    0.783826] ledtrig-cpu: registered to indicate activity on CPUs
[    0.786159] hidraw: raw HID events driver (C) Jiri Kosina
[    0.788609] usbcore: registered new interface driver usbhid
[    0.790911] usbhid: USB HID core driver
[    0.793755] vchiq: vchiq_init_state: slot_zero = bad80000, is_master = 0
[    0.797460] [vc_sm_connected_init]: start
[    0.806244] [vc_sm_connected_init]: end - returning 0
[    0.809118] Initializing XFRM netlink socket
[    0.811536] NET: Registered protocol family 17
[    0.813998] Key type dns_resolver registered
[    0.816783] Registering SWP/SWPB emulation handler
[    0.819781] registered taskstats version 1
[    0.828017] uart-pl011 3f201000.serial: cts_event_workaround enabled
[    0.830585] 3f201000.serial: ttyAMA0 at MMIO 0x3f201000 (irq = 87, base_baud = 0) is a PL011 rev2
[    1.838340] console [ttyAMA0] enabled
[    1.846254] mmc-bcm2835 3f300000.sdio: mmc_debug:0 mmc_debug2:0
[    1.854687] mmc-bcm2835 3f300000.sdio: DMA channel allocated
[    1.922078] sdhost: log_buf @ bad07000 (fad07000)
[    1.965080] mmc1: queuing unknown CIS tuple 0x80 (2 bytes)
[    1.973039] Indeed it is in host mode hprt0 = 00021501
[    2.041846] mmc1: queuing unknown CIS tuple 0x80 (3 bytes)
[    2.051250] mmc1: queuing unknown CIS tuple 0x80 (3 bytes)
[    2.061447] mmc0: sdhost-bcm2835 loaded - DMA enabled (>1)
[    2.062279] random: fast init done
[    2.075790] of_cfs_init
[    2.080376] of_cfs_init: OK
[    2.085749] Waiting for root device PARTUUID=a35dd44f-02...
[    2.094942] mmc1: queuing unknown CIS tuple 0x80 (7 bytes)
[    2.104197] mmc1: queuing unknown CIS tuple 0x80 (3 bytes)
[    2.116973] mmc1: queuing unknown CIS tuple 0x80 (6 bytes)
[    2.178049] mmc0: new high speed MMC card at address 0001
[    2.185545] usb 1-1: new high-speed USB device number 2 using dwc_otg
[    2.194429] Indeed it is in host mode hprt0 = 00001101
[    2.261923] mmcblk0: mmc0:0001 4FPD3R 3.64 GiB
[    2.268585] mmcblk0boot0: mmc0:0001 4FPD3R partition 1 4.00 MiB
[    2.276794] mmcblk0boot1: mmc0:0001 4FPD3R partition 2 4.00 MiB
[    2.284869] mmcblk0rpmb: mmc0:0001 4FPD3R partition 3 512 KiB
[    2.293964]  mmcblk0: p1 p2
[    2.310796] EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Opts: (null)
[    2.322855] VFS: Mounted root (ext4 filesystem) readonly on device 179:2.
[    2.338659] mmc1: error -110 whilst initialising SDIO card
[    2.338925] devtmpfs: mounted
[    2.352896] Freeing unused kernel memory: 1024K
[    2.430607] mmc1: queuing unknown CIS tuple 0x80 (2 bytes)
[    2.440440] mmc1: queuing unknown CIS tuple 0x80 (3 bytes)
[    2.450210] mmc1: queuing unknown CIS tuple 0x80 (3 bytes)
[    2.458179] usb 1-1: New USB device found, idVendor=0424, idProduct=9514
[    2.467116] usb 1-1: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[    2.477262] hub 1-1:1.0: USB hub found
[    2.483542] hub 1-1:1.0: 5 ports detected
[    2.491912] mmc1: queuing unknown CIS tuple 0x80 (7 bytes)
[    2.614342] mmc1: error -110 whilst initialising SDIO card
[    2.750609] systemd[1]: System time before build time, advancing clock.
[    2.811461] usb 1-1.1: new high-speed USB device number 3 using dwc_otg
[    2.879855] NET: Registered protocol family 10
[    2.887912] Segment Routing with IPv6
[    2.893296] mmc1: error -110 whilst initialising SDIO card
[    2.910527] ip_tables: (C) 2000-2006 Netfilter Core Team
[    2.934307] random: systemd: uninitialized urandom read (16 bytes read)
[    2.941769] usb 1-1.1: New USB device found, idVendor=0424, idProduct=ec00
[    2.941778] usb 1-1.1: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[    2.944381] smsc95xx v1.0.6
[    2.974423] systemd[1]: systemd 232 running in system mode. (+PAM +AUDIT +SELINUX +IMA +APPARMOR +SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +XZ +LZ4 +SECCOMP +BLKID +ELFUTILS +KMOD +IDN)
[    3.000363] systemd[1]: Detected architecture arm.
[    3.017425] systemd[1]: Set hostname to <raspberrypi>.
[    3.045129] smsc95xx 1-1.1:1.0 eth0: register 'smsc95xx' at usb-3f980000.usb-1.1, smsc95xx USB 2.0 Ethernet, b8:27:eb:b1:65:c7
[    3.057659] random: systemd: uninitialized urandom read (16 bytes read)
[    3.088192] random: systemd-gpt-aut: uninitialized urandom read (16 bytes read)
[    3.112791] uart-pl011 3f201000.serial: no DMA platform data
[    3.319320] mmc1: error -110 whilst initialising SDIO card
[    3.437651] systemd[1]: Reached target Swap.
[    3.448598] systemd[1]: Listening on Syslog Socket.
[    3.460010] systemd[1]: Created slice User and Session Slice.
[    3.472020] systemd[1]: Listening on udev Control Socket.
[    3.504810] systemd[1]: Listening on Journal Socket (/dev/log).
[    3.517242] systemd[1]: Created slice System Slice.
[    3.528145] systemd[1]: Listening on fsck to fsckd communication Socket.
[    4.005133] EXT4-fs (mmcblk0p2): re-mounted. Opts: (null)
[    4.108536] systemd-journald[100]: Received request to flush runtime journal from PID 1
[    4.569748] mmc1: error -110 whilst initialising SDIO card
[    4.790023] mmc1: error -110 whilst initialising SDIO card
[    5.108165] mmc1: error -110 whilst initialising SDIO card
[    5.500513] mmc1: error -110 whilst initialising SDIO card
[    5.933944] smsc95xx 1-1.1:1.0 eth0: hardware isn't capable of remote wakeup
[    5.934104] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
[    6.033034] Adding 102396k swap on /var/swap.  Priority:-2 extents:1 across:102396k SSFS
[    6.720781] mmc1: error -110 whilst initialising SDIO card
[    6.922344] mmc1: error -110 whilst initialising SDIO card
[    7.006942] sdio_read_cis: 50 callbacks suppressed
[    7.006948] mmc1: queuing unknown CIS tuple 0x80 (2 bytes)
[    7.009884] mmc1: queuing unknown CIS tuple 0x80 (3 bytes)
[    7.012832] mmc1: queuing unknown CIS tuple 0x80 (3 bytes)
[    7.018107] mmc1: queuing unknown CIS tuple 0x80 (7 bytes)
[    7.021044] mmc1: queuing unknown CIS tuple 0x80 (3 bytes)
[    7.025777] mmc1: queuing unknown CIS tuple 0x80 (6 bytes)
[    7.184224] mmc1: error -110 whilst initialising SDIO card
[    7.279048] mmc1: queuing unknown CIS tuple 0x80 (2 bytes)
[    7.283758] mmc1: queuing unknown CIS tuple 0x80 (3 bytes)
[    7.288471] mmc1: queuing unknown CIS tuple 0x80 (3 bytes)
[    7.296945] mmc1: queuing unknown CIS tuple 0x80 (7 bytes)
[    7.562200] mmc1: error -110 whilst initialising SDIO card
[    8.801635] mmc1: error -110 whilst initialising SDIO card
[    9.002397] mmc1: error -110 whilst initialising SDIO card
[    9.264589] mmc1: error -110 whilst initialising SDIO card
[    9.440064] random: crng init done
[    9.440074] random: 7 urandom warning(s) missed due to ratelimiting
[    9.642516] mmc1: error -110 whilst initialising SDIO card
[   10.881659] mmc1: error -110 whilst initialising SDIO card
[   11.082274] mmc1: error -110 whilst initialising SDIO card
[   11.344564] mmc1: error -110 whilst initialising SDIO card
[   11.722449] mmc1: error -110 whilst initialising SDIO card
[   12.866382] sdio_read_cis: 50 callbacks suppressed
[   12.866388] mmc1: queuing unknown CIS tuple 0x80 (2 bytes)
[   12.867941] mmc1: queuing unknown CIS tuple 0x80 (3 bytes)
[   12.869495] mmc1: queuing unknown CIS tuple 0x80 (3 bytes)
[   12.872298] mmc1: queuing unknown CIS tuple 0x80 (7 bytes)
[   12.873852] mmc1: queuing unknown CIS tuple 0x80 (3 bytes)
[   12.876329] mmc1: queuing unknown CIS tuple 0x80 (6 bytes)
[   12.960178] mmc1: error -110 whilst initialising SDIO card
[   13.030567] mmc1: queuing unknown CIS tuple 0x80 (2 bytes)
[   13.032587] mmc1: queuing unknown CIS tuple 0x80 (3 bytes)
[   13.034598] mmc1: queuing unknown CIS tuple 0x80 (3 bytes)
[   13.038218] mmc1: queuing unknown CIS tuple 0x80 (7 bytes)
[   13.152099] mmc1: error -110 whilst initialising SDIO card
[   13.414504] mmc1: error -110 whilst initialising SDIO card
[   13.792365] mmc1: error -110 whilst initialising SDIO card
[   15.041605] mmc1: error -110 whilst initialising SDIO card
[   15.242263] mmc1: error -110 whilst initialising SDIO card
[   15.504654] mmc1: error -110 whilst initialising SDIO card
[   15.882451] mmc1: error -110 whilst initialising SDIO card
[   17.120612] mmc1: error -110 whilst initialising SDIO card
[   17.322262] mmc1: error -110 whilst initialising SDIO card
[   17.584527] mmc1: error -110 whilst initialising SDIO card
[   17.962453] mmc1: error -110 whilst initialising SDIO card
[   19.106378] sdio_read_cis: 62 callbacks suppressed
[   19.106384] mmc1: queuing unknown CIS tuple 0x80 (2 bytes)
[   19.107941] mmc1: queuing unknown CIS tuple 0x80 (3 bytes)
[   19.109497] mmc1: queuing unknown CIS tuple 0x80 (3 bytes)
[   19.112304] mmc1: queuing unknown CIS tuple 0x80 (7 bytes)
[   19.113858] mmc1: queuing unknown CIS tuple 0x80 (3 bytes)
[   19.116332] mmc1: queuing unknown CIS tuple 0x80 (6 bytes)
[   19.200183] mmc1: error -110 whilst initialising SDIO card
[   19.270563] mmc1: queuing unknown CIS tuple 0x80 (2 bytes)
[   19.272595] mmc1: queuing unknown CIS tuple 0x80 (3 bytes)
[   19.274608] mmc1: queuing unknown CIS tuple 0x80 (3 bytes)
[   19.278222] mmc1: queuing unknown CIS tuple 0x80 (7 bytes)
[   19.392014] mmc1: error -110 whilst initialising SDIO card
[   19.654502] mmc1: error -110 whilst initialising SDIO card
[   20.032417] mmc1: error -110 whilst initialising SDIO card
[   21.281756] mmc1: error -110 whilst initialising SDIO card
[   21.482388] mmc1: error -110 whilst initialising SDIO card
[   21.744641] mmc1: error -110 whilst initialising SDIO card
[   22.122450] mmc1: error -110 whilst initialising SDIO card
[   23.360615] mmc1: error -110 whilst initialising SDIO card
[   23.562252] mmc1: error -110 whilst initialising SDIO card
[   23.824567] mmc1: error -110 whilst initialising SDIO card
[   24.202503] mmc1: error -110 whilst initialising SDIO card
[   25.347388] sdio_read_cis: 62 callbacks suppressed

ctag
Posts: 7
Joined: Mon Apr 30, 2018 1:02 pm

Re: DT overlay does not seem to have effect

Wed Oct 03, 2018 8:52 pm

If I change the overclock to 20, then brcmfmac is loaded automatically after the system boot.

Code: Select all

dtoverlay=sdio-wifi,poll_once=off,bus_width=4,sdio_overclock=20
gpio=41=op,dh
dmesg:

Code: Select all

[    3.975695] EXT4-fs (mmcblk0p2): re-mounted. Opts: (null)
[    4.109643] systemd-journald[104]: Received request to flush runtime journal from PID 1
[    4.822031] brcmfmac: F1 signature read @0x18000000=0x1531a9a6
[    4.833062] brcmfmac: brcmf_fw_map_chip_to_name: using brcm/brcmfmac43430-sdio.bin for chip 0x00a9a6(43430) rev 0x000001
[    4.833301] usbcore: registered new interface driver brcmfmac
[    5.997531] Adding 102396k swap on /var/swap.  Priority:-2 extents:1 across:102396k SSFS
[    6.013490] smsc95xx 1-1.1:1.0 eth0: hardware isn't capable of remote wakeup
[    6.013738] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
[    6.071446] brcmfmac: brcmf_sdio_htclk: HT Avail timeout (1000000): clkctl 0x50
[    7.121872] brcmfmac: brcmf_sdio_htclk: HT Avail timeout (1000000): clkctl 0x50
[   18.831046] random: crng init done
[   18.831057] random: 7 urandom warning(s) missed due to ratelimiting
But still no network device. Searching online for the HT Avail line brought me to a forum thread: https://www.raspberrypi.org/forums/view ... 9&start=50

Reloading brcmfmac appears to work, wlan0 is found.

Code: Select all

[email protected]:~# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN group default qlen 1000
    link/ether b8:27:eb:b1:65:c7 brd ff:ff:ff:ff:ff:ff
3: wlan0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN group default qlen 1000
    link/ether dc:ef:ca:25:4e:eb brd ff:ff:ff:ff:ff:ff
That doesn't seem like a good, reliable solution though. Is there a better method for bringing up SDIO peripherals such as this?

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

Re: DT overlay does not seem to have effect

Wed Oct 03, 2018 9:07 pm

It sounds like you have some signal integrity issues, hence the 20MHz limit, and you aren't respecting the requirement that the clock is valid when the 43430 is brought out of reset.

Did you give up on the Murata part?

ctag
Posts: 7
Joined: Mon Apr 30, 2018 1:02 pm

Re: DT overlay does not seem to have effect

Wed Oct 03, 2018 9:55 pm

Still using the Murata part. The PCBs are already manufactured, so I can't change much about them at this point.

If you're referring to the WL_REG_ON line, I can leave it out of config.txt, and then manually set it high after the system boots. It works about the same, brcmfmac sees something but doesn't enumerate a network device.

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

Re: DT overlay does not seem to have effect

Thu Oct 04, 2018 7:58 am

The firmware knows how to bring the BCM43430 (and BCM43455) out of reset - you just need to define a "WL_ON" pin in the dt-blob. If you also define a "WL_LPO_CLK" pin it will enable a 32768Hz GPCLK2 on that pin (which has to be GPIO6 or GPIO43).

Well done on trying stock Raspbian, by the way - that saved a lot of debugging time.

ctag
Posts: 7
Joined: Mon Apr 30, 2018 1:02 pm

Re: DT overlay does not seem to have effect

Thu Oct 04, 2018 11:21 pm

Thanks, PhilE.

I hate that I can't seem to catch fish on my own here. I took the sample dt-blob (https://github.com/raspberrypi/firmware ... t-blob.dts) and tweaked it with WL_ON, but must have done it incorrectly. The system behaves as it did before. I also don't see dt-blob.bin mentioned in vcdbg output, I want to go back and check with the older system if it's supposed to be there.

The LPO_IN line is disconnected on the PCB, but I can add a wire to see if it helps.

Code: Select all

/dts-v1/;

/ {
   videocore {
      pins_cm3 { // Pi 3 CM3
         pin_config {
            [email protected] {
               polarity = "active_high";
               termination = "pull_down";
               startup_state = "inactive";
               function = "input";
            }; // pin
            [email protected] { function = "uart0";  termination = "no_pulling"; drive_strength_mA = < 8 >; }; // TX uart0
            [email protected] { function = "uart0";  termination = "pull_up"; drive_strength_mA = < 8 >; }; // RX uart0
            [email protected] { function = "output";   termination = "pull_down";    }; // WL_ON
            [email protected] { function = "input";   termination = "pull_up";    }; // SMPS_SCL
            [email protected] { function = "input";   termination = "pull_up";    }; // SMPS_SDA
            [email protected] { function = "sdcard"; termination = "pull_up";    drive_strength_mA = < 8 >; }; // SD CLK
            [email protected] { function = "sdcard"; termination = "pull_up";    drive_strength_mA = < 8 >; }; // SD CMD
            [email protected] { function = "sdcard"; termination = "pull_up";    drive_strength_mA = < 8 >; }; // SD D0
            [email protected] { function = "sdcard"; termination = "pull_up";    drive_strength_mA = < 8 >; }; // SD D1
            [email protected] { function = "sdcard"; termination = "pull_up";    drive_strength_mA = < 8 >; }; // SD D2
            [email protected] { function = "sdcard"; termination = "pull_up";    drive_strength_mA = < 8 >; }; // SD D3
            [email protected] { function = "input";  termination = "no_pulling"; polarity = "active_low"; }; // Hotplug
            [email protected] { function = "output"; termination = "no_pulling"; polarity = "active_low"; }; // EMMC_ENABLE_N
         }; // pin_config

         pin_defines {
            [email protected]_CONTROL_ATTACHED {
               type = "external";
               number = <0>;
            };
            [email protected]_ENABLE {
               type = "external";
               number = <1>;
            };
            [email protected]_CAMERAS {
               type = "internal";
               number = <0>;
            };
            [email protected]_LOW {
               type = "absent";
            };
            [email protected]_DISK_ACTIVITY {
               type = "absent";
            };
            [email protected]_RUN {
               type = "absent";
            };
            [email protected]_SDA {
               type = "internal";
               number = <46>;
            };
            [email protected]_SCL {
               type = "internal";
               number = <47>;
            };
            [email protected]_CLK {
               type = "absent";
            };
            [email protected]_LPO_CLK {
               type = "absent";
            };
            [email protected]_LIMIT_1A2 {
               type = "absent";
            };
            [email protected]_1V8_SEL {
               type = "absent";
            };
            [email protected] {
               type = "absent";
            };
            [email protected] {
               type = "absent";
            };
            [email protected]_MODE {
               type = "absent";
            };
            [email protected]_CARD_DETECT {
               type = "absent";
            };
            [email protected]_SDA {
               type = "absent";
            };
            [email protected]_SCL {
               type = "absent";
            };
            [email protected]_ON {
               type = "internal";
               number = <41>;
            };
         }; // pin_defines
      }; // pins

   };
};

Return to “Device Tree”