大家好,
我是一個開發版新手,目前正在研究820的板子,應該和410在fastboot方面差不多吧
目前遇到的問題是,當我想要進入fastboot mode的程序中,進度卡在了fastboot_init 這一步,而沒有進入udc_start(),我的PC也就沒辦法發現fastboot的設備。完全不知道為什么,機器可以正常的開機使用,就是不能進入fastboot。
開發版是全新的,我也沒有做過任何修改,大家有遇到過類似的情況嗎?下面是UART的輸出和lsusb的結果
求助啊!


uj5u.com熱心網友回復:
真羨慕你這連好ADB的,我的卡在驅動這里沒法下一步,等到下一步看看會怎么樣uj5u.com熱心網友回復:
附上fastboot_init()的代碼,可以看出這段并沒有成功,也沒有失敗,而是卡在這中間的某一步了,可能的原因是什么呢?int fastboot_init(void *base, unsigned size)
{
thread_t *thr;
dprintf(INFO, "fastboot_init()\n");
download_base = base;
download_max = size;
event_init(&usb_online, 0, EVENT_FLAG_AUTOUNSIGNAL);
event_init(&txn_done, 0, EVENT_FLAG_AUTOUNSIGNAL);
in = udc_endpoint_alloc(UDC_TYPE_BULK_IN, 512);
if (!in)
goto fail_alloc_in;
out = udc_endpoint_alloc(UDC_TYPE_BULK_OUT, 512);
if (!out)
goto fail_alloc_out;
fastboot_endpoints[0] = in;
fastboot_endpoints[1] = out;
req = udc_request_alloc();
if (!req)
goto fail_alloc_req;
if (udc_register_gadget(&fastboot_gadget))
goto fail_udc_register;
fastboot_register("getvar:", cmd_getvar);
fastboot_register("download:", cmd_download);
fastboot_publish("version", "0.5");
thr = thread_create("fastboot", fastboot_handler, 0, DEFAULT_PRIORITY, 4096);
thread_resume(thr);
return 0;
fail_udc_register:
udc_request_free(req);
fail_alloc_req:
udc_endpoint_free(out);
fail_alloc_out:
udc_endpoint_free(in);
fail_alloc_in:
return -1;
}
uj5u.com熱心網友回復:
針對Q820開發板,你們重繪過Bootloader嗎? 我也在研究這塊板子哦。uj5u.com熱心網友回復:
我的820板成功進入fastboot模式后列印的log資訊如下,你可以參考一下:[150] pm8x41_get_is_cold_boot: cold boot
[160] fastboot_init()
[160] QMP phy initialization failed, fallback to HighSpeed only mode
[2580] fastboot: processing commands
你可以在fastboot_init里面加一些跟蹤資訊,看看是在哪出的問題,修改bootloader后的編譯命令:
make aboot -j4
然后重新打包刷機。
uj5u.com熱心網友回復:
是不是bootloader燒寫出了問題,你把這個往記憶體重新燒寫下。轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/99440.html
標籤:Qualcomm開發
下一篇:驍龍200系列的開發工具
