SG-3100 Bad USB controller
-
I bought a "new" sg-3100 and everything was working briefly when testing. I went to configure for rollout and not booting properly. After several tries to reload firmware(different USB keys) and having TAC take a look it was determined the USB controller is bad since it doesn't see to read from USB properly. Can i replace the USB controller? If so where is the usb IC located? I did a few searches for the chips closest to the Console and USB ports but nothing definitive.
Thanks,
-
@maddog3115 More likely your USB image/drive is not written well.
Windows? Did it try to auto-mount the drive after writing it?
-
@maddog3115 Hi Rcoleman, tried multiple USB keys with Balena and Rufus the Netgate TAC tech even shared a session and created a key and tested , it was actually the tech that concluded it's a bad USB controller based on the behaviour.
thanks
-
@maddog3115 When you boot it up and run "usb reset" without a flash drive installed what do you get for output?
-
Make sure you have done a full power cycle on the device. If the USB controller throws errors like that it can sometimes be in an invalid state.
What command did you run to et the second part of your screen shot above?
It's much easier to parse the console output if it's just copy/pasted here rather than snapshots.
Steve
-
@maddog3115 Hi rcoleman i receive this with usb reset and no key plugged in
U-Boot 2013.01-02873-g5e4ac3c (Aug 11 2017 - 13:12:40) Marvell version: devel-17.06.0 Board: Rogue-1 SoC: MV88F6820 Rev A0 running 2 CPUs CPU: ARM Cortex A9 MPCore (Rev 1) LE CPU 0 CPU @ 1600 [MHz] L2 @ 800 [MHz] TClock @ 250 [MHz] DDR4 @ 800 [MHz] DDR4 32 Bit Width,FastPath Memory Access, DLB Enabled, ECC Disabled DRAM: 2 GiB MMC: mv_sdh: 0 DBG: Calling spi_flash_probe from env_relocate_spec() SF: Probing bus 0 cs 0 @ 20000000Hz mode 3 SF: Detected N25Q128 with page size 64 KiB, total 16 MiB PCI-e 0: Detected No Link. PCI-e 1: Detected No Link. USB2.0 0: Host Mode USB3.0 1: Host Mode Map: Code: 0x7fedc000:0x7ff975a8 BSS: 0x7ffef600 Stack: 0x7f4cbf20 Heap: 0x7f4cc000:0x7fedc000 U-Boot Environment: 0x00100000:0x00110000 (SPI) Board configuration detected: Net: | port | Interface | PHY address | |--------|-----------|--------------| | egiga0 | RGMII | 0x00 | | egiga1 | RGMII | 0x01 | | egiga2 | SGMII | In-Band | egiga0 [PRIME], egiga1, egiga2 Hit any key to stop autoboot: 0 Marvell>> usb reset (Re)start USB... USB0: mvBoardUsbVbusSet: gppNo = 35 Port (usbActive) : 1 Interface (usbType = 3) : USB XHCI 1.00 scanning bus 0 for devices... 1 USB Device(s) found scanning usb for storage devices... 0 Storage Device(s) found scanning usb for ethernet devices... 0 Ethernet Device(s) found
-
@rcoleman-netgate hi stephenw10, I fully power cycle before plugging in any Key. The error in the second screengrab is when I use run recovery to execute recovery firmware install.
-
Can we see the full console output with the USB key attached when you run recovery?
-
@stephenw10 here's a full boot and output
BootROM - 1.73 Booting from SPI flash General initialization - Version: 1.0.0 AVS selection from EFUSE disabled (Skip reading EFUSE values) Overriding default AVS value to: 0x23 Detected Device ID 6820 High speed PHY - Version: 2.0 Init Customer board board SerDes lanes topology details: | Lane # | Speed| Type | ------------------------------| | 0 | 3 | SATA0 | | 1 | 5 | PCIe0 | | 2 | 3 | SATA1 | | 3 | 4 | SGMII2 | | 4 | 5 | PCIe1 | | 5 | 5 | USB3 HOST1 | ------------------------------- PCIe, Idx 0: detected no link PCIe, Idx 1: detected no link High speed PHY - Ended Successfully mv_ddr: mv_ddr-armada-17.06.1-g07f8294 (Aug 11 2017 - 13:12:46) DDR4 Training Sequence - Switching XBAR Window to FastPath Window mv_ddr: completed successfully BootROM: Image checksum verification PASSED __ __ _ _ | \/ | __ _ _ ____ _____| | | | |\/| |/ _` | '__\ \ / / _ \ | | | | | | (_| | | \ V / __/ | | |_| |_|\__,_|_| \_/ \___|_|_| _ _ ____ _ | | | | | __ ) ___ ___ | |_ | | | |___| _ \ / _ \ / _ \| __| | |_| |___| |_) | (_) | (_) | |_ \___/ |____/ \___/ \___/ \__| ** LOADER ** U-Boot 2013.01-02873-g5e4ac3c (Aug 11 2017 - 13:12:40) Marvell version: devel-17.06.0 Board: Rogue-1 SoC: MV88F6820 Rev A0 running 2 CPUs CPU: ARM Cortex A9 MPCore (Rev 1) LE CPU 0 CPU @ 1600 [MHz] L2 @ 800 [MHz] TClock @ 250 [MHz] DDR4 @ 800 [MHz] DDR4 32 Bit Width,FastPath Memory Access, DLB Enabled, ECC Disabled DRAM: 2 GiB MMC: mv_sdh: 0 DBG: Calling spi_flash_probe from env_relocate_spec() SF: Probing bus 0 cs 0 @ 20000000Hz mode 3 SF: Detected N25Q128 with page size 64 KiB, total 16 MiB PCI-e 0: Detected No Link. PCI-e 1: Detected No Link. USB2.0 0: Host Mode USB3.0 1: Host Mode Map: Code: 0x7fedc000:0x7ff975a8 BSS: 0x7ffef600 Stack: 0x7f4cbf20 Heap: 0x7f4cc000:0x7fedc000 U-Boot Environment: 0x00100000:0x00110000 (SPI) Board configuration detected: Net: | port | Interface | PHY address | |--------|-----------|--------------| | egiga0 | RGMII | 0x00 | | egiga1 | RGMII | 0x01 | | egiga2 | SGMII | In-Band | egiga0 [PRIME], egiga1, egiga2 Hit any key to stop autoboot: 0 Marvell>> usb reset (Re)start USB... USB0: mvBoardUsbVbusSet: gppNo = 35 Port (usbActive) : 1 Interface (usbType = 3) : USB XHCI 1.00 scanning bus 0 for devices... cannot reset port 2!? 1 USB Device(s) found Bad detection, need a second reset... USB0: mvBoardUsbVbusSet: gppNo = 35 Port (usbActive) : 1 Interface (usbType = 3) : USB XHCI 1.00 scanning bus 0 for devices... 2 USB Device(s) found scanning usb for storage devices... 1 Storage Device(s) found scanning usb for ethernet devices... 0 Ethernet Device(s) found Marvell>> run recovery (Re)start USB... USB0: mvBoardUsbVbusSet: gppNo = 35 Port (usbActive) : 1 Interface (usbType = 3) : USB XHCI 1.00 scanning bus 0 for devices... 2 USB Device(s) found scanning usb for storage devices... 1 Storage Device(s) found scanning usb for ethernet devices... 0 Ethernet Device(s) found reading ubldr.bin 228648 bytes read in 29 ms (7.5 MiB/s) Starting application at 0x00200000 ... Consoles: U-Boot console Compatible U-Boot API signature found @0x7f4dc280 FreeBSD/armv6 U-Boot loader, Revision 1.2 (Tue Jul 10 10:26:23 EDT 2018 root@buildbot3) DRAM: 2048MB Number of U-Boot devices: 5 U-Boot env: loaderdev not set, will probe all devices. Found U-Boot device: disk Probing all disk devices... Checking unit=0 slice=<auto> partition=<auto>...disk0: read failed, error=1 Checking unit=1 slice=<auto> partition=<auto>... good. Booting from disk1s2a: Loading /boot/defaults/loader.conf /boot/kernel/kernel text=0x1b4 text=0x71add0 text=0x197b88 data=0x88f6c data=0x0+0x50000 syms=[0x4+0x94540+0x4+0xec78c] - Hit [Enter] to boot immediately, or any other key for command prompt. Booting [/boot/kernel/kernel]... No valid device tree blob found! Type '?' for a list of commands, 'help' for more detailed help.
-
Hmm, it finds the USB drive and is able to load ubldr.bin from it. It boots the kernel form it but can't find the dtb file. At least not the one it's looking for.
Try this, at the
Marvell>>
prompt runprintenv
see if it's lost the correct dtb name.Steve
-
@stephenw10 here it is
Marvell>> printenv CASset=max MALLOC_len=10 MPmode=SMP autoload=no baudrate=115200 boardpn=80500-0148-G00 boardrev=R310 boardsn=XXXXXXX boot_from_pxe=0 boot_order=hd_scr usb_scr mmc_scr hd_img usb_img mmc_img pxe net_img net_scr bootargs=console=ttyS0,115200 mtdparts=spi_flash:4m(boot),-(spi-rootfs) root=/dev/nfs rw nfsroot=10.4.50.38:/srv/nfs/ ip=10.4.50.170:10.4.50.38:10.4.50.254:255.255.255.0:Armada38x:eth0:none mv_net_config=4,(00:50:43:11:11:11,0:1:2:3),mtu=1500 video=dovefb:lcd0:640x480-16@60 clcd.lcd0_enable=0 clcd.lcd_panel=0 bootargs_dflt=$console $nandEcc $mtdparts_lgcy $bootargs_root nfsroot=$serverip:$rootpath ip=$ipaddr:$serverip$bootargs_end $mvNetConfig video=dovefb:lcd0:$lcd0_params clcd.lcd0_enable=$lcd0_enable clcd.lcd_panel=$lcd_panel bootargs_end=:$gatewayip:255.255.255.0:Armada38x:$netdev:none bootargs_root=root=/dev/nfs rw bootcmd=run setLED; run emmcboot; bootcmd_auto=setenv bootargs_end :$gatewayip:255.255.255.0:Armada:$netdev:none; stage_boot $boot_order bootcmd_fdt=setenv bootargs_end :$gatewayip:255.255.255.0:Armada:$netdev:none; tftpboot 0x2000000 $image_name;tftpboot $fdtaddr $fdtfile;setenv bootargs $console $nandEcc $mtdparts $bootargs_root nfsroot=$serverip:$rootpath ip=$ipaddr:$serverip$bootargs_end $mvNetConfig video=dovefb:lcd0:$lcd0_params clcd.lcd0_enable=$lcd0_enable clcd.lcd_panel=$lcd_panel; bootz 0x2000000 - $fdtaddr; bootcmd_fdt_boot=setenv bootargs_end :$gatewayip:255.255.255.0:Armada:$netdev:none; tftpboot 0x2000000 $image_name; setenv bootargs $console $nandEcc $mtdparts $bootargs_root nfsroot=$serverip:$rootpath ip=$ipaddr:$serverip$bootargs_end $mvNetConfig video=dovefb:lcd0:$lcd0_params clcd.lcd0_enable=$lcd0_enable clcd.lcd_panel=$lcd_panel; bootz 0x2000000 - $fdtaddr; bootcmd_fdt_edit=setenv bootargs_end :$gatewayip:255.255.255.0:Armada:$netdev:none; tftpboot $fdtaddr $fdtfile; fdt addr $fdtaddr; setenv bootcmd $bootcmd_fdt_boot bootcmd_ftenv=bootargs_end :10.4.50.254:255.255.255.0:Armada:eth0:none bootcmd_lgcy=setenv bootargs_end :$gatewayip:255.255.255.0:Armada:$netdev:none; tftpboot 0x2000000 $image_name;setenv bootargs $console $nandEcc $mtdparts_lgcy $bootargs_root nfsroot=$serverip:$rootpath ip=$ipaddr:$serverip$bootargs_end video=dovefb:lcd0:$lcd0_params clcd.lcd0_enable=$lcd0_enable clcd.lcd_panel=$lcd_panel; bootm $loadaddr; bootdelay=3 cacheShare=no console=console=ttyS0,115200 device_partition=0:1 disaMvPnp=no eeeEnable=no emmcboot=fatload mmc 0:1 200000 ubldr.bin; go 200000; enaClockGating=no enaCpuStream=no enaFPU=yes enaMonExt=no enaWrAllo=no eth1addr=xx:xx:xx:xx:xx eth1mtu=1500 eth2addr=xx:xx:xx:xx:xx eth2mtu=1500 eth3addr=xx:xx:xx:xx:xx eth3mtu=1500 ethact=egiga0 ethaddr=xx:xx:xx:xx:xx ethmtu=1500 ethprime=egiga0 factory=setenv autoload yes; bootp; go $loadaddr; fdt_addr=2040000 fdt_skip_update=yes fdtaddr=0x1000000 fdtfile=armada-38x.dtb ftboot=sleep 2; scsi init; sleep 2; setenv bootargs root=/dev/sda1 rootfstype=ext4 rootwait rw raid=noautodetect init=/sbin/init; ext4load scsi 0:1 ${fdtaddr} /boot/rogue-1.dtb; ext4load scsi 0:1 ${loadaddr} /boot/zImage; bootz ${loadaddr} - ${fdtaddr}; gatewayip=10.4.50.254 ide_path=/ image_name=zImage initrd_name=uInitrd ipaddr=10.4.50.170 kernel_addr_r=2080000 lcd0_enable=0 lcd0_params=640x480-16@60 lcd_panel=0 limit_dram_size=yes loadaddr=0x02000000 loads_echo=0 m2boot=scsi reset; fatload scsi 0:$m2dev 200000 ubldr.bin; go 200000; m2dev=1 mtdids=spi0=spi_flash mtdparts=mtdparts=spi0.0:4m(boot),-(spi-rootfs) mtdparts_lgcy=mtdparts=spi_flash:4m(boot),-(spi-rootfs) mvNetConfig=mv_net_config=4,(00:50:43:11:11:11,0:1:2:3),mtu=1500 mv_pon_addr=xx:xx:xx:xx:xx netbsd_en=no netdev=eth0 netmask=255.255.255.0 netretry=no pcieTune=no pexMode=RC pxe_files_load=:default.arm-armadaxp-db:default.arm-armadaxp:default.arm pxefile_addr_r=3000000 ramdisk_addr_r=2880000 recovery=usb start; fatload usb 0:1 200000 ubldr.bin; go 200000; rootpath=/srv/nfs/ run_script=no sata_delay_reset=0 sata_dma_mode=yes script_addr_r=3000000 script_name=boot.scr sd_detection_dat3=no serverip=10.4.50.38 setLED=i2c mw 67 ff 0; i2c mw 67 0 1; i2c mw 67 f 35; i2c mw 67 3 40; i2c mw 67 26 0; i2c mw 67 10 0 skip_switch_pci_scan=no standalone=fsload 0x2000000 $image_name;setenv bootargs $console $nandEcc $mtdparts_lgcy root=/dev/mtdblock0 rw ip=$ipaddr:$serverip$bootargs_end; bootm 0x2000000; stderr=serial stdin=serial stdout=serial usb0Mode=host usbActive=1 usbType=3 vxworks_en=no yuk_ethaddr=xx:xx:xx:xx:xx Environment size: 4649/65532 bytes Marvell>>
-
Ah, OK. Yup the envs are missing. Let me have TAC reach out to you again....
-
Hmm, that's odd it's actually only the ftdfile env that appears to be wrong.
OK try this. At the Marvell prompt run:
setenv fdtfile armada-385-80300-0148-G00-X100.dtb saveenv reset
Try to boot from USB again.
-
@stephenw10 you're a genius !!!!!!! that did it now let's see if I can configure it and it sticks and doens't do anything else funny. Do you know what might have caused that?
-
No, it's odd. The only time we ever see that sort of issue on the 3100 is it's unable to read the uboot envs and resets them to the default values. I assumed that might have happened when I saw the fdtname was incorrect but after checking everything else is correct.
The only way I could do that would be manually at the uboot prompt but I can't imagine you did that!Steve
-
I edited your post to obscure the serial and MACs FYI.
-
@stephenw10 thanks so much for your help you're a life saver. I was pretty bummed thinking I got scammed when I bought this as "new" and it's in pretty new condition.
Cheers,
-
Great result. The MAC addresses you have there should be sequential and I don't believe they were. If you don't see sequential MACs in pfSense you might want to open a new ticket with support and get the full set of uboot envs for your specific device to be sure.
Steve