Hello
I tried to update my i.MX6 DualLite CPU Card with MTGTool2 (Mfgtools-Rel-3.0.0_121207_MX6DL_UPDATER).
I have changed boot mode pins to serial download.
I have connected my board to PC using USB OTG interface, device was properly recognized by my WinXP. Also MFGTool shows proper information: "HID compliant device". When I start the process, loading modules is working ok but it stucks on "Jumping to OS image".
Also, terminal (which works ok when booting from SD card) is not working - no information available.
It looks like all BootStrap states are performed and none of the Updater states (ucl2.xml configuration file).
Does anyone had same problem? Does anyone knows what am I doing wrong?
Also I have questions about ucl2.xml file:
<CFG>
<STATE name="BootStrap" dev="MX6D" vid="15A2" pid="0061"/>
<STATE name="Updater" dev="MSC" vid="066F" pid="37FF"/>
</CFG>
What is dev, vid and pid parameters? Should I change somehow those? Why those are different for BootStrap nad Updater states?
In attachment is log file from MFGtool.
BR, Rafal
Original Attachment has been moved to: MfgTool.log.zip
Solved! Go to Solution.
The host is OK. The device seems to have the problem. You had better provide the log into console for this problem.
For bootstrap mode, it refers to the communcation between the host and ROM codes through serial download protocol. The purpose of this mode is to download MFGTool firmwares (Uboot/kernel/rootfs) to the devices and then jump to the Ubootof MFGTool firmwares. The VID and PID are aligned with ROM codes.
Updater mode, it refers to the communcation between the host and MFGTool firmware through UTP defined in kernel. So its VID and PID are different.
Hi,
please try to clicking STOP and START while "jumping to OS" is displayed.
For my experience this is an issue on WindowsXP hosts.
The host is OK. The device seems to have the problem. You had better provide the log into console for this problem.
For bootstrap mode, it refers to the communcation between the host and ROM codes through serial download protocol. The purpose of this mode is to download MFGTool firmwares (Uboot/kernel/rootfs) to the devices and then jump to the Ubootof MFGTool firmwares. The VID and PID are aligned with ROM codes.
Updater mode, it refers to the communcation between the host and MFGTool firmware through UTP defined in kernel. So its VID and PID are different.
hi xiaoli.zhang
I'm trying to flash NAND using MFG tool. It fails frequently with following lines on hyperterminal :
PID:00400002 TID:01BF000E ERROR: c:\wince700\platform\common\src\soc\common_fsl_v3\uut\uutdrv\bot.cpp line 766: PID:00400002 TID:01BF000E UsbMsFn!BOT_HandleCBW: Invalid CBW signature
Error message on MFGTool displays:
failed to run command: type="push" body="send" file="files/NK.nb0" timeout="10" onError="" text="Sending NK.nb0 file." ,, Error code:-1
What is the reason for this error? and how i can solve it?
Thanks.
With regards,
Keshava G N
I am not familar with WinCE image flashing. You had better list MFGTool version, Software version and hardware information. So we can provide help.
Hi xiaoli.zhang,
Thanks for quick reply.
I'm using MFGTool version: 1.6.2.041
WEC7 on device and WindowsXP on host machine.
Thanks.
With regards,
Keshava G N
Which i.MX platform you are using? Still MX6DL?
I remembered we don’t have MFGTool release for i.MX6 WinCE.
Best Regards
Lily Zhang
Freescale MPU Support
Thank you for fast response.
If I understood correctly I should not change anything in CFG part of ucl2.xml file?
If bootstrap mode is working ok (visible progress on MFGTool) and updater mode is not working at all, is it possible I am using wrong image files/configuration? I already tried: i.MX6DL-SABRESD-SD and i.MX6DL-ubuntu-SABRESD-SD (my board is i.MX6 DualLite CPU board) and use image files that comes with MFGTool.
As I stated before, my console is inactive when boot mode configured for serial download. Should some debugs be visible right from the start of MFGTool operation? Eg. While "Loading U-boot"?
Host logs show it jumps to the U-boot. But no further log information. For this case, device log is useful.
If you download MFGTool from the formal web site, this tool should work well for MX6 board. You can double check you didn’t change u-boot-mx6dl-sabresd.bin and uImage under Profiles\MX6DL Linux Update\OS Firmware?
Meanwhile, Do you have the detailed information about your board – Version etc? Did you use the MFGTool with old version? How about the results?
If your device log can work, you can check whether there is uboot log into console. If not, you can check whether DDR script in MFGTool is stable for your board. If U-boot is OK, then you can check kernel part.
Hello
I have changed the u-boot.bin version and now I have console working ok. But still no operation after "Jumping to OS image".
I am not able to perform any of "Updater" calls. Below you can find log from console. You can see Linux is started and some "UTP:" debugs but no access to console and it stucks on "cpu_id is 0". Should user be able to write to console? Run a program? Could someone identify if I have problem with kernel or ramfs?
U-Boot 2009.08 (Feb 01 2013 - 04:35:31)
CPU: Freescale i.MX6 family TO1.1 at 792 MHz
Temperature: 37 C, calibration data 0x5984dd7d
mx6q pll1: 792MHz
mx6q pll2: 528MHz
mx6q pll3: 480MHz
mx6q pll8: 50MHz
ipg clock : 66000000Hz
ipg per clock : 66000000Hz
uart clock : 80000000Hz
cspi clock : 60000000Hz
ahb clock : 132000000Hz
axi clock : 198000000Hz
emi_slow clock: 22000000Hz
ddr clock : 396000000Hz
usdhc1 clock : 198000000Hz
usdhc2 clock : 198000000Hz
usdhc3 clock : 198000000Hz
usdhc4 clock : 198000000Hz
nfc clock : 24000000Hz
Board: i.MX6DL/Solo-SABREAUTO: unknown-board Board: 0x61011 [POR ]
Boot Device: SD
I2C: ready
DRAM: 2 GB
MMC: FSL_USDHC: 0,FSL_USDHC: 1,FSL_USDHC: 2,FSL_USDHC: 3
*** Warning - bad CRC or MMC, using default environment
In: serial
Out: serial
Err: serial
Net: got MAC address from IIM: 00:04:9f:02:77:68
FEC0 [PRIME]
Hit any key to stop autoboot: 0
## Booting kernel from Legacy Image at 10800000 ...
Image Name: Linux-3.0.35-2213-g7e8c89c
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 3151012 Bytes = 3 MB
Load Address: 10008000
Entry Point: 10008000
Verifying Checksum ... OK
## Loading init Ramdisk from Legacy Image at 10c00000 ...
Image Name: uboot initramfs rootfs
Image Type: ARM Linux RAMDisk Image (gzip compressed)
Data Size: 4543742 Bytes = 4.3 MB
Load Address: 00000000
Entry Point: 00000000
Verifying Checksum ... OK
Loading Kernel Image ... OK
OK
Starting kernel ...
Uncompressing Linux... done, booting the kernel.
Linux version 3.0.35-2213-g7e8c89c (r65388@shlinux3) (gcc version 4.6.2 20110630 (prerelease) (Freescale MAD -- Linaro 2011.07 -- Built at 2011/08/10 09:20) ) #1 SMP PREEMPT Fri Dec 7 08:25:43 CST 2012
CPU: ARMv7 Processor [412fc09a] revision 10 (ARMv7), cr=10c53c7d
CPU: VIPT nonaliasing data cache, VIPT aliasing instruction cache
Machine: Freescale i.MX 6Quad/DualLite/Solo Sabre Auto Board
Memory policy: ECC disabled, Data cache writealloc
CPU identified as i.MX6DL/SOLO, silicon rev 1.1
PERCPU: Embedded 7 pages/cpu @8c80e000 s5184 r8192 d15296 u32768
Built 1 zonelists in Zone order, mobility grouping on. Total pages: 520192
Kernel command line: console=ttymxc3,115200 rdinit=/linuxrc arm_freq=800
PID hash table entries: 4096 (order: 2, 16384 bytes)
Dentry cache hash table entries: 262144 (order: 8, 1048576 bytes)
Inode-cache hash table entries: 131072 (order: 7, 524288 bytes)
Memory: 2048MB = 2048MB total
Memory: 2068392k/2068392k available, 28760k reserved, 360448K highmem
Virtual kernel memory layout:
vector : 0xffff0000 - 0xffff1000 ( 4 kB)
fixmap : 0xfff00000 - 0xfffe0000 ( 896 kB)
DMA : 0xf4600000 - 0xffe00000 ( 184 MB)
vmalloc : 0xea800000 - 0xf2000000 ( 120 MB)
lowmem : 0x80000000 - 0xea000000 (1696 MB)
pkmap : 0x7fe00000 - 0x80000000 ( 2 MB)
modules : 0x7f000000 - 0x7fe00000 ( 14 MB)
.init : 0x80008000 - 0x80039000 ( 196 kB)
.text : 0x80039000 - 0x805a789c (5563 kB)
.data : 0x805a8000 - 0x805f1620 ( 294 kB)
.bss : 0x805f1644 - 0x8061c214 ( 171 kB)
SLUB: Genslabs=13, HWalign=32, Order=0-3, MinObjects=0, CPUs=2, Nodes=1
Preemptible hierarchical RCU implementation.
NR_IRQS:496
MXC GPIO hardware
sched_clock: 32 bits at 3000kHz, resolution 333ns, wraps every 1431655ms
Set periph_clk's parent to pll2_pfd_400M!
MXC_Early serial console at MMIO 0x21f0000 (options '115200')
bootconsole [ttymxc3] enabled
Console: colour dummy device 80x30
Calibrating delay loop... 1581.05 BogoMIPS (lpj=7905280)
pid_max: default: 32768 minimum: 301
Mount-cache hash table entries: 512
CPU: Testing write buffer coherency: ok
hw perfevents: enabled with ARMv7 Cortex-A9 PMU driver, 7 counters available
CPU1: Booted secondary processor
Brought up 2 CPUs
SMP: Total of 2 processors activated (3162.11 BogoMIPS).
print_constraints: dummy:
NET: Registered protocol family 16
print_constraints: vddpu: 725 <--> 1300 mV at 700 mV fast normal
print_constraints: vddcore: 725 <--> 1300 mV at 1100 mV fast normal
print_constraints: vddsoc: 725 <--> 1300 mV at 1200 mV fast normal
print_constraints: vdd2p5: 2000 <--> 2775 mV at 2400 mV fast normal
print_constraints: vdd1p1: 800 <--> 1400 mV at 1100 mV fast normal
print_constraints: vdd3p0: 2625 <--> 3400 mV at 3000 mV fast normal
hw-breakpoint: found 6 breakpoint and 1 watchpoint registers.
hw-breakpoint: 1 breakpoint(s) reserved for watchpoint single-step.
hw-breakpoint: maximum watchpoint size is 4 bytes.
L310 cache controller enabled
l2x0: 16 ways, CACHE_ID 0x410000c8, AUX_CTRL 0x02050000, Cache size: 524288 B
IMX usb wakeup probe
bio: create slab <bio-0> at 0
mxs-dma mxs-dma-apbh: initialized
print_constraints: VA: 2800 mV
print_constraints: VD: 2800 mV
print_constraints: VLS: 2800 mV
print_constraints: VLC: 2800 mV
print_constraints: vmmc: 3300 mV
SCSI subsystem initialized
spi_imx imx6q-ecspi.0: probed
usbcore: registered new interface driver usbfs
usbcore: registered new interface driver hub
usbcore: registered new device driver usb
mc_pfuze 1-0008: ID: 0,Full lay: 1 ,Metal lay: 1
mc_pfuze 1-0008: FAB: 0 ,FIN: 0
print_constraints: SW1A: 300 <--> 1875 mV at 1375 mV
print_constraints: SW1B: 300 <--> 1875 mV at 300 mV
print_constraints: SW1C: 300 <--> 1875 mV at 1375 mV
print_constraints: SW2: 800 <--> 3950 mV at 3000 mV
print_constraints: SW3A: 400 <--> 1975 mV at 1500 mV
print_constraints: SW3B: 400 <--> 1975 mV at 1500 mV
print_constraints: SW4: 800 <--> 3950 mV at 3300 mV
print_constraints: SWBST: 5000 <--> 5150 mV at 5000 mV
print_constraints: VSNVS: 1200 <--> 3000 mV at 1800 mV
print_constraints: VREFDDR: at 750 mV
print_constraints: VGEN1: 800 <--> 1550 mV at 800 mV
print_constraints: VGEN2: 800 <--> 1550 mV at 1500 mV
print_constraints: VGEN3: 1800 <--> 3300 mV at 1800 mV
print_constraints: VGEN4: 1800 <--> 3300 mV at 1800 mV
print_constraints: VGEN5: 1800 <--> 3300 mV at 2500 mV
print_constraints: VGEN6: 1800 <--> 3300 mV at 2800 mV
imx-ipuv3 imx-ipuv3.0: IPU DMFC NORMAL mode: 1(0~1), 5B(4,5), 5F(6,7)
Advanced Linux Sound Architecture Driver Version 1.0.24.
Bluetooth: Core ver 2.16
NET: Registered protocol family 31
Bluetooth: HCI device and connection manager initialized
Bluetooth: HCI socket layer initialized
Bluetooth: L2CAP socket layer initialized
Bluetooth: SCO socket layer initialized
i2c-core: driver [max17135] using legacy suspend method
i2c-core: driver [max17135] using legacy resume method
Switching to clocksource mxc_timer1
Clockevents: could not switch to one-shot mode:
Clockevents: could not switch to one-shot mode: dummy_timer is not functional.
Could not switch to high resolution mode on CPU 1
dummy_timer is not functional.
Could not switch to high resolution mode on CPU 0
NET: Registered protocol family 2
IP route cache hash table entries: 65536 (order: 6, 262144 bytes)
TCP established hash table entries: 262144 (order: 9, 2097152 bytes)
TCP bind hash table entries: 65536 (order: 7, 786432 bytes)
TCP: Hash tables configured (established 262144 bind 65536)
TCP reno registered
UDP hash table entries: 1024 (order: 3, 32768 bytes)
UDP-Lite hash table entries: 1024 (order: 3, 32768 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.
Unpacking initramfs...
Freeing initrd memory: 4436K
Static Power Management for Freescale i.MX6
wait mode is enabled for i.MX6
cpaddr = ea820000 suspend_iram_base=ea894000
PM driver module loaded
i.MXC CPU frequency driver
highmem bounce pool size: 64 pages
JFFS2 version 2.2. (NAND) © 2001-2006 Red Hat, Inc.
msgmni has been set to 3344
cryptodev: driver loaded.
io scheduler noop registered
io scheduler deadline registered
io scheduler cfq registered (default)
mxc_sdc_fb mxc_sdc_fb.0: register mxc display driver ldb
_regulator_get: get() with no identifier
imx-ipuv3 imx-ipuv3.0: IPU DMFC DP HIGH RESOLUTION: 1(0,1), 5B(2~5), 5F(6,7)
Console: switching to colour frame buffer device 128x48
mxc_sdc_fb mxc_sdc_fb.1: register mxc display driver ldb
imx-sdma imx-sdma: loaded firmware 1.1
imx-sdma imx-sdma: initialized
Serial: IMX driver
imx-uart.1: ttymxc1 at MMIO 0x21e8000 (irq = 59) is a IMX
imx-uart.2: ttymxc2 at MMIO 0x21ec000 (irq = 60) is a IMX
imx-uart.3: ttymxc3 at MMIO 0x21f0000 (irq = 61) is a IMX
console [ttymxc3] enabled, bootconsole disabled
console [ttymxc3] enabled, bootconsole disabled
loop: module loaded
No NAND device found.
Chip scan failed
GPMI NAND driver registered. (IMX)
vcan: Virtual CAN interface driver
FEC Ethernet Driver
fec_enet_mii_bus: probed
Initializing USB Mass Storage driver...
usbcore: registered new interface driver usb-storage
USB Mass Storage support registered.
ARC USBOTG Device Controller driver (1 August 2005)
add wake up source irq 75
g_file_storage gadget: controller 'fsl-usb2-udc' not recognized
check_parameters:UTP settings are in place now, overriding defaults
g_file_storage gadget: No serial-number string provided!
g_file_storage gadget: File-backed Storage Gadget, version: 1 September 2010
g_file_storage gadget: Number of LUNs=1
fsl-usb2-udc: bind to driver g_file_storage
mousedev: PS/2 mouse device common for all mice
egalax_ts 1-0004: egalax_ts: failed to read firmware version
egalax_ts: probe of 1-0004 failed with error -5
snvs_rtc snvs_rtc.0: rtc core: registered snvs_rtc as rtc0
i2c /dev entries driver
Linux video capture interface: v2.00
mxc_v4l2_output mxc_v4l2_output.0: V4L2 device registered as video16
mxc_v4l2_output mxc_v4l2_output.0: V4L2 device registered as video17
mxc_v4l2_output mxc_v4l2_output.0: V4L2 device registered as video18
imx2-wdt imx2-wdt.0: IMX2+ Watchdog Timer enabled. timeout=60s (nowayout=1)
Bluetooth: Virtual HCI driver ver 1.3
Bluetooth: Generic Bluetooth USB driver ver 0.6
usbcore: registered new interface driver btusb
sdhci: Secure Digital Host Controller Interface driver
sdhci: Copyright(c) Pierre Ossman
mmc0: SDHCI controller on platform [sdhci-esdhc-imx.2] using ADMA
mmc1: no vmmc regulator found
mmc1: SDHCI controller on platform [sdhci-esdhc-imx.0] using ADMA
mxc_vdoa mxc_vdoa: i.MX Video Data Order Adapter(VDOA) driver probed
VPU initialized
mxc_asrc registered
usbcore: registered new interface driver usbhid
usbhid: USB HID core driver
Cirrus Logic CS42888 ALSA SoC Codec Driver
Device with ID register fffffffb is not a CS42888
i2c-core: driver [cs42888] using legacy suspend method
i2c-core: driver [cs42888] using legacy resume method
imx-hdmi-soc-dai: probe of imx-hdmi-soc-dai.0 failed with error -12
imx_3stack asoc driver
ALSA device list:
No soundcards found.
TCP cubic registered
NET: Registered protocol family 17
can: controller area network core (rev 20090105 abi 8)
NET: Registered protocol family 29
can: raw protocol (rev 20090105)
can: broadcast manager protocol (rev 20090105 t)
mmc0: new high speed SDHC card at address 1234
Bluetooth: RFCOMM TTY layer initialized
Bluetooth: RFCOMM socket layer initialized
Bluetooth: RFCOMM ver 1.11
Bluetooth: BNEP (Ethernet Emulation) ver 1.3
Bluetooth: BNEP filters: protocol multicast
Bluetooth: HIDP (Human Interface Emulation) ver 1.2
mmcblk0: mmc0:1234 SA16G 14.6 GiB
mmcblk0: p1 p2
VFP support v0.3: implementor 41 architecture 3 part 30 variant 9 rev 4
Bus freq driver module loaded
Bus freq driver Enabled
mxc_dvfs_core_probe
DVFS driver module loaded
regulator_init_complete: VGEN6: incomplete constraints, leaving on
regulator_init_complete: VGEN5: incomplete constraints, leaving on
regulator_init_complete: VGEN4: incomplete constraints, leaving on
regulator_init_complete: VGEN2: incomplete constraints, leaving on
regulator_init_complete: VLC: incomplete constraints, leaving on
regulator_init_complete: VLS: incomplete constraints, leaving on
regulator_init_complete: VD: incomplete constraints, leaving on
regulator_init_complete: VA: incomplete constraints, leaving on
snvs_rtc snvs_rtc.0: setting system clock to 1970-01-01 03:29:32 UTC (12572)
Freeing init memory: 196K
Starting UTP
ln: /etc/mtab: File exists
disable turn off display
Starting the hotplug events dispatcher udevd
udevd (1992): /proc/1992/oom_adj is deprecated, please use /proc/1992/oom_score_adj instead.
Synthesizing initial hotplug events
g_file_storage gadget: high speed config #1
uuc 0.4 [built Dec 6 2012 23:44:44]
UTP: Waiting for device to appear
UTP: file/device node /dev/utp already exists
cpu_id is 0
Hello, Wegner:
The console log shows the firmware is running. UTP starts working.
The next action expected is that host should send out the commands to device and ask for programming.
Did you see the relative logs in host and device?
Did you copy relative files to be programmed under “files” directory?
Best Regards
Lily Zhang
Freescale MPU Support
Hello
Files are ok, I think. The problem is that I can't perform any "Updater" commands, even simple ones like:
<CMD state="Updater" type="push" body="$ ls /dev/ "> Print devices</CMD>
Is it proper request?
I always gets error on first "Updater" call. Below is log file from MFGTool:
DLL version: 2.0.8
Monday, February 04, 2013 09:54:00 Start new logging
ModuleID[1] LevelID[10]: Parse F:\RoofModule\Freescale\MFGTool2\cfg.ini file success[chip: MX6DL Linux Update, List: MX6DL-Sabreauto-SPI_NOR & SD card]
ModuleID[1] LevelID[10]: Parse F:\RoofModule\Freescale\MFGTool2\Profiles\MX6DL Linux Update\OS Firmware\ucl2.xml file success
ModuleID[2] LevelID[10]: CMyExceptionHandler thread is running
ModuleID[2] LevelID[1]: new MxHidDeviceClass
ModuleID[2] LevelID[10]: new MxHidDevice[00BCB190]
ModuleID[2] LevelID[10]: Device Manager thread is running
ModuleID[1] LevelID[10]: Initialize Device Manager success
ModuleID[2] LevelID[10]: CmdOperation[0] device chagned and reset to state 0
ModuleID[2] LevelID[10]: ExecuteCommand--Boot[WndIndex:0], File is F:\RoofModule\Freescale\MFGTool2\Profiles\MX6DL Linux Update\OS Firmware\u-boot-mx6dl-sabreauto-spi-nor.bin
ModuleID[2] LevelID[10]: ExecuteCommand--Load[WndIndex:0], File is F:\RoofModule\Freescale\MFGTool2\Profiles\MX6DL Linux Update\OS Firmware\uImage, address is 0x10800000
ModuleID[2] LevelID[10]: PortMgrDlg(0)--Command Load excute successfully, retry count: 0
ModuleID[2] LevelID[10]: ExecuteCommand--Load[WndIndex:0], File is F:\RoofModule\Freescale\MFGTool2\Profiles\MX6DL Linux Update\OS Firmware\initramfs.cpio.gz.uboot, address is 0x10C00000
ModuleID[2] LevelID[10]: PortMgrDlg(0)--Command Load excute successfully, retry count: 0
ModuleID[2] LevelID[10]: ExecuteCommand--Jump[WndIndex:0]
ModuleID[2] LevelID[10]: *********MxHidDevice[00BCB190] Jump to Ramkernel successfully!**********
ModuleID[2] LevelID[10]: CmdOperation[0], current state command has been finished and the last command is successful, so SetEvent(hDevCanDeleteEvent)
ModuleID[2] LevelID[10]: DeviceManager::DevChangeWnd::OnDeviceChange() - DEVICE_REMOVAL_EVT(\\?\USB#Vid_15a2&Pid_0061#5&20f5db59&0&1#{a5dcbf10-6530-11d2-901f-00c04fb951ed})
ModuleID[2] LevelID[10]: DeviceManager::OnMsgDeviceEvent() - DEVICE_REMOVAL_EVT(\\?\USB#Vid_15a2&Pid_0061#5&20f5db59&0&1#{a5dcbf10-6530-11d2-901f-00c04fb951ed})
ModuleID[2] LevelID[10]: DeviceClass::FindDeviceByUsbPath--DeviceListType_Current, _devices.size: 1
ModuleID[2] LevelID[10]: DeviceClass::FindDeviceByUsbPath--DeviceListType_Current, devInstPathToFind: USB\VID_15A2&PID_0061\5&20F5DB59&0&1, _deviceInstanceID: USB\VID_15A2&PID_0061\5&20F5DB59&0&1
ModuleID[2] LevelID[10]: DeviceClass::FindDeviceByUsbPath--DeviceListType_Current, Find the device
ModuleID[2] LevelID[10]: DeviceManager::OnMsgDeviceEvent() - DEVICE_REMOVAL_EVT,[MxHidDeviceClass] vid_15a2&pid_0061, Hub:7-Port:1
ModuleID[2] LevelID[10]: DeviceManager::OnMsgDeviceEvent() - DEVICE_REMOVAL_EVT, Notify
ModuleID[2] LevelID[10]: CmdOpreation[0]--OnDeviceChangeNotify, Volume Arrive/Remove or Device Arrive/Remove
ModuleID[2] LevelID[10]: CmdOpreation[0]--OnDeviceChangeNotify, m_p_usb_port is not NULL, so only refresh
ModuleID[2] LevelID[10]: CmdOpreation[0]--OnDeviceChangeNotify, Volume/Device Remove
ModuleID[2] LevelID[1]: CmdOpreation[0]--set m_hDeviceRemoveEvent.
ModuleID[2] LevelID[10]: CmdOpreation[0]--WaitforEvents device remove1
ModuleID[2] LevelID[10]: DeviceManager::OnMsgDeviceEvent()-DEVICE_REMOVAL_EVT, hDevCanDeleteEvent has been set
ModuleID[2] LevelID[10]: delete MxHidDevice[00BCB190]
ModuleID[2] LevelID[10]: DeviceManager::DevChangeWnd::OnDeviceChange() - DEVICE_ARRIVAL_EVT(\\?\USB#Vid_066f&Pid_37ff#5&20f5db59&0&1#{a5dcbf10-6530-11d2-901f-00c04fb951ed})
ModuleID[2] LevelID[10]: DeviceManager::OnMsgDeviceEvent() - DEVICE_ARRIVAL_EVT(\\?\USB#Vid_066f&Pid_37ff#5&20f5db59&0&1#{a5dcbf10-6530-11d2-901f-00c04fb951ed})
ModuleID[2] LevelID[10]: DeviceManager::OnMsgDeviceEvent() - DEVICE_ARRIVAL_EVT,[Msc,DiskDeviceClass] vid_066f&pid_37ff, not handled
ModuleID[2] LevelID[10]: DeviceManager::DevChangeWnd::OnDeviceChange() - VOLUME_ARRIVAL_EVT(I)
ModuleID[2] LevelID[10]: DeviceManager::OnMsgDeviceEvent() - VOLUME_ARRIVAL_EVT(I)
ModuleID[2] LevelID[10]: VolumeDeviceClass::AddUsbDevice() I
ModuleID[2] LevelID[10]: DeviceTypeDisk--_devices size: 1
ModuleID[2] LevelID[10]: Volume--StorageDisk, Disk->_driveNumber:1, Volume->_diskNumber:1
ModuleID[2] LevelID[10]: DeviceTypeDisk--find Disk device: 00BD03C8
ModuleID[2] LevelID[10]: Device::hubIndex::getmsc, return the port index is: 1
ModuleID[2] LevelID[10]: VolumeDeviceClass::AddUsbDevice() successful I add to current list, retrycount: 0
ModuleID[2] LevelID[10]: Device::hubIndex::getmsc, return the port index is: 1
ModuleID[2] LevelID[10]: DeviceManager::OnMsgDeviceEvent() - VOLUME_ARRIVAL_EVT-Disk(I), Hub:7-Port:1
ModuleID[2] LevelID[10]: DeviceManager::OnMsgDeviceEvent() - VOLUME_ARRIVAL_EVT, Notify
ModuleID[2] LevelID[10]: CmdOpreation[0]--OnDeviceChangeNotify, Volume Arrive/Remove or Device Arrive/Remove
ModuleID[2] LevelID[10]: CmdOpreation[0]--OnDeviceChangeNotify, m_p_usb_port is not NULL, so only refresh
ModuleID[2] LevelID[10]: CmdOpreation[0]--OnDeviceChangeNotify, Volume/Device Arrive
ModuleID[2] LevelID[1]: CmdOpreation[0]--set m_hDeviceArriveEvent.
ModuleID[2] LevelID[10]: CmdOpreation[0]--WaitforEvents device arrive1
ModuleID[2] LevelID[10]: CmdOperation[0] device chagned and reset to state 1
ModuleID[2] LevelID[10]: ExecuteCommand--Push[WndIndex:0], Body is send
ModuleID[2] LevelID[1]: PortMgrDlg(0)--MxHidDevice--Command Push excute failed
ModuleID[2] LevelID[10]: CmdOperation[0], current command executed failed, so SetEvent(hDevCanDeleteEvent)
ModuleID[2] LevelID[10]: CCmdOpreation[0] thread is Closed
ModuleID[2] LevelID[10]: CCmdOpreation thread is Closed
ModuleID[2] LevelID[10]: DeviceManager::OnMsgDeviceEvent() - EVENT_KILL
ModuleID[2] LevelID[10]: CMyExceptionHandler::OnMsgExceptionEvent() - KillExceptionHandlerThread
ModuleID[2] LevelID[10]: Exception Handler thread is closed
ModuleID[2] LevelID[1]: delete MxHidDeviceClass
ModuleID[2] LevelID[10]: Device Manager thread is closed
We didn't see this problem. Just want to double confirm you selected right configurations. And relative following information keep sync with your board.
<CFG>
<STATE name="BootStrap" dev="MX6D" vid="15A2" pid="0061"/>
<STATE name="Updater" dev="MSC" vid="066F" pid="37FF"/>
</CFG>
Hello
Yes, I have the same configuration. And I choose "MX6DL-Sabreauto-SPI_NOR & SD card" script.
After OS is loaded, device (CPU mx6 board) is removed from my WinXP for a while, then connected again and after that error is displayed on MFGTool. Is this removing/adding usb device ok?
Hello
What is your board type? Sabreauto or SabreSD or other?
if you choose "MX6DL-Sabreauto-SPI_NOR & SD card" script. you should ensure that your board type is MX6DL Sabreauto, otherwise, the updater will fail.
if your board type is OK, you can get the latest Mfgtool release package, then try again.
Hello
Yes, I am using sabreauto board but without base-board. Only CPU board like on picture:
Does it matter that I am using only part of sabreauto set?
I also want to use MFGTool to load firmware to custom board (with Freescale iMX6 DualLite). I am going to prepare u-boot and kernel for my board and create custom script for MFGTool. Is it possible this way? Please correct me if I am wrong and tool wan't work this way.
I am already using the newest version of MFGTool I have found on Freescale webpage: Mfgtools-Rel-3.0.0_121207_MX6DL_UPDATER
Can you show me your file cfg.ini and ucl2.xml?
cfg.ini file:
[profiles]
chip = MX6DL Linux Update
[platform]
board = SabreSD
[LIST]
name = MX6DL-Sabreauto-SPI_NOR & SD card
ucl2.xml file:
<UCL>
<CFG>
<STATE name="BootStrap" dev="MX6D" vid="15A2" pid="0061"/>
<STATE name="Updater" dev="MSC" vid="066F" pid="37FF"/>
</CFG>
<!--
The following Lists are for i.MX6Solo/DualLite chips
-->
<LIST name="MX6DL-Sabreauto-SPI_NOR & SD card" desc="Choose SPI-NOR/SD as media">
<CMD state="BootStrap" type="boot" body="BootStrap" file ="u-boot-mx6dl-sabreauto-spi-nor.bin" >Loading uboot.</CMD>
<CMD state="BootStrap" type="load" file="uImage" address="0x10800000"
loadSection="OTH" setSection="OTH" HasFlashHeader="FALSE" >Doing Kernel.</CMD>
<CMD state="BootStrap" type="load" file="initramfs.cpio.gz.uboot" address="0x10C00000"
loadSection="OTH" setSection="OTH" HasFlashHeader="FALSE" >Doing Initramfs.</CMD>
<CMD state="BootStrap" type="jump" > Jumping to OS image. </CMD>
<!--burn the uboot to SPI-NOR: ->
<CMD state="Updater" type="push" body="$ flash_erase /dev/mtd0 0 0">Erasing Boot partition</CMD>
<CMD state="Updater" type="push" body="send" file="files/u-boot-mx6dl-sabreauto-spi-nor.bin">Sending U-Boot</CMD>
<CMD state="Updater" type="push" body="$ dd if=$FILE of=/dev/mtd0 bs=512">write U-Boot to SPI-NOR</CMD -->
<!-- partitioning the SD card: -->
<CMD state="Updater" type="push" body="$ ls /dev/*"/>
<CMD state="Updater" type="push" body="send" file="mksdcard.sh.tar">Sending partition shell</CMD>
<CMD state="Updater" type="push" body="$ tar xf $FILE "> Partitioning...</CMD>
<CMD state="Updater" type="push" body="$ sh mksdcard.sh /dev/mmcblk0"> Partitioning SD card now...</CMD>
<!-- burn the kernel: -->
<CMD state="Updater" type="push" body="send" file="files/uImage">Sending kernel uImage</CMD>
<CMD state="Updater" type="push" body="$ dd if=$FILE of=/dev/mmcblk0 bs=1M seek=1 conv=fsync">write kernel image to sd card</CMD>
<!-- burn the rootfs: -->
<CMD state="Updater" type="push" body="$ mkfs.ext3 -j /dev/mmcblk0p1">Formatting rootfs partition</CMD>
<CMD state="Updater" type="push" body="$ mkdir -p /mnt/mmcblk0p1"/>
<CMD state="Updater" type="push" body="$ mount -t ext3 /dev/mmcblk0p1 /mnt/mmcblk0p1"/>
<CMD state="Updater" type="push" body="pipe tar -jxv -C /mnt/mmcblk0p1" file="files/rootfs.tar.bz2">Sending and writting rootfs</CMD>
<CMD state="Updater" type="push" body="frf">Finishing rootfs write</CMD>
<CMD state="Updater" type="push" body="$ umount /mnt/mmcblk0p1">Unmounting rootfs partition</CMD>
<CMD state="Updater" type="push" body="$ echo Update Complete!">Done</CMD>
</LIST>
</UCL>
Hello
Could someone provide feedback that my config files are ok?
Thanks in advance
Rafal
Hello,
I didn’t see obvious issue from the configurations. Because your early log shows:
§ ModuleID[2] LevelID[1]: PortMgrDlg(0)MxHidDeviceCommand Push excute failed
ModuleID[2] LevelID[10]: CmdOperation[0], current command executed failed, so SetEvent(hDevCanDeleteEvent)
ModuleID[2] LevelID[10]: CCmdOpreation[0] thread is Closed
ModuleID[2] LevelID[10]: CCmdOpreation thread is Closed
Did you see any error logs for your first command into the console?
Best Regards
Lily Zhang
Freescale MPU Support
Hello
Thanks for your reply. A few comments above, there is attached log from console and I don't see there any errors. From UTP there are only two lines printed out:
UTP: Waiting for device to appear
UTP: file/device node /dev/utp already exists
Don't know if it is ok or nok.
BR, Rafal