Jag är tillbaka på den här TVn igen och har gjort en del framsteg.
Det underlättade att hitta en service manual som inte är förstörd av idiotiska overlays som den förra, den här är intakt:
https://www.electronica-pt.com/esquema/ ... -la-30145/
Mätningarna på spänningsnivåer förbryllade mig i början, men sedan lödde jag in mig på TXD-paddarna på en opopulerad debug-port (1CV5) på systemkortet, då fick jag seriell-output från både standby-processorn och från huvudprocessorn.
Då kunde jag se att TVn i flera minuter gör omförsök av uppstart innan den ger upp.
Medan den håller på med omförsöken blir det brus på olika spänningsmatningar vartefter som olika laster drar igång och slocknar igen.
Efter att den har gett upp att försöka boota, släcks alla power rails utom de grundläggande, och då först börjar den blinka en felkod med power-LED, vilket jag inte hade uppfattat i början eftersom det tog sån tid innan den kom dit (jag har TVn liggande med fronten neråt).
Den blinkar layer-1 felkod 2, vilket syftar till generellt fel på systemkortet.
Jag jordade SDM-punkten på systemkortet som föreslogs i service-manualen, då kommer alla power rails att lämnas aktiva även efter att TVn går in i protection mode, samt att den ger en mer detaljerad felkod med power-LED.
I det här läget kunde jag verifiera varenda regulator och mosfet på systemkortet, alla spänningsnivåer är korrekta, det finns inget signifikant rippel, och alla switchfrekvenser är inom gränsvärdena.
Nu blinkar den layer-2 felkod 53 efter att den har gjort alla sina bootförsök och hamnat i protection.
Felkod 53 finns beskrivet i tabell 5-2 i service manualen:
Kod: Markera allt
Description Layer 1 Layer 2 Monitored by Error/Prot Error Buffer/Blinking LED Device Defective Board
MIPS doesn’t boot (SW cause) 2 53 Stby µP P BL FUSION SSB
Under tabellen står det klargörande detaljer om den här felkoden:
Kod: Markera allt
Error 53.
This error will indicate that the Fusion device has read his bootscript (when this would have failed, error 15 would blink) but initialization was never completed because of hardware problems (NAND flash, DDR...) or software initialization problems.
Possible cause could be that there is no valid software loaded (try to upgrade to the latest main software version).
Note that it can take a few minutes before the TV starts blinking LAYER 1 error = 2 or in SDM (maintain grounding continuously), LAYER 2 error = 53.
TXD-SERVICE från huvudprocessorns seriell-output ser identisk ut, oavsett om man har SDM jordad eller inte.
Varje individuellt bootförsök ser ut så här, den gör totalt 7 försök innan den ger upp och går i protection och börjar blinka felkod:
Kod: Markera allt
0xF98A30F3 cycle now
Jump to 0xB5034100 02 key is used
Getting Hash...
0xBFC00000 01 10 00 00 52 55 00 0F 36 74 B3 80 00 00 00 00
Hash:
0xB5034570 1D 86 AE FF E3 71 65 8F 13 61 12 66 C4 5F 8D B0
Buffer for BIG NUM is at B5034E2C, size is 0440.
nand.c:nand_readwithinpage
0x00000000 page is reading
0x00000004 0x00000007 0x00000000 StartUnit/EndUnit/offset
Reading out data:
04 unit:
waiting ECC result ready
00 bits error in the unit.
05 unit:
waiting ECC result ready
00 bits error in the unit.
06 unit:
waiting ECC result ready
00 bits error in the unit.
07 unit:
waiting ECC result ready
00 bits error in the unit.
nand.c:nand_readwithinpage
0x00000001 page is reading
0x00000000 0x00000003 0x00000000 StartUnit/EndUnit/offset
Reading out data:
00 unit:
waiting ECC result ready
00 bits error in the unit.
01 unit:
waiting ECC result ready
00 bits error in the unit.
02 unit:
waiting ECC result ready
00 bits error in the unit.
03 unit:
waiting ECC result ready
00 bits error in the unit.
nand.c:nand_readwithinpage
0x00000001 page is reading
0x00000004 0x00000007 0x00000000 StartUnit/EndUnit/offset
Reading out data:
04 unit:
waiting ECC result ready
00 bits error in the unit.
05 unit:
waiting ECC result ready
00 bits error in the unit.
06 unit:
waiting ECC result ready
00 bits error in the unit.
07 unit:
waiting ECC result ready
00 bits error in the unit.
nand.c:nand_readwithinpage
0x00000002 page is reading
0x00000000 0x00000000 0x00000000 StartUnit/EndUnit/offset
Reading out data:
00 unit:
waiting ECC result ready
00 bits error in the unit.
{preboot}
<000>
<010>
<020>K <- Den stannar på den här bokstaven, mitt i en ofullständig rad, så nästa iteration börjar efter den här bokstaven.
Standby-processorn ger inget av substans i sin output, den är dessutom bara en 8051.
Efter en lång forskningsrunda på nätet kunde jag konstatera att det här är inte alls ett ovanligt fel för Philips TVs, tvärtom.
De är heller inte ensamma om det bland tillverkarna.
Man kan summera det till att felkällan i de här fallen kan bero på en av följande felorsaker, i sjunkande grad av sannolikhet:
1. Fusion-chippet behöver en BGA reflow. Kylflänsen är skrattretande dålig och bara i idle i SDM-läge blev den ordentligt varm, jag kan tänka mig hur het den blir när den jobbar, särskilt med sotmärkena som fanns innanför plastchassit.
2. Det 1 GByte stora NAND-minnet är korrupt och behöver flashas om, eller chippet bytas ut helt. Här finns linux-systemet som körs av huvudprocessorn.
3. SPI Flash har blivit korrupt, här finns mjukvaran för standby-processorn samt en region dedicerad för NV-memory inställningar.
4. EEPROM har blivit korrupt, här finns mer NV-memory inställningar.
Den här alpgasten har en TV med samma chassi, samma felkoder, och hans seriell-output stannade t o m på exakt samma bokstav som min TV:
https://alpengeist-tvrepair.blogspot.co ... 2-cpu.html
Han har mer avancerade verktyg än vad jag har, och löste problemet på sin TV med en BGA reflow.
Dessutom moddade han plastchassit genom att gör ett stort hål ovanför Fusion-chippet och sätta ett nätgaller ovanpå, för han hade likadana sotmärken på insidan av chassit som jag.
Från hans skriverier luskade jag ut en annan sak också som jag inte hade förstått rätt från service manualen, att man måste skaffa en IR-fjärrkontroll för att kunna styra en del av service-funktionerna i TVn, för den vanliga radio-fjärren är inte användbar om inte linux-systemet har bootat upp rätt:
https://alpengeist-tvrepair.blogspot.co ... nvram.html
Ingen IR-fjärr i mitt hus var Philips-kompatibel, så jag fick skaffa en från Kjell:
https://www.kjell.com/se/sortiment/ljud ... -tv-p66284
I samband med det här hade jag precis lyckats få loss systemkortet så att jag kunde komma åt undersidan av det, för den var fastlimmad med ett jättestarkt klister mot en 5x5cm thermal pad på undersidan, precis under Fusion-chippet i mitten av kortet, så den gick inte att komma åt med kniv eller värme, men till slut hade jag lyckats jucka loss kortet.
Så när jag hade IR-fjärren i min hand var det första gången jag bootade TVn med systemkortet löst, och nu när jag höll in OK-knappen på fjärren och pluggade in strömmen på TVn, så lyckades den boota längre:
Kod: Markera allt
0xF98A30E2 cycle now
Jump to 0xB5034100 02 key is used
Getting Hash...
0xBFC00000 01 10 00 00 52 55 00 0F 36 74 B3 80 00 00 00 00
Hash:
0xB5034570 1D 86 AE FF E3 71 65 8F 13 61 12 66 C4 5F 8D B0
Buffer for BIG NUM is at B5034E2C, size is 0440.
nand.c:nand_readwithinpage
0x00000000 page is reading
0x00000004 0x00000007 0x00000000 StartUnit/EndUnit/offset
Reading out data:
04 unit:
waiting ECC result ready
00 bits error in the unit.
05 unit:
waiting ECC result ready
00 bits error in the unit.
06 unit:
waiting ECC result ready
00 bits error in the unit.
07 unit:
waiting ECC result ready
00 bits error in the unit.
nand.c:nand_readwithinpage
0x00000001 page is reading
0x00000000 0x00000003 0x00000000 StartUnit/EndUnit/offset
Reading out data:
00 unit:
waiting ECC result ready
00 bits error in the unit.
01 unit:
waiting ECC result ready
00 bits error in the unit.
02 unit:
waiting ECC result ready
00 bits error in the unit.
03 unit:
waiting ECC result ready
00 bits error in the unit.
nand.c:nand_readwithinpage
0x00000001 page is reading
0x00000004 0x00000007 0x00000000 StartUnit/EndUnit/offset
Reading out data:
04 unit:
waiting ECC result ready
00 bits error in the unit.
05 unit:
waiting ECC result ready
00 bits error in the unit.
06 unit:
waiting ECC result ready
00 bits error in the unit.
07 unit:
waiting ECC result ready
00 bits error in the unit.
nand.c:nand_readwithinpage
0x00000002 page is reading
0x00000000 0x00000000 0x00000000 StartUnit/EndUnit/offset
Reading out data:
00 unit:
waiting ECC result ready
00 bits error in the unit.
{preboot}
<000>
<010>
<020>KKG0G1 <- Här stannade den tidigare.
<030>DDDDDDDDDDDDDD
<040>secure
Load uboot
U-Boot 2009.01_Production (Jun 11 2013 - 10:29:06)
UNAND: NAND, size:1024MB, Micron(ID:0x2c,0x38), block size:512KB
1024 MiB
Env: NAND @ 0x01800000
bootcmd4
BOOTREASON=upgrade
APP CPU==>1GHz
Found: /boot
Found: /bootenv
Found: /systemA
Found: /systemB
Found: /rwboot
Found: /rwdata
Found: /bbt
Found 7 partitions
Creating 1 MTD partitions on "NAND 1GMiB 3,3V 8-bit":
0x02e00000-0x0fd00000 : "mtd=2"
UBI: attaching mtd0 to ubi0
UBI: physical eraseblock size: 524288 bytes (512 KiB)
UBI: logical eraseblock size: 516096 bytes
UBI: smallest flash I/O unit: 4096
UBI: VID header offset: 4096 (aligned 4096)
UBI: data offset: 8192
UBI: fixable bit-flip detected at PEB 88
UBI: fixable bit-flip detected at PEB 269
UBI: fixable bit-flip detected at PEB 302
UBI warning: ubi_eba_init_scan: cannot reserve enough PEBs for bad PEB handling, reserved 4, need 40
UBI: attached mtd0 to ubi0
UBI: MTD device name: "mtd=2"
UBI: MTD device size: 0 MiB
UBI: number of good PEBs: 414
UBI: number of bad PEBs: 0
UBI: max. allowed volumes: 128
UBI: wear-leveling threshold: 4096
UBI: number of internal volumes: 1
UBI: number of user volumes: 2
UBI: available PEBs: 0
UBI: total number of reserved PEBs: 414
UBI: number of PEBs reserved for bad PEB handling: 4
UBI: max/mean erase counter: 21/5
simple_strtoul
simple_strtoul ret
Authenticating ubootenvaddon.tdf....offset: 0x288 (648)
pld->payloadSize: 0x8c4 (2244)
sizeof(TdfSignedPayload_t): 0x104 (260)
sizeof(TdfPayloadHeader_t): 0x8 (8)
pData=82400000 count=0x7b8 (1976)
bucket=0x7b8 (1976)
suceeds
## Executing script at 82400000
U-boot script: %version: blr18mgr#42.1.5 % -- %created_by: rp_int % -- %date_created: Thu Jul 4 11:18:12 2013 % -- addon=%version: 31 % /// creator!= the helpdesk
simple_strtoul
simple_strtoul ret
Authenticating appmipsauth.tdf....offset: 0x288 (648)
pld->payloadSize: 0x2c04 (11268)
sizeof(TdfSignedPayload_t): 0x104 (260)
sizeof(TdfPayloadHeader_t): 0x8 (8)
pData=a5c00000 count=0x2af8 (11000)
bucket=0xd78 (3448)
suceeds
## Starting application at 0xA5C00000 ...
999simple_strtoul
simple_strtoul ret
Authenticating vmlinux_plf.tdf....offset: 0x288 (648)
UBI: fixable bit-flip detected at PEB 132
UBI: schedule PEB 132 for scrubbing
UBI: fixable bit-flip detected at PEB 134
UBI: schedule PEB 134 for scrubbing
suceeds
simple_strtoul
simple_strtoul ret
Authenticating vmlinux_app.tdf....offset: 0x288 (648)
UBI: fixable bit-flip detected at PEB 135
UBI: schedule PEB 135 for scrubbing
UBI: fixable bit-flip detected at PEB 135
UBI: schedule PEB 135 for scrubbing
UBI: fixable bit-flip detected at PEB 135
UBI: schedule PEB 135 for scrubbing
UBI: fixable bit-flip detected at PEB 136
UBI: schedule PEB 136 for scrubbing
suceeds
simple_strtoul
simple_strtoul ret
Authenticating display.tdf....offset: 0x288 (648)
UBI: fixable bit-flip detected at PEB 144
UBI: schedule PEB 144 for scrubbing
suceeds
simple_strtoul
simple_strtoul ret
Authenticating avdecoder.tdf....offset: 0x288 (648)
UBI: fixable bit-flip detected at PEB 138
UBI: schedule PEB 138 for scrubbing
UBI: fixable bit-flip detected at PEB 139
UBI: schedule PEB 139 for scrubbing
UBI: fixable bit-flip detected at PEB 140
UBI: schedule PEB 140 for scrubbing
UBI: fixable bit-flip detected at PEB 141
UBI: schedule PEB 141 for scrubbing
UBI: fixable bit-flip detected at PEB 143
UBI: schedule PEB 143 for scrubbing
suceeds
commandline passed to kernel is = mem=40m@72m mem=354m@2206m vecaddr=2m@70m loglevel=3 lpj=1949696 ipcfg_preopen_dly=0 ipcfg_postopen_dly=0 BOOTREASON=upgrade ip=172.21.1.2::172.21.1.1:255.255.0.0::vec0:off root=/dev/nfs rw nfsroot=172.21.1.1:/,udp,rsize=32768,wsize=32768,timeo=600,retrans=2,nfsvers=3 ph_debug=none ph_sys=A ph_def=A ph_alt=B
## Starting application at 0x80100800 ...
flush cache do_go 82
commandline passed to kernel is = console=ttyS0,115200n8 mtdparts=NAND:24m(/boot),22m(/bootenv),207m(/systemA),207m(/systemB),72m(/rwboot),468m(/rwdata),24m(/bbt) mem=70m@0k mem=80m@2126m vecaddr=2m@70m loglevel=3 lpj=1363968 lockd.nlm_grace_period=1 mm_ra_disable=1 BOOTREASON=upgrade ubi.mtd=3 secureblock.hook=31:9 root=f900 rootfstype=squashfs ip=none ph_debug=none ph_sys=A ph_def=A ph_alt=B
address of cmdlineparam = 80f34b24
[ 0.328630] Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(249,0)
Jag hade samtidigt en 512 MByte USB-sticka med FAT32 med senaste autorun.upg från Philips hemsida i roten, inpluggad i en USB-port på TVn.
TVn verkar ha upptäckt IR-fjärrtricket eftersom den meddelar "BOOTREASON=upgrade", men på sista raden slutar det i kernel panic på grund av något jag inte förstår i samband med att den försöker mounta.
Är det korrupt filsystem i NAND-minnet?
Alla "fixable bit-flip detected" tyder ju på att minnet är slitet, likaså varningen "cannot reserve enough PEBs for bad PEB handling, reserved 4, need 40".
Men jag förstår inte vad det är linux gör där på slutet, failar den på att mounta USB-stickans FAT32, eller är det en NAND-intern mountning som misslyckas?
Ännu värre, den här nya booten lyckades jag bara åstadkomma en enda gång.
Jag vet inte om det var för att jag precis hade masserat loss systemkortet från klistret och kanske hade råkat få något glapp i BGAn att få kontakt just då.
Väldigt störande i alla fall.
Men OK, nu är det rätt tydligt vad som behöver göras härnäst:
1. En professionellt utförd BGA reflow av Fusion-chippet.
2. Möjligtvis en omflashning av NAND-minnet.
Jag gjorde rundringningar till TV-reparatörer i stan och kranskommunerna, och ingen av dem erbjöd reparationer på komponentnivå.
Flera av dem förstod inte ens vad jag pratade om när jag nämnde BGA.
Man har blivit bortskämd med kompetens efter flera år på elektronikforumet.

Från de vettigaste av dem fick jag dock höra att det här är ett vanligt fel hos Philips och sättet som reparatörerna kan hantera det på är att byta systemkortet, men Philips har en relativt kort period av tillgänglighet på korten till sina olika modeller, och den här är utgången.
Av en tillfällighet fick jag kontakt med en mobilreparatör som jobbar på komponentnivå, han erbjöd sig att göra en korrekt reflow för en billig peng, om jag själv lägger tiden på att fiska fram en stencil för chippet ifråga.
Därav min fråga i den här andra tråden; om någon kan identifiera vad för sorts package type chippet är, för jag antar att det är en standardtyp:
https://elektronikforumet.com/forum/vie ... =2&t=94830
Om någon har tips om söktermer för att hitta rätt stencil, så är jag väldigt tacksam.
Jaha, NAND-minnet då.
Philips erbjuder bara firmware upgrades i upg-formatet, vilket är ett krypterat arkiv som innehåller dumparna för både NAND, SPI Flash och möjligtvis EEPROM.
Det går alltså inte att få ut den enskilda dumpen för just NAND-minnet, och i den flera år långa kommentarstråden för det här blogg-inlägget lyckades man flera gånger hacka sig förbi det innan Philips till slut stängde alla möjligheterna:
http://neophob.com/2010/01/root-my-tv-h ... s-pfl9703/
På det här Polska forumet har någon postat en Polskspråkig dump av NAND-minnet till en TV med samma chassi:
https://www.elektroda.pl/rtvforum/topic ... l#15969068
Det kanske blir användbart för att åtminstone få TVn att starta så långt att en upg-fil kan flashas.
Jag har förstått att med listan av sifferkoder på chassits etikett kan man ange till Linux-systemet exakt vilken TV-modell man har, så att den ställer in allt rätt för den aktuella TV-modellen.
Så det kan bli en möjlighet, men först vill jag göra en BGA reflow som alpgasten gjorde för att lösa samma felsymptom.