I have created my own board based on imx6q. I downloaded BSP 13.4.1 from freescale, after that i pached the newest patch (13.4.1.04). My board boot up from eMMC. At the end of android booting up, my board printed out as bellow:
.......
init: starting 'dhcpcd_eth0'
eth0: Freescale FEC PHY driver [Generic PHY] (mii_bus:phy_addr=1:00, irq=-1)
ADDRCONF(NETDEV_UP): eth0: link is not ready
acc_open
acc_release
mtp_open
init: processing action 0x2c978 (property:sys.boot_completed=1)
init: command 'write' r=0
init: command 'write' r=-2
CPU3: shutdown
CPU2: shutdown
init: service 'bootanim' is being killed
init: waitpid returned pid 2385, status = 00000009
init: process 'bootanim', pid 2385 exited
UV
init: waitpid returned pid 2453, status = 00000100
init: process 'dhcpcd_eth0', pid 2453 exited
UV
request_suspend_state: sleep (0->3) at 87805217345 (1970-01-02 01:00:24.988134344 UTC)
US 921600
US 921600
US 921600
US 921600
UV
UV
UV
US 921600
US 921600
US 921600
US 921600
..............
it repeats the parrten "US 921600" again and again. My board connect to the computer through the usb port. On the computer's console terminal, i have the result as follow:
1. lsusb --> the result is: 18d1 : 2d02
2. adb devices --> the result is: the devices list attached is blank
So because I don't have adb access. I don't know how to continue debugging. Hope community can help me out. Thanks!!!
P/S: I also attached full console log with the thread.
Original Attachment has been moved to: 25Otc_3.txt.zip
Hi raymond,
I just try to apply your patch, and the issue still occur. Now i still have no clue for this issue.
About the adb, i change my default.prop in ramdisk as bellow:
#
# ADDITIONAL_DEFAULT_PROPERTIES
#
ro.secure=0
ro.allow.mock.location=1
ro.debuggable=1
persist.sys.usb.config=mtp,adb
Now i can access my board via adb fine.
It seems serial console does not display properly. You can add my patch in
kernel_imx/driver/tty/serial.imx.c . It rounded the possible baudrate to replace original
calculated baudrate because that may cause inaccurate baudrate which can cause serial
console display improperly.
static void __init
imx_console_get_options(struct imx_port *sport, int *baud,
int *parity, int *bits)
{
...
{ |
/*
* The next code provides exact computation of | |
* baud_raw = round(((uartclk/16) * (ubir + 1)) / (ubmr + 1)) | |
* without need of float support or long long division, | |
* which would be required to prevent 32bit arithmetic overflow | |
*/ | |
unsigned int mul = ubir + 1; | |
unsigned int div = 16 * (ubmr + 1); | |
unsigned int rem = uartclk % div; |
baud_raw = (uartclk / div) * mul; | |
baud_raw += (rem * mul + div / 2) / div; | |
*baud = (baud_raw + 50) / 100 * 100; |
//mapping to nearest baudrate to reduce bad output | ||||
{ | ||||
int i,count; | ||||
unsigned left,cur,compared; | ||||
unsigned baud_maps[]={ | ||||
50, 75, 110,134,150,200,300,600,1200,1800,2400, | ||||
4800,9600,19200,38400,57600,115200,230400,460800, | ||||
500000,576000,921600,1000000,1152000,1500000,2000000, | ||||
2500000,3000000,3500000,4000000, | ||||
}; | ||||
count = (sizeof(baud_maps)/sizeof(baud_maps[0])); | ||||
compared = *baud; | ||||
for(i=0;i<count;i++){ | ||||
if(baud_maps[i]>compared) | ||||
break; | ||||
} | ||||
//only cover we wanted baudrate | ||||
if(i<count){ | ||||
unsigned delta1,delta2; | ||||
left = baud_maps[i-1]; | ||||
cur = baud_maps[i]; | ||||
delta1 = compared-left; | ||||
delta2 = cur-compared; | ||||
compared = (delta1>delta2)?cur:left; | ||||
*baud=compared; | ||||
} | ||||
} |
}
}
BTW,you can add below command to enable adbd in default.
# Dsiable adb security for JB4.2.2
setprop ro.adb.secure 0
Thanks raymond
In the console log, after the kernel starting, i found that my board printed out as bellow:
......
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!
....
So periph change to 400M instead of defaut 528MHz. Perhaps it cause my problem. I will try to apply your patch and report the result soon.