This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

CC3301: Wifi issues on new boards made with with one date code that work when replaced with a different date code

Part Number: CC3301


Tool/software:

Hi TI,

We have a custom AM62X board with CC3301 on it.  We just got a new build of boards in and was having issue with getting detected.  I want to verify there wasn't a silicon change that would affect us or if there was other other devicetree change required.

Using buildroot (roughly off master branch from a month ago)

Linux Version: 6.1.80 (ti-linux-09.02.00.009)

U-Boot: 2024.01 (ti-u-boot-2024.01)

CC3301 driver: 1.0.0.6

GCC: 12.4.0

Our boards we got in came with this date code. CC3301 ENJA TI 418 AZ0Y G4

Our previous working board boards came with date code: CC3301 ENJA TI 3A8 AN25 G4

On the 3 new boards here was our debug steps:

Brought up new boards - non functional wifi

We removed 418 AZ0Y G4, cleaned up and reworked with 418 AZ0Y G4 - all 3 non functional wifi

We removed 418 AZ0Y G4, cleaned up and reworked with 3A8 AN25 G4 - all 3 are functional

We verified there wasn't any PCB changes around the wifi on these new board, but we will go more indepth checking the PCB

Dmesg comparison:

Both boards init the BLE exactly

 Bluetooth: Core ver 2.22
 NET: Registered PF_BLUETOOTH protocol family
 Bluetooth: HCI device and connection manager initialized
 Bluetooth: HCI socket layer initialized
 Bluetooth: L2CAP socket layer initialized
 Bluetooth: SCO socket layer initialized
 Bluetooth: [bt sdio] BLE SDIO init module
 Bluetooth: [bt sdio] PROBE vendor=0x97, device=0x4077, class=255, fn=1 0xffff0000018de400
 Bluetooth: [bt sdio hci] btti_hci_add_sdio_dev
 Bluetooth: [bt sdio hci] Starting work thread...
 Bluetooth: [bt sdio] TI cc33xx BLE-over-SDIO driver is up and running!
 Bluetooth: [bt sdio hci] work thread is started
 Bluetooth: [bt sdio hci] work thread is sleeping...
 Bluetooth: [bt sdio] PROBE vendor=0x97, device=0x4077, class=255, fn=2 0xffff0000018de800
 cc33xx_sdio mmc2:0001:2: Using SDIO in-band IRQ

Previous nonfunctional board replace and became functional with 3A8 AN25 G4

 cc33xx_driver cc33xx.2.auto: Direct firmware load for ti-connectivity/cc33xx-nvs.bin failed with error -2
 wlcore: Wireless driver version 1.7.0.126
 wlcore: Wireless firmware version 1.7.0.185
 wlcore: Wireless PHY version 1.2.39.5.42.67
 wlcore: loaded
wlan0     Link encap:Ethernet  HWaddr 34:68:B5:89:86:43
          BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

Non Functional wifi board with 418 AZ0Y G4:

 cc33xx_driver cc33xx.2.auto: Direct firmware load for ti-connectivity/cc33xx-nvs.bin failed with error -2
 wlcore: ERROR FW is stuck, triggering recovery
 wlcore: ERROR boot IRQ timeout
 wlcore: ERROR FW download failed
ifconfig: wlan0: error fetching interface information: Device not found

From our DTS (I'll attach the whole DTS here as well):

&sdhci2 {
	/* CC3301 */
	status = "okay";
	vmmc-supply = <&wlan_en>;
	pinctrl-names = "default";
	pinctrl-0 = <&wifisdio_pins_default>;
	bus-width = <4>;
	non-removable;
	ti,fails-without-test-cd;
	cap-power-off-card;
	keep-power-in-suspend;
	ti,driver-strength-ohm = <50>;
	assigned-clocks = <&k3_clks 157 158>;
	assigned-clock-parents = <&k3_clks 157 160>;

	#address-cells = <1>;
	#size-cells = <0>;
	wlcore: wlcore@2 {
		compatible = "ti,cc33xx";
		reg = <2>;
		// 
		// pinctrl-names = "default";
		// pinctrl-0 = <&wifi_irq_pins_default>;
		// interrupt-parent = <&main_gpio0>;
		// interrupts = <72 IRQ_TYPE_EDGE_RISING>;
	};
	
	// TI-BLE-SDIO interface
    btti: btti@1 {
        compatible = "ti,cc33xxbt";
        reg = <1>;
    };
	
};



	wifi_rst_pins_default: wifi-rst-pins-default {
		pinctrl-single,pins = <
			AM62X_IOPAD(0x0124, PIN_OUTPUT_PULLDOWN, 7) /* (A23) MMC2_SDCD.GPIO0_71 */
		>;
	};
	wifi_irq_pins_default: wifi-irq-pins-default {
		pinctrl-single,pins = <
			AM62X_IOPAD(0x0128, PIN_INPUT_PULLDOWN, 7) /* (B23) MMC2_SDWP.GPIO0_72 */
		>;
	};

	wifisdio_pins_default: wifisdio-default-pins {
		pinctrl-single,pins = <
			AM62X_IOPAD(0x0120, PIN_INPUT, 0) /* (C24) MMC2_CMD */
			AM62X_IOPAD(0x0118, PIN_OUTPUT, 0) /* (D25) MMC2_CLK */
			AM62X_IOPAD(0x011C, PIN_INPUT, 0) /* () MMC2_CLKLB */
			AM62X_IOPAD(0x0114, PIN_INPUT, 0) /* (B24) MMC2_DAT0 */
			AM62X_IOPAD(0x0110, PIN_INPUT, 0) /* (C25) MMC2_DAT1 */
			AM62X_IOPAD(0x010c, PIN_INPUT, 0) /* (E23) MMC2_DAT2 */
			AM62X_IOPAD(0x0108, PIN_INPUT, 0) /* (D24) MMC2_DAT3 */
		>;
	};
	

Any issue or changes I need to make in software?

  • More testing:

    We took an older working board with 3A8 AN25 and replaced it with 418 AZ0Y and wifi no longer works.

    Full DTS:

    // SPDX-License-Identifier: GPL-2.0
    /*
     * AM625 SK: https://www.ti.com/lit/zip/sprr448
     *
     * Copyright (C) 2021-2022 Texas Instruments Incorporated - https://www.ti.com/
     */
    
    /dts-v1/;
    #include <dt-bindings/leds/common.h>
    #include <dt-bindings/gpio/gpio.h>
    #include <dt-bindings/interrupt-controller/arm-gic.h>
    #include "ti/k3-am625.dtsi"
    
    / {
    	compatible = "ti,am625-sk", "ti,am625";
    	model = "LandisGyr TI SOM";
    
    	aliases {
    		serial2 = &main_uart0;
    		serial3 = &main_uart2;
    		serial4 = &main_uart5;
    
    	mmc0 = &sdhci0;
    		mmc2 = &sdhci2;
    
    		ethernet0 = &cpsw_port1;
    		usb0 = &usb0;
    		usb1 = &usb1;
    	};
    
    	cpus {
    		cpu-map {
    			cluster0 {
    				/delete-node/ core1;
    				/delete-node/ core2;
    				/delete-node/ core3;
    			};
    		};
    
    		/delete-node/ cpu@1;
    		/delete-node/ cpu@2;
    		/delete-node/ cpu@3;
    	};
    
    	chosen {
    		stdout-path = "serial2:115200n8";
    		bootargs = "console=ttyS2,115200n8 earlycon=ns16550a,mmio32,0x02800000";
    	};
    
    	opp-table {
    		/* Add 1.4GHz OPP for am625-sk board. Requires VDD_CORE to be at 0.85V */
    		opp-1400000000 {
    			opp-hz = /bits/ 64 <1400000000>;
    			opp-supported-hw = <0x01 0x0004>;
    			clock-latency-ns = <6000000>;
    		};
    	};
    
    	memory@80000000 {
    		device_type = "memory";
    		/* 512MB RAM */
    		reg = <0x00000000 0x80000000 0x00000000 0x20000000>;
    
    	};
    
    	vcc_3v3_sys: regulator-2 {
    		/* output of USB with diode drop or battery? */
    		compatible = "regulator-fixed";
    		regulator-name = "vcc_3v3_sys";
    		regulator-min-microvolt = <3300000>;
    		regulator-max-microvolt = <3300000>;
    		regulator-always-on;
    		regulator-boot-on;
    	};
    
    	wlan_en: regulator-7 {
    		compatible = "regulator-fixed";
    		regulator-name = "wlan_en";
    		regulator-min-microvolt = <1800000>;
    		regulator-max-microvolt = <1800000>;
    		vin-supply = <&ldo1_reg>;
    		enable-active-high;
    		gpios = <&main_gpio0 71 GPIO_ACTIVE_HIGH>;
    		pinctrl-names = "default";
    		pinctrl-0 = <&wifi_rst_pins_default>;
    	};
    
    
    	reserved-memory {
    		#address-cells = <2>;
    		#size-cells = <2>;
    		ranges;
    
    		ramoops: ramoops@9ca00000 {
    			compatible = "ramoops";
    			reg = <0x00 0x9c700000 0x00 0x00100000>;
    			record-size = <0x8000>;
    			console-size = <0x8000>;
    			ftrace-size = <0x00>;
    			pmsg-size = <0x8000>;
    		};
    
    		wkup_r5fss0_core0_dma_memory_region: r5f-dma-memory@9da00000 {
    			compatible = "shared-dma-pool";
    			reg = <0x00 0x9da00000 0x00 0x00100000>;
    			no-map;
    		};
    
    		wkup_r5fss0_core0_memory_region: r5f-memory@9db00000 {
    			compatible = "shared-dma-pool";
    			reg = <0x00 0x9db00000 0x00 0x00c00000>;
    			no-map;
    		};
    
    		secure_tfa_ddr: tfa@9e780000 {
    			reg = <0x00 0x9e780000 0x00 0x80000>;
    			alignment = <0x1000>;
    			no-map;
    		};
    
    		secure_ddr: optee@9e800000 {
    			reg = <0x00 0x9e800000 0x00 0x01800000>; /* for OP-TEE */
    			alignment = <0x1000>;
    			no-map;
    		};
    	};
    
    	leds {
    		compatible = "gpio-leds";
    		pinctrl-names = "default";
    		pinctrl-0 = <&usr_led_pins_default>;
    
    		green {
    			label = "green";
    			gpios = <&main_gpio1 45 GPIO_ACTIVE_HIGH>;
    			linux,default-trigger = "heartbeat";
    			function = LED_FUNCTION_HEARTBEAT;
    			default-state = "on";
    
    		};
    		amber {
    			label = "amber";
    			gpios = <&main_gpio1 49 GPIO_ACTIVE_HIGH>;
    			linux,default-trigger = "activity";
    			default-state = "on";
    		};		
    	};
    };
    
    &main_rti1 {
                    status = "disabled";
    };
    
    &main_rti2 {
                    status = "disabled";
    };
    
    &main_rti3 {
                    status = "disabled";
    };
    
    &gpu {
                    status = "disabled";
    };
    
    &main_rti15 {
                    status = "disabled";
    };
    
    &main_pmx0 {
    	gpio1_pins_default: gpio1-default-pins {
    		pinctrl-single,pins = <
    			AM62X_IOPAD(0x0194, PIN_INPUT_PULLDOWN, 7) /* (B19) MCASP0_AXR3.GPIO1_7 HEADER_GPIO_1 */
    			AM62X_IOPAD(0x0198, PIN_INPUT, 7) /* (A19) MCASP0_AXR2.GPIO1_8 HEADER_PWR_FLAG#*/
    			AM62X_IOPAD(0x019c, PIN_OUTPUT_PULLDOWN, 7) /* (B18) MCASP0_AXR1.GPIO1_9 HEADER_EIC_LAST_GASP*/
    			AM62X_IOPAD(0x01a0, PIN_OUTPUT_PULLDOWN, 7) /* (E18) MCASP0_AXR0.GPIO1_10 HEADER_EIC_REMAIN_ON*/
    			AM62X_IOPAD(0x01a4, PIN_OUTPUT, 7) /* (B20) MCASP0_ACLKX.GPIO1_11 HEADER_GPIO_11 (FAN_RST#)*/
    			AM62X_IOPAD(0x01ac, PIN_INPUT_PULLDOWN, 7) /* (E19) MCASP0_AFSR.GPIO1_13 HEADER_GPIO_5*/
    			AM62X_IOPAD(0x01b0, PIN_OUTPUT, 7) /* (A20) MCASP0_ACLKR.GPIO1_14 HEADER_GPIO_3 (RESETSTATZ#)*/
    			AM62X_IOPAD(0x01b8, PIN_INPUT_PULLDOWN, 7) /* (C13) SPI0_CS1.GPIO1_16 HEADER_GPIO_8*/
    			AM62X_IOPAD(0x01e8, PIN_INPUT_PULLDOWN, 7) /* (B17) I2C1_SCL.GPIO1_28 HEADER_GPIO_9 */
    			AM62X_IOPAD(0x01ec, PIN_INPUT_PULLDOWN, 7) /* (A17) I2C1_SDA.GPIO1_29 HEADER_GPIO_10*/
    			AM62X_IOPAD(0x01f0, PIN_INPUT_PULLDOWN, 7) /* (A18) EXT_REFCLK1.GPIO1_30 HEADER_GPIO_2 */
    			AM62X_IOPAD(0x022c, PIN_INPUT, 7) /* (B21) MMC1_DAT1.GPIO1_44 HEADER_GPIO_16 (WAKE#)*/
    			AM62X_IOPAD(0x0240, PIN_OUTPUT_PULLDOWN, 7) /* (D17) MMC1_SDCD.GPIO1_48 HEADER_GPIO_12 (WAN_RST#)*/
    		>;
    	};
    	gpio0_pins_default: gpio0-default-pins {
    		pinctrl-single,pins = <
    			AM62X_IOPAD(0x0084, PIN_OUTPUT, 7) /* (L23) GPMC0_ADVn_ALE.GPIO0_32 VPP_LDO_EN*/
    			AM62X_IOPAD(0x0090, PIN_INPUT_PULLUP, 7) /* (M24) GPMC0_BE0n_CLE.GPIO0_35 */
    			AM62X_IOPAD(0x0094, PIN_INPUT_PULLUP, 7) /* (N20) GPMC0_BE1n.GPIO0_36 */
    			AM62X_IOPAD(0x00a4, PIN_INPUT_PULLUP, 7) /* (M22) GPMC0_DIR.GPIO0_40 */			
    			AM62X_IOPAD(0x00a8, PIN_OUTPUT, 7) /* (M21) GPMC0_CSn0.GPIO0_41 EMMC_RST#*/
    			AM62X_IOPAD(0x00ac, PIN_INPUT, 7) /* (L21) GPMC0_CSn1.GPIO0_42 SOM_ID MSB*/
    			AM62X_IOPAD(0x00b0, PIN_INPUT, 7) /* (K22) GPMC0_CSn2.GPIO0_43 SOM_ID*/
    			AM62X_IOPAD(0x00b4, PIN_INPUT, 7) /* (K24) GPMC0_CSn3.GPIO0_44 SOM_ID LSB*/
    		>;
    	};
    	bootstrap_pins_default: bootstrap-default-pins {
    		pinctrl-single,pins = <
    			AM62X_IOPAD(0x003c, PIN_INPUT, 0) /* (M25) GPMC0_AD0 */
    			AM62X_IOPAD(0x0040, PIN_INPUT, 0) /* (N23) GPMC0_AD1 */
    		>;
    	};
    	pmici2c_pins_default: pmici2c-default-pins {
    		pinctrl-single,pins = <
    			AM62X_IOPAD(0x01e0, PIN_INPUT_PULLUP, 0) /* (B16) I2C0_SCL */
    			AM62X_IOPAD(0x01e4, PIN_INPUT_PULLUP, 0) /* (A16) I2C0_SDA */
    				>;
    	};
    	mdio_pins_default: mdio-default-pins {
    		pinctrl-single,pins = <
    			AM62X_IOPAD(0x0160, PIN_OUTPUT, 0) /* (AD24) MDIO0_MDC */
    			AM62X_IOPAD(0x015c, PIN_INPUT, 0) /* (AB22) MDIO0_MDIO */
    		>;
    	};
    	emmc_pins_default: emmc-default-pins {
    		pinctrl-single,pins = <
    			AM62X_IOPAD(0x0220, PIN_INPUT_PULLUP, 0) /* (Y3) MMC0_CMD */
    			AM62X_IOPAD(0x0218, PIN_OUTPUT, 0) /* (AB1) MMC0_CLK */
    			AM62X_IOPAD(0x0214, PIN_INPUT_PULLUP, 0) /* (AA2) MMC0_DAT0 */
    			AM62X_IOPAD(0x0210, PIN_INPUT_PULLUP, 0) /* (AA1) MMC0_DAT1 */
    			AM62X_IOPAD(0x020c, PIN_INPUT_PULLUP, 0) /* (AA3) MMC0_DAT2 */
    			AM62X_IOPAD(0x0208, PIN_INPUT_PULLUP, 0) /* (Y4) MMC0_DAT3 */
    			AM62X_IOPAD(0x0204, PIN_INPUT_PULLUP, 0) /* (AB2) MMC0_DAT4 */
    			AM62X_IOPAD(0x0200, PIN_INPUT_PULLUP, 0) /* (AC1) MMC0_DAT5 */
    			AM62X_IOPAD(0x01fc, PIN_INPUT_PULLUP, 0) /* (AD2) MMC0_DAT6 */
    			AM62X_IOPAD(0x01f8, PIN_INPUT_PULLUP, 0) /* (AC2) MMC0_DAT7 */
    		>;
    	};
    
    	wifi_rst_pins_default: wifi-rst-pins-default {
    		pinctrl-single,pins = <
    			AM62X_IOPAD(0x0124, PIN_OUTPUT_PULLDOWN, 7) /* (A23) MMC2_SDCD.GPIO0_71 */
    		>;
    	};
    	wifi_irq_pins_default: wifi-irq-pins-default {
    		pinctrl-single,pins = <
    			AM62X_IOPAD(0x0128, PIN_INPUT_PULLDOWN, 7) /* (B23) MMC2_SDWP.GPIO0_72 */
    		>;
    	};
    
    	wifisdio_pins_default: wifisdio-default-pins {
    		pinctrl-single,pins = <
    			AM62X_IOPAD(0x0120, PIN_INPUT, 0) /* (C24) MMC2_CMD */
    			AM62X_IOPAD(0x0118, PIN_OUTPUT, 0) /* (D25) MMC2_CLK */
    			AM62X_IOPAD(0x011C, PIN_INPUT, 0) /* () MMC2_CLKLB */
    			AM62X_IOPAD(0x0114, PIN_INPUT, 0) /* (B24) MMC2_DAT0 */
    			AM62X_IOPAD(0x0110, PIN_INPUT, 0) /* (C25) MMC2_DAT1 */
    			AM62X_IOPAD(0x010c, PIN_INPUT, 0) /* (E23) MMC2_DAT2 */
    			AM62X_IOPAD(0x0108, PIN_INPUT, 0) /* (D24) MMC2_DAT3 */
    		>;
    	};
    	rmii_pins_default: rmii-default-pins {
    		pinctrl-single,pins = <
    			AM62X_IOPAD(0x0130, PIN_INPUT, 1) /* (AE19) RGMII1_TXC.RMII1_CRS_DV */
    			AM62X_IOPAD(0x0148, PIN_INPUT, 1) /* (AD17) RGMII1_RXC.RMII1_REF_CLK */
    			AM62X_IOPAD(0x014c, PIN_INPUT, 1) /* (AB17) RGMII1_RD0.RMII1_RXD0 */
    			AM62X_IOPAD(0x0150, PIN_INPUT, 1) /* (AC17) RGMII1_RD1.RMII1_RXD1 */
    			AM62X_IOPAD(0x0144, PIN_INPUT, 1) /* (AE17) RGMII1_RX_CTL.RMII1_RX_ER */
    			AM62X_IOPAD(0x0134, PIN_OUTPUT, 1) /* (AE20) RGMII1_TD0.RMII1_TXD0 */
    			AM62X_IOPAD(0x0138, PIN_OUTPUT, 1) /* (AD20) RGMII1_TD1.RMII1_TXD1 */
    			AM62X_IOPAD(0x012c, PIN_OUTPUT, 1) /* (AD19) RGMII1_TX_CTL.RMII1_TX_EN */
    
    			AM62X_IOPAD(0x01a8, PIN_OUTPUT, 7) /* (D20) MCASP0_AFSX.GPIO1_12 HEADER_GPIO_4 (ENET_RST#)*/
    		>;
    	};
    	spi0_pins_default: spi0-default-pins {
    		pinctrl-single,pins = <
    			AM62X_IOPAD(0x01bc, PIN_OUTPUT_PULLDOWN, 0) /* (A14) SPI0_CLK */
    			AM62X_IOPAD(0x01c0, PIN_OUTPUT_PULLDOWN, 0) /* (B13) SPI0_D0 */
    			AM62X_IOPAD(0x01c4, PIN_INPUT_PULLDOWN, 0) /* (B14) SPI0_D1 */
    			AM62X_IOPAD(0x01b4, PIN_OUTPUT_PULLDOWN, 0) /* (A13) SPI0_CS0 */
    		>;
    	};
    	system_pins_default: system-default-pins {
    		pinctrl-single,pins = <
    			AM62X_IOPAD(0x024c, PIN_OUTPUT, 0) /* (F22) RESETSTATz */
    			AM62X_IOPAD(0x0248, PIN_INPUT_PULLUP, 0) /* (F20) RESET_REQz */
    		>;
    	};
    	linuxcli_pins_default: linuxcli-default-pins {
    		pinctrl-single,pins = <
    			AM62X_IOPAD(0x01c8, PIN_INPUT, 0) /* (D14) UART0_RXD */
    			AM62X_IOPAD(0x01cc, PIN_OUTPUT, 0) /* (E14) UART0_TXD */
    		>;
    	};
    	uart2_pins_default: uart2-default-pins {
    		pinctrl-single,pins = <
    			AM62X_IOPAD(0x01d0, PIN_INPUT, 3) /* (A15) UART0_CTSn.UART2_RXD */
    			AM62X_IOPAD(0x01d4, PIN_OUTPUT, 3) /* (B15) UART0_RTSn.UART2_TXD */
    		>;
    	};
    	uart1_pins_default: uart1-default-pins {
    		pinctrl-single,pins = <
    			AM62X_IOPAD(0x01d8, PIN_INPUT, 1) /* (C15) MCAN0_TX.UART5_RXD */
    			AM62X_IOPAD(0x01dc, PIN_OUTPUT, 1) /* (E15) MCAN0_RX.UART5_TXD */
    		>;
    	};
    	pmic_irq_pins_default: pmic-irq-default-pins {
    		pinctrl-single,pins = <
    			AM62X_IOPAD(0x01f4, PIN_INPUT_PULLUP, 0) /* (D16) EXTINTn */
    		>;
    	};
    	usb0_pins_default: usb0-pins-default {
    		pinctrl-single,pins = <
    			AM62X_IOPAD(0x0254, PIN_OUTPUT, 0) /* (C20) USB0_DRVVBUS */
    		>;
    	};		
    	usb1_pins_default: usb1-pins-default {
    		pinctrl-single,pins = <
    			AM62X_IOPAD(0x0258, PIN_OUTPUT, 0) /* (F18) USB1_DRVVBUS */
    		>;
    	};	
    	usr_led_pins_default: usr-led-pins-default {
    		pinctrl-single,pins = <
    			AM62X_IOPAD(0x0230, PIN_OUTPUT, 7) /* (A22) MMC1_DAT0.GPIO1_45 */
    			AM62X_IOPAD(0x0244, PIN_OUTPUT, 7) /* (C17) MMC1_SDWP.GPIO1_49 */
    		>;
    	};	
    };
    &main_uart0 {
    	status = "okay";
    	pinctrl-names = "default";
    	pinctrl-0 = <&linuxcli_pins_default>;
    };
    
    &main_uart2 {
    	status = "okay";
    	pinctrl-names = "default";
    	pinctrl-0 = <&uart2_pins_default>;
    };
    
    &main_uart5 {
    	status = "okay";
    	pinctrl-names = "default";
    	pinctrl-0 = <&uart1_pins_default>;
    };
    
    &main_gpio0 {
    	pinctrl-names = "default";
    	pinctrl-0 = <&gpio0_pins_default>;
    	gpio-line-names = "VPP_LDO_EN", "EMMC_RST#", "SOM_ID_MSB", "SOM_ID", "SOM_ID_LSB";
    
    };
    
    &main_gpio1 {
    	pinctrl-names = "default";
    	pinctrl-0 = <&gpio1_pins_default>;
    	gpio-line-names = "HEADER_GPIO_1", "HEADER_PWR_FLAG#", "HEADER_EIC_LAST_GASP", 
    		"HEADER_EIC_REMAIN_ON", "HEADER_GPIO_11 (FAN_RST#)","HEADER_GPIO_5",
    		"HEADER_GPIO_3 (RESETSTATZ#)","HEADER_GPIO_8","HEADER_GPIO_9","HEADER_GPIO_10",
    		"HEADER_GPIO_2","HEADER_GPIO_16 (WAKE#)","HEADER_GPIO_12 (WAN_RST#)";
    };
    
    &main_i2c0 {
    	status = "okay";
    	pinctrl-names = "default";
    	pinctrl-0 = <&pmici2c_pins_default>;
    	clock-frequency = <400000>;
    
    	tps65219: pmic@30 {
    		compatible = "ti,tps65219";
    		reg = <0x30>;
    		buck1-supply = <&vcc_3v3_sys>;
    		buck2-supply = <&vcc_3v3_sys>;
    		buck3-supply = <&vcc_3v3_sys>;
    		ldo1-supply = <&buck2_reg>;
    		ldo3-supply = <&buck2_reg>;
    		ldo4-supply = <&buck2_reg>;
    
    		pinctrl-names = "default";
    		pinctrl-0 = <&pmic_irq_pins_default>;
    
    		interrupt-parent = <&gic500>;
    		interrupts = <GIC_SPI 224 IRQ_TYPE_LEVEL_HIGH>;		
    		interrupt-controller;
    		#interrupt-cells = <1>;
    
    		system-power-controller;
    		regulators {
    			buck1_reg: buck1 {
    				regulator-name = "VDD_CORE_0V85";
    				regulator-min-microvolt = <850000>;
    				regulator-max-microvolt = <850000>;
    				regulator-boot-on;
    				regulator-always-on;
    			};
    
    			buck2_reg: buck2 {
    				regulator-name = "DVDD3V3";
    				regulator-min-microvolt = <3300000>;
    				regulator-max-microvolt = <3300000>;
    				regulator-boot-on;
    				regulator-always-on;
    			};
    
    			buck3_reg: buck3 {
    				regulator-name = "VDDS_DDR_1V1";
    				regulator-min-microvolt = <1100000>;
    				regulator-max-microvolt = <1100000>;
    				regulator-boot-on;
    				regulator-always-on;
    			};
    
    			ldo1_reg: ldo1 {
    				regulator-name = "WIFI_1V8";
    				regulator-min-microvolt = <1800000>;
    				regulator-max-microvolt = <1800000>;
    			};
    
    			ldo3_reg: ldo3 {
    				regulator-name = "VDDA_1V8";
    				regulator-min-microvolt = <1800000>;
    				regulator-max-microvolt = <1800000>;
    				regulator-boot-on;
    				regulator-always-on;
    			};
    
    			ldo4_reg: ldo4 {
    				regulator-name = "DVDD1V8";
    				regulator-min-microvolt = <1800000>;
    				regulator-max-microvolt = <1800000>;
    				regulator-boot-on;
    				regulator-always-on;
    			};
    		};
    	};
    };
    
    
    &sdhci0 {
    	/* EMMC */
    	status = "okay";
    	pinctrl-names = "default";
    	pinctrl-0 = <&emmc_pins_default>;
    	ti,driver-strength-ohm = <50>;
    	disable-wp;
    };
    
    &sdhci2 {
    	/* CC3301 */
    	status = "okay";
    	vmmc-supply = <&wlan_en>;
    	pinctrl-names = "default";
    	pinctrl-0 = <&wifisdio_pins_default>;
    	bus-width = <4>;
    	non-removable;
    	ti,fails-without-test-cd;
    	cap-power-off-card;
    	keep-power-in-suspend;
    	ti,driver-strength-ohm = <50>;
    	assigned-clocks = <&k3_clks 157 158>;
    	assigned-clock-parents = <&k3_clks 157 160>;
    
    	#address-cells = <1>;
    	#size-cells = <0>;
    	wlcore: wlcore@2 {
    		compatible = "ti,cc33xx";
    		reg = <2>;
    		// 
    		// pinctrl-names = "default";
    		// pinctrl-0 = <&wifi_irq_pins_default>;
    		// interrupt-parent = <&main_gpio0>;
    		// interrupts = <72 IRQ_TYPE_EDGE_RISING>;
    	};
    	
    	// TI-BLE-SDIO interface
        btti: btti@1 {
            compatible = "ti,cc33xxbt";
            reg = <1>;
        };
    	
    };
    
    &cpsw3g {
    	status = "okay";
    	pinctrl-names = "default";
    	pinctrl-0 = <&rmii_pins_default>;
    };
    
    &cpsw_port1 {
    	status = "okay";
    	phy-mode = "rmii";
    	phy-handle = <&cpsw3g_phy0>;
    };
    
    &cpsw_port2 {
    	status = "disabled";
    };
    
    &cpsw3g_mdio {
    	status = "okay";
    	pinctrl-names = "default";	
    	pinctrl-0 = <&mdio_pins_default>;
    	
    	cpsw3g_phy0: ethernet-phy@1 {
    		reg = <1>;
    		reset-gpios = <&main_gpio1 12 GPIO_ACTIVE_LOW>;
    		reset-assert-us = <25>;
    		reset-deassert-us = <60000>; /* T1 */
    		rx-internal-delay-ps = <1>;
    		tx-internal-delay-ps = <1>;
    	};
    };
    
    &mailbox0_cluster0 {
     	mbox_r5_0: mbox-r5-0 {
     		ti,mbox-rx = <2 0 0>;
     		ti,mbox-tx = <3 0 0>;
    	};
    };
    
    &mcu_m4fss {
    	status = "disabled";
     };
    
    &usbss0 {
    	status = "okay";
    };
    
    &usbss1 {
    	status = "okay";
    };
    
    &usb0 {
    	dr_mode = "host";
    	pinctrl-names = "default";
    	pinctrl-0 = <&usb0_pins_default>;
    };
    
    &usb1 {
    	dr_mode = "host";
    	pinctrl-names = "default";
    	pinctrl-0 = <&usb1_pins_default>;
    };
    
    

  • Edited the 1st post - I had date codes reversed in a couple places

  • Hi Bryce,

    Thanks for reporting this, it is certainly strange. Although we did discover a bug in the 1.0.0.6 release related to FW download, I wonder if it is related to your case. Could you please make the follwing change: In drivers/net/wireless/ti/cc33xx/cmd.c, change “#define CC33XX_REBOOT_TIMEOUT_MSEC” from '100' to '200' and re-test. 

  • Hi Sabeeh,

    I changed the included 1.0.0.6 cc33xx_kernel.patch to #define CC33XX_REBOOT_TIMEOUT_MSEC 200

    Also had it suggested to change our dts

    AM62X_IOPAD(0x0118, PIN_OUTPUT, 0) /* (D25) MMC2_CLK */ to  AM62X_IOPAD(0x0118, PIN_OUTPUT_PULLDOWN, 0) /* (D25) MMC2_CLK */

    I still ran into issue.   This is a 4th untouched new board.

    [    2.051653] sdhci: Secure Digital Host Controller Interface driver
    [    2.058109] sdhci: Copyright(c) Pierre Ossman
    [    2.067869] sdhci-pltfm: SDHCI platform and OF driver helper
    [    2.098749] mmc0: CQHCI version 5.10
    [    2.103029] mmc2: CQHCI version 5.10
    [    2.148504] mmc0: SDHCI controller on fa10000.mmc [fa10000.mmc] using ADMA 64-bit
    [    2.156069] mmc2: SDHCI controller on fa20000.mmc [fa20000.mmc] using ADMA 64-bit
    [    2.169004] sdhci-am654 fa20000.mmc: card claims to support voltages below defined range
    [    2.190915] mmc2: new high speed SDIO card at address 0001
    [    2.281709] mmc0: Command Queue Engine enabled
    [    2.286293] mmc0: new HS200 MMC card at address 0001
    [    2.292626] mmcblk0: mmc0:0001 S40004 3.64 GiB 
    [    2.301865]  mmcblk0: p1 p2
    [    2.306809] mmcblk0boot0: mmc0:0001 S40004 4.00 MiB 
    [    2.318995] mmcblk0boot1: mmc0:0001 S40004 4.00 MiB 
    [    2.333661] mmcblk0rpmb: mmc0:0001 S40004 4.00 MiB, chardev (242:0)
    [    2.546904] EXT4-fs: Warning: mounting with data=journal disables delayed allocation, dioread_nolock, O_DIRECT and fast_commit support!
    [    2.576094] EXT4-fs (mmcblk0p1): mounted filesystem with journalled data mode. Quota mode: none.
    [    2.618533] loop0: detected capacity change from 0 to 16
    [    2.723825] loop0: detected capacity change from 0 to 108376
    [    2.754083] loop1: detected capacity change from 0 to 16
    [    2.834357] loop1: detected capacity change from 0 to 864
    [    2.848189] device-mapper: verity: sha256 using implementation "sha256-sa2ul"
    [    2.863217] /dev/mapper/lower: Can't open blockdev
    [    2.883002] /dev/mapper/lower: Can't open blockdev
    [    2.889576] /dev/mapper/lower: Can't open blockdev
    [    2.936448] loop2: detected capacity change from 0 to 20000
    [    2.966625] loop3: detected capacity change from 0 to 16
    [    3.137106] EXT4-fs (dm-2): mounted filesystem with ordered data mode. Quota mode: none.
    [    3.194645] loop3: detected capacity change from 0 to 16
    [    3.528532] EXT4-fs (dm-3): mounted filesystem with journalled data mode. Quota mode: none.
    [    5.192216] tty0tty: loading out-of-tree module taints kernel.
    [    5.245755] tty0tty null modem driver v1.2
    [    5.762232] random: crng init done
    [    9.806928] cc33xx_sdio mmc2:0001:2: Using SDIO in-band IRQ
    [   10.324225] cfg80211: Loading compiled-in X.509 certificates for regulatory database
    [   10.465726] cfg80211: Loaded X.509 cert 'sforshee: 00b28ddf47aef9cea7'
    [   10.481766] cfg80211: Loaded X.509 cert 'wens: 61c038651aabdcf94bd0ac7ff06c7248db18c600'
    [   10.790683] cc33xx_driver cc33xx.2.auto: Direct firmware load for ti-connectivity/cc33xx-nvs.bin failed with error -2
    [   10.928796] usbcore: registered new interface driver usbfs
    [   10.944888] usbcore: registered new interface driver hub
    [   10.964895] usbcore: registered new device driver usb
    [   11.027627] xhci-hcd xhci-hcd.3.auto: xHCI Host Controller
    [   11.052822] xhci-hcd xhci-hcd.3.auto: new USB bus registered, assigned bus number 1
    [   11.074614] xhci-hcd xhci-hcd.3.auto: USB3 root hub has no ports
    [   11.095517] xhci-hcd xhci-hcd.3.auto: hcc params 0x0258fe6d hci version 0x110 quirks 0x0000008000010010
    [   11.124297] xhci-hcd xhci-hcd.3.auto: irq 476, io mem 0x31000000
    [   11.147270] hub 1-0:1.0: USB hub found
    [   11.162373] hub 1-0:1.0: 1 port detected
    [   11.177485] xhci-hcd xhci-hcd.4.auto: xHCI Host Controller
    [   11.194853] xhci-hcd xhci-hcd.4.auto: new USB bus registered, assigned bus number 2
    [   11.219128] xhci-hcd xhci-hcd.4.auto: USB3 root hub has no ports
    [   11.236615] xhci-hcd xhci-hcd.4.auto: hcc params 0x0258fe6d hci version 0x110 quirks 0x0000008000010010
    [   11.285237] xhci-hcd xhci-hcd.4.auto: irq 477, io mem 0x31100000
    [   11.311863] hub 2-0:1.0: USB hub found
    [   11.329034] hub 2-0:1.0: 1 port detected
    [   11.604787] usb 2-1: new full-speed USB device number 2 using xhci-hcd
    [   12.049918] cdc_acm 2-1:1.0: ttyACM0: USB ACM device
    [   12.067728] cdc_acm 2-1:1.2: ttyACM1: USB ACM device
    [   12.083464] usbcore: registered new interface driver cdc_acm
    [   12.100679] cdc_acm: USB Abstract Control Model driver for USB modems and ISDN adapters
    [   16.257171] NET: Registered PF_INET6 protocol family
    [   16.301786] Segment Routing with IPv6
    [   16.310289] In-situ OAM (IOAM) with IPv6
    [   17.367583] am65-cpsw-nuss 8000000.ethernet eth0: PHY [8000f00.mdio:01] driver [TI DP83825S] (irq=POLL)
    [   17.456955] am65-cpsw-nuss 8000000.ethernet eth0: configuring for phy/rmii link mode
    [   19.332479] ------------[ cut here ]------------
    [   19.337132] WARNING: CPU: 0 PID: 19 at drivers/net/wireless/ti/cc33xx/sdio.c:94 cc33xx_sdio_raw_read+0x118/0x1c0 [cc33xx_sdio]
    [   19.348540] Modules linked in: ipv6 cdc_acm xhci_plat_hcd xhci_hcd usbcore cc33xx mac80211 libarc4 cfg80211 rfkill dwc3 cc33xx_sdio crct10dif_ce mcrc dwc3_am62 k3_j72xx_bandgap optee_rng rng_core tty0tty(O) sa2ul sdhci_am654 cqhci mmc_block sdhci_pltfm sdhci mmc_core
    [   19.372234] CPU: 0 PID: 19 Comm: kworker/0:1 Tainted: G           O       6.1.80 #1
    [   19.379877] Hardware name: LandisGyr TI SOM (DT)
    [   19.384487] Workqueue: events request_firmware_work_func
    [   19.389808] pstate: 20000005 (nzCv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--)
    [   19.396758] pc : cc33xx_sdio_raw_read+0x118/0x1c0 [cc33xx_sdio]
    [   19.402675] lr : cc33xx_sdio_raw_read+0x90/0x1c0 [cc33xx_sdio]
    [   19.408505] sp : ffff800008f73bc0
    [   19.411808] x29: ffff800008f73bd0 x28: 0000000000000000 x27: 0000000000000000
    [   19.418937] x26: ffff800008dcd000 x25: ffff0000038c4b80 x24: 0000000000000000
    [   19.426065] x23: ffff0000038c7800 x22: 0000000000000100 x21: ffff000003a13810
    [   19.433194] x20: 000000000000bffc x19: ffff0000018de800 x18: 0000000000000000
    [   19.440322] x17: 0000000000000000 x16: 0000000000000000 x15: 0000000000000000
    [   19.447449] x14: 00000000000002c7 x13: 0000000000000000 x12: 0000000000001d28
    [   19.454577] x11: 0000000000000001 x10: 00000000000009b0 x9 : ffff800008f737e0
    [   19.461704] x8 : ffff00000011a690 x7 : ffff00001d93adc0 x6 : 0000000000000001
    [   19.468832] x5 : 0000000000000000 x4 : 0000000000000000 x3 : ffff000001814374
    [   19.475959] x2 : 0000000000000000 x1 : ffff000000119c80 x0 : 00000000ffffff92
    [   19.483089] Call trace:
    [   19.485530]  cc33xx_sdio_raw_read+0x118/0x1c0 [cc33xx_sdio]
    [   19.491100]  wlcore_raw_read+0x4c/0xb0 [cc33xx]
    [   19.495750]  wlcore_irq+0xe4/0x230 [cc33xx]
    [   19.499989]  wait_for_boot_irq.constprop.0+0x30/0xe0 [cc33xx]
    [   19.505789]  cc33xx_init_fw+0xec/0x370 [cc33xx]
    [   19.510377]  wlcore_nvs_cb+0x220/0xc70 [cc33xx]
    [   19.514965]  request_firmware_work_func+0x54/0xb0
    [   19.519662]  process_one_work+0x1d0/0x330
    [   19.523673]  worker_thread+0x6c/0x430
    [   19.527331]  kthread+0x108/0x110
    [   19.530556]  ret_from_fork+0x10/0x20
    [   19.534130] ---[ end trace 0000000000000000 ]---
    [   20.714109] cc33xx_sdio mmc2:0001:2: sdio read failed (-110)
    [   20.735567] wlcore: ERROR IO error during core status read
    [   22.756818] wlcore: ERROR boot IRQ timeout
    [   22.764938] wlcore: ERROR FW download failed

  • Hi Bryce,

    I would like to check the powerup status of the 'AZ0Y' parts. Are you able to collect logs from the LOGGER pin of the CC3301 using Simplelink WiFi Toolbox? 

  • Hi Sabeeh,

    I'm going to check with our HW engineer (Kevin) when he is back on monday.  Looks like we have at least a TP there.  Do we connect an uart rx to that to receive the data?  Did we need to turn on any other debug features?

    Bryce

  • Hi Bryce,

    Yes a UART RX to that pin is all you should need for now. 

  • Hi Sabeeh,

    What was the baud rate that I should use for the tool?  Both Kevin and I tried hooking up to the logger pin, but not seeing anything come out in wireshark.  Was the 3000000 default what should be used?

  • Hi Sabeeh,

    Kevin took some scope shots and saw the logger is at 1.8v, so that would explain why we didn't see anything on our 3.3v ttl uart cables.  I ordered some that can do 1.8v and I'll be able to get the logs tomorrow.

  • Hi Bryce,

    Sorry if that wasn't clear earlier. All of the digital I/O on the CC33x are 1.8V. 

    I'll continue to wait for those FW logs. 

  • Hi Sabeeh,

    I received the 1.8V usbttl devices, but I am still having issues.

    To start with, I'm using a known good unit where the wifi comes up as expected.  I can see the signal on the scope, as well as the LED on my usbttl light up when the data is coming in. 

    When I start up the simplelink wifi toolbox with that com port.  I don't see anything appear.

    If I disconnect the wifi toolbox and connect to that com port with putty, I can see a bunch of data on the screen (probably binary data)

    2024-10-03 14:19:12,072: Searching for free port ...
    2024-10-03 14:19:12,072: Free port found at 7779
    2024-10-03 14:19:12,103: Starting WebServer...
    2024-10-03 14:19:12,150: Serving on http://127.0.0.1:7779
    2024-10-03 14:19:13,110: Starting UI ...
    2024-10-03 14:19:15,822: Logger Version : 2.1.4
    2024-10-03 14:19:17,475: Starting wLogger with command :
     C:\ti\simplelink_wifi_toolbox_2_2_4\wlogger\bin\wlogger.exe --conf_file C:\ti\simplelink_wifi_toolbox_2_2_4\wlogger\tmp\wlogger_config.json --auto_start
    STDOut and STDErr will logged into C:\Users\johnsonb\AppData\Local\Temp\_MEI4642\wlogger.log
    Staring named pipe
    Starting Wireshark: "C:\Program Files\Wireshark\Wireshark.exe" -i "\\.\pipe\wlogger"   -k
    
    
     ** (wireshark:30824) 14:19:20.088418 [Capture MESSAGE] -- Capture Start ...
    Named pipe ready
    Cleaning socket before start lisen
    
    
     ** (wireshark:30824) 14:19:20.203572 [Capture MESSAGE] -- Capture started
     ** (wireshark:30824) 14:19:20.204000 [Capture MESSAGE] -- File: "C:\Users\johnsonb\AppData\Local\Temp\wireshark_wloggerKYJ1U2.pcapng"
    Starting Socket Listener
    
    Starting logger CC3301 with command:
     C:\ti\simplelink_wifi_toolbox_2_2_4\wlogger\loggers\cc33xx_logger\bin\cc33xx_logger.exe --com_port COM8 --log_dir C:\ti\simplelink_wifi_toolbox_2_2_4\wlogger\logs\2024_10_03_14_19_18\CC3301 --bin_file C:\ti\simplelink_wifi_toolbox_2_2_4\radio-tool\binaries\CC3301\logger.bin --baud_rate 3000000 --max_log_size 12 --stream_id CC3301 --max_bytes_per_packet 200
    
    Successfully connected to COM8 ...
    Successfully created database from binary ...
    Start parsing messages ...
    

  • Also I do see more messages if I connect wifi to an AP and do some pings or iperf tests.  But nothing shows up in wireshark

    Successfully connected to COM8 ...
    Successfully created database from binary ...
    Start parsing messages ...
    2024-10-03 14:31:07,577: Task queue depth is 1
    2024-10-03 14:31:09,235: Task queue depth is 2
    2024-10-03 14:31:18,859: Task queue depth is 2
    2024-10-03 14:31:20,614: Task queue depth is 2
    2024-10-03 14:31:30,041: Task queue depth is 3
    2024-10-03 14:31:31,135: Task queue depth is 2
    2024-10-03 14:31:39,471: Task queue depth is 2
    2024-10-03 14:31:45,460: Task queue depth is 2
    2024-10-03 14:31:58,190: Task queue depth is 2
    2024-10-03 14:31:58,826: Task queue depth is 2
    2024-10-03 14:31:59,810: Task queue depth is 2
    2024-10-03 14:32:11,307: Task queue depth is 2
    2024-10-03 14:32:18,804: Task queue depth is 3
    2024-10-03 14:32:21,485: Task queue depth is 2
    2024-10-03 14:32:27,136: Task queue depth is 2
    2024-10-03 14:32:37,139: Task queue depth is 2
    2024-10-03 14:32:42,393: Task queue depth is 2
    2024-10-03 14:32:43,575: Task queue depth is 2
    2024-10-03 14:32:53,323: Task queue depth is 3
    2024-10-03 14:33:01,978: Task queue depth is 2
    2024-10-03 14:33:05,748: Task queue depth is 2
    2024-10-03 14:33:07,143: Task queue depth is 2
    2024-10-03 14:33:24,398: Task queue depth is 3
    2024-10-03 14:33:24,713: Task queue depth is 2
    2024-10-03 14:33:30,204: Task queue depth is 2
    2024-10-03 14:33:33,229: Task queue depth is 2
    2024-10-03 14:33:49,219: Task queue depth is 3
    2024-10-03 14:33:52,405: Task queue depth is 2

  • Hi Bryce, 

    That is strange. I see from above you are using 1.0.0.6 CC33xx linux package, and I see from the logs that you are using toolbox 2.2.4, which should match. 

    The baudrate should be automatic so hopefully you are not changing that value. 

    Perhaps, can you delete the logger plugin and try to reinstall it from Logger tool?

  • Hi Sabeeh,

    I double checked I was using 1.0.0.6 linux package.  I didn't change the baudrate - it was at 3000000 and verified that with the scope.

    Then removed the toolbox and wireshark completely and reinstalled everything, rebooted the computer.

    Still the same, Kevin also ran into the same issue trying today.

  • Hi Bryce,

    I'm not sure if the folder 'C:\Program Files\Wireshark\plugins' gets deleted during wireshark uninstall. Can you confirm that file 'wlogger_dissector.lua' is recently installed? Or perhaps delete it anyways and let the Logger tool reinstall it. 

  • Hi Sabeeh, I removed the whole folder after.  The wifi-tool also asked me to do the copy for the dissector again after I reinstalled it. 

    But just to be sure I deleted it this morning and reinstalled.  I attempted again and didn't get anything.  Is wireshark 4.4.0 ok to use?