I've finally had the time to probe around J50.
Hi Finbarry!
Can you upload the dump of the Macronix 25L25645G, if I ask you nicely?

I have the same hardware (HI3516A + IMX290 with 2 USB ports, but no TF slot), without the autofocus feature. The camera worked flawlessly for 5 years and yesterday it started resetting (?) the HDMI connection continuously. The monitor detects the camera on the input, but immediately goes into power saving mode because the camera resets (?) the connection or other anomaly happens. Then the monitor wakes up and detects the camera again, but that immediately goes into power save mode (again) and the circle restarts.
I reflowed the camera's PCB with hot air, resoldered the HDMI port, tested with multiple cables and multiple monitors, all with the same outcoming (no dice).
The 32.768 kHz crystal and the 24 MHz oscillator works as expected.
There was a 3V RTC button battery on the PCB but it depleted to 2.6V so I removed that, it has no effect on the issue. I soldered a CR2032 to the PCB but also no improvement.
There are 4 resistors connected the HDMI connector: 2x 2.7 kOhm (R7 &R8) pull up on pin 15 & 16 (SCL & SDA), and what is suspicious for me is 36.5 Ohm (R13) on pin 18 (+5V) because it is a bit high for 33 Ohm. And also there is 47 kOhm pull down resistor (R6) on pin 19 (Hot Plug Detect, it goes directly to the SII9022A pin 54) but if I measure it with reversed polarity it is just 13,5 kOhm (interesting). Can you measure your corresponding values?
I need your dump because I want to sort out the possible firmware issue before replacing the SII9022A and the Hi3516A.
I guess the FIFO error not full messages does not effect the working state of the camera because I seen on the internet that the same error messages appeared in the logs of perfectly working cameras too. Is your camera was connected to the monitor wen you logged it?
My camera's log:
U-Boot 2010.06 (Nov 25 2020 - 11:31:36)
Check spi flash controller v350... Found
Spi(cs1) ID: 0xC2 0x20 0x19 0xC2 0x20 0x19
Spi(cs1): Block:64KB Chip:32MB Name:"MX25L(256/257)35(E/F)"
Check Nand Flash Controller v610 ... found
Special NAND id table Version 1.36
Nand ID: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
No NAND device found!!!
In: serial
Out: serial
Err: serial
USB: scanning bus for devices... 2 USB Device(s) found
0 Storage Device(s) found
32768 KiB hi_sfc at 0:0 is now current device
## Booting kernel from Legacy Image at 82000000 ...
Image Name: Linux-3.4.35
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 2986672 Bytes = 2.8 MiB
Load Address: 80008000
Entry Point: 80008000
Loading Kernel Image ... OK
OK
Starting kernel ...
Uncompressing Linux... done, booting the kernel.
Booting Linux on physical CPU 0
Linux version 3.4.35 (root@linux-5w9i) (gcc version 4.8.3 20131202 (prerelease)
(Hisilicon_v300) ) #2 Fri Jan 13 17:00:54 CST 2017
CPU: ARMv7 Processor [410fc075] revision 5 (ARMv7), cr=10c53c7d
CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
Machine: hi3516a
Memory policy: ECC disabled, Data cache writeback
Built 1 zonelists in Zone order, mobility grouping on. Total pages: 32512
Kernel command line: mem=128M console=ttyAMA0,115200 root=/dev/mtdblock2 rootfst
ype=jffs2 mtdparts=hi_sfc:1M(boot),3M(kernel),28M(rootfs)
PID hash table entries: 512 (order: -1, 2048 bytes)
Dentry cache hash table entries: 16384 (order: 4, 65536 bytes)
Inode-cache hash table entries: 8192 (order: 3, 32768 bytes)
Memory: 128MB = 128MB total
Memory: 124028k/124028k available, 7044k reserved, 0K highmem
Virtual kernel memory layout:
vector : 0xffff0000 - 0xffff1000 ( 4 kB)
fixmap : 0xfff00000 - 0xfffe0000 ( 896 kB)
vmalloc : 0xc8800000 - 0xff000000 ( 872 MB)
lowmem : 0xc0000000 - 0xc8000000 ( 128 MB)
modules : 0xbf000000 - 0xc0000000 ( 16 MB)
.text : 0xc0008000 - 0xc054a000 (5384 kB)
.init : 0xc054a000 - 0xc056c434 ( 138 kB)
.data : 0xc056e000 - 0xc059d800 ( 190 kB)
.bss : 0xc059d824 - 0xc05bc9f8 ( 125 kB)
SLUB: Genslabs=11, HWalign=64, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
NR_IRQS:128
sched_clock: 32 bits at 49MHz, resolution 20ns, wraps every 86767ms
Console: colour dummy device 80x30
Calibrating delay loop... 1196.85 BogoMIPS (lpj=5984256)
pid_max: default: 32768 minimum: 301
Mount-cache hash table entries: 512
Initializing cgroup subsys freezer
CPU: Testing write buffer coherency: ok
Setting up static identity map for 0x8041e4a8 - 0x8041e500
dummy:
NET: Registered protocol family 16
Serial: AMBA PL011 UART driver
uart:0: ttyAMA0 at MMIO 0x20080000 (irq = 40) is a PL011 rev2
console [ttyAMA0] enabled
uart:1: ttyAMA1 at MMIO 0x20090000 (irq = 41) is a PL011 rev2
bio: create slab <bio-0> at 0
SCSI subsystem initialized
hi-spi-master hi-spi-master.0: with 1 chip select slaves attached
hi-spi-master hi-spi-master.1: with 3 chip select slaves attached
usbcore: registered new interface driver usbfs
usbcore: registered new interface driver hub
usbcore: registered new device driver usb
Switching to clocksource timer0
NET: Registered protocol family 2
IP route cache hash table entries: 1024 (order: 0, 4096 bytes)
TCP established hash table entries: 4096 (order: 3, 32768 bytes)
TCP bind hash table entries: 4096 (order: 2, 16384 bytes)
TCP: Hash tables configured (established 4096 bind 4096)
TCP: reno registered
UDP hash table entries: 256 (order: 0, 4096 bytes)
UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
NET: Registered protocol family 1
RPC: Registered named UNIX socket transport module.
RPC: Registered udp transport module.
RPC: Registered tcp transport module.
RPC: Registered tcp NFSv4.1 backchannel transport module.
VFS: Disk quotas dquot_6.5.2
Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)
squashfs: version 4.0 (2009/01/31) Phillip Lougher
NFS: Registering the id_resolver key type
jffs2: version 2.2. (NAND) © 2001-2006 Red Hat, Inc.
fuse init (API version 7.18)
SGI XFS with security attributes, large block/inode numbers, no debug enabled
msgmni has been set to 242
Block layer SCSI generic (bsg) driver version 0.4 loaded (major 254)
io scheduler noop registered
io scheduler deadline registered (default)
io scheduler cfq registered
brd: module loaded
Spi id table Version 1.22
Spi(cs1) ID: 0xC2 0x20 0x19 0xC2 0x20 0x19
SPI nor flash boot mode is 3 Bytes
Spi(cs1):
Block:64KB
Chip:32MB
Name:"MX25L(256/257)35(E/F)"
spi size: 32MB
chip num: 1
3 cmdlinepart partitions found on MTD device hi_sfc
3 cmdlinepart partitions found on MTD device hi_sfc
Creating 3 MTD partitions on "hi_sfc":
0x000000000000-0x000000100000 : "boot"
0x000000100000-0x000000400000 : "kernel"
0x000000400000-0x000002000000 : "rootfs"
Found Nand Flash Controller V610.
Nand ID: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
No NAND device found
Higmac dma_sg_phy: 0x87a00000
higmac_mdio_bus: probed
PHY mdio0:01 not found
ETH0: rgmii, phy_addr=1, mii_name=mdio0
ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
hiusb-ehci hiusb-ehci.0: HIUSB EHCI
hiusb-ehci hiusb-ehci.0: new USB bus registered, assigned bus number 1
hiusb-ehci hiusb-ehci.0: irq 53, io mem 0x100b0000
hiusb-ehci hiusb-ehci.0: USB 0.0 started, EHCI 1.00
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 1 port detected
ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
hiusb-ohci hiusb-ohci.0: HIUSB OHCI
hiusb-ohci hiusb-ohci.0: new USB bus registered, assigned bus number 2
hiusb-ohci hiusb-ohci.0: irq 54, io mem 0x100a0000
hub 2-0:1.0: USB hub found
hub 2-0:1.0: 1 port detected
Initializing USB Mass Storage driver...
usbcore: registered new interface driver usb-storage
USB Mass Storage support registered.
mousedev: PS/2 mouse device common for all mice
i2c /dev entries driver
hisi_i2c hisi_i2c.0: Hisilicon [i2c-0] probed!
hisi_i2c hisi_i2c.1: Hisilicon [i2c-1] probed!
hisi_i2c hisi_i2c.2: Hisilicon [i2c-2] probed!
usbcore: registered new interface driver usbhid
usbhid: USB HID core driver
TCP: cubic registered
Initializing XFRM netlink socket
NET: Registered protocol family 17
NET: Registered protocol family 15
lib80211: common routines for IEEE802.11 drivers
Registering the dns_resolver key type
VFP support v0.3: implementor 41 architecture 2 part 30 variant 7 rev 5
usb 1-1: new high-speed USB device number 2 using hiusb-ehci
hub 1-1:1.0: USB hub found
hub 1-1:1.0: 4 ports detected
VFS: Mounted root (jffs2 filesystem) on device 31:2.
Freeing init memory: 136K
[RCS]: /etc/init.d/S00devs
[RCS]: /etc/init.d/S01udev
Not recognise ACTION:change
Not recognise ACTION:change
Not recognise ACTION:change
[RCS]: /etc/init.d/S80network
[RCS]: /etc/init.d/S90hibernate
Password for 'root' changed
Auto login as root ...
Jan 1 00:00:03 login[888]: root login on 'ttyS000'
Welcome to HiLinux.
His3516a_LoadDrivers Start.....!
None of nfsroot found in cmdline.
~ # Hisilicon Media Memory Zone Manager
Module himedia: init ok
hi3516a_base: module license 'Proprietary' taints kernel.
Disabling lock debugging due to kernel taint
load sys.ko for Hi3516A...OK!
load tde.ko ...OK!
load region.ko ....OK!
load vgs.ko for Hi3516A...OK!
ISP Mod init!
load viu.ko for Hi3516A...OK!
load vpss.ko ....OK!
load vou.ko ....OK!
load hifb.ko OK!
load rc.ko for Hi3516A...OK!
load venc.ko for Hi3516A...OK!
load chnl.ko for Hi3516A...OK!
load h264e.ko for Hi3516A...OK!
load h265e.ko for Hi3516A...OK!
load jpege.ko for Hi3516A...OK!
load vda.ko ....OK!
load ive.ko for Hi3516A...OK!
hi3516a_io driver init start
hi3516a_io driver init successful!
insmod /komod/io_f10x.ko
insmod: can't insert '/komod/extdrv/wdt.ko': No such file or directory
*** Board tools : ver0.0.1_20121120 ***
[debug]: {source/utils/cmdshell.c:166}cmdstr:himm
0x200f0050: 0x00000000 --> 0x00000001
[END]
*** Board tools : ver0.0.1_20121120 ***
[debug]: {source/utils/cmdshell.c:166}cmdstr:himm
0x200f0054: 0x00000000 --> 0x00000001
[END]
*** Board tools : ver0.0.1_20121120 ***
[debug]: {source/utils/cmdshell.c:166}cmdstr:himm
0x200f0058: 0x00000000 --> 0x00000001
[END]
*** Board tools : ver0.0.1_20121120 ***
[debug]: {source/utils/cmdshell.c:166}cmdstr:himm
0x200f005c: 0x00000000 --> 0x00000001
[END]
*** Board tools : ver0.0.1_20121120 ***
[debug]: {source/utils/cmdshell.c:166}cmdstr:himm
0x2003002c: 0x00090007 --> 0x00090007
[END]
mipi_init
init phy power successful!
load hi_mipi driver successful!
hi3516a_io driver init start
*** Board tools : ver0.0.1_20121120 ***
[debug]: {source/utils/cmdshell.c:166}cmdstr:himm
0x200F00B8: 0x00000001 --> 0x00000000
[END]
*** Board tools : ver0.0.1_20121120 ***
[debug]: {source/utils/cmdshell.c:166}cmdstr:himm
0x200F00F0: 0x00000001 --> 0x00000000
[END]
His3516a_LoadDrivers Finish.....!
***COPYRIGHT 2016 tagye technology****
software:v2.4.2
DATE:Sep 2 2020,TIME:12:47:50
************************************
linear mode
--IMX290 1080P 60fps LINE Init OK!----
Entering the cmos_fps_set!
HI_MPI_VPSS_GetChnNR----------nr:1
vout start finish
Entering the cmos_fps_set!
Entering the cmos_fps_set!
card disconnected!
read first 128 bytes of EDID ROM
hi_i2c_wait_txfifo_notfull->260:
transmit error, int_raw_status: 0x750!
hi_i2c_wait_txfifo_notfull->262:
tx_abrt_cause is 1.
open success:fd0 ===== 3
FBIOPUT_VSCREENINFO over !!!
read first 128 bytes of EDID ROM
hi_i2c_wait_txfifo_notfull->260:
transmit error, int_raw_status: 0x750!
hi_i2c_wait_txfifo_notfull->262:
tx_abrt_cause is 1.
Initializing QFontEngineQPF failed for /qt_lib/fonts/DroidSansFallback.ttf
Initializing QFontEngineQPF failed for /qt_lib/fonts/DroidSansFallback.ttf
Initializing QFontEngineQPF failed for /qt_lib/fonts/DroidSansFallback.ttf
Initializing QFontEngineQPF failed for /qt_lib/fonts/DroidSansFallback.ttf
initLineSetting
Initializing QFontEngineQPF failed for /qt_lib/fonts/DroidSansFallback.ttf
accept client1 connect request
Initializing QFontEngineQPF failed for /qt_lib/fonts/DroidSansFallback.ttf
The log stops at this point with no further information or error code, just the monitor's restart circle repeats itself. If I disconnect the monitor nothing happens on the camera's side just the monitor stays in power saving mode, if I reconnect them the camera logs:
read first 128 bytes of EDID ROM
hi_i2c_wait_txfifo_notfull->260:
transmit error, int_raw_status: 0x750!
hi_i2c_wait_txfifo_notfull->262:
tx_abrt_cause is 1.
read first 128 bytes of EDID ROM
hi_i2c_wait_txfifo_notfull->260:
transmit error, int_raw_status: 0x750!
hi_i2c_wait_txfifo_notfull->262:
tx_abrt_cause is 1.
And the monitor jumps into the on/off circle again.
The photo is not mine but the same PCB (except the fact that is with with autofocus components populated).
Update, 2 days later: I found that the camera is working with only one old Samsung TV (UE40D5500, 1080p), but with the previously tested 1080 x 1200 monitors it is still not working.
Update: finally the case solved. I bought a Dell U2312 which is native 1080p (not 1200p like the U2709 models what I previously used for the camera). Although I also bought the components (HI3516A RBC V100 and SII9022ACNU) for the camera, but finally I didn't replaced them because the monitor change resolved the problem and in addition the camera's on screen menu also works better (it wasn't displayed correctly before because it is shown only in halfway on the U2709's 16:10 screen). Overall, changing the monitor instead of repairing the camera itself was a better idea for this (way better) outcoming.