I am working on the custom board using iMX6q. Following is hardware detail
a. Processor name : MCIMX6Q6AVT10AC
b. Nor Flash : S29GL01GS
c. DDR3 memory : MT41K128M16
d. emmc card : N2M400JD
e. ARM Audio Codec : SGTL500
f. UART : MAX3232
g. LVDS Display : PD050VL1
I am using NOR flash as a booting device. I am using SABRE AI bsp. The uboot is modified according to hardware and is functional. Kernel image is also downloaded into the flash. The kernel gets loaded but execution is not happening .
Following is the console
U-Boot 2009.08 (Feb 27 2014 - 21:39:10)
CPU: Freescale i.MX6 family TO1.2 at 792 MHz
Thermal sensor with ratio = 179
Temperature: 42 C, calibration data 0x56b4b27d
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 : 264000000Hz
emi_slow clock: 132000000Hz
ddr clock : 528000000Hz
usdhc1 clock : 198000000Hz
usdhc2 clock : 198000000Hz
usdhc3 clock : 198000000Hz
usdhc4 clock : 198000000Hz
nfc clock : 24000000Hz
Board: i.MX6Q-SABREAUTO: unknown-board Board: 0x63012 [POR]
Boot Device: NOR
I2C: Hello i am in I2c DRIVER
ready
MX6Q Configuring I2C2...
i2c pinmux set
I2C2 Clock enabled
Calling Audio Code...Hello i am in I2c DRIVER
i2c_read chip: 0x0a addr: 0x0000 alen: 2 len: 2
CR=a0
Audio dev id: 0xa0
Audio dev id: 0x11
DRAM: 2 GB
Calling Display Flash Config Fn
Executing Flash init
Calling Get Size
BANK_BASE = 0x08000000
Executing Get_size
flash detect cfi
fwc addr 08000000 cmd f0 f0 8bit x 8 bit
fwc addr 08000000 cmd ff ff 8bit x 8 bit
fwc addr 08000055 cmd 98 98 8bit x 8 bit
is= cmd 51(Q) addr 08000010 is= 0 51
fwc addr 08000555 cmd 98 98 8bit x 8 bit
is= cmd 51(Q) addr 08000010 is= 0 51
Error in ___Flash_Detect_cfi
fwc addr 08000000 cmd f0 f0f0 16bit x 8 bit
fwc addr 08000000 cmd ff ffff 16bit x 8 bit
fwc addr 080000aa cmd 98 9898 16bit x 8 bit
is= cmd 51(Q) addr 08000020 is= 0051 5151
fwc addr 08000aaa cmd 98 9898 16bit x 8 bit
is= cmd 51(Q) addr 08000020 is= 0051 5151
Error in ___Flash_Detect_cfi
fwc addr 08000000 cmd f0 00f0 16bit x 16 bit
fwc addr 08000000 cmd ff 00ff 16bit x 16 bit
fwc addr 080000aa cmd 98 0098 16bit x 16 bit
is= cmd 51(Q) addr 08000020 is= 0051 0051
is= cmd 52(R) addr 08000022 is= 0052 0052
is= cmd 59(Y) addr 08000024 is= 0059 0059
device interface is 1
found port 2 chip 2 port 16 bits chip 16 bits
CFI_CMDSET_AMD_STANDARD
CFI_CMDSET_AMD_EXTENDED
fwc addr 08000000 cmd f0 00f0 16bit x 16 bit
fwc addr 08000aaa cmd aa 00aa 16bit x 16 bit
fwc addr 08000554 cmd 55 0055 16bit x 16 bit
fwc addr 08000aaa cmd 90 0090 16bit x 16 bit
fwc addr 08000000 cmd f0 00f0 16bit x 16 bit
fwc addr 080000aa cmd 98 0098 16bit x 16 bit
flash_fixup_amd
manufacturer is 2
manufacturer id is 0x1
device id is 0x227e
device id2 is 0x0
cfi version is 0x3135
fwc addr 08000000 cmd f0 00f0 16bit x 16 bit
Flash: 128 MB
MMC: FSL_USDHC: 0,FSL_USDHC: 1,FSL_USDHC: 2,FSL_USDHC: 3
Hello i am in I2c DRIVER
In: serial
Out: serial
Err: serial
Net: got MAC address from IIM: 00:00:00:00:00:00
FEC0 [PRIME]
Hit any key to stop autoboot: 0
## Booting kernel from Legacy Image at 10800000 ...
Image Name: Linux-3.0.35-2666-gbdde708
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 3866700 Bytes = 3.7 MB
Load Address: 10008000
Entry Point: 10008000
Verifying Checksum ... OK
Loading Kernel Image ... OK
OK
Starting kernel ...
could it be the console setting wrong? ttymxc3 for AI board?
Thanks!!
I have shifted back to ttymxc3. Now I am one step forward. Following is the console,
Starting kernel ...
Uncompressing Linux... done, booting the kernel.
But the problem is only tx pin is available and I can't use this port. I am using ttymxc0. If I modify the uboot for ttmxc0, it works upto uboot. But when I modify the kernel for ttymxc0, kernel staring message come and hangs. Even if i shifted back kernel to ttymxc3, same is the result.
Can you please tell the correct settings for uboot and kernel for changing serial console to ttymxc0?
maybe you can try enable early printk to see where did it hang, to enable early printk, please search it in kernel menuconfig, it should be inside kernel hack item....check it, and then add "earlyprintk" in your uboot commandline, then there should be more log output.
We are now successful in using ttymxc0. We have done settings to enable early printk. how to add earlyprintk in uboot commandline?
in uboot, use "pri", then find the bootargs_base, add "earlyprintk" into it.
we have modified imx6q_sabreauto_weimnor.h to add earlyprintk. we have used pri, following is the setting.
Hit any key to stop autoboot: 0
MX6Q SABREAUTO U-Boot > pri
bootdelay=3
baudrate=115200
ipaddr=192.168.1.103
serverip=192.168.1.101
netmask=255.255.255.0
loadaddr=0x10800000
netdev=eth0
ethprime=FEC0
uboot=u-boot.bin
kernel=uImage
nfsroot=/opt/eldk/arm
bootargs_base=setenv bootargs earlyprintk console=ttymxc0,115200
bootcmd=run bootcmd_nor
bootargs_nor=setenv bootargs ${bootargs} root=/dev/nfs ip=dhcp weim-nor nfsroot=${serverip}:${nfsroot},v3,tcp
bootcmd_nor=run bootargs_base bootargs_nor; cp.l 0x8080000 ${loadaddr} 0x400000; bootm
stdin=serial
stdout=serial
stderr=serial
ethac
Have you enable the early printk in your linux menu config during compiling the uImage?
yes, printk is enabled in the linux menu config.
in our hardware there is no LAN connected as well as no ramdisk image saved
does dtb also required ?