8 Replies Latest reply on Feb 8, 2015 4:04 PM by idcrook

    Problems recovering firmware on a gen 1 Galileo

    idcrook

      I wanted to update the firmware in my gen1 Galileo board, so I could try Microsoft's IoT platform.

      However, I am unable to boot successfully _without_ an SD card (which is required to update the firmware).  I searched the boards for issues similar to mine, and no one else seemed to report this same issue.

       

      NOTE: The board boots and run fine from an uSD card. Ethernet and everything...

       

      When I remove the SD card for a straight boot from the on-board flash, I get an error early in the Linux boot sequence:

      <<snip>>
      [    3.991598] tsc: Refined TSC clocksource calibration: 399.076 MHz
      [    3.997932] Switching to clocksource tsc
      [    4.810639] LZMA data is corrupt
      [    4.846960] List of all partitions:
      [    4.850638] No filesystem could mount root, tried:  ext3 ext2 vfat
      [    4.857231] Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(1,0)
      [    4.860550] Pid: 1, comm: swapper Tainted: G        W    3.8.7-yocto-standard #1
      [    4.860550] Call Trace:
      [    4.860550]  [] panic+0x82/0x16a
      [    4.860550]  [] mount_block_root+0x21f/0x22f
      [    4.860550]  [] ? sys_mknod+0x28/0x30
      [    4.860550]  [] mount_root+0x5e/0x64
      [    4.860550]  [] prepare_namespace+0x149/0x18d
      [    4.860550]  [] ? sys_access+0x20/0x30
      [    4.860550]  [] kernel_init_freeable+0x198/0x1a0
      [    4.860550]  [] ? do_early_param+0x7a/0x7a
      [    4.860550]  [] kernel_init+0xb/0xd0
      [    4.860550]  [] ret_from_kernel_thread+0x1b/0x30
      [    4.860550]  [] ? rest_init+0xb0/0xb0
      

      Based on these errors from the Linux serial log, I think there is a corrupted disk image in the onboard flash...  So I want to recover the firmware using the serial port, right?

       

      Using the same serial debug cable, I attempted to use firmware recovery mode to restore on-board FW that way.  I grounded the resistor, however I never see the recovery menu.

      Upon boot with the resistor grounded, I get a strange error output, the screen clears on the serial view, and then I get the normal boot menu (captured output follows):

       

      ERROR: C40000002:V306000A I0 378D7B65-8DA9-4773-B6E4-A47826A833E1
      
      
           Press [Enter] to directly boot.
           Press [F7]    to show boot menu options.
      
      

       

       

      Any suggestions?

       

      A postscript: poking around from grub, I see routines enticingly named cln_fw_recovery (on-board) and cln_sdio_program (SD card) when I type help. Any possibilities to recover my firmware using those?


        • 1. Re: Problems recovering firmware on a gen 1 Galileo
          JPMontero_Intel

          Hi idcrook,

           

          Have you already tried with this procedure https://communities.intel.com/message/240391#240391 ? Try using the fv file included in there as well.

           

          Regards,
          JPMontero_Intel

          • 2. Re: Problems recovering firmware on a gen 1 Galileo
            JPMontero_Intel

            Hi,

            Sorry I got confused, I remember now you already tried this. Take a look at this message https://communities.intel.com/message/263701#263701. Those are the four methods which you can use to update your board's firmware. Try with method 3 and 4. Let me know if this work for you.

            Regards,
            JPMontero_Intel

            • 3. Re: Problems recovering firmware on a gen 1 Galileo
              idcrook

              An update.

               

              EFI boot was working over the serial port.  I used the instruction to build a Flash_missingPCAP.cap (first tried on a 14.10 Ubuntu before discovering that the build wouldn't work, so ended up installing Ubuntu 12.04 into a VM, and this allowed the build to work).  However, when running the EFI app to do the update, I think I made a mistake; I also had a bogus FVMAIN.fv file on the Flash drive...  During the update process it eventually got to a point where it was in recovery firmware update loop (rebooting and installing the same capsule).

               

              So I took the FVMAIN.fv from https://communities.intel.com/message/240391#240391  and put it on the it accepted the USB drive.  This appeared to successfully update the firmware.

              However, now I only get the following message (over the serial port) and the SD card no longer boots either (same error message).


               

              Type '0' for 'ClantonPeakSVP' [PID 2]

              Type '1' for 'KipsBay' [PID 3]

              Type '2' for 'CrossHill' [PID 4]

              Type '3' for 'ClantonHill' [PID 5]

              Type '4' for 'Galileo' [PID 6]

              Platform Info: Type = 6

              Platform Info: Platform Data Mrc Vars found: length 39 version = 1

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

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

              *****  REMOVE ANY FORCE RECOVERY JUMPERS BEFORE PROCEEDING! *****

              ***** - Press 'R' if you wish to force system recovery      *****

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

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

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

              New boot attempt selected........

              Type '0' for 'ClantonPeakSVP' [PID 2]

              Type '1' for 'KipsBay' [PID 3]

              Type '2' for 'CrossHill' [PID 4]

              Type '3' for 'ClantonHill' [PID 5]

              Type '4' for 'Galileo' [PID 6]

              • 4. Re: Problems recovering firmware on a gen 1 Galileo
                JPMontero_Intel

                Hi idcrook,

                 

                Take a look at this post https://communities.intel.com/thread/56100 I think you are having that same behavior, it might be helpful for you.

                 

                Regards,
                  JPMontero_Intel

                • 5. Re: Problems recovering firmware on a gen 1 Galileo
                  idcrook

                  I have now also tried that FVMAIN.fv that you linked to.  In each case, the FVMAIN seems to do the update, but Galileo still will not boot.  EFI is no longer available either in case that was not clear earlier.

                  I dont't have a JTAG programmer unfortunately...

                   

                  Here is the output from the latest attempt.  In each case, I see the same failure to boot sequence and the board select prompt.  I do not have a jumper to the recovery resistor.

                   

                  Start to update capsule image!
                  Updated Blocks completed: 1773 of 1773
                  Capsule image is updated done!
                  ðÿType '0' for 'ClantonPeakSVP' [PID 2]
                  Type '1' for 'KipsBay' [PID 3]
                  Type '2' for 'CrossHill' [PID 4]
                  Type '3' for 'ClantonHill' [PID 5]
                  Type '4' for 'Galileo' [PID 6]
                  Platform Info: Type = 6
                  Platform Info: Platform Data Mrc Vars found: length 39 version = 1
                  *****************************************************************
                  *****           ERROR: System boot failure!!!!!!!           *****
                  *****  REMOVE ANY FORCE RECOVERY JUMPERS BEFORE PROCEEDING! *****
                  ***** - Press 'R' if you wish to force system recovery      *****
                  *****     (connect USB key with recovery module first)      *****
                  ***** - Press any other key to attempt another boot         *****
                  *****************************************************************
                  New boot attempt selected........
                  øType '0' for 'ClantonPeakSVP' [PID 2]
                  Type '1' for 'KipsBay' [PID 3]
                  Type '2' for 'CrossHill' [PID 4]
                  Type '3' for 'ClantonHill' [PID 5]
                  Type '4' for 'Galileo' [PID 6]
                  
                  • 6. Re: Problems recovering firmware on a gen 1 Galileo
                    JPMontero_Intel

                    Hi idcrook,

                     

                    If you have access to the UEFI internal shell try with this method instead of the recovery mode. I have attached the files needed for this procedure for the Galileo Gen1 board. Follow the steps indicated in section 9 of the document https://communities.intel.com/docs/DOC-21882 . Once the procedure is done your board should have the firmware version 1.0.0, so update the firmware with the IDE to the latest. Let me knows if this works for you.

                     

                    Regards,
                    JPMontero_Intel

                    • 7. Re: Problems recovering firmware on a gen 1 Galileo
                      CMata_Intel

                      Hi idcrook

                       

                      Were you able to recover the firmware in your board?

                       

                      Regards;

                      CMata

                      • 8. Re: Problems recovering firmware on a gen 1 Galileo
                        idcrook

                        since it no longer boots (except for the Recovery Loop above) and never gets to an EFI prompt, I was unable to try to flash via UEFI.

                         

                        I am getting a JTAG debugger this week and may try to use that to recover my firmware/Galileo Gen 1 board.