Bricked DH-IPC-HFW1435SP-W

Marc Finns

n3wb
Dec 2, 2018
25
4
Amsterdam
Hi experts, in our summer house i have a number of HFW1435SP-W.
One of them died, and while I replaced it with a newer model, I was trying to recover it for fun, learning, and reuse...
I do have a working firmware image and I went on with the steps in the posts here, not necessarily making the situation better,
At this point I guess the situation would need some expert advice:
  1. Cam was clearly stuck in a boot loop.
  2. I pressed the factory reset button but nothing happened.
  3. The cam went back to the default 192.168.1.108 and would respond to ping for a bit and then reboot again
  4. The Cam only showed port 3800 open.
  5. The well-documented procedure of restoring via port 3800 would not work, claiming failure to login. Tried the old credentials and the default credentials to no avail
  6. Connected the serial port and played with uboot
  7. Managed to successfully upload the new firmware via TFTP and run da/dr/dk/du/dw/dp/dc/up.
  8. After the uploads, not much changed. Still bootloop, still port 3800 only
  9. At this point i am afraid I probably got a wrong turn and improvised with uboot commands (e.g. rdefault, sync_uboot etc...)
  10. The boot log looks even worse now, and cam still not working
Any hints...? thank you!

The boot log says:
-Boot 2010.06-svn3845 (Dec 18 2016 - 09:32:48) I2C: ready DRAM: 118 MiB gBootLogPtr:00b80008. spinor flash ID is 0x1940ef partition file version 2 rootfstype squashfs root /dev/mtdblock5 fail to parse HWID fail to parse bootargsParametersV2.text info fail to init bootargsParametersV2 TEXT_BASE:01000000 Net: Detected MACID:00:12:34:56:78:9a PHY:0x001cc816,addr:0x00 s3l phy RTL8201 init sd update init:HWID is missing! Using ambarella mac device TFTP from server 192.168.254.254; our IP address is 192.168.1.108; sending through gateway 192.168.1.1 Download Filename 'upgrade_info_7db780a713a4.txt'. Download to address: 0x5000000 Downloading: * Retry count exceeded; starting again Try again use backup_serverip *** ERROR: `serverip' not set Failed to get info.txt Fail to get info file! Init error! Using ambarella mac device TFTP from server 192.168.254.254; our IP address is 192.168.1.108; sending through gateway 192.168.1.1 Download Filename 'failed.txt'. Download to address: 0x2000000 Downloading: * Retry count exceeded; starting again state:ff,err_count:02 SPI probe: 32768 KiB W25Q256FV at 0:0 is now current device ## Booting kernel from Legacy Image at 02000000 ... Image Name: Linux-3.10.73 Created: 2016-12-23 4:02:18 UTC Image Type: ARM Linux Kernel Image (uncompressed) Data Size: 1485054 Bytes = 1.4 MiB Load Address: 00208000 Entry Point: 00208000 Verifying Checksum ... OK Loading Kernel Image ...OK OK partition file version 2 rootfstype squashfs root /dev/mtdblock5 fail to load bootargsParameters.txt fail to load bootargsParameters.txt file get bootargs info failed unknown phy memory type, use default Starting kernel ... unknown core,use back

The partition table is:
>partition name cs offset size flag fs_flags fs_type MinBoot 0 0x0000000000000000 0x0000000000040000 0x00000000 0x00000000 0x00000000 U-Boot 0 0x0000000000080000 0x0000000000040000 0x00000000 0x00000000 0x00000000 hwid 0 0x00000000000c0000 0x0000000000020000 0x00000000 0x00000000 0x00000000 partition 0 0x00000000000e0000 0x0000000000010000 0x00000000 0x00000001 0x00000001 Kernel 0 0x00000000000f0000 0x0000000000180000 0x00000000 0x00000000 0x00000000 romfs 0 0x0000000000270000 0x0000000000150000 0x00000000 0x00000001 0x00000002 web 0 0x00000000003c0000 0x0000000000680000 0x00000000 0x00000001 0x00000002 user 0 0x0000000000a40000 0x0000000001030000 0x00000000 0x00000001 0x00000002 updateflag 0 0x0000000001a70000 0x0000000000030000 0x00000000 0x00000000 0x00000000 config 0 0x0000000001aa0000 0x0000000000070000 0x00000000 0x00000003 0x00000004 product 0 0x0000000001b10000 0x0000000000010000 0x00000000 0x00000001 0x00000002 custom 0 0x0000000001b20000 0x0000000000020000 0x00000000 0x00000001 0x00000002 backupker 0 0x0000000001b40000 0x00000000000e0000 0x00000000 0x00000001 0x00000002 backupfs 0 0x0000000001c20000 0x0000000000050000 0x00000000 0x00000001 0x00000002 data 0 0x0000000001c70000 0x0000000000100000 0x00000000 0x00000003 0x00000004 user1 0 0x0000000001d70000 0x0000000000290000 0x00000000 0x00000001 0x00000002 MinBoot mountcmd: U-Boot mountcmd: hwid mountcmd: partition mountcmd: Kernel mountcmd: romfs mountcmd: web mountcmd:mount /dev/mtdblock6 /mnt/web/ user mountcmd:mount /dev/mtdblock7 /usr/ updateflag mountcmd: config mountcmd:mnt_jffs2 /dev/mtdblock9 /mnt/mtd jffs2 product mountcmd:mount /dev/mtdblock10 /mnt/pd/ custom mountcmd:mount /dev/mtdblock11 /mnt/custom/ backupker mountcmd: backupfs mountcmd: data mountcmd:mnt_jffs2 /dev/mtdblock14 /mnt/data jffs2 user1 mountcmd:mount /dev/mtdblock15 /mnt/user/

And just in case the environment is:
>printenv bootargs=console=ttyS0,115200 mem=118M root=/dev/mtdblock5 rootfstype=squashfs init=/linuxrc bootcmd=sf read 0x2000000 0xf0000 0x180000;bootm 0x2000000 bootdelay=3 baudrate=115200 ethaddr=00:12:34:56:78:9A ipaddr=192.168.1.108 serverip=192.168.1.1 autoload=yes gatewayip=192.168.1.1 netmask=255.255.255.0 ID=000000000000000000 da=tftp 0x02000000 dhboot.bin.img; flwrite;tftp dhboot-min.bin.img;flwrite dr=tftp 0x02000000 romfs-x.squashfs.img; flwrite dk=tftp 0x02000000 kernel.img; flwrite du=tftp 0x02000000 user-x.squashfs.img; flwrite dw=tftp 0x02000000 web-x.squashfs.img; flwrite dp=tftp 0x02000000 partition-x.cramfs.img;flwrite dc=tftp 0x02000000 custom-x.squashfs.img; flwrite up=tftp 0x02000000 update.img; flwrite tk=tftp 0x02000000 uImage; bootm dh_keyboard=1 appauto=1 sysbackup=1 logserver=127.0.0.1 loglevel=4 autosip=192.168.254.254 autolip=192.168.1.108 autogw=192.168.1.1 autonm=255.255.255.0 pd=tftp 0x02000000 pd-x.squashfs.img; flwrite stdin=serial stdout=serial stderr=serial ethact=ambarella mac Environment size: 1019/131068 bytes
 
Forgot: the install script in the working firmware says:
Code:
{
   "Commands" : [
      "burn dhboot-min.bin.img bootloader",
      "burn dhboot.bin.img bootloader",
      "burn kernel.img kernel",
      "burn partition-x.cramfs.img partition",
      "burn romfs-x.squashfs.img rootfs",
      "burn pd-x.squashfs.img pd",
      "burn user-x.squashfs.img user",
      "burn custom-x.squashfs.img custom",
      "burn web-x.squashfs.img web",
      "burn user1-x.squashfs.img user1",
      "burn mcu.bin.img mcu"
   ],
   "Devices" : [
      [ "SD6XXX", "1.00" ],
      [ "IPC-HX3XXX", "1.00" ],
      [ "IPC-HX4XXX", "1.00" ],
      [ "IPC-HX5XXX", "1.00" ],
      [ "IPC-HX8XXX", "1.00" ]
   ],
   "Vendor" : "General"
}
/IPC_RestoreDefault