Omega2+ unable to de-brick



  • Hi All,

    I was having issues with being unable to connect to my Omega2+ after it arrived so I though to flash it with the latest firmware after receiving the email from the team saying some issues had been fixed. I downloaded omega2p-v0.1.9-b150.bin and put it on a USB drive and then connected it to the MiniDock and started the process.

    It now won't boot correctly, always ended up at a line saying "Bad Magic Number" even after re-downloading and flashing again in case there was an issue with the firmware image I had.

    I have had no luck so was trying to do a recovery using the Ethernet method but can't connect to the Omega2+ over serial as I only have the Power Dock with the headers exposed for the ethernet expansion. I tried connecting a serial cable (like this: http://www.gearmo.com/wp-content/uploads/2013/04/GM-TTL5VT-UART-Pinout.jpg) to the RX1 and TX1 pins on the expansion but it is always blank so I assume from what I've read it isn't the same serial as the USB-to-Serial connects to on the other boards? (Why is that chip excluded on this dock?! So frustrating!).

    So I am at a loss, what else can I try to de-brick my Omega2+ and get it working?



  • Well, the good news is that if you can run u-boot commands over the serial port, things are probably recoverable and it's down to figuring out the specific roadblock. Can you capture a log in your terminal program of the USB rescue attempt, or was that not done with the involvement of serial command to uboot?



  • I did another attempt today using the Mini Dock but I am actually unsure if it finishes. Below is the attempt as it is in my terminal window after a few hours since hitting go. So at least uboot is a thing!

       ____       _             ____
      / __ \___  (_)__  ___    / __ \__ _  ___ ___ ____ _
     / /_/ / _ \/ / _ \/ _ \  / /_/ /  ' \/ -_) _ `/ _ `/
     \____/_//_/_/\___/_//_/  \____/_/_/_/\__/\_, /\_,_/
     W H A T  W I L L  Y O U  I N V E N T ? /___/"
    
    Board: Onion Omega2 APSoC DRAM:  128 MB
    relocate_code Pointer at: 87f60000
    flash manufacture id: c2, device id 20 19
    find flash: MX25L25635E
    *** Warning - bad CRC, using default environment
    
    ============================================
    Onion Omega2 UBoot Version: 4.3.0.3
    --------------------------------------------
    ASIC 7628_MP (Port5<->None)
    DRAM component: 1024 Mbits DDR, width 16
    DRAM bus: 16 bit
    Total memory: 128 MBytes
    Flash component: SPI Flash
    Date:Oct 18 2016  Time:17:29:05
    ============================================
    icache: sets:512, ways:4, linesz:32 ,total:65536
    dcache: sets:256, ways:4, linesz:32 ,total:32768
    CPU freq = 575 MHZ
    Estimated memory size = 128 Mbytes
    Resetting MT7628 PHY.
    Initializing MT7688 GPIO system.
    
    
    **************************************
    * Hold Reset button for more options *
    **************************************
    
    
    You have 40 seconds left to select a menu option...
    
    
    Please select option:
       [ Enter ]: Boot Omega2.
       [ 0 ]: Start Web recovery mode.
       [ 1 ]: Start command line mode.
       [ 2 ]: Flash firmware from USB storage.
    
    Option [2] selected.
    System Load Linux then write to Flash via USB Storage.
    Looking for a USB Storage.
    If suitable image is found on USB Storage writing to Flash will be attempted.
    U-Boot will look for a FAT file system.
    (Re)start USB...
    LOW LEVEL INIT USB0:
    Scanning bus 0 for devices...
    New Device 0
    usb_control_msg: request: 0x6, requesttype: 0x80
    value 0x100 index 0x0 length 0x8
    usb_control_msg: status = success?
    
     INSIDE USB INIT
    
     INSIDE USB INIT: Device responded.
    set address 1
    usb_control_msg: request: 0x5, requesttype: 0x0
    value 0x1 index 0x0 length 0x0
    usb_control_msg: status = success?
    usb_control_msg: request: 0x6, requesttype: 0x80
    value 0x100 index 0x0 length 0x12
    usb_control_msg: status = success?
    usb_control_msg: request: 0x6, requesttype: 0x80
    value 0x200 index 0x0 length 0x9
    usb_control_msg: status = success?
    usb_control_msg: request: 0x6, requesttype: 0x80
    value 0x200 index 0x0 length 0x19
    usb_control_msg: status = success?
    get_conf_no 0 Result 25, wLength 25
    if 0, ep 0
    ##EP epmaxpacketin[1] = 2
    set configuration 1
    usb_control_msg: request: 0x9, requesttype: 0x0
    value 0x1 index 0x0 length 0x0
    usb_control_msg: status = success?
    new device strings: Mfr=0, Product=1, SerialNumber=0
    usb_control_msg: request: 0x6, requesttype: 0x80
    value 0x300 index 0x0 length 0xFF
    usb_control_msg: status = success?
    USB device number 1 default language ID 0x409
    usb_control_msg: request: 0x6, requesttype: 0x80
    value 0x301 index 0x409 length 0xFF
    usb_control_msg: status = success?
    Manufacturer
    Product      OHCI Root Hub
    SerialNumber
    Device is a hub?
    usb_control_msg: request: 0x6, requesttype: 0xA0
    value 0x2900 index 0x0 length 0x4
    usb_control_msg: status = success?
    usb_control_msg: request: 0x6, requesttype: 0xA0
    value 0x2900 index 0x0 length 0x9
    usb_control_msg: status = success?
    usb_control_msg: request: 0x0, requesttype: 0xA0
    value 0x0 index 0x0 length 0x4
    usb_control_msg: status = success?
    usb_control_msg: request: 0x1, requesttype: 0x23
    value 0x8 index 0x1 length 0x0
    usb_control_msg: status = success?
    usb_control_msg: request: 0x0, requesttype: 0xA3
    value 0x0 index 0x1 length 0x4
    usb_control_msg: status = success?
    usb_control_msg: request: 0x3, requesttype: 0x23
    value 0x8 index 0x1 length 0x0
    usb_control_msg: status = success?
    usb_control_msg: request: 0x0, requesttype: 0xA3
    value 0x0 index 0x1 length 0x4
    usb_control_msg: status = success?
    usb_control_msg: request: 0x0, requesttype: 0xA3
    value 0x0 index 0x1 length 0x4
    usb_control_msg: status = success?
    usb_control_msg: request: 0x1, requesttype: 0x23
    value 0x10 index 0x1 length 0x0
    usb_control_msg: status = success?
    usb_control_msg: request: 0x3, requesttype: 0x23
    value 0x4 index 0x1 length 0x0
    usb_control_msg: status = success?
    usb_control_msg: request: 0x0, requesttype: 0xA3
    value 0x0 index 0x1 length 0x4
    usb_control_msg: status = success?
    usb_control_msg: request: 0x1, requesttype: 0x23
    value 0x14 index 0x1 length 0x0
    usb_control_msg: status = success?
    New Device 1
    usb_control_msg: request: 0x6, requesttype: 0x80
    value 0x100 index 0x0 length 0x8
    usb_control_msg: status = success?
    
     INSIDE USB INIT
    
     INSIDE USB INIT: Device responded.
    set address 2
    usb_control_msg: request: 0x5, requesttype: 0x0
    value 0x2 index 0x0 length 0x0
    usb_control_msg: status = success?
    usb_control_msg: request: 0x6, requesttype: 0x80
    value 0x100 index 0x0 length 0x12
    usb_control_msg: status = success?
    usb_control_msg: request: 0x6, requesttype: 0x80
    value 0x200 index 0x0 length 0x9
    usb_control_msg: status = success?
    usb_control_msg: request: 0x6, requesttype: 0x80
    value 0x200 index 0x0 length 0x20
    usb_control_msg: status = success?
    get_conf_no 0 Result 32, wLength 32
    if 0, ep 0
    if 0, ep 1
    ##EP epmaxpacketin[1] = 64
    ##EP epmaxpacketout[2] = 64
    set configuration 1
    usb_control_msg: request: 0x9, requesttype: 0x0
    value 0x1 index 0x0 length 0x0
    usb_control_msg: status = success?
    new device strings: Mfr=1, Product=2, SerialNumber=3
    usb_control_msg: request: 0x6, requesttype: 0x80
    value 0x300 index 0x0 length 0xFF
    usb_control_msg: status = success?
    USB device number 2 default language ID 0x409
    usb_control_msg: request: 0x6, requesttype: 0x80
    value 0x301 index 0x409 length 0xFF
    usb_control_msg: status = success?
    usb_control_msg: request: 0x6, requesttype: 0x80
    value 0x302 index 0x409 length 0xFF
    usb_control_msg: status = success?
    usb_control_msg: request: 0x6, requesttype: 0x80
    value 0x303 index 0x409 length 0xFF
    usb_control_msg: status = success?
    Manufacturer SanDisk
    Product      Ultra Fit
    SerialNumber 4C530001071202104040
    Device is a hub?
    2 USB Device(s) found
    scan end
           Scanning bus for storage devices...
    
    =================================================
    1: Hub,  USB Revision 1.10
     -  OHCI Root Hub
     - Class: Hub
     - PacketSize: 8  Configurations: 1
     - Vendor: 0x0000  Product 0x0000 Version 0.0
    
    =================================================
    2: Mass Storage,  USB Revision 2.10
     - SanDisk Ultra Fit 4C530001071202104040
     - Class: (from Interface) Mass Storage
     - PacketSize: 64  Configurations: 1
     - Vendor: 0x0781  Product 0x5583 Version 1.0
    Testing BULK mode...Identifying a storage device...*
    USB_STORAGE: 1 Storage Device(s) found
    
    
    ***************************************
    * [!] This will take several minutes  *
    * please do not power off your Omega2 *
    ***************************************
    
    
    *
    *
    Reading file "omega2.bin"
    *
    ****************************************************************
    ******
    **********************************************************************************************************************************************************************************************************************************************
    *
    FAT: 7078055 Bytes read
    ............................................................................................................
    ............................................................................................................
    


  • And this is what happens at boot after the flashing.

       ____       _             ____
      / __ \___  (_)__  ___    / __ \__ _  ___ ___ ____ _
     / /_/ / _ \/ / _ \/ _ \  / /_/ /  ' \/ -_) _ `/ _ `/
     \____/_//_/_/\___/_//_/  \____/_/_/_/\__/\_, /\_,_/
     W H A T  W I L L  Y O U  I N V E N T ? /___/"
    
    Board: Onion Omega2 APSoC DRAM:  128 MB
    relocate_code Pointer at: 87f60000
    flash manufacture id: c2, device id 20 19
    find flash: MX25L25635E
    *** Warning - bad CRC, using default environment
    
    ============================================
    Onion Omega2 UBoot Version: 4.3.0.3
    --------------------------------------------
    ASIC 7628_MP (Port5<->None)
    DRAM component: 1024 Mbits DDR, width 16
    DRAM bus: 16 bit
    Total memory: 128 MBytes
    Flash component: SPI Flash
    Date:Oct 18 2016  Time:17:29:05
    ============================================
    icache: sets:512, ways:4, linesz:32 ,total:65536
    dcache: sets:256, ways:4, linesz:32 ,total:32768
    CPU freq = 575 MHZ
    Estimated memory size = 128 Mbytes
    Resetting MT7628 PHY.
    Initializing MT7688 GPIO system.
    
    
    **************************************
    * Hold Reset button for more options *
    **************************************
    
    
    
    Boot Linux from Flash NO RESET PRESSED.
    ## Booting image at bc050000 ...
    Bad Magic Number,267FD763
    


  • "bad magic" means that the memory does not seem to contain the special value that indicates the start of an image in the expected location.

    Take a look at the log in this post

    https://community.onion.io/topic/1258/kernel-panic-not-syncing-stack-protector-kernel-stack-is-corrupted-in-8771d944/24

    Where someone else does an apparently succesful USB flashing; their process seems to complete in a ways yours did not (before the newly flashed system then goes on to crash; that outcome is not the useful part)

    At a level somewhat of guessing, any chance you have a different flash stick you could try?

    If you can get into uboot via the serial terminal for commands as well as output, you can try this:

    spi read 0x50000 64

    On a bootable system you would get back something beginning with

    27 5 19 56 which is the correct magic number.

    Interestingly if you try md 0xbc05000 you will probably not get the right values, even on a good system - that may be an address where flash gets "sort of" mapped for boot, but just accessing it won't necessarily get you bytes from flash.



  • When I read that portion I get 26 7f d7 63 99 3 4e 96... (trimmed because it is 100 long). I will dig up another thumb drive and give that a crack just in case this one has some issue.



  • I've tried 4 or 5 other USB keys and none of them power up when plugged in to the Mini Dock. The one that works is a 128GB Samsung one, the ones not working are various 4GB ones.



  • Hmm... for the 128 GB stick to have problems is not entirely surprising, actually it's a little surprising it works at all.

    That the 4 GB ones do not seem to work is more worrisome. What is the ultimate source of power?



  • Powered off my laptop via USB, laptop is a MacBook Pro (pre-USB-C)



  • @Chris-Watt - Chris, just read your post. Sorry to learn of your USB drive issues with the Mini Dock. Can I assume that you communicated from your Mac with the Mini Dock over a USB to serial connection? I'm curious when you bought your Mini Dock. I and others are having problems with the Mini Docks and the serial connection to Omega2, as described here and here. If your serial connection is working this could help us learn a bit more about why ours are not.



  • Hey @Ken-Conrad, the serial is working fine, it is flashing of the USB that is the issue on that dock, the issues on the Power Dock is that I can't get the serial (connected via the RX1/TX1 headers) to work at all.



  • @Chris-Watt said in Omega2+ unable to de-brick:

    the issues on the Power Dock is that I can't get the serial (connected via the RX1/TX1 headers) to work at all.

    Unless I'm mistaken, the Omega2 serial console is on the actual UART0, as opposed to UART2 where most other builds for this chip put it. I'm not aware of any that use UART1.

    What I can't tell you however is if the labels on your dock directly correspond to the UART numbering of the MT7688 itself.



  • This post is deleted!


  • @Chris-Watt Chris Watt, thanks. Did you recently receive this Mini Dock, or is it an older model from the first round of Omegas?

    Onion says you won't find serial or an connection to TX0, RX0 pins (UART0) on the Power Dock. Extension Dock, yes.



  • I received it recently but I think it shipped early Jan if I recall correctly.

    Ugh so basically there is no useful serial at all on the Power Dock? How frustrating. I can't try the Ethernet recovery option in that case. As it won't recognise any of my smaller thumb drives I am not sure what to try next to get it working! It never allowed connections when I got it either, I just wanna play with it!!



  • @Chris-Watt If you have a loose USB<>3v3 serial converter you should be able to either solder wires to the relevant header pin pads of the dock, or perhaps use a wire-wrap tool to directly tap out signals from the Omega2 pins before plugging it in.

    (Only once in childhood did I ever use a wire wrap tool on a proper wire wrap socket, but it's remained lifelong favorite for making semi-lasting connections to both 100-mil and 2mm headers)



  • @Chris-Watt Yes, sorry to bear that news but perhaps this will save you some time. It is explained here that the Power Dock doesn't have a UART, required for the USB to TTL serial communication. Chris Stratton is right, there are many good choices for inexpensive TTL UARTS to make this serial connection. I am using several with Omegas. I second Chris's advice - you can solder to the bottom side of the dock at TX0 and RX0 or wire wrap would work. Then any of these 3.3V UARTs will connect the Power Dock to your PC- the 'Swiss Arm Knife' FTDI board at Sparkfun or this particularly nice one at Tindie or the eBay stuff.

    Make sure that you have a good and not too long USB cable. Hopefully, the USB port will work with your thumb drives on the Power Dock.



  • Unfortunately soldering things to the board just isn't an option because I will definitely destroy things with my soldering skills.

    Really I need a solution to the flashing issue, if I can't use the ethernet option then I guess we need some alternative solution, so what are the ideas for that, short of soldering things? I really would prefer not to have to buy more things I have no room to store (tiny apartment problems!).

    I wish it had been pointed out at backing time, I would have got the expansion dock instead of the power dock and just not worried about the battery things I wanted to test.

    Basically: how do I recover the Omega2+ with the equipment I have already have? It's never worked and it starting to seem like it was a dud :(



  • @Chris-Watt my omega2's haven't arrived yet, but late this afternoon I tried loading the same omega firmware you tried into a different MT7688 board via the USB stick method, and it seemed to work fine. So while we're technically using different versions of U-Boot, the fact that it isn't working for you suggests a fair possibility of either a power supply problem or a problem with the specific USB sticks you are using. The fact that your smaller USB sticks aren't working is particularly notable, and I think merits more investigation of possible power issues, or else reformatting one and putting only the upgrade file on it.



  • @Chris-Stratton I'm not sure it is power but not really sure how I can test that? Currently it is drawing the power and serial via my MacBook Pro's USB port, if I power via a PSU I lose my serial connection to trigger the upgrade at all.

    I did also try ensuring only the upgrade file was on the stick, it's very odd that the 4GB isn't working but the 128GB is. I am going to try and find a major brand smaller stick, Sandisk or whatever, just in case the stick itself is oddly configured/designed.

    Any suggestions for how to test things are appreciated!



Looks like your connection to Onion Community was lost, please wait while we try to reconnect.