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

    xbolshe

      Hi,

       

      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:

      intel_old_version.png

       

      In my case the board had BSP version 0.7.3.2. 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]

      type=mfh.version

      meta=version

      value=0x01000300

       

      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 0.7.3.2

       

      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

          modules--3.8-r0-clanton-20141005163543.tgz

          bzImage

          Flash-missingPDAT.cap

       

      where:

        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

      aaaaaasss.png


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

      dfgkfld.png

      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

      root@clanton:~#

       

      7. Check files on SD card

       

      # cd /media/mmcblk0p1

      # ls

       

      root@clanton:/media/mmcblk0p1# ls

      Flash-missingPDAT.cap

      bzImage

      image-spi-clanton.cpio.gz

      modules--3.8-r0-clanton-20141005163543.tgz

      root@clanton:/media/mmcblk0p1#

       

      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

      root@clanton:/media/mmcblk0p1#

       

       

      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:

      sdfsdfsdfs.png

       

      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 ?