Have a custom device based on the i.MX6Q processor and cannot program the on-board SPI-NOR device. Am using the MfgTool2 program and have generated u-boot and uImage binaries with the Manufacturing Firmware selected in the LTIB menu. When I open the program I successfully connect to the device and it displays that is connected to an HID-compliant device. Everything looks great so far.
When I select "Start", the following occurs which is consistent with my ucl2.xml file.
At this point the system locks up, and I have been able to determine that early in the execution of this image the usboh3 clock is disabled. Later in the code the USB command register is accessed and due to the disabled clock, this fails and the system is dead from that point.
Why is the clock being disabled? What image is being used when the OS image is jumped to?
A little disappointed in the lack of a response on this issue. I removed the #ifdef code from the previous post and have gotten further.
My current issue is that there are no environment variable being included with my manufacturing u-boot file. When it loads the files into memory and attempts to boot, the code has no idea where to go. The current defined variables are here:
Environment size: 53/131068 bytes
Within my custom manufacturing include file I have the following definitions:
#define CONFIG_BOOTARGS "console=ttymxc0,115200 rdinit=/linuxrc"
#define CONFIG_BOOTCOMMAND "bootm 0x10800000 0x11000000"
#define CONFIG_EXTRA_ENV_SETTINGS \
Any idea why these variables are not being included in my u-boot build?
Digging a little deeper I found that the code failing is what was added for the manufacturing firmware. In my custom u-boot file I added the following to my board_init function:
/* MFG firmware need reset usb to avoid host crash firstly */
#define USBCMD 0x140
int val = readl(OTG_BASE_ADDR + USBCMD);
val &= ~0x1; /* RS bit */
writel(val, OTG_BASE_ADDR + USBCMD);
But nowhere in the u-boot code do I initialize the USB port so the clock is not being enabled. None of the Freescale u-boot code examples do so either. Do I need to add this functionality in order to use the USB OTG port?