Flash Yocto Problem


#1

Hey guys, I’m quite new into the embedded system world and now I’m working on a AR7554 module on which there has been already installed yocto.
My final goal is to be able to modify the kernel in order to add or remove some module in function of what I need, but I’m having some issue.
I started downloading the archive from legato.io. After some configuration of legato and the shell environment, I have been able to arrive at the end of the “make” command and to have my own rootfs and kernel compiled.
Now I’m facing a problem on how flash them on the board.
Inside the file readme.bsp it is written that the steps are:

$ fastboot erase boot
$ fastboot erase system
$ fastboot flash system mdm9x15-image-minimal-swi-mdm9x15.yaffs2
$ fastboot boot boot-yocto-mdm9x15.img

but the first two command give me the following error:

and the same happens for system.

Instead if I read the instructions on legato.io docs I should do from the folder where there are the files .bin and .yaffs2

$ fastboot erase kernel
$ fastboot erase rootfs
$ fastboot flash kernel kernel
$ fastboot flash rootfs rootfs
$ fastboot reboot

These commands doesn’t give me any error but, when the board reboot, it falls down into a bootloop that goes on for a while until it restart normally like if I have flashed nothing. During the boot phase the following message are shown:

[10] ERROR: No misc partition found
[    0.182572] AXI: msm_bus_fabric_init_driver(): msm_bus_fabric_init_driver
[    0.185838] unmatched machine ID in register_i2c_devices
[    0.234426] socinfo_init_dev: device_register fail (-22)
[    0.516954] smem_find(9, 464): wrong size 912
[    0.520524] Notify: smsm init
[    0.898245] diag: Invalid Msg type 12 proc 2
[    0.903464] diag: In diag_smd_cntl_send_req, proc=0, Nothing to read from SMD
[    0.918174] diag: In diag_smd_cntl_send_req, proc=0, Nothing to read from SMD
[    0.924339] diag: In diag_smd_cntl_send_req, proc=0, Nothing to read from SMD
[    0.953120] diag: In diag_smd_cntl_send_req, proc=0, Nothing to read from SMD
[    0.968258] diag: In diag_smd_cntl_send_req, proc=0, Nothing to read from SMD
[    1.048161] fail to get slimbus logical address -6
[    1.147169] flash_onfi_probe: No partition info available
[    1.182725] msm_hsusb_host msm_hsusb_host: unable to find transceiver
[    1.264459] msm_otg msm_otg: failed to get phy_clk
[    1.316221] sitar_probe
[    1.318785] voice_allocate_shared_memory: ION memory allocation failed
rootfs: dev '/dev/mtdblock' 'yaffs2'
rootfs: mount failed
rootfs: dev '/dev/mtdblock' does not existSystem error!
[    1.688814] Kernel panic - not syncing: Attempted to kill init! exitcode=0x00000100
[    1.688814] 
[    1.696963] CPU: 0 PID: 1 Comm: init Not tainted 3.14.29ltsi-c14b887744_39dcf2256d 2
[    1.704806] [<c001583c>] (unwind_backtrace) from [<c00128f0>] (show_stack+0x20/0x24)
[    1.712498] [<c00128f0>] (show_stack) from [<c0614334>] (dump_stack+0x20/0x28)
[    1.719700] [<c0614334>] (dump_stack) from [<c0613210>] (panic+0x9c/0x1dc)
[    1.726567] [<c0613210>] (panic) from [<c00608d4>] (do_exit+0x4b0/0x90c)
[    1.733251] [<c00608d4>] (do_exit) from [<c0060dd8>] (do_group_exit+0x5c/0xdc)
[    1.740454] [<c0060dd8>] (do_group_exit) from [<c0060e78>] (__wake_up_parent+0x0/0x)
[    1.748329] [<c0060e78>] (__wake_up_parent) from [<c000e740>] (ret_fast_syscall+0x0)
[    1.856371] Rebooting in 5 seconds..
[    6.852708] Going down for res�Android Bootloader - UART_DM Initialized!!!

I tried also to recompile all things specifying to install the rootfs on the sd card using

KERNEL_BOOT_OPTIONS = "root=/dev/mmcblk0p1 rw rootwait console=ttyHSL0,115200"

and so after copy the necessary file on the sd and erase and flash the kernel I turned on again the board but still the same problem: bootloop for a while and after boot normally as before. Even removing the sd card from the board, it boots normally.

How should I flash correctly the new kernel? I missed some step or wrong something?

In addition, If I want to add a kernel module that can be found from make menuconfig, is it necessary create some recipe, or just recompiling all makes the new kernel to have the new modules installed?

Thank you in advance for your help :slight_smile: