关于Android5.1.1在6DL上的烧写(非原装板)

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

关于Android5.1.1在6DL上的烧写(非原装板)

Jump to solution
14,870 Views
jiangshao
Contributor V

各位尊敬的FAE

以前我问过类似的问题,是关于5.0的烧写。

当时发现如果修改对应的vbs,加上-ldo参数,即可顺利烧写Android5.0并启动。

(只是boot和recovery的文件名要去掉ldo)

这次我下载了5.1专用的mfgtools准备烧写5.1.1,

并按照之前5.0的做法,修改对应的vbs,加上-ldo参数。

根据ucl2.xml,没有去掉boot和recovery文件名中的ldo。

mfgtools可以启动,

但是烧写到Jumping to OS image.

时,烧写停止,串口输出如下内容:

U-Boot 2015.04-imx_v2015.04_3.14.52_1.1.0_ga+g53e6f33 (Nov 01 2015 - 14:00:23)

CPU: Freescale i.MX6DL rev1.1 at 792 MHz

CPU: Temperature 46 C

Reset cause: POR

Board: MX6-SabreSD

I2C: ready

DRAM: 1 GiB

Can't find PMIC:PFUZE100

initcall sequence 4ff93250 failed at call 17803664 (err=-19)

  ### ERROR ### Please RESET the board ###

mfgtools的log如下:

DLL version: 2.6.2

Tuesday, January 19, 2016 10:10:32   Start new logging

ModuleID[2] LevelID[10]: CMyExceptionHandler thread is running

ModuleID[2] LevelID[1]: new MxHidDeviceClass

ModuleID[2] LevelID[10]: new MxHidDevice[00673A28]

ModuleID[2] LevelID[1]: new MxHidDeviceClass

ModuleID[2] LevelID[10]: new MxHidDevice[00673EF8]

ModuleID[2] LevelID[1]: new MxHidDeviceClass

ModuleID[2] LevelID[10]: new MxHidDevice[04179458]

ModuleID[2] LevelID[1]: new MxHidDeviceClass

ModuleID[2] LevelID[10]: new MxHidDevice[04179050]

ModuleID[2] LevelID[1]: new MxHidDeviceClass

ModuleID[2] LevelID[10]: new MxHidDevice[03FED700]

ModuleID[2] LevelID[1]: new MxHidDeviceClass

ModuleID[2] LevelID[10]: new MxHidDevice[03FEDBD0]

ModuleID[2] LevelID[10]: Device Manager thread is running

ModuleID[2] LevelID[1]: Can't set m_hStopEvent before it initialized or it already stop

ModuleID[2] LevelID[10]: CmdOperation[0] device chagned and reset to state 0

ModuleID[2] LevelID[10]: CmdOperation[0], skip current command, so SetEvent(hDevCanDeleteEvent)

ModuleID[2] LevelID[10]: ExecuteCommand--Boot[WndIndex:0], File is E:\mfgtools51\Profiles\linux\OS Firmware\firmware\u-boot-imx6dlsabresd_sd.imx

ModuleID[2] LevelID[10]: ExecuteCommand--Load[WndIndex:0], File is E:\mfgtools51\Profiles\linux\OS Firmware\firmware\zImage, address is 0x12000000

ModuleID[2] LevelID[10]: PortMgrDlg(0)--Command Load excute successfully, retry count: 0

ModuleID[2] LevelID[10]: ExecuteCommand--Load[WndIndex:0], File is E:\mfgtools51\Profiles\linux\OS Firmware\firmware\fsl-image-mfgtool-initramfs-imx_mfgtools.cpio.gz.u-boot, address is 0x12C00000

ModuleID[2] LevelID[10]: PortMgrDlg(0)--Command Load excute successfully, retry count: 0

ModuleID[2] LevelID[10]: CmdOperation[0], skip current command, so SetEvent(hDevCanDeleteEvent)

ModuleID[2] LevelID[10]: ExecuteCommand--Load[WndIndex:0], File is E:\mfgtools51\Profiles\linux\OS Firmware\firmware\zImage-imx6dl-sabresd-ldo.dtb, address is 0x18000000

ModuleID[2] LevelID[10]: PortMgrDlg(0)--Command Load excute successfully, retry count: 0

ModuleID[2] LevelID[10]: ExecuteCommand--Jump[WndIndex:0]

ModuleID[2] LevelID[10]: *********MxHidDevice[03FEDBD0] Jump to Ramkernel successfully!**********

ModuleID[2] LevelID[10]: CmdOperation[0], current state command has been finished and the last command is successful, so SetEvent(hDevCanDeleteEvent)

ModuleID[2] LevelID[10]: CmdOperation[0] device chagned and reset to state 0

ModuleID[2] LevelID[10]: CmdOperation[0], skip current command, so SetEvent(hDevCanDeleteEvent)

ModuleID[2] LevelID[10]: ExecuteCommand--Boot[WndIndex:0], File is E:\mfgtools51\Profiles\linux\OS Firmware\firmware\u-boot-imx6dlsabresd_sd.imx

ModuleID[2] LevelID[1]: MxHidDevice::Write() Error writing to device 0x79.

ModuleID[2] LevelID[1]: Failed to initialize memory!

ModuleID[2] LevelID[1]: PortMgrDlg(0)--MxHidDevice--Command Boot excute failed

ModuleID[2] LevelID[10]: CmdOperation[0], current command executed failed, so SetEvent(hDevCanDeleteEvent)

ModuleID[2] LevelID[10]: CCmdOpreation[0] thread is Closed

ModuleID[2] LevelID[10]: CCmdOpreation[0] thread is Closed

ModuleID[2] LevelID[10]: DeviceManager::OnMsgDeviceEvent() - EVENT_KILL

ModuleID[2] LevelID[10]: CMyExceptionHandler::OnMsgExceptionEvent() - KillExceptionHandlerThread

ModuleID[2] LevelID[10]: Exception Handler thread is closed

ModuleID[2] LevelID[1]: delete MxHidDeviceClass

ModuleID[2] LevelID[10]: delete MxHidDevice[03FEDBD0]

  ModuleID[2] LevelID[10]: Device Manager thread is closed

我试着

1,替换之前5.0的uboot

2,全部替换成5.0的四个img文件

均没有改善,错误依旧

有人知道为什么吗?该如何修改?

Labels (3)
0 Kudos
1 Solution
10,676 Views
jiangshao
Contributor V

这个估计要根据错误提示修改uboot的源码,但是如何编译得到mfgtool专用的uboot,请参考我发的问题

如何获得mfgtool下的u-boot-imx6dlsabresd_sd.imx?

FAE给了答复,但我还没时间去测试,哪位有兴趣可以试一下。

并希望能告诉我结果。

View solution in original post

33 Replies
3,267 Views
void_
Contributor I

你好 ,我使用的正是Android5.1版本的mfgtool。直接使用官网提供mfgtool的u-boot固件就会报Can't find PMIC:PFUZE100,因为我的板子是没有PMIC的,所以我正想请教的就是如何自己编译mfgtool使用的u-boot firmware。我屏蔽了PMIC初始化编译了一个uboot,放到firmware文件夹,Can't find PMIC:PFUZE100的错误是没有了,但是只能跑uboot引导不了内核,log如下:

U-Boot 2015.04-ga893753-dirty (May 18 2016 - 14:36:10)

CPU:   Freescale i.MX6DL rev1.1 at 792 MHz

CPU:   Temperature 56 C

Reset cause: WDOG

Board: MX6-SabreSD

I2C:   ready

DRAM:  1 GiB

MMC:   FSL_SDHC: 0, FSL_SDHC: 1, FSL_SDHC: 2

*** Warning - bad CRC, using default environment

No panel detected: default to Hannstar-XGA

Display: Hannstar-XGA (1024x768)

In:    serial

Out:   serial

Err:   serial

check_and_clean: reg 0, flag_set 0

Fastboot: Normal

flash target is MMC:2

Net:   Phy 1 not found

PHY reset timed out

FEC [PRIME]

Error: FEC address not set.

Boot from USB for mfgtools

Use default environment for                              mfgtools

Run bootcmd_mfg: <NULL>

=>

0 Kudos
3,267 Views
void_
Contributor I

今天编译Android6.0刚好又遇到这个问题了,这里给自己留个笔记吧。

之所以在编译自己的uboot固件后会出现:

Boot from USB for mfgtools

Use default environment for                              mfgtools

Run bootcmd_mfg: <NULL>

=>

是因为编译时使用的是:

make mx6qsabresdandroid_config

这个配置文件会将CONFIG_EXTRA_ENV_SETTINGS重新定义,这个是作为正常Android启动用的

所以如果作为uboot固件使用,编译应该是:

make mx6qsabresd_config

 

现在的配置文件取消了mfg_defconfig这样的名称了,是因为现在的uboot镜像文件不论作为MFG工具的固件还是正常的Linux启动是通用的了

0 Kudos
3,267 Views
jiejia
Contributor III

你好,我在使用MFGTool下载android的时候,也遇到了同样的问题。能否发一下你的解决方法?

0 Kudos
3,267 Views
chenli_2016
Contributor II

这是我解决此问题后的补丁记录,可以参考一下:

mfg烧写报错:Uboot报Can't find PMIC:PFUZE100

修改方式:

diff --git a/board/freescale/mx6sabresd/mx6sabresd.c b/board/freescale/mx6sabresd/mx6sabresd.c

index 6ef5131..5f2ab8f 100755

--- a/board/freescale/mx6sabresd/mx6sabresd.c

+++ b/board/freescale/mx6sabresd/mx6sabresd.c

@@ -972,6 +972,7 @@ int board_init(void)

static struct pmic *pfuze;

int power_init_board(void)

{

+ return 0;

  unsigned int reg, ret;

  pfuze = pfuze_common_init(I2C_PMIC);

diff --git a/include/configs/mx6sabreandroid_common.h b/include/configs/mx6sabreandroid_common.h

index d2be182..b2554ba 100755

--- a/include/configs/mx6sabreandroid_common.h

+++ b/include/configs/mx6sabreandroid_common.h

@@ -51,13 +51,8 @@

#define CONFIG_SUPPORT_RAW_INITRD

#define CONFIG_SERIAL_TAG

-#undef CONFIG_EXTRA_ENV_SETTINGS

#undef CONFIG_BOOTCOMMAND

-#define CONFIG_EXTRA_ENV_SETTINGS \

- "splashpos=m,m\0" \

- "fdt_high=0xffffffff\0" \

- "initrd_high=0xffffffff\0" \

#define CONFIG_USB_FASTBOOT_BUF_ADDR CONFIG_SYS_LOAD_ADDR

#define CONFIG_USB_FASTBOOT_BUF_SIZE 0x19000000

重新编译uboot然后替换mfg的firmware里对应的uboot即可

3,267 Views
jiejia
Contributor III

李晨,你好

非常感谢你的回复。按照你给的这个补丁来做,真的不会停在这里:

Run bootcmd_mfg:

但我现在又遇到新的问题,在使用mfgtool下载的时候,卡在了这个地方,想问下你有没有遇到过这种情况?

usbcore: registered new interface driver usbhid

usbhid: USB HID core driver

wm8962 0-001a: Failed to read ID register

wm8962: probe of 0-001a failed with error -5

imx-wm8962 sound: failed to find codec platform device

imx-wm8962: probe of sound failed with error -22

NET: Registered protocol family 10

sit: IPv6 over IPv4 tunneling driver

NET: Registered protocol family 17

Key type dns_resolver registered

cpu cpu0: failed to get regulators

imx6q-cpufreq: probe of imx6q-cpufreq.0 failed with error -2

Registering SWP/SWPB emulation handler

mmc3: new DDR MMC card at address 0001

mmcblk3: mmc3:0001 SEM08G 7.39 GiB

mmcblk3boot0: mmc3:0001 SEM08G partition 1 1.00 MiB

mmcblk3boot1: mmc3:0001 SEM08G partition 2 1.00 MiB

mmcblk3rpmb: mmc3:0001 SEM08G partition 3 128 KiB

reg-fixed-voltage regulators:regulator@0: Failed to resolve vin-supply for usb_otg_vbus

imx_usb 2184000.usb: Can't register ci_hdrc platform device, err=-517

reg-fixed-voltage regulators:regulator@1: Failed to resolve vin-supply for usb_h1_vbus

imx_usb 2184200.usb: Can't register ci_hdrc platform device, err=-517

input: gpio-keys as /devices/soc0/gpio-keys/input/input2

snvs_rtc 20cc000.snvs:snvs-rtc-lp: setting system clock to 1970-01-01 00:00:00 UTC (0)

reg-fixed-voltage regulators:regulator@0: Failed to resolve vin-supply for usb_otg_vbus

imx_usb 2184000.usb: Can't register ci_hdrc platform device, err=-517

reg-fixed-voltage regulators:regulator@1: Failed to resolve vin-supply for usb_h1_vbus

imx_usb 2184200.usb: Can't register ci_hdrc platform device, err=-517

mipi_dsi_pwr_on: disabling

sensor-supply: disabling

wm8962-supply: disabling

usb_h1_vbus: disabling

usb_otg_vbus: disabling

ALSA device list:

No soundcards found.

Freeing unused kernel memory: 388K (8091f000 - 80980000)

Starting UTP

uuc 0.5

UTP: Waiting for device to appear

random: nonblocking pool is initialized

0 Kudos
3,267 Views
joezxd
Contributor I

我也遇到了相同的问题,后来在网上找到个地方说是要在kernel路径运行make menuconfig,找到和gadget usb mass storage相关的config并选上,最后打开生成的.config找到相关的config添加到你用的config文件中去自己编译一个和你硬件适配的kernel的zImage文件出来供mfgtool使用,我添加了如下几个config,还没有判断到底是哪个起的作用:

CONFIG_FSL_UTP=y
CONFIG_MMC_BLOCK_MINORS=16
CONFIG_SOFT_WATCHDOG=y
CONFIG_USB_GADGET_VBUS_DRAW=2
CONFIG_USB_GADGET_STORAGE_NUM_BUFFERS=2
CONFIG_USB_F_MASS_STORAGE=y
CONFIG_USB_MASS_STORAGE=y

3,267 Views
chenli_2016
Contributor II

这个补丁的修改是要根据不同的板子修改不同的文件,我们的板子参考的是imx6-sabresd这款板,所以修改的是mx6sabreandroid_common.h文件,如果是其他的开发板是要修改其所对应的文件的,建议你单独开个提问帖,问下飞思卡尔的技术支持

0 Kudos
3,267 Views
jiangshao
Contributor V

非常感谢你的分享!

有个小疑问,对于mx6sabresd.c的修改,我也认为必须。

但是对于mx6sabreandroid_common.h的修改是为了什么呢?

0 Kudos
3,266 Views
chenli_2016
Contributor II

我们的板子是根据飞思卡尔的板子改的,没有使用原来的pmic模块,mx6sabreandroid_common.h的修改是根据飞思卡尔的工程师指示做的,不修改没法烧写

0 Kudos
3,267 Views
Rita_Wang
NXP TechSupport
NXP TechSupport

Hi Jiang,

你这里使用的板子是你自己设计的,你5需要根据你的板子来移植BSP,编译好的代码在你自己的板子上跑,不能直接使用官网的Demo。android5.1使用的内核版本和原来的都不一样。所以建议你参考现有的代码做该版本BSP的移植。关于mfgtool你可以参考一下我们论坛中的帖子:

How to add new vbs for a new imx board in MFGTOOL


Have a great day,
(Dan)

-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

0 Kudos
3,267 Views
rayhe
Contributor II

Hi Dan,

    你好,我也有相关问题,我新建了帖子,请帮我看一下,非常感谢。

帖子:It's failed to download Android5.1.1 on MCIMX6Q-SDB

0 Kudos
3,267 Views
jiangshao
Contributor V

你好,感谢回答。

我根据之前Android5.0的经验,认为我们需要在mfgtool2-android-mx6dl-sabresd-emmc.vbs中追加-ldo,

但是遗憾的是无法烧写。

而且我还试着不修改mfgtool(也就是不加-ldo),烧写以下文件,也是相同的错误。。。

u-boot-imx6dl.imx

boot-imx6dl.img

recovery-imx6dl.img

system.img

还试着使用当初编译Android5.0得到的u-boot-imx6dl.imx,也是相同错误。

甚至把4个img文件都替换成Android5.0的,也是相同错误。

所以才怀疑是不是mfgtool的问题

0 Kudos
3,267 Views
Rita_Wang
NXP TechSupport
NXP TechSupport

Hello,

不好意思啊,今天才把源码下载完,明天一定给你回复。

Have a great day,

Dan

0 Kudos