Hi everyone,
I am using the Buildroot 2018.02 for my development on IMX7Dual Sabre Board. Recently I want to enable mfgtools package to update the FW using the mfgtools.
In mfgtool readme, there are following option which have to be set and so I just follow that.
#################################################################
Make sure to enable the following Buildroot options:
BR2_PACKAGE_FREESCALE_IMX=y
BR2_PACKAGE_IMX_UUC=y
BR2_TARGET_ROOTFS_CPIO=y
BR2_TARGET_ROOTFS_CPIO_GZIP=y
BR2_TARGET_ROOTFS_CPIO_UIMAGE=y
Also modify your kernel configuration to have:
CONFIG_USB_GADGET=y
CONFIG_USB_MASS_STORAGE=y
CONFIG_FSL_UTP=y
CONFIG_MMC_BLOCK_MINORS=16
#################################################################
For the kernel defconfig, I chose imx_v7_mfg_defconfig. And the kernel version is rel_imx_4.9.x_1.0.0_ga.
I can really successfully build the uboot, kernel and rootfs, as well as the sdcard.img. And then I test the sdcard.img using dd command to my board. However the kernel get stuck everytime at similar position and I will show the log later.
Well I also try to use mfgtool to update the same FW. Sending and burning processes uboot, kernel, rootfs, device tree can all pass without any error. After the mfgtool process is done, the kernel still get stuck get that position every time during boot up.
Here is the log and please advice. Thanks all!
U-Boot 2017.03 (Apr 29 2018 - 22:50:16 -0700)
CPU: Freescale i.MX7D rev1.2 996 MHz (running at 792 MHz)
CPU: Commercial temperature grade (0C to 95C) at 42C
Reset cause: POR
Model: Freescale i.MX7D SabreSD Board
Board: i.MX7D SABRESD RevC in secure mode
DRAM: 1 GiB
PMIC: PFUZE3000 DEV_ID=0x30 REV_ID=0x11
MMC: FSL_SDHC: 0, FSL_SDHC: 1
*** Warning - bad CRC, using default environment
Display: TFT43AB (480x272)
Video: 480x272x24
In: serial
Out: serial
Err: serial
switch to partitions #0, OK
mmc0 is current device
Net:
Error: ethernet@30be0000 address not set.
No ethernet found.
Normal Boot
Hit any key to stop autoboot: 0
switch to partitions #0, OK
mmc0 is current device
switch to partitions #0, OK
mmc0 is current device
reading boot.scr
** Unable to read file boot.scr **
reading zImage
5101392 bytes read in 238 ms (20.4 MiB/s)
Booting from mmc ...
reading imx7d-sdb.dtb
47049 bytes read in 19 ms (2.4 MiB/s)
Kernel image @ 0x80800000 [ 0x000000 - 0x4dd750 ]
## Flattened Device Tree blob at 83000000
Booting using the fdt blob at 0x83000000
Using Device Tree in place at 83000000, end 8300e7c8
Starting kernel ...
Booting Linux on physical CPU 0x0
Linux version 4.1.15 (chris@ubuntu) (gcc version 6.4.0 (Buildroot 2018.02-00002-g9bd4dc4) ) #1 SMP PREEMPT Sun Apr 29 23:00:19 PDT 2018
CPU: ARMv7 Processor [410fc075] revision 5 (ARMv7), cr=10c5387d
CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
Machine model: Freescale i.MX7D SabreSD Board
Reserved memory: created CMA memory pool at 0xac000000, size 320 MiB
Reserved memory: initialized node linux,cma, compatible id shared-dma-pool
Memory policy: Data cache writealloc
PERCPU: Embedded 12 pages/cpu @ab71c000 s16716 r8192 d24244 u49152
Built 1 zonelists in Zone order, mobility grouping on. Total pages: 260096
Kernel command line: console=ttymxc0,115200 root=/dev/mmcblk0p2 rootwait rw
PID hash table entries: 4096 (order: 2, 16384 bytes)
Dentry cache hash table entries: 131072 (order: 7, 524288 bytes)
Inode-cache hash table entries: 65536 (order: 6, 262144 bytes)
Memory: 700504K/1048576K available (6928K kernel code, 322K rwdata, 2360K rodata, 396K init, 424K bss, 20392K reserved, 327680K cma-reserved, 0K highmem)
Virtual kernel memory layout:
vector : 0xffff0000 - 0xffff1000 ( 4 kB)
fixmap : 0xffc00000 - 0xfff00000 (3072 kB)
vmalloc : 0xc0800000 - 0xff000000 (1000 MB)
lowmem : 0x80000000 - 0xc0000000 (1024 MB)
pkmap : 0x7fe00000 - 0x80000000 ( 2 MB)
modules : 0x7f000000 - 0x7fe00000 ( 14 MB)
.text : 0x80008000 - 0x8091a3c8 (9289 kB)
.init : 0x8091b000 - 0x8097e000 ( 396 kB)
.data : 0x8097e000 - 0x809ce880 ( 323 kB)
.bss : 0x809d1000 - 0x80a3b154 ( 425 kB)
SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=2, Nodes=1
Preemptible hierarchical RCU implementation.
Additional per-CPU info printed with stalls.
RCU restricting CPUs from NR_CPUS=4 to nr_cpu_ids=2.
RCU: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=2
NR_IRQS:16 nr_irqs:16 16
Architected cp15 timer(s) running at 8.00MHz (phys).
clocksource arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x1d854df40, max_idle_ns: 440795202120 ns
sched_clock: 56 bits at 8MHz, resolution 125ns, wraps every 2199023255500ns
Switching to timer-based delay loop, resolution 125ns
mxc_clocksource_init 3000000
Ignoring duplicate/late registration of read_current_timer delay
clocksource mxc_timer1: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 637086815595 ns
Console: colour dummy device 80x30
Calibrating delay loop (skipped), value calculated using timer frequency.. 16.00 BogoMIPS (lpj=80000)
pid_max: default: 32768 minimum: 301
Mount-cache hash table entries: 2048 (order: 1, 8192 bytes)
Mountpoint-cache hash table entries: 2048 (order: 1, 8192 bytes)
CPU: Testing write buffer coherency: ok
/cpus/cpu@0 missing clock-frequency property
/cpus/cpu@1 missing clock-frequency property
CPU0: thread -1, cpu 0, socket 0, mpidr 80000000
Setting up static identity map for 0x80008280 - 0x800082f0
CPU1: thread -1, cpu 1, socket 0, mpidr 80000001
Brought up 2 CPUs
SMP: Total of 2 processors activated (32.00 BogoMIPS).
CPU: All CPU(s) started in SVC mode.
devtmpfs: initialized
device-tree: Duplicate name in lcdif@30730000, renamed to "display#1"
VFP support v0.3: implementor 41 architecture 2 part 30 variant 7 rev 5
clocksource jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
pinctrl core: initialized pinctrl subsystem
NET: Registered protocol family 16
DMA: preallocated 256 KiB pool for atomic coherent allocations
cpuidle: using governor ladder
cpuidle: using governor menu
DDR type is DDR3!
hw-breakpoint: found 5 (+1 reserved) breakpoint and 4 watchpoint registers.
hw-breakpoint: maximum watchpoint size is 8 bytes.
imx7d-pinctrl 302c0000.iomuxc-lpsr: initialized IMX pinctrl driver
imx7d-pinctrl 30330000.iomuxc: initialized IMX pinctrl driver
MU is ready for cross core communication!
mxs-dma 33000000.dma-apbh: initialized
SCSI subsystem initialized
usbcore: registered new interface driver usbfs
usbcore: registered new interface driver hub
usbcore: registered new device driver usb
30800000.aips-bus:usbphy_nop1 supply vcc not found, using dummy regulator
30800000.aips-bus:usbphy_nop2 supply vcc not found, using dummy regulator
i2c i2c-0: IMX I2C adapter registered
i2c i2c-0: can't use DMA
i2c i2c-1: IMX I2C adapter registered
i2c i2c-1: can't use DMA
i2c i2c-2: IMX I2C adapter registered
i2c i2c-2: can't use DMA
i2c i2c-3: IMX I2C adapter registered
i2c i2c-3: can't use DMA
Linux video capture interface: v2.00
pps_core: LinuxPPS API ver. 1 registered
pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
PTP clock support registered
Advanced Linux Sound Architecture Driver Initialized.
Switched to clocksource arch_sys_counter
NET: Registered protocol family 2
TCP established hash table entries: 8192 (order: 3, 32768 bytes)
TCP bind hash table entries: 8192 (order: 4, 65536 bytes)
TCP: Hash tables configured (established 8192 bind 8192)
UDP hash table entries: 512 (order: 2, 16384 bytes)
UDP-Lite hash table entries: 512 (order: 2, 16384 bytes)
NET: Registered protocol family 1
RPC: Registered named UNIX socket transport module.
RPC: Registered udp transport module.
RPC: Registered tcp transport module.
RPC: Registered tcp NFSv4.1 backchannel transport module.
imx rpmsg driver is registered.
Bus freq driver module loaded
futex hash table entries: 512 (order: 3, 32768 bytes)
VFS: Disk quotas dquot_6.6.0
VFS: Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)
NFS: Registering the id_resolver key type
Key type id_resolver registered
Key type id_legacy registered
jffs2: version 2.2. (NAND) © 2001-2006 Red Hat, Inc.
fuse init (API version 7.23)
io scheduler noop registered
io scheduler deadline registered
io scheduler cfq registered (default)
backlight supply power not found, using dummy regulator
imx-sdma 30bd0000.sdma: no event needs to be remapped
imx-sdma 30bd0000.sdma: loaded firmware 4.2
imx-sdma 30bd0000.sdma: initialized
pfuze100-regulator 0-0008: Full layer: 1, Metal layer: 1
pfuze100-regulator 0-0008: FAB: 0, FIN: 0
pfuze100-regulator 0-0008: pfuze3000 found.
30860000.serial: ttymxc0 at MMIO 0x30860000 (irq = 279, base_baud = 1500000) is a IMX
console [ttymxc0] enabled
30a70000.serial: ttymxc4 at MMIO 0x30a70000 (irq = 288, base_baud = 5000000) is a IMX
30a80000.serial: ttymxc5 at MMIO 0x30a80000 (irq = 289, base_baud = 5000000) is a IMX
imx sema4 driver is registered.
[drm] Initialized drm 1.1.0 20060810
[drm] Initialized vivante 1.0.0 20120216 on minor 0
brd: module loaded
loop: module loaded
spi_imx 30840000.ecspi: probed
30be0000.ethernet supply phy not found, using dummy regulator
pps pps0: new PPS source ptp0
fec 30be0000.ethernet (unnamed net_device) (uninitialized): Invalid MAC address: 00:00:00:00:00:00
fec 30be0000.ethernet (unnamed net_device) (uninitialized): Using random MAC address: 46:78:b2:e0:11:42
libphy: fec_enet_mii_bus: probed
fec 30be0000.ethernet eth0: registered PHC device 0
30bf0000.ethernet supply phy not found, using dummy regulator
pps pps1: new PPS source ptp1
fec 30bf0000.ethernet (unnamed net_device) (uninitialized): Invalid MAC address: 00:00:00:00:00:00
fec 30bf0000.ethernet (unnamed net_device) (uninitialized): Using random MAC address: 4e:81:46:ec:80:d5
fec 30bf0000.ethernet eth1: registered PHC device 1
ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
ehci-mxc: Freescale On-Chip EHCI Host driver
usbcore: registered new interface driver usb-storage
30b10200.usbmisc supply vbus-wakeup not found, using dummy regulator
30b20200.usbmisc supply vbus-wakeup not found, using dummy regulator
30b30200.usbmisc supply vbus-wakeup not found, using dummy regulator
ci_hdrc ci_hdrc.1: EHCI Host Controller
ci_hdrc ci_hdrc.1: new USB bus registered, assigned bus number 1
ci_hdrc ci_hdrc.1: USB 2.0 started, EHCI 1.00
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 1 port detected
Mass Storage Function, version: 2009/09/11
LUN: removable file: (no medium)
no file given for LUN0
g_mass_storage ci_hdrc.0: failed to start g_mass_storage: -22
mousedev: PS/2 mouse device common for all mice
input: 30370000.snvs:snvs-powerkey as /devices/platform/soc/30000000.aips-bus/30370000.snvs/30370000.snvs:snvs-powerkey/input/input0
snvs_rtc 30370000.snvs:snvs-rtc-lp: rtc core: registered 30370000.snvs:snvs- as rtc0
i2c /dev entries driver
IR NEC protocol handler initialized
IR RC5(x/sz) protocol handler initialized
IR RC6 protocol handler initialized
IR JVC protocol handler initialized
IR Sony protocol handler initialized
IR SANYO protocol handler initialized
IR Sharp protocol handler initialized
IR MCE Keyboard/mouse protocol handler initialized
IR XMP protocol handler initialized
pxp-v4l2 pxp_v4l2_out: initialized
imx2-wdt 30280000.wdog: use WDOG_B to reboot.
imx2-wdt 30280000.wdog: timeout 60 sec (nowayout=0)
sdhci: Secure Digital Host Controller Interface driver
sdhci: Copyright(c) Pierre Ossman
sdhci-pltfm: SDHCI platform and OF driver helper
/soc/aips-bus@30800000/usdhc@30b40000: voltage-ranges unspecified
sdhci-esdhc-imx 30b40000.usdhc: Got CD GPIO
sdhci-esdhc-imx 30b40000.usdhc: Got WP GPIO
sdhci-esdhc-imx 30b40000.usdhc: No vqmmc regulator found
mmc0: SDHCI controller on 30b40000.usdhc [30b40000.usdhc] using ADMA
/soc/aips-bus@30800000/usdhc@30b50000: voltage-ranges unspecified
sdhci-esdhc-imx 30b50000.usdhc: assigned as wifi host
sdhci-esdhc-imx 30b50000.usdhc: No vmmc regulator found
sdhci-esdhc-imx 30b50000.usdhc: No vqmmc regulator found
mmc1: SDHCI controller on 30b50000.usdhc [30b50000.usdhc] using ADMA
/soc/aips-bus@30800000/usdhc@30b60000: voltage-ranges unspecified
sdhci-esdhc-imx 30b60000.usdhc: No vmmc regulator found
sdhci-esdhc-imx 30b60000.usdhc: No vqmmc regulator found
mmc2: SDHCI controller on 30b60000.usdhc [30b60000.usdhc] using ADMA
usbcore: registered new interface driver usbhid
usbhid: USB HID core driver
NET: Registered protocol family 10
sit: IPv6 over IPv4 tunneling driver
NET: Registered protocol family 17
Key type dns_resolver registered
Registering SWP/SWPB emulation handler
snvs_rtc 30370000.snvs:snvs-rtc-lp: setting system clock to 1970-01-01 04:02:43 UTC (14563)
wlreg_on: disabling
vref-1v8: disabling
can2-3v3: disabling
usb_otg1_vbus: disabling
ALSA device list:
No soundcards found.
mmc0: new ultra high speed SDR104 SDHC card at address 0001
mmcblk0: mmc0:0001 SD16G 14.5 GiB
mmcblk0: p1 p2
Solved! Go to Solution.
Hi,
Please follow below steps to update the FW for i.MX7D SABRESD board.
Method - 1 Using dd command
Method - 2 Using MFGTool
Hope this will be helpful to you.
Regards,
Shivani.
Hi,
Please follow below steps to update the FW for i.MX7D SABRESD board.
Method - 1 Using dd command
Method - 2 Using MFGTool
Hope this will be helpful to you.
Regards,
Shivani.
Hi Shivani Patel,
It works. But I still wonder why I cant use the imx_v7_mfg_defconfig for the kernel build. Anyway thanks a lot for your help.
Chris
Hi Chris Tsang,
The images built using imx_v7_mfg_defconfig should be kept in MFGTool \Profiles\Linux\OS Firmware\firmware\ folder as these images are the manufacturing tool images and the images built using freescale_imx7dsabresd_defconfig defconfig which internally used imx_v7_defconfig defconfig are default images and they should be placed in MFGTool /Profiles/Linux/OS Firmware/files folder.
Hope this will be useful.
Regards,
Shivani.
Hello,
mfgtool doesn't need any changes to perform the software update, you only need to update the folder with the new image that you are willing to use and use the GUI as usual.
Best Regards,
Diego.
Hi Diego,
The mfgtool is fine. But I have to use the mfg defconfig for the kernel right? Otherwise I cannot use the mfgtool properly.
Chris