6 Replies Latest reply on Aug 26, 2014 6:49 AM by SpiderKenny

    Galileo failed firmware update.

    SpiderKenny

      Hi everyone

      I hope someone can help me out here.

      I had two Galileo boards and both were running version 1.0.0 of the firmware.

      I updated the first one to v1.0.2 using the Arduino IDE without any problem.

      The second one failed to update firmware and now it won't boot.

       

      While attempting to boot I get this in the console:

       

      Platform Data Item List in System Area:

      ****  Quark Data Id:Len = 0x0001:0x0002 Desc = PlatformID Ver=0000 ****

      ****  Quark Data Id:Len = 0x0006:0x0027 Desc = MrcParams Ver=0001 ****

      ****  Quark Data Id:Len = 0x0003:0x0006 Desc = 1st MAC Ver=0000 ****

      ****  Quark Data Id:Len = 0x0004:0x0006 Desc = 2nd MAC Ver=0000 ****

      *************************************************

       

       

      Early Platform Thermal Sensor Init

      Ioh MAC [B:0, D:20, F:6] VER:1037 ADDR:98-4F-EE-00-82-D0

      Ioh MAC [B:0, D:20, F:7] VER:1037 ADDR:00-00-6C-0D-0E-01

      Boot mode recovery

      Install PPI: 17EE496A-D8E4-4B9A-94D1-CE8272300850

      *****************************************************************

      *****           ERROR: System boot failure!!!!!!!           *****

      ***** - Press ‘R’ if you wish to force system recovery      *****

      *****     (connect USB key with recovery module first)      *****

      ***** - Press any other key to attempt another boot         *****

      *****************************************************************

       

      Where should I go from here? I can probably get hold of a DediProg if that will help?

        • 1. Re: Galileo failed firmware update.
          crossi

          It sounds exactly like something that I experienced though with my 2nd Gen Galileo (see https://communities.intel.com/thread/53957 ). I ended up having to ship my board to Intel_Jesus and having him reflash the firmware using his DediProg.

          • 2. Re: Galileo failed firmware update.
            SpiderKenny

            I can get access to a dediprog.

            So any idea where I can get the flash image from?

             

            I also believe it should be possible to copy the flash image to USB Stick, and force recovery mode, where it will read it from the USB Stick. The issue being I don't have the flash image :-(

            • 3. Re: Galileo failed firmware update.
              crossi

              As I understand it he had to compile a new image specific for my board (i.e. compile with correct MAC addr, etc.). I don't know the details but I'm sure he'd be happy to provide that if you ping him.

              • 4. Re: Galileo failed firmware update.
                Intel_Jesus

                I would be happy to make the .bin file with your boards data. Please send me a private message with your boards info (Intel Galileo Gen 1 or Intel Galileo Gen2, boards MAC address).

                 

                Regards,

                Intel_Jesus

                • 5. Re: Galileo failed firmware update.
                  SpiderKenny

                  Thanks Intel_Jesus

                   

                  I will do that now.

                  • 6. Re: Galileo failed firmware update.
                    SpiderKenny

                    Thanks to Intel_Jesus who created a new SPI Flash Image for me with the correct personalisation data.

                    This board had a corrupted SPI Flash after attempting to update the firmware to 1.0.2 using the Arduino IDE, and therefore could not boot.

                     

                    I re-flashed the chip using the binary file that Intel_Jesus made for me, but it still wouldn't boot. So I dug out my logic anlayzer and attached it to the SPI header so I could monitor what was happening during the boot, hoping that I could figure out where in the boot process the failure was. What I discovered was that it appeared as though totally invalid commands were being sent to the SPI Flash. So I attached the logic analyzer to another Galileo which I knew to be good, and this time saw the correct commands being sent to the flash. So I then attached my oscilloscope probes to the header and found that the signals on MOSI/MISO and SCLK were not very clean - they had very rounded leading edges - ie, long rise times, causing the chip to be unable to decode the signals properly.

                     

                    Although I couldn't see anything obvious on the board, I cleaned it with isopropyl alcohol (IPA) - paying attention to the areas around the flash chip, header and Quark. This solved the problem completely, and now the board boots first time every time.

                     

                    One more interesting point, I couldn't get hold of a working DediProg, so I built my own SPI Flash Programmer using a Cypress CY8CKIT-010 - a Cypress PSoC 5LP prototyping kit. It can do erase, read, write and verify of SPI Flash chips, along with a 'dump' facility to dump the entire contents to PC - all over a USB connection. It took about 30 Minutes to flash the entire 64 Mbit chip.

                     

                    Here's a picture of it:

                    Screen Shot 2014-08-26 at 13.47.37.png