I'm trying to program an imx6s over serial download mode, however I'm having no success getting my machine to recognize the device.. in Windows, the VID/PID is 0x0000 / 0x0000 and it's just "unknown device". In Linux, the following appears in dmesg:
[ 881.659326] usb 5-2: new low-speed USB device number 2 using ohci-pci
[ 881.799161] usb 5-2: device descriptor read/64, error -62
[ 882.042878] usb 5-2: device descriptor read/64, error -62
[ 882.282602] usb 5-2: new low-speed USB device number 3 using ohci-pci
[ 882.422439] usb 5-2: device descriptor read/64, error -62
[ 882.666160] usb 5-2: device descriptor read/64, error -62
[ 882.905880] usb 5-2: new low-speed USB device number 4 using ohci-pci
[ 883.313392] usb 5-2: device not accepting address 4, error -62
[ 883.449250] usb 5-2: new low-speed USB device number 5 using ohci-pci
[ 883.856760] usb 5-2: device not accepting address 5, error -62
[ 883.856789] hub 5-0:1.0: unable to enumerate USB device on port 2
On this board, we have not brought USBOTG out to the microusb, only USB-UART. Will the serial-downloader not work over USB-UART alone?
Trycatch, if you have a working JTAG connection, would you be able to initialize the ram and run a version of u-boot to program your NAND ?
Sinan,
Would you be able to guide a bit in getting u-boot into memory and executed? You sound as though you've done this sort of thing before, and whenever I try, it doesn't seem to get very far before falling into boot ROM address space. I'm not sure if my u-boot is just horribly malformed or I'm just trying to execute it really, really wrong. Given I'm a JTAG lightweight, the latter is a very distinct possibility. :smileyhappy:
Hi Trycatch, I do this routinely with some of the powerpc based SoCs but haven't done it yet for iMX6. The process would essentially require to have all your ddr initialization as part of your JTAG init script and then create a version of uboot that would work with ddr and other parts of system already initialized which normally uboot would do itself. Then it is matter of running the initialization after reset using your JTAG probe and then load that ram version of uboot to ram and run it from there. If you need further help please let me know. As chipexpert suggested create a new thread if you need to and I will keep an eye on that new thread as well. Can you please also tell me what JTAG probe you are using.
Regards
Sinan Akman
That is certainly a thought, now that I've realized that I've been wrong about the flash type, as it's managed (eMMC) rather than just raw NAND.
Hi trycatch
unfortunately i.mx6 works only through USBOTG
module over serial download mode.
Best regards
chip
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------
Chipexpert,
Thanks for the fast reply. :smileyhappy:
That's unfortunate (for us, since we didn't think to build OTG into the design.) Is using a JTAG to do the initial programming our only option to do the initial NAND programming from here?
Thanks,
tc
Hi trycatch
again, unfortunately Freescale does not support
for i.mx6 NAND programming with jtag.
In general this task is not trivial job.
Best regards
chip
chipexepert,
Hm, it appears we've made a pretty serious oversight on this initial PCB run. Do you have any recommendations as to what we could do to get the NAND programmed? Or get it booting in any way?
Thanks for your help and in advance for any further help you can offer,
tc
Hi trycatch
for booting from NAND it should be programmed
with kobs-ng tool. kobs-ng runs only under linux and
uses sophisticated algorithms.
With jtag you can program NAND blocks with binary data, check
uboot_mx6x.pdf in Doc bundle below
However with Uboot, one can not program bootable NAND image.
Best regards
chip
chipexpert,
Sorry for the delay in my response.
I'm a bit confused by your response. Previously you said:
"Freescale does not supportfor i.mx6 NAND programming with jtag"
But now you're saying it can be done via kobs-ng?
It occurs to me that I believe I have been mis-speaking; the NAND is not raw but managed, so I will need to write to eMMC, if this makes it any easier to program over JTAG. Sinan Akman's suggestion may work as well, programming u-boot into the RAM and booting it, then programming the MMC from within u-boot.
trycatch
kobs-ng is different from jtag, isn't it ?
yes, one can do programming the MMC from within u-boot.
programming eMMC with jtag you can with SDK (there is mmc test).
"MX6_PLATFORM_SDK "
Best regards
chip
chip,
Is there any sort of guide for porting the SDK obds to a new board? (Or how to execute it? I'm a bit new to actually trying to run things directly from the JTAG..) I've built it using the output of our iomux tool and a little bit of manual tweaking (based off a clone of the sabre board), but when I load it into memory, point the PC at it, and go, it falls back into boot ROM address space. I've either compiled this wrong or I'm calling it from the JTAG incorrectly, do you have any suggestions?
Hi trycatch
"When all else fails, read the instructions." [Murphy's laws]
Please read SDK documentation.
Also would you be so kind as create new threads for new questions ?
Best regards
chip