龙空技术网

31-iFix团队10月26号现场培训课程分享(五)

iFix爱修 255

前言:

今天大家对“ifix58支持win10系统吗”可能比较讲究,你们都想要分析一些“ifix58支持win10系统吗”的相关资讯。那么小编在网摘上搜集了一些对于“ifix58支持win10系统吗””的相关内容,希望看官们能喜欢,朋友们一起来了解一下吧!

EMMC有四个区:boot1、boot2、user、EXT_CSD,理论上来讲,引导程序放入boot区,主程序写入user区,具体的要视方案而定,MTK和RTD芯片方案引导在user区,Mstar方案主板的引导起始地址在boot1区,最新的MSD6A838方案boot1区和boot2区都有用到,boot1区为引导起始地址,boot2区为Mstar魔法钥匙,也是目前为止,最高级的加密算法,不过这些都不用担心,RT809H轻松解决!

说到EMMC的四个区,不得不说的就是EXT_CSD,EXT_CSD为EMMC扩展寄存器,对于维修行业来说,它的主要作用有三个:

1、启动位置选择,我们都知道EMMC有三个区,分别为:boot1区、boot2区和user区,mboot从那个区开始?或者说mboot开始位置在哪个区?Mstar单EMMC芯片方案mboot开始位置在boot1区,而MTK单EMMC芯片方案mboot开始位置在user区初始位置,所以启动位置选择非常重要;

2、启动位宽选择,目前来说启动位宽有三种8bit、4bit、1bit,另有高速/标准速度选择位,组合起来就有6种;

3、复位模式选择,复位模式分别有外部复位模式和内部复位模式两种。

上图为比较常见的EMMC与主芯片CPU通讯电路,一片EMMC的实物看上去很多引脚,实际上真正工作的就这么几个引脚,要想电路正常工作,必须满足几个条件:

1、VCC,3.3V供电,也是EMMC的主供电;

2、VCCQ,也叫VCCIO,这个电压有3.3V和1.8V两种,这个电压是由CPU的EMMC总线的VCCIO电压值决定的,也就是说CPU的EMMC总线的VCCIO为3.3V,EMMC的VCCQ就必须为3.3V,如果CPU的VCCIO为1.8V,EMMC的VCCQ就必须为1.8V,这也是用编程器飞线读写时,比较重要的一个选择项,选择错误就可能读写出错,离线读写时候就不存在这个状况,默认3.3V即可。

3、RST_N,复位,低电平复位,工作起来后为高电平。

4、Flash选择,上图电路为3.3V通过RM101送入CPU识别,高电平为选择EMMC。

5、CLK,时钟。

6、CMD,控制指令。

7、D0-D7,8位数据通讯。

再附上一张EMMC印制板点位图,供大家维修时参考。

以上为EMMC的工作条件,也是维修时候的重要检测点,前面说到,硬件是软件的载体,所以说要想软件流畅的运行,必须保证硬件的可靠。在维修中,不管是软件故障还是硬件故障,我们通过打印信息配合分析,都能很快找到故障点。

有朋友说到打印信息太难了,主要是不认识英文,其实不然,看打印信息主要是看它运行的节点标志,很多维修高手也不精通英文,只会三个单词,yes,no,ok,但是他们也会看打印信息。

前文说到,整个操作系统软件运行的顺序为引导程序,内核程序,主程序,所以说从大的方面我们要分清楚这三个节点,引导是否运行完?内核是否启动?主程序是否启动?

下面我们先找一篇MT5505的打印信息给大家看看打印的节点。

017-09-25,11:58:34

COM6,BaudRate:115200 bps, RXD: VGA->11,TXD: VGA-> 4, Printed by RT809H:

Boot- 初始化DDR

DRAM Channel ACalibration.

Byte 0 :Gating(2 ~ 47), Size=46, Mid=26, Set=16.

Byte 1 :Gating(2 ~ 42), Size=41, Mid=24, Set=14.

Byte 2 : Gating(2~ 62), Size=61, Mid=34, Set=24.

Byte 3 :Gating(2 ~ 57), Size=56, Mid=31, Set=21.

HW Byte 0 :DQS(10 ~ 39), Size 30, Set 23, HW_Set 26.

HW Byte 1 :DQS(7 ~ 37), Size 31, Set 21, HW_Set 24.

HW Byte 2 :DQS(9 ~ 40), Size 32, Set 24, HW_Set 25.

HW Byte 3 :DQS(9 ~ 38), Size 30, Set 23, HW_Set 24.

DRAM A Size =512 Mbytes.

Boot 初始化EMMC

Start Pmain

0x0000a000

EMMC boot

CID:0x0ae472cb

:0x30109196

:0x30344739

:0x11010030

LZHS addr:0x00100040

LZHS size:0x00099eb8

LZHS checksum:0x000000bc

Boot

Start Lmain 初始化总线

MT5880 BootLoader v0.10

Boot reason: A/Cpower on!!

Load VGAinternal EDID.................

Load HDMI internal EDID.................

CEC Physical offset 159

HDMI1 Physicaladr 0x10

HDMI1 PA 0x10

HDMI1 checksum0x52

HDMI2 PA 0x10

HDMI2 checksum0x52

HDMI3 PA 0x20

HDMI3 checksum0x42

HDMI4 PA 0x30

HDMI4 checksum0x32

SIF_Master0: newdesign

IR DATA register: 0x 0

Boot reason: A/Cpower on!!

T8032 init A/Con case loader stage...

Load T8032 FW(addr: 0x d6af60, size: 24576)success!!

T8032 FWversion: 84

T8032 change toloader stage...

LDR_FlashCopy0xf010 0x4d000 0x80

1st MAC in EEPis valid (64:88:ff:2e:65:da)

1st :(64:88:ff:2e:65:da)

2nd :(ab:3e:0f:52:c6:cf)

Boot reason: A/Cpower on!!

Boot reason: A/Cpower on!!

Boot reason: A/Cpower on!!

Boot reason: A/Cpower on!!

Disable VGAwakeup

GPIO_MtkLedCtrlFunc_eLedStatus=2

---standby_EEPDTV_GetCfg, bLedOnOff = 0x1!!

==Standby (待机标志)

DRAM Channel ACalibration.

Byte 0 :Gating(2 ~ 47), Size=46, Mid=26, Set=16.

Byte 1 : Gating(2~ 42), Size=41, Mid=24, Set=14.

Byte 2 :Gating(2 ~ 57), Size=56, Mid=31, Set=21.

Byte 3 :Gating(2 ~ 52), Size=51, Mid=29, Set=19.

HW Byte 0 :DQS(10 ~ 38), Size 29, Set 23, HW_Set 26.

HW Byte 1 :DQS(7 ~ 37), Size 31, Set 21, HW_Set 24.

HW Byte 2 :DQS(9 ~ 40), Size 32, Set 24, HW_Set 25.

HW Byte 3 :DQS(9 ~ 39), Size 31, Set 24, HW_Set 24.

DRAM A Size =512 Mbytes.

Boot

Start Pmain

0x0000a000

EMMC boot

CID:0x0ae472cb

:0x30109196

:0x30344739

:0x11010030

LZHSaddr:0x00100040

LZHSsize:0x00099eb8

LZHSchecksum:0x000000bc

Boot

Start Lmain

MT5880 BootLoader v0.10

SIF_Master0: newdesign

IR DATA register: 0x 0

T8032 change toloader stage...

LDR_FlashCopy0xf010 0x4d000 0x80

1st MAC in EEPis valid (64:88:ff:2e:65:da)

1st :(64:88:ff:2e:65:da)

2nd :(ab:7e:0f:52:c6:cf)

PDWNC_Init

GPIO_MtkLedCtrlFunc_eLedStatus=1

Enable Ledblinking (gpio_idx 201, on_value 1, period 20, type: 80)

USB0: Set GPIO64= 1.

USB1: Set GPIO64= 1.

USB2: Set GPIO61= 1.

Do USB upgrade 升级标志

USB: Vbus turnup time = 369 ms, Max =900 ms.

No USB device.

USB upgrade stop

eepNptv offset:0x260, EEP_BOOT_LOGO_INDEX offset: 0x91

Read boot logoindex from eeprom: 0, 0x01

Load boot logoindex: 0

Loader_ReadMsdc(14,0, 0x0d000000, 1048576)

Find panel index106 from EEPROM

Translate panelindex to 106

u4Offset == 0x70

Calc Flashpanelattrib checksum =0xff

[xh_dbg] selectflash panel's base data

Calc Flashpanelex_attrib checksum =0xffffffff

[xh_dbg] selectflash panel's extra data

[hhhxxx] panel_table.c

[hhhxxx] LoadProductIndex line 7690

Find product index 45 from EEPROM

[xh_pnl_drv]set CHProductTypeIndex = 45

---------- [SA7]vErrorHandleInit ----------

[SA7] Errorhandling init

[SA7] PANEL_GetPanelWidth=0x780,PANEL_GetPanelHeight=0x438 , 加载屏信息

wDrvGetOutputHTotal=0x898 ,wDrvGetOutputVTotal=0x465

[SA7]PANEL_GetHTotalMax=0xa60, PANEL_GetHTotalMin=0x870, PANEL_GetVTotalMax=0x5c8,PANEL_GetVTotalMin=0x44c

[SA7]PANEL_GetPixelClkMax=164000000, PANEL_GetPixelClkMin=100000000

[SA7] PANEL_GetPixelClk60Hz= 0x8d9ee20

---------- [SA7]vErrorHandleSetByTiming ----------

[SA7]u2HSyncWidth=260, u2HSyncStart=1930, u2VSyncWidth=26, u2VSyncStart=1094

---------- [SA7]vErrorHandleSetByTiming end----------

---------- [SA7]vErrorHandleSetByPanel end----------

[SA7] vDDDSInit

---------- [SA7]vErrorHandleSetByTiming ----------

[SA7]u2HSyncWidth=30, u2HSyncStart=1936, u2VSyncWidth=3, u2VSyncStart=1119

---------- [SA7]vErrorHandleSetByTiming end----------

[LVDS]u4Freq=148500000

vDrvSetOCLKClockSchemaInit.

[SA7]_fgVopllUseDDDS = True

[SA7] u4Syspll =648000000

[LVDS] VOPLLInitialize successful !

befor jpegdecode!

jpeg_decode(0x0d000000,1048576, 0x0e000000, 1048576, 0x0f000000, 1920, 1080)

Color:14BmpAddr:0x0f000000 Width:1920 Height:1080

---Panel 1920 x1080

LDR_OsdDisplay(14,0x0f000000, 1920, 1080) return 0

Flash load lzhsheader from 0x80000 to dram(0x15029d0), size=2048拷贝引导到DDR

Decompressionuboot to 0x00800000...

Flash load imagefrom 0x80000 to dram(0x15029d0), size=0x3949a

secure boot ok 拷贝引导完成

LZHS start

LZHS done

Startingimage...

运行引导

U-Boot2011.12.12 (Feb 17 2016 - 10:46:27)

DRAM: 401 MiB

WARNING: Cachesnot enabled

MMC: HOST 1

Dev Num: 0,Timing Position: 0, Sample Edge: 0x00

11010030:30344739:30109196:0AE472CB

id1:00303034id2:47393010

eMMC Name:UNKNOWN

Dev Num: 0,Timing Position: 1, Sample Edge: 0x00

Dev Num: 0,Timing Position: 2, Sample Edge: 0x00

: 0

0.0.0.0

In: serial

Out: serial

Err: serial

Net: Net Initialization Skipped

No ethernetfound.

Hit any key tostop autoboot: 0

## Bootingkernel from Legacy Image at 00007fc0 ...拷贝内核到DDR

XIP Kernel Image ... OK 拷贝完成

OK

Starting kernel...

加载内核

timekeeping_initdone

mmc0: 5880

at 0xf006d000 irq 100 data mode 3 Optimization

mmc1: 5880

at 0xf0012000 irq 60 data mode 3

init:====~~~~starting 'ueventd'

special_arg:00000002

test mmc...

init: init:cannot open '/initlogo.rle'

Unable toregister pmem driver!

init: ====~init:I read console

===

init: =================appstore running======================

init: notcom.changhong.appstore.apk, or sdk appstore changed !

init: so copy/system/apk/com.changhong.appstore.apk to /data/app

Password: init:I read console

===

init:===============check tent================

init: the nv is0

init: the cv is1

init:====~~~~starting 'servicemanager'

init:====~~~~starting 'vold'

init:====~~~~starting 'uuid_init'

init:====~~~~starting 'netd'

init:====~~~~starting 'debuggerd'

init:====~~~~starting 'ril-daemon'

init:====~~~~starting 'zygote'

init:====~~~~starting 'drm'

init:====~~~~starting 'media'

init:====~~~~starting 'dbus'

init:====~~~~starting 'installd'

init:====~~~~starting 'keystore'

init:====~~~~starting 'vdevcreate'

init:====~~~~starting 'sensor-daemon'

init:====~~~~starting 'insmod'

init:====~~~~starting 'pre-init'

init:====~~~~starting 'post-init'

init:====~~~~starting 'dtv-svc'

init:====~~~~starting 'chtvos'

init:====~~~~starting 'cmddaemon'

init:====~~~~starting 'pppoe-dial'

init:====~~~~starting 'uploadservice'

init:====~~~~starting 'addvirtualnet'

==> pre-init start 内核加载完成,初始化开始。

2.11 3.10

chmod:/perm/voice: No such file or directory

mknod:/dev/mali: File exists

mknod: /dev/ump:File exists

Setting upswapspace version 1, size = 104853504 bytes

UUID=848eaee0-a1de-4c2c-ba23-85848ba71c1d

{At00:00:2:415}<<<<<dtv_svc main() functionbegin...>>>>>

dtv_svc_main:fbm phy addr = 1a170000, share mem addr = 400b6000, vir addr = 0, size = 0

{At00:00:2:485}<<<<<dtv_svc main() regist signal_sigpipe_entry GETSIGPIPE.>>>>>

{At00:00:2:537}<<<<<Before x_drv_init() ...>>>>>

SC_FCT_0:sched_getparam 708 error -1

SC_FCT_0:sched_getparam 711 error -1

drv_init as 0x39model

drv_init as EUmodel

MTDRVCUST_BootupCheck()fail, ret=-1

[MTCI0]MTCI_Init : 0

TVDMsgCtrl: NRL:60/40, PER:100/90

[1;31m TVOS first line [0m

x_drv_init end!!

{At00:00:3:808}<<<<<After x_drv_init() ...>>>>>

{At00:00:3:808}<<<<<Before MW init ...>>>>>

{IOM} UARTthread inited.

gl_initMTAL_Init!

gl_initMTAL_Init complete!

gl_initMTGFX_GetBufferPartition complete!

gl_initgl_mem_manager_init complete!

gl_initMTOSD_RGN_LIST_Create complete!

gl_initMTOSD_RGN_Create complete!

[* GL DFB *]Create plane (ON window (Shared)) :101170f

{At00:00:4:247}<<<<<Before MW customized parts init...>>>>>

{CI_glue}:ci_eng_init

88888888888888PHYSICAL_Init() entered 888888888888888

88888888888888ITC_Init() entered 888888888888888

88888888888888PHYS_DRVOpen() entered 888888888888888

88888888888888STB_CIOpen() entered 888888888888888

[MTCI0]MTCI_Init : 0

88888888888888STB_CIOpen() ended 888888888888888

88888888888888PHYS_DRVOpen() entered 888888888888888

{At00:00:4:317}<<<<<After MW customized parts init...>>>>>

{DT} Real TimeClock is available on this system.

MTDRVCUST_OptQuery()fail, ret=-1

{At00:00:4:321}<<<<<After MW init ...>>>>>

{At00:00:4:347}<<<<<dtv_svc main() function isready...>>>>>

wsfNotifyAutoDetSrc(u1CurrentDetSrcIdx=9, sts=1)

NotifyAutoDetSrc(av1(2),av2(1),ypbpr1(1),HDMI1(1),HDMI2(0),HDMI3(1),HDMI4(1)VGA(0))

======TypeProductIndex=TYPE_LED42C2000i=========

由于整篇打印信息太长,鉴于篇幅原因,后面的信息没有贴上来。在现场培训时讲了两篇打印,长虹MT5505芯片方案和乐视MSD6A938方案,实际上软件架构基本一样,只是引导部分顺序有些差异,这并不影响我们去了解整篇打印信息的节点。

从整个软件架构理解,加载完Linux 内核后,引导才会移交控制权,也就是说加载完内核后引导才会停止,实际上,引导程序指引启动内核时,不管内核是否能正常启动,作为引导程序它已经无能为力了,所以说,启动内核的标志,可以算是引导程序正常的一个标志,也就是打印信息里面的Starting kernel...标志,目前几大芯片厂家的标志都比较统一,大家认这个标志就可以。在维修中,看到这个标志,就不要去轻易怀疑引导程序了。

如果看到Starting kernel...这个标志后,出现卡LOGO,或者出现LOGO后黑屏等等,都属于主程序运行失败,维修智能机主板实际上也是排除法,先软件后硬件,如果U盘升级不好,那就可能是Flash自身故障,或者软件运行的硬件有故障(常见为DDR自身,DDR通讯,主芯片),iFix君建议用RT809H完全擦除Flash,再重新写入,排除软件问题后,再去检修硬件。

引导程序的节点也是一样,DDR初始化失败就检查DDR电路,EMMC初始化失败就检查EMMC电路,总线初始化失败就检查总线外挂相关电路,不能升级就检查升级标志有没有出现,维修智能电视主板就是这么简单!

标签: #ifix58支持win10系统吗