After asserting the PSWITCH pin, the device enumerates into USB HID mode as expected, and shows up as a HID device in the MfgTool (version 1.6.6.004) on Windows XP, but does not switch into USB mass storage mode to receive the firmware update code file. Windows device manager shows an error (yellow mark) on the enumerated HID device. Our older parts (MCIMX233DJM4B A4M88S) work fine with this process.
Is the recovery mode process different between these two parts?
Hi Clif
seems there is no problem in recovery mode, since
in both cases parts enumerate into USB HID mode as expected.
USB mass storage appears when processor successfully runs
firmware (updater.sb, small linux image) in DDR.
USB mass storage mode may not show due to possible
brown-out events or DDR errors (they are configured in
/imx-bootlets-src-xxx/boot_prep/init-mx23.c, power_prep.c).
Bootlets sources may be prepared in ltib (in ltib/RPM/Build):
./ltib -m prep -p boot_stream.spec
rebuild image
./ltib -p boot_stream.spec -f
also recommended to use latest tools from i.MX23 EVK official page
mfgtools-rel-REL_1.6.2.006.1.tar.gz I.MX23_MANUFACTURING_TOOL
IMX_MFG_TOOL : Tool and documentation for downloading OS images to the i.MX53,
i.MX51, i.MX50, i.MX28 and i.MX23.Size (K): 241193 Format: zip Rev #: 1.6.2.048
Note that for revision MCIMX233DJM4C one needs to implement linux patches
in custom software
L2.6.31_10.05.00_SDK_PATCHES : Patches for the Linux 10.05 Release.
Best regards
igor
Igor,
I have updated the MfgTool to 1.6.2.048 but it then gave me an error saying "Invalid Player Profile."
I changed the player.ini file to say VERSION=2, which made that error go away. However, when I try to run, I get another error "Unrecognized device"
How can I use the profile from the previous MfgTool (version 1.6.2.004) with this version of the MfgTool (version 1.6.2.048)?
Hi Clif
I think you can not use old profile since they can be
uncompatible, just rebuild firmware for new version of MFG Tools
Best regards
igor
Igor,
I have updated the profile that I was using to work with the new version of the MfgTool (1.6.2.048). I am now able to successfully program the older (MCIMX233DJM4B) parts. However, there is still an issue with the newer parts (MCIMX233DJM4C). I have attached to the debug UART and it appears that the updater is never is downloaded and run on the 4C parts.
Here is the output for the 4B parts after hitting start in the MfgTool :
PowerPrep start initialize power...
Battery Voltage = 3.99V
5v source detected.Valid battery voltage detected.Booting from battery voltage source.
Mar 21 201111:18:52
EMI_CTRL 0x1C084040
FRAC 0x92926152
init_ddr_mt46v32m16_133Mhz
power 0x00820710
Frac 0x92926152
start change cpu freq
hbus 0x00000003
cpu 0x00010001
Uncompressing Linux.......................................................................................................................................................................................................................... done, booting the kernel.
Linux version 2.6.31-626-g602af1c-updater (user@VirtualBox) (gcc version 4.5.1 (Sourcery G++ Lite 2010.09-50) ) #10 PREEMPT Thu Aug 23 14:50:40 EDT 2012
CPU: ARM926EJ-S [41069265] revision 5 (ARMv5TEJ), cr=00053177
CPU: VIVT data cache, VIVT instruction cache
Machine: Freescale MX23EVK board
Memory policy: ECC disabled, Data cache writeback
(programming continues from here...)
The output for the 4C parts after hitting start in the MfgTool is:
PowerPrep start initialize power...
Battery Voltage = 3.67V
5v source detected.Valid battery voltage detected.Booting from battery voltage source.
Mar 21 201111:18:52
EMI_CTRL 0x1C084040
FRAC 0x92926152
init_ddr_mt46v32m16_133Mhz
power 0x00820710
Frac 0x92926152
start change cpu freq
hbus 0x00000003
cpu 0x00010001
(everything stops here)
I'm using the exact same MfgTool, same profile, and same binaries for each.
Why would it fail to download the updater for the 4C parts?
Do any of those messages indicate an error?
Clif
had you tested memory with new chips ?
This may be caused by DDR errors, they are configured in
/imx-bootlets-src-xxx/boot_prep/init-mx23.c.
~igor
Igor,
I have compiled in the memory test, but it shows no errors:
PowerPrep start initialize power...
Battery Voltage = 3.63V
5v source detected.Valid battery voltage detected.Booting from battery voltage source.
LLLCFeb 19 201516:03:50
EMI_CTRL 0x1C084040
FRAC 0x92926152
init_ddr_mt46v32m16_133Mhz
power 0x00820710
Frac 0x92926152
start change cpu freq
hbus 0x00000003
cpu 0x00010002
start test memory accress
ddr2 0x40000000
finish simple test
It appears that this test only tests by reading and writing 1000 ints to memory. Is there a more exhaustive test available that tests address lines, data lines, and reading/writing all memory?
Hi Clif
I think one can reuse one for i.MX28
https://community.freescale.com/message/375692#375692
~igor
Igor,
I downloaded the mem_test.7z.zip that you linked to and attempted to run it. However, I got the following errors on the host:
C:\mem_test>sb_loader.exe /f test.sb
Downloading test.sb to device.
. CStHidDevice::Download() Error(1167) during read.
Quitting.
Error(1167) during download.
Quitting.
The device side just printed:
Data Abort
It appears that this utility was made for the i.MX28 and is not compatible with the i.MX233. Is there a way to modify it to work with the i.MX233?
Clif
one can run memory tests with jtag.
~igor
Igor,
Are there recommended serial JTAG debuggers for use with the i.MX233? I found this one: IMX233-SJTAG Olimex LTD | 1188-1085-ND | DigiKey. Would it work?
Do you have any documentation for how to run memory tests using the JTAG?