Brick

From WikiDLXTV
Revision as of 23:20, 5 February 2013 by Mad ady (Talk | contribs) (Added more information about possible yamon commands)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

You most probably flashed wrong firmware, not dedicated to your hardware. heh?

Other reason could be loosen heatsink, thats common that when system is unstable [too hot, cooling problems] then kernel wont load due to errors.

Below you can read on your own responsibility

Regular boot output

Normal boot output:

 Trying devtype=0 chipsel=0
reading z.boot2 (vzx=0xbbd0bcbc) is 0x003c0000
Reading NAND CS0, addr 0x003c0000, size 0x00000800 to 0x01740000
Reading NAND CS0, addr 0x003c0800, size 0x002a7000 to 0x01740800
Found.
ROMFS found at 0x0x01740000, Volume name = MIPSLINUX_XLOAD
Found 1 file(s) to be processed in ROMFS.
Processing vmlinux_xload.zbf (start: 0x01740090, size: 0x002a7424)
 Checking zboot file signature .. OK.
 Warning: header version mismatched.
  *** Fully Encrypted.
src_addr = 0x017400b0, dest addr = 0x01f40000
XLOADING src=0x817400b0, dest=0x81f40000, size=0x002a7404
xload.c:77: Waiting for XLOAD completion.
xload.c:87: XLOAD done, status = 0x6.
 Decompressing to 0x84000000 .. OK (5201176/0x4f5d18).
 Load time total 0/0 msec.
Execute at 0x84404000 ..
Linux version 2.6.22.19-19-4 (ting@build30-System-Product-Name) (gcc version 4.3.2 (Sourcery G++ Lite 4.3-51) ) #9 PREEMPT Mon Aug 1 14:35:04 CST 2011
Physical map 0xc0000000 to 0x04000000, max remap/kernel size: 0x0c000000/0x18000000.
Configured for SMP865x, detected SMP8655 (revision unknown).
Detected CPU/System/DSP Frequencies: 499.50/333.00/333.00MHz
SMP86xx Enabled Devices under Linux/XENV 0xcfd0bcbc = 0x001b3efc
PCIHost Ethernet Ethernet1 IR FIP I2CM I2CS USB PCIDev1 PCIDev2 PCIDev3 PCIDev4 SATA SCARD SCARD1
CPU revision is: 0001937c
FPU revision is: 01739300

Boot modes

First try to powering on with serial console active and 1 pressed as kilnakorr suggest (http://forum.wdlxtv.com/viewtopic.php?f=&t=6753) (or here: http://forum.wdlxtv.com/viewtopic.php?f=43&t=7798&p=65351#p65344). let see what will happen...In my case [my kernel was ok] that's do nothing special, just boots from nand.

The WD can be started in 3 different ways. Once started, press quickly:

0: The device enters into YAMON mode.
1: The device starts using the first copy of the kernel.
2: The device starts using the second copy of the kernel.

So the first thing to try is to restart the device pressing 1 or 2.

Booting with yamon

If that wont help then you can use yamon to boot new kernel loaded from ram [sucked from tftp]. To get into yamon just after powering on with serial console active press 0 and keep it.

First you need to setup tftp and nfs server to provide required firmware files [in example at 192.168.1.123 host]. then go back to box and setup networking:

setenv ipaddr 192.168.1.100
setenv subnetmask 255.255.255.0
setenv gateway 192.168.1.1
load -b tftp://192.168.1.123/wdtvlive.fff 0x84000000

Note: There are some extracted kernels (different from the ones that come with the regular firmware) available at this site: http://masu.6f.sk/index.php/Wdtv_kernel. You can try booting them only if the original kernel won't boot.

The hard part is to load rootfs needed for boot, tftp is limitted to ~32MB and thus you need to use nfs. Even there are original roots from 1.02.21 that size is below 30MB its compressed romfs and i was unable to load it through tftp.

Booting with a different kernel and rootfs

At this stage you are on your own as i have not crossed that line!

load -b tftp://192.168.1.123/wdtvlive.fff 0x84000000
go . root=/dev/nfs nfsroot=192.168.1.123:/wdlxtv/wdtvlive.bin ip=::::::dhcp rdinit=/none console=ttyS0 mem=135MB


Use setxenv for other interesting possibilities. and better next time watch what you are playing and what firmware you are loading. wish you success with debricking [as i have ].

Force flash a kernel

You can force-restore the kernels (by flashing them) if you can load them from the network by using these steps (WARNING: you can cause damage to your WDTV if you don't know what you are doing! Also, make sure you are flashing a correct kernel for your platform!). Original details are in this thread: http://forum.wdlxtv.com/viewtopic.php?f=43&t=7798&p=65351#p65344

In my case it didn't work. What I do is: - Connect the WDTVlive to the serial cable. - Then, turn it on while pressing 0, so the device enters into YAMON mode. - Go to this web http://masu.6f.sk/index.php/Wdtv_kernel#Booting and download both files (kernel.0x0c0000.romfs.nand and kernel.0x3c0000.romfs.nand). Whe are going to flash the memory of the device with this files. - Create a TFTP Server with a directory that containg both files.

The next steps are using YAMON - Configure the Network parameters of the device

setenv ipaddr 192.168.1.100
setenv subnetmask 255.255.255.0
setenv gateway 192.168.1.1
net init

TO RESTORE THE FIRST KERNEL - copy the first file from tftp server to RAM

load -b tftp://192.168.1.8/kernel.0x0c0000.romfs.nand 0x84000000
Start = 0x84000000, range = (0x84000000,0x842fffff), format = BINARY
Length = 0x300000 (3145728)
Checksum = 0x80b86ca5 (10'2159570085)

- The save from RAM to ROM

nflash write 0x000c0000 0x84000000 0x300000 0

TO RESTORE THE SECOND KERNEL - Same process as before but with the other file and other ROM memory direction

load -b tftp://192.168.1.8/kernel.0x3c0000.romfs.nand 0x84000000
nflash write 0x003c0000 0x84000000 0x300000 0
  • I think its not necessary to restore both kernels.
  • After restarting the device, it has detected and update from the USB and has started to update.

Load kernel from NAND

Go into YAMON and issue these commands:

nflash read 0x000c0000 0x85000000 0x00300000 0
dump romfs 0x85000000
load zbf 0x85000090
go 0x84000000 console=ttyS0 mem=200MB

Load kernel from Ethernet

net init load -b tftp://192.168.1.142/wdtv/vmlinux.bin 0x84000000
go 0x84000000 root=/dev/nfs rw nfsroot=192.168.1.142:/tftpboot/rootfs-my-wdtv,nolock ip=::::::dhcp console=ttyS0 mem=200MB init=/init

Automatically boot a custom kernel from NAND

This is probably dangerous! I haven't heard any report (yet) that it works, but might be worth a chance if your NAND is broken.

This is done by setting Yamon as default boot option instead encrypted kernel From running firmware

Default boot mode is 2. Set env variables to execute yamon as default option

 /bin/setxenv 0 -b z.default_boot 0x00000000
 /bin/setxenv 1 -b z.default_boot 0x00000000

Load kernel from NAND flash (romfs version) rootfs will be handled by kernel inird which defaults into loading partition form NAND.

 /bin/setxenv 0 y.start "nflash read 0x000c0000 0x85000000 0x00300000 0; load zbf 0x85000090; go 0x84000000 console=ttyS0 mem=200MB"
 /bin/setxenv 1 y.start "nflash read 0x000c0000 0x85000000 0x00300000 0; load zbf 0x85000090; go 0x84000000 console=ttyS0 mem=200MB"

Automatically boot a custom kernel from TFTP

This is probably dangerous! I haven't heard any report (yet) that it works, but might be worth a chance if your NAND is broken.

Load kernel from TFTP server over ethernet (romfs version) rootfs will be mounted from NFS over ethernet

 /bin/setxenv 0 y.start "net init; load -b tftp://192.168.1.142/wdtv/vmlinux-noinitrd.bin 0x84000000; go 0x84000000 root=/dev/nfs rw nfsroot=192.168.1.142:/tftpboot/rootfs-my-wdtv,nolock ip=::::::dhcp console=ttyS0 mem=200MB init=/init"
 /bin/setxenv 1 y.start "net init; load -b tftp://192.168.1.142/wdtv/vmlinux-noinitrd.bin 0x84000000; go 0x84000000 root=/dev/nfs rw nfsroot=192.168.1.142:/tftpboot/rootfs-my-wdtv,nolock ip=::::::dhcp console=ttyS0 mem=200MB init=/init"

Notes: This variable does not exist This variable will force yamon to autoboot prompt Changing default commandline

 /bin/setxenv 0 a.linux_cmd "console=ttyS0 mem=200M"
 /bin/setxenv 1 a.linux_cmd "console=ttyS0 mem=200M"


Additional resources:

http://forum.wdlxtv.com/viewtopic.php?f=3&t=6595

http://forum.wdlxtv.com/viewtopic.php?f=43&t=7798&p=65351#p65351

http://masu.6f.sk/index.php/Wdtv_kernel

http://wiki.wdlxtv.com/WDTVLiveSerial