1 Reply Latest reply on Oct 6, 2014 11:58 AM by Intel_Alvarado

    Old BSP version (0.7.x, 0.8.x), boot problem from SD card and efi_capsule_update.ko




      I had a problem with booting from SD cards. During a long time I have tried to update my Intel Galileo Board, but without success.

      So, here I put some information how to perform a BSP update in SPI memory with using of efi_capsule_update.ko driver. I guess it will helpful.


      1. First, need to check BSP version of the board. Just look at booting time on the screen:



      In my case the board had BSP version It was produced at April 2014.

      This BSP version provides no possibility to use EFI boot loading mechanism.


      The current version is:


      BSP Version 1.0.3

      [Flash Image Version]





      2. A procedure described in the Chapter # 10.2 "Programming flash using Linux* run-time system" of the document called "Intel ® Quark™ SoC X1000 Board Support Package (BSP) Build and Software User Guide, Release 1.0.1, 22 May 2014" (link to the document: https://downloadcenter.intel.com/Detail_Desc.aspx?DwnldID=23197 or https://downloadcenter.intel.com/Detail_Desc.aspx?DwnldID=23962) provide partial information, but not for my case. It does not work, because there is no source code for BSP version


      But there is a way to fix the problem. Here is a list of steps what need to do:


      1. Create files of BSP

          I used "BSP_Sources_and_Docs_for_Intel_Quark_v1.0.0.zip" to create an image. Also you may use "BSP_Sources_and_Docs_for_Intel_Quark_v0.9.0.zip".

          "BSP_Sources_and_Docs_for_Intel_Quark_v0.7.5.zip" has no code for "efi_capsule_update.ko", so do not use it.

          Here is a link to download: https://downloadcenter.intel.com/Detail_Desc.aspx?agr=Y&ProdId=3777&DwnldID=23823&OSFullname=linux*&lang=eng


           A compiling procedure is described in the Chapter 6. "Creating a file system and building the kernel using Yocto". Just follow the instruction.


            # tar -xvf meta-clanton_v1.0.0.tar.gz

            # cd meta-clanton_v1.0.0

            # sudo apt-get install diffstat gawk chrpath file git texinfo

            # ./setup.sh

            # source poky/oe-init-build-env yocto_build

            # bitbake image-spi


           ubuntu 12.png


      If a compilation process is frozen, just stop it with double Ctrl+C pressing and execute "bitbake image-spi" again.

      In case of problems, you may use:


      # bitbake -c clean image-spi

      # bitbake image-spi


      At the result the following files are present in the folder meta-clanton_v1.0.0/yocto_build/tmp/deploy/images:

      ubuntu 12.png


      2. Put files on SD card


        Need to put on the root of SD card the following files:








        image-spi-clanton.cpio.gz  - renamed "image-spi-clanton-20141005163543.rootfs.cpio.gz"

        modules--3.8-r0-clanton-20141005163543.tgz - original name without modification

        bzImage - renamed "bzImage--3.8-r0-clanton-20141005163543.bin"

        Flash-missingPDAT.cap - renamed "Flash-missingPDAT_Release-1.0.3.cap" (you may take it there: https://communities.intel.com/docs/DOC-22226  )


      3. Insert SD card to the board and reboot


      4. Select 3rd menu item


      5. Login and check your Linux build version and date.


      6. Enter the following commands


      Command list


      # insmod /lib/modules/3.8.7-yocto-standard/kernel/arch/x86/platform/efi/efi_capsule_update.ko

      # insmod /lib/modules/3.8.7-yocto-standard/kernel/drivers/leds/led-class.ko

      # insmod /lib/modules/3.8.7-yocto-standard/kernel/drivers/mmc/core/mmc_core.ko

      # insmod /lib/modules/3.8.7-yocto-standard/kernel/drivers/mmc/card/mmc_block.ko

      # insmod /lib/modules/3.8.7-yocto-standard/kernel/drivers/mmc/host/sdhci.ko

      # insmod /lib/modules/3.8.7-yocto-standard/kernel/drivers/mmc/host/sdhci-pci.ko

      # modprobe efi_capsule_update

      # modprobe mmc_block

      # modprobe sdhci-pci


      Check that all modules are loaded:


      root@clanton:~# lsmod

          Not tainted

      sdhci_pci 18191 0 - Live 0xe073c000

      sdhci 27440 1 sdhci_pci, Live 0xe074c000

      mmc_block 26513 2 - Live 0xe0744000

      mmc_core 88873 3 sdhci_pci,sdhci,mmc_block, Live 0xe076a000

      led_class 13282 1 sdhci, Live 0xe0737000

      efi_capsule_update 12952 0 - Live 0xe0732000

      efivars 22960 0 - Live 0xe072b000



      7. Check files on SD card


      # cd /media/mmcblk0p1

      # ls


      root@clanton:/media/mmcblk0p1# ls







      8. Do software update

      Enter the following commands:


      Command list


      # cd /media/mmcblk0p1

      # mkdir /lib/firmware

      # cp Flash-missingPDAT.cap /lib/firmware/Flash-missingPDAT.cap

      # echo -n Flash-missingPDAT.cap > /sys/firmware/efi_capsule/capsule_path

      # echo 1 > /sys/firmware/efi_capsule/capsule_update


      An execution of the last command looks like:


      root@clanton:/media/mmcblk0p1# echo 1 > /sys/firmware/efi_capsule/capsule_update

      [  375.948654] efi-capsupdate: File Flash-missingPDAT.cap size 7300496 descriptor blocks 1784




      Next enter

      # reboot

      and wait (do NOT push reset button NOR power off the board, just look on a screen ) while a message "Start to update capsule image!" is shown !!!


      After updating a board will reboot, and you will see a picture like this:



      Now BSP 1.0.3 is in SPI memory, and EFI booting is available!



      And my question is:


      Dear Intel Company!

      Could you please update "Intel ® Quark™ SoC X1000 Board Support Package (BSP) Build and Software User Guide" to save a time of the Users ?