12 Replies Latest reply on Jun 8, 2016 8:37 PM by Mosfet

    Invalid DFU Suffix Signature - Custom u-boot

    Mosfet

      Dear Admin

       

      I have git cloned from git clone -b edison-v2015.10 https://github.com/01org/edison-u-boot.git

       

      And I have modified edison.h to include the following

       

       

      #define CONFIG_EXTRA_ENV_SETTINGS\
      "boot_edsboot=zboot 0x100000 0 0x800000 0x800000"\
      "bootargs_edsboot=console=tty1 console=ttyS2,115200n8 vmlinuz modules=loop,squashfs,sd-mod,usb-storage modloop=modloop-edison"\
      "bootcmd=setenv bootargs ${bootargs_edsboot}; run load_edsboot; run boot_edsboot"\
      "load_edsboot=load mmc 0:9 0x100000 vmlinuz; load mmc 0:9 0x800000 initramfs-edison"\

       

       

      However when i am trying to flash the compiled u-boot-edison.bin I get the following.

       

      Download[======================== ]  96%       323584 bytesInvalid DFU suffix signature

       

      Please help as to how to get it working? We are close to releasing another Operating System for Edison

        • 1. Re: Invalid DFU Suffix Signature - Custom u-boot
          Intel Corporation
          This message was posted on behalf of Intel Corporation

          Hi,

          Is this the full error log you’re receiving, if not, please post the complete log. In the meantime look at this link https://community.particle.io/t/problem-with-flashing-firmware-solved/3514/17 it has a suggestion who faced a similar issue to yours.
          Additionally, you can also check https://gist.github.com/fboris/a72d5f6eae656beea5c1 and http://wiki.openmoko.org/wiki/Manuals/dfu-util

          Let me know your results.

          Sergio
           

          • 2. Re: Invalid DFU Suffix Signature - Custom u-boot
            Mosfet

            Dear Sergio

             

            Here is the pastebin of log

             

            paste.ubuntu.com/16725860/

             

            The interesting part is that it works fine with normal u-boot. I will try your suggestions.

            • 3. Re: Invalid DFU Suffix Signature - Custom u-boot
              Intel Corporation
              This message was posted on behalf of Intel Corporation

              We’ll be waiting for your results.

              Sergio
               

              • 4. Re: Invalid DFU Suffix Signature - Custom u-boot
                Mosfet

                Sergio

                 

                Finally went the yocto route and testing a u-boot. These are what I am trying....

                 

                setenv bootargs vmlinuz modules=loop,squashfs,sd-mod,usb-storage initrd=0x800000,8M initrd=initramfs-edison modloop=modloop-edison initcall_debug=0 console=ttyMFD2 earlyprintk=ttyMFD2,keep loglevel=4 g_multi.ethernet_config=rndis systemd.unit=multi-user.target hardware_id=00 g_multi.iSerialNumber=b33f335811680145fdc309c8f189130c g_multi.dev_addr=02:00:86:89:13:0c platform_mrfld_audio.audio_codec=dummy

                 

                fatload mmc 0:6 0x100000 vmlinuz

                fatload mmc 0:6 0x800000 initramfs-edison

                 

                zboot 0x100000 0 0x800000

                 

                And this is my error

                 

                Starting kernel ...

                [    0.801071] pca953x 1-0020: failed reading register

                [    0.806134] pca953x 1-0021: failed reading register

                [    0.811207] pca953x 1-0022: failed reading register

                [    0.816221] pca953x 1-0023: failed reading register

                [    1.554771] snd_soc_sst_platform: Enter:sst_soc_probe

                [    2.041869] pmic_ccsm pmic_ccsm: Error reading battery profile from battid frmwrk

                [    2.050396] pmic_ccsm pmic_ccsm: Battery Over heat exception

                [    2.074591] Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)

                [    2.074682] CPU: 0 PID: 1 Comm: swapper/0 Not tainted 3.10.98-poky-edison #3

                [    2.074744] Hardware name: Intel Corporation Merrifield/BODEGA BAY, BIOS 542 2015.01.21:18.19.48

                [    2.074813]  f6837f18 f6837f18 f6837ecc c18cf3d5 f6837eec c18caade c1acb930 c1d0c400

                [    2.074931]  00000000 f6837f18 00008001 f5865000 f6837f44 c1c5ce63 c1abd60c f6837f18

                [    2.075044]  f6837f18 fffffffa 00000000 f58651a4 00000000 f76beca0 fffffffa 6e6b6e75

                [    2.075158] Call Trace:

                [    2.075214]  [<c18cf3d5>] dump_stack+0x16/0x18

                [    2.075269]  [<c18caade>] panic+0x87/0x181

                [    2.075323]  [<c1c5ce63>] mount_block_root+0x1c6/0x230

                [    2.075385]  [<c132c74d>] ? SyS_mknod+0x2d/0x30

                [    2.075438]  [<c1c5d027>] mount_root+0x5b/0x61

                [    2.075491]  [<c1c5d176>] prepare_namespace+0x149/0x18d

                [    2.075550]  [<c131d5c5>] ? SyS_access+0x25/0x30

                [    2.075604]  [<c1c5cbc9>] kernel_init_freeable+0x1b0/0x1bd

                [    2.075663]  [<c1c5c4e8>] ? do_early_param+0x78/0x78

                [    2.075720]  [<c18bd230>] kernel_init+0x10/0x140

                [    2.075776]  [<c18da137>] ret_from_kernel_thread+0x1b/0x28

                [    2.075834]  [<c18bd220>] ? rest_init+0x80/0x80

                 

                I am closing to almost getting a working linux distro for Intel Edison. Any advise?

                • 5. Re: Invalid DFU Suffix Signature - Custom u-boot
                  Mosfet

                  Here is my env

                   

                  audio_codec_name=audio_codec="dummy"

                  boot_target_cmd=run do_flash_os;run do_probe_dfu;run do_compute_target;run mmc-bootargs;run load_kernel;run load_initramfs;zboot ${loadaddr} ${loadaddr_ramfs}

                  bootargs_console=console=ttyMFD2 earlyprintk=ttyMFD2,keep

                  bootargs_debug=loglevel=4

                  bootargs_ethconfig=rndis

                  bootargs_target=multi-user

                  bootcmd=echo "Target:${target_name}"; run do_partition; run do_handle_bootargs_mode;

                  bootdelay=1

                  dfu_alt_info_ram=kernel ram ${loadaddr} 0x800000

                  dfu_alt_info_reset=reset ram 0x0 0x0

                  dfu_to_sec=3

                  do_audio_support=setenv audio_support platform_mrfld_audio.${audio_codec_name}

                  do_boot=run boot_target_cmd;

                  do_bootargs_rootfs=setenv bootargs_rootfs vmlinuz modules=loop,squashfs,sd-mod,usb-storage quiet nomodeset modloop=modloop-edison rootwait rootfstype=vfat ramdisk_size=50000

                  do_compute_target=if itest.b ${first_install_retry} -gt ${first_install_max_retries} || itest.b ${ota_update_retry} -gt ${ota_update_max_retries}; then echo "Switch to Rescue target"; setenv bootargs_target rescue; saveenv; fi

                  do_dfu_alt_info_ifwi=setenv dfu_alt_info "ifwi${hardware_id} mmc 0 8192 mmcpart 1;ifwib${hardware_id} mmc 0 8192 mmcpart 2"

                  do_dfu_alt_info_mmc=setenv dfu_alt_info "ifwi${hardware_id} mmc 0 8192 mmcpart 1;ifwib${hardware_id} mmc 0 8192 mmcpart 2;u-boot0 part 0 1;u-boot-env0 part 0 2;u-boot1 part 0 3;u-boot-env1 part 0 4;rootfs part 0 6;vmlinuz fat 0 6;initrd fat 0 6"

                  do_dnx=setenv dfu_alt_info ${dfu_alt_info_ram};dfu 0 ram 0 ram;run bootcmd

                  do_fallback=echo "Unknown boot mode: $bootargs_mode"; env delete -f bootargs_mode; saveenv; echo "Resetting to default boot mode and reboot..."; reset;

                  do_flash=run do_force_flash_os;

                  do_flash_ifwi=run do_dfu_alt_info_ifwi ; dfu 0 mmc 0

                  do_flash_os=if itest.b ${do_flash_os_done} -eq 1 ; then echo "Flashing already done..." ; else run do_force_flash_os; fi

                  do_flash_os_done=1

                  do_flashall=run do_partition;run do_flash_ifwi;run do_flash_os

                  do_force_flash_os=run do_dfu_alt_info_mmc ; sleep 1 ; setenv do_flash_os_done 1 ; saveenv ; dfu 0 mmc 0

                  do_force_partition=echo "Partitioning using GPT"; gpt write mmc 0 ${partitions} ; mmc rescan; setenv do_partition_done 1 ; saveenv

                  do_handle_bootargs_mode=run do_preprocess_bootargs_mode; if itest.s $bootargs_mode == "ota" ; then run do_ota; fi; if itest.s $bootargs_mode == "boot" ; then run do_boot; fi; if itest.s $bootargs_mode == "flash"; then run do_flash; fi; run do_fallback; exit;

                  do_load_ota_scr=if fatload mmc 0:6 $ota_script_addr ota_update.scr ; then setenv ota_status 0 ; else setenv ota_status 1 ; fi

                  do_ota=run do_ota_init ; run do_load_ota_scr ; run do_source_ota_scr ; run do_ota_clean

                  do_ota_clean=saveenv ; reset

                  do_ota_init=setenv ota_status 1 ; env delete -f bootargs_mode

                  do_partition=if itest.b ${do_partition_done} -eq 1; then echo "Partitioning already done..."; else run do_force_partition ; fi

                  do_partition_done=1

                  do_preprocess_bootargs_mode=if env exists bootargs_mode ; then ; else setenv bootargs_mode "boot" ;fi;

                  do_probe_dfu=run do_dfu_alt_info_mmc ; dfu 0 mmc 0 $dfu_to_sec

                  do_source_ota_scr=if test $ota_status -eq 0 ; then if source $ota_script_addr ; then setenv ota_status 0 ; else setenv ota_status 2 ; fi ; fi

                  first_install_max_retries=3

                  first_install_retry=0

                  hardware_id=00

                  init_dfu=run do_dfu_alt_info_mmc ; saveenv

                  load_initramfs=fatload mmc 0:6 ${loadaddr_ramfs} initramfs-edison

                  load_kernel=fatload mmc 0:6 ${loadaddr} vmlinuz

                  loadaddr=0x100000

                  loadaddr_ramfs=0x8100000

                  mmc-bootargs=run do_bootargs_rootfs; run do_audio_support; setenv bootargs ${bootargs_rootfs} ${bootargs_console} ${bootargs_debug} g_multi.ethernet_config=${bootargs_ethconfig} systemd.unit=${bootargs_target}.target hardware_id=${hardware_id} g_multi.iSerialNumber=${serial#} g_multi.dev_addr=${usb0addr} ${audio_support}

                  ota_done=0

                  ota_script_addr=0x100000

                  ota_update_max_retries=3

                  ota_update_retry=0

                  partitions=uuid_disk=${uuid_disk};name=u-boot0,start=1MiB,size=2MiB,uuid=${uuid_uboot0};name=u-boot-env0,size=1MiB,uuid=${uuid_uboot_env0};name=u-boot1,size=2MiB,uuid=${uuid_uboot1};name=u-boot-env1,size=1MiB,uuid=${uuid_uboot_env1};name=factory,size=1MiB,uuid=${uuid_factory};name=rootfs,size=-,uuid=${uuid_rootfs};

                  serial#=b33f335811680145fdc309c8f189130c

                  stderr=serial

                  stdin=serial

                  stdout=serial

                  target_name=blank

                  usb0addr=02:00:86:89:13:0c

                  uuid_disk=21200400-0804-0146-9dcc-a8c51255994f

                  uuid_factory=333a128e-d3e3-b94d-92f4-d3ebd9b3224f

                  uuid_rootfs=f20aa902-1c5d-294a-9177-97a513e3cae4

                  uuid_uboot0=d117f98e-6f2c-d04b-a5b2-331a19f91cb2

                  uuid_uboot1=8a4bb8b4-e304-ae48-8536-aff5c9c495b1

                  uuid_uboot_env0=25718777-d0ad-7443-9e60-02cb591c9737

                  uuid_uboot_env1=08992135-13c6-084b-9322-3391ff571e19

                   

                   

                  I am intercepting u-boot and trying to load the yocto kernel....with an initramfs file...but it seems to crash...

                  • 6. Re: Invalid DFU Suffix Signature - Custom u-boot
                    Mosfet

                    And my mmc 0:6

                     

                    boot > fatls mmc 0:6

                      9633513   initramfs-edison

                      5478784   vmlinuz

                      7946240   modloop-edison

                                apks/

                     

                    3 file(s), 1 dir(s)

                    boot >

                    • 7. Re: Invalid DFU Suffix Signature - Custom u-boot
                      Intel Corporation
                      This message was posted on behalf of Intel Corporation

                      Are you following any guides to modify the u-boot, what other steps have you followed? Are you going to continue working on Yocto or are you going to use another OS? Why do you need to modify u-boot?

                      Sergio
                       

                      • 8. Re: Invalid DFU Suffix Signature - Custom u-boot
                        Mosfet

                        Hi Sergio, I have crossed the above hurdle.

                         

                        I am trying to get Yocto Kernel + Initrd [Initramfs] working for Edison based on www.alpinelinux.org. It has gone forward a bit more however its still struck waiting for the console command prompt. Here is the pastebin

                         

                        1. U-boot customization is complete and it works [Will create a seperate tutorial thread on how-to]

                        2. Kernel seems to boot fine but I think it still cannot find the following required files/dir present in mmc 0:6 fat partition hence no command prompt..

                         

                        boot > ls mmc 0:6

                          9633513   initramfs-edison

                          5478784   vmlinuz

                          7946240   modloop-edison

                                    apks/

                        3 file(s), 1 dir(s)

                         

                        paste.ubuntu.com/16848735/

                         

                        The following are the goals I set upon (unlike ubilinux or yocto):

                        1. Lightweight GNU/Linux platform [10k+ read to use Packages]
                        2. Read only system that enables zero data loss (protection) and enables emmc to survive for years [Must for IoT]
                        3. External hot swap support for SD-cards and USB devices
                        4. Can be made to automatically recover/repair external SD-card file-systems in the event of power loss during writing
                        5. Remote upgradability with very less downtime including possible preventive actions against a power cut in the middle of the upgrade.
                        6. Each Edison device can be configured in the field with a standard Windows laptop (fast deployment)
                        7. Each Edison device can be found on the network, even if the IP-address is unknown
                        8. Online cloud image test service
                        9. Console login with a hot pluggable USB null modem cable for field service
                        10. Use existing Watchdog + all other drivers including Wi-Fi as a hotspot
                        11. Easy to Toolchain (compiler) to compile other packages
                        12. X-windows Desktop support with all desktop applications

                         

                        I plan to release it once its ready free of cost to community and continue supporting

                        • 9. Re: Invalid DFU Suffix Signature - Custom u-boot
                          Intel Corporation
                          This message was posted on behalf of Intel Corporation

                          Thank you for providing the steps you’ve made so far. This is very interesting work however, we don’t have experience with www.alpinelinux.org. I’d suggest you to contact the AlpineLinux community as the final issue is not getting the console prompt to boot from the AlpineLinux http://www.alpinelinux.org/community/ .

                          -Sergio
                           

                          • 10. Re: Invalid DFU Suffix Signature - Custom u-boot
                            Mosfet

                            I understand but are there any plans to support newer kernels? Too bad Edison is such a good hardware.....

                            • 11. Re: Invalid DFU Suffix Signature - Custom u-boot
                              Intel Corporation
                              This message was posted on behalf of Intel Corporation

                              We’re currently working on releasing a new kernel for the Edison. It is being updated publically in github here: https://github.com/01org/edison-linux/commits/wip-edison-3.19.5 . There’s still not an estimated date of release for this new kernel.

                              -Sergio
                               

                              • 12. Re: Invalid DFU Suffix Signature - Custom u-boot
                                Mosfet

                                Thanks,

                                 

                                The invalid signature issue has been fixed by using a custom generated OSIP binary.