is there a "generic" firmware available for Hi3535 based NVR? (owsoo branded)

This is shown in NCOM after booting:

U-Boot 2010.06 (Oct 16 2015 - 04:33:14)

Check spi flash controller v350... Found
Spi(cs1) ID: 0xC2 0x20 0x18 0xC2 0x20 0x18
Spi(cs1): Block:64KB Chip:16MB Name:"MX25L128XX"
*** Warning - bad CRC, using default environment

In: serial
Out: serial
Err: serial
(Re)start USB search...
USB: scanning bus for devices... 1 USB Device(s) found
scanning bus for storage devices... 0 Storage Device(s) found
hisilicon #

I tried to update an old firmware via USB, but it don't boot.
 
Guess you will have to set boot args manually or just flash via tftp. Basically you will have to set up TFTP Server on PC, edit ipadress etc. via setenv on NVR and then flash via tftp. Type "help" in NVR for available commands, you need google up the rest. I don't have all commands in my memory.
 
Here are the commands:

? - alias for 'help'
JUpdate - JUpdate - load jvsd8004 binary file

base - print or set address offset
bootm - boot application image from memory
bootp - boot image via network using BOOTP/TFTP protocol
cmp - memory compare
cp - memory copy
crc32 - checksum calculation
ddrp - ddrp training tools v200
ddrt - ddr training tools v200
decjpg - jpgd - decode jpeg picture.

ext2load- load binary file from a Ext2 filesystem
ext2ls - list files in a directory (default /)
fatinfo - print information about filesystem
fatload - load binary file from a dos filesystem
fatls - list files in a directory (default /)
getinfo - print hardware information
go - start application at address 'addr'
help - print command description/usage
loadb - load binary file over serial line (kermit mode)
loady - load binary file over serial line (ymodem mode)
loop - infinite loop on address range
md - memory display
mii - MII utility commands
mm - memory modify (auto-incrementing address)
mtest - simple RAM read/write test
mw - memory write (fill)
netupdate- net update, MODEL just like JVS-HI3518C.
nm - memory modify (constant address)
ping - send ICMP ECHO_REQUEST to network host
printenv- print environment variables
rarpboot- boot image via network using RARP/TFTP protocol
reset - Perform RESET of the CPU
saveenv - save environment variables to persistent storage
setenv - set environment variables
setvobg - setvobg - set vo backgroud color.
- setvobg [dev color]
sf - SPI flash sub-system
showlogo- show logo - progress

startgx - startgx - open graphics layer.
- startgx [layer addr stride x y w h]

startvo - startvo - open interface of vo device.
- startvo [dev type sync]
stopgx - stopgx - close graphics layer.
- stopgx [layer]
stopvo - stopvo - close interface of vo device.
- stopvo [dev]
tftp - tftp - download or upload image via network using TFTP protocol
usb - USB sub-system
usbboot - boot from USB device
version - print monitor version

But i have 3 firmwarefiles, which must i flash and which commands i must use?
 
But i have 3 firmwarefiles, which must i flash and which commands i must use?

Not 100% sure, but at least when you are flashing via firmware update, it must be the file with exact size of 16.384 KB / 16.777.216 bytes ( If you have 16 MB flash size). At least all firmware i ever flashed had exactly that size, i would not recommend to flash a file that differs in size.

I just recognized there is a command "JUpdate - JUpdate - load jvsd8004 binary file", you should try that one first, before using tftp flash. Maybe your flashfile needs to be named jvsd8004.bin?
Maybe JUpdate will tell you what filename it is looking for, when not existant.
 
Last edited:
  • Like
Reactions: Karsten
Just connected my box via serial connection and figured out, your USB is not being recognized. That is why it does not try to update firmware.

This means no USB storage has been found:
(Re)start USB search...
USB: scanning bus for devices... 1 USB Device(s) found
scanning bus for storage devices... 0 Storage Device(s) found
hisilicon #



This is how it should look like, when usb storage is found:
(Re)start USB search...
USB: scanning bus for devices... 2 USB Device(s) found
scanning bus for storage devices... usb_stor_get_info->1406,blksz:512
1 Storage Device(s) found
reading jdvr-recover-sw-mbn7216-h4-ver.bin
get jdvr-recover-sw-mbn7216-h4-ver.bin size=-1
recover mask=ffffffff
reading jdvr-recover-sw-mbn7216-h4.bin

** Unable to read "jdvr-recover-sw-mbn7216-h4.bin" from usb 0:1 **
Hit any key to stop autoboot: 0

Only if usb storage is found, it will look up for firmware file.

Try another stick, use MBR and FAT file system.



The next thing is, you said your boot is stuck on boot logo with only the last two pins left. If that is the case, it should load further than just up to this point:
U-Boot 2010.06 (Oct 16 2015 - 04:33:14)

Check spi flash controller v350... Found
Spi(cs1) ID: 0xC2 0x20 0x18 0xC2 0x20 0x18
Spi(cs1): Block:64KB Chip:16MB Name:"MX25L128XX"
*** Warning - bad CRC, using default environment

In: serial
Out: serial
Err: serial
(Re)start USB search...
USB: scanning bus for devices... 1 USB Device(s) found
scanning bus for storage devices... 0 Storage Device(s) found
hisilicon #

If "hisilicon #" is shown, the boot process has been interrupted manually. No way a boot process will be shown on the monitor. If you did not hit any key, unplug cable from TX-pin from USB-SERIAL to Receiver RX-pin. This way no commands can be send from your PC to receiver to interrupt the boot process, you will only be able to read.
 
Last edited:
Ok,
this is the log of ncom, i disconnect my harddrive, my stick is now connected.

U-Boot 2010.06 (Oct 16 2015 - 04:33:14)

Check spi flash controller v350... Found
Spi(cs1) ID: 0xC2 0x20 0x18 0xC2 0x20 0x18
Spi(cs1): Block:64KB Chip:16MB Name:"MX25L128XX"
In: serial
Out: serial
Err: serial
(Re)start USB search...
USB: scanning bus for devices... 2 USB Device(s) found
scanning bus for storage devices... usb_stor_get_info->1422,blksz:512
1 Storage Device(s) found
hisilicon #

First time i had the bootlogo, now there is only a black screen.

I think only a tftp download is possible.
 
Did you try to detach the PC TX ----> NVR RX cable while booting? While leaving following cables attached:
PC GND ----> NVR GND
PC RX -----> NVR TX
 
hisilicon # printenv
bootargs=mem=96M console=ttyAMA0,115200
bootdelay=1
baudrate=115200
ethaddr=00:00:23:34:45:66
bootfile="uImage"
netmask=255.255.255.0
serverip=192.168.178.2
ipaddr=192.168.178.34
gatewayip=192.168.178.1
stdin=serial
stdout=serial
stderr=serial
verify=n
ver=U-Boot 2010.06 (Oct 16 2015 - 04:33:14)

Environment size: 297/262140 bytes
 
Your bootcmd is missing, that is why it is not booting anymore.

Here is mine:
hisilicon # printenv
bootdelay=1
baudrate=115200
ethaddr=00:00:23:34:45:66
netmask=255.255.254.0
bootfile="uImage"
serverip=192.168.6.22
ipaddr=192.168.6.134
bootargs=mem=291M console=ttyAMA0,115200 root=0100 rootfstype=ext2 logo_addr=9FF00000 mtdparts=hi_sfc:1M(boot),3584K(kernel),2560K(rootfs),7M(APP),2M(config) pcimod=host logo_w=800
bootcmd=showlogo;startvo 0 36 13;mw 0x200300b8 0x0ff0f0ff;sf probe 0;sf read 0x81000000 0x100000 0x380000;sf read 0x82000000 0x480000 0x280000;bootm 0x81000000 0x82000000
jpgLogoAddr=0x60000
jpgLogoLen=0x20000
jpgLogoW=800
jpgLogoH=600
logo_addr=9FF00000
machine=sw-mbn7216-h4
stdin=serial
stdout=serial
stderr=serial
verify=n
ver=U-Boot 2010.06 (May 26 2014 - 14:41:35)


First try by adding bootcmd only, i think the commands go like this:
setenv bootcmd 'showlogo;startvo 0 36 13;mw 0x200300b8 0x0ff0f0ff;sf probe 0;sf read 0x81000000 0x100000 0x380000;sf read 0x82000000 0x480000 0x280000;bootm 0x81000000 0x82000000'
saveenv
reset


If that ain't enough try modifying bootargs aswell:
setenv bootargs 'mem=96M console=ttyAMA0,115200 root=0100 rootfstype=ext2 logo_addr=9FF00000 mtdparts=hi_sfc:1M(boot),3584K(kernel),2560K(rootfs),7M(APP),2M(config) pcimod=host logo_w=800'
saveenv
reset

If it is still not enough, add these lines aswell:
setenv jpgLogoAddr '0x60000'
setenv jpgLogoLen '0x20000'
setenv jpgLogoW '800'
setenv jpgLogoH '600'
setenv logo_addr '9FF00000'
saveenv
reset
 
Last edited:
Looks much better:


U-Boot 2010.06 (Oct 16 2015 - 04:33:14)

Check spi flash controller v350... Found
Spi(cs1) ID: 0xC2 0x20 0x18 0xC2 0x20 0x18
Spi(cs1): Block:64KB Chip:16MB Name:"MX25L128XX"
In: serial
Out: serial
Err: serial
(Re)start USB search...
USB: scanning bus for devices... 2 USB Device(s) found
scanning bus for storage devices... usb_stor_get_info->1422,blksz:512
1 Storage Device(s) found
Press Ctrl+C to stop autoboot
saveaddr: 82000000
do_netupdate
Hisilicon ETH net controler
MAC: 00-00-23-34-45-66
UP_PORT : phy status change : LINK=UP : DUPLEX=FULL : SPEED=100M
JVUpd Start
OurPort: 2360
starting...

time out resend: 0
after resend data
packet not correct: des: 7437, our: 2360

JVUpdTimeout When CMD_TRY
16384 KiB hi_sfc at 0:0 is now current device

vo 0,picwh:720 576, addr=0, xywh:40 12 720 576
vo 2,picwh:720 576, addr=0, xywh:0 0 720 576
 
Is still stuck at 2 Pin to finish or do you get blackscreen? It could be video output error, those last line may refer to a resolution issue. You could try on another monitor.
If you hit enter button, after it stuck at boot, will it give you access to command line?

And also post your new "printenv".
 
Last edited:
hisilicon # printenv
bootdelay=1
baudrate=115200
ethaddr=00:00:23:34:45:66
bootfile="uImage"
netmask=255.255.255.0
ipaddr=192.168.178.34
gatewayip=192.168.178.1
serverip=192.168.178.37
bootcmd=showlogo;startvo 0 36 13;mw 0x200300b8 0x0ff0f0ff;sf probe 0;sf read 0x81000000 0x100000 0x380000;sf read 0x82000000 0x480000 0x280000;bootm 0x81000000 0x82000000
bootargs=mem=96M console=ttyAMA0,115200 root=0100 rootfstype=ext2 logo_addr=9FF00000 mtdparts=hi_sfc:1M(boot),3584K(kernel),2560K(rootfs),7M(APP),2M(config) pcimod=host logo_w=800
jpgLogoLen=0x20000
jpgLogoW=800
jpgLogoHenv=logo_addr 0000
jpgLogoAddr=0x60000
stdin=serial
stdout=serial
stderr=serial
verify=n
ver=U-Boot 2010.06 (Oct 16 2015 - 04:33:14)
jpeg_addr=0x86000004
jpeg_size=0x2999bdd8
vobuf=0x0

Environment size: 740/262140 bytes
hisilicon #