-
-
Notifications
You must be signed in to change notification settings - Fork 380
Description
Hello.
Introduction
I try to run OpenIPC on a Chinese IP camera with XM530 chip on it.
Initially U-boot was password protected. I haven't tried to short the flash memory pins. Instead, I desoldered and reprogrammed the SPI flash, removing the U-boot password.
After that, I followed the XM530 installation guide to flash the OpenIPC firmware.
After flashing the OpenIPC firmware, every time U-boot booted linux, the UART output was changing from readable U-boot messages to unreadable binary output, that resembled the output you'd get if you set the wrong UART baud rate, even though, according to the guide, I used console=ttyAMA0,115200 kernel parameter. I tried different common baud rates (despite kernel parameter clearly stating that baud rate is 115200), with no success.
After having struggled with this for a while, I finally found a way to fix the console output, by completely removing the console=ttyAMA0,115200 parameter. I also tried using 'console=ttyAMA1,115200': in this case, I see no console output (not even binary/unreadable). Not relevant to the main issue, but any idea why presence of console=ttyAMA0,115200 parameter breaks console output?
The main issue
System startup freezes after "insert h265", and the system reboots about 10 seconds after that.
The UART boot log:
U-Boot 2014.04 (Dec 07 2022 - 10:37:08)
CPU: XM530V200WX1
DRAM: 64 MiB
MMC: arasan: 0
In: serial
Out: serial
Err: serial
Net: PHY id1 937c id2 4024 dwmac.10010000
Press Ctrl+C to stop autoboot
SF: 2097152 bytes @ 0x50000 Read: OK
## Booting kernel from Legacy Image at 80007fc0 ...
Image Name: Linux-3.10.103+-xm530
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 1205320 Bytes = 1.1 MiB
Load Address: 80008000
Entry Point: 80008000
XIP Kernel Image ... OK
Starting kernel ...
Uncompressing Linux... done, booting the kernel.
Booting Linux on physical CPU 0x0
Linux version 3.10.103+ (runner@runnervmh13bl) (buildroot-gcc-8.4.0) #2 SMP Thu Jan 1 23:28:47 UTC 2026
CPU: ARMv7 Processor [410fc051] revision 1 (ARMv7), cr=10c53c7d
CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
Machine: xm530
Memory policy: ECC disabled, Data cache writealloc
PERCPU: Embedded 7 pages/cpu @c03d7000 s6272 r8192 d14208 u32768
Built 1 zonelists in Zone order, mobility grouping on. Total pages: 15240
Kernel command line: mem=60M panic=1 root=/dev/mtdblock3 rootfstype=squashfs init=/init mtdparts=xm_sfc:256k(boot),64k(env),2048k(kernel),5120k(rootfs),-(rootfs_data)
PID hash table entries: 256 (order: -2, 1024 bytes)
Dentry cache hash table entries: 8192 (order: 3, 32768 bytes)
Inode-cache hash table entries: 4096 (order: 2, 16384 bytes)
Memory: 60MB = 60MB total
Memory: 57392k/57392k available, 4048k reserved, 0K highmem
Virtual kernel memory layout:
vector : 0xffff0000 - 0xffff1000 ( 4 kB)
fixmap : 0xfff00000 - 0xfffe0000 ( 896 kB)
vmalloc : 0xc4000000 - 0xff000000 ( 944 MB)
lowmem : 0xc0000000 - 0xc3c00000 ( 60 MB)
modules : 0xbf000000 - 0xc0000000 ( 16 MB)
.text : 0xc0008000 - 0xc0301e3c (3048 kB)
.init : 0xc0302000 - 0xc0327880 ( 151 kB)
.data : 0xc0328000 - 0xc0348f20 ( 132 kB)
.bss : 0xc0348f20 - 0xc035bfa4 ( 77 kB)
SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=2, Nodes=1
Hierarchical RCU implementation.
NR_IRQS:96
sched_clock: 32 bits at 12MHz, resolution 83ns, wraps every 357913ms
Calibrating delay loop... 148.88 BogoMIPS (lpj=744448)
pid_max: default: 32768 minimum: 301
Mount-cache hash table entries: 512
CPU: Testing write buffer coherency: ok
Setting up static identity map for 0xc02a3940 - 0xc02a3998
L310 cache controller enabled
l2x0: 8 ways, CACHE_ID 0x410000c9, AUX_CTRL 0x32420000, Cache size: 131072 B
CPU1: Booted secondary processor
Brought up 2 CPUs
SMP: Total of 2 processors activated (3986.02 BogoMIPS).
CPU: All CPU(s) started in SVC mode.
devtmpfs: initialized
NET: Registered protocol family 16
DMA: preallocated 256 KiB pool for atomic coherent allocations
Serial: AMBA PL011 UART driver
uart:0: ttyAMA0 at MMIO 0x10030000 (irq = 32) is a PL011 rev1
console [ttyAMA0] enabled
uart:1: ttyAMA1 at MMIO 0x10040000 (irq = 33) is a PL011 rev1
bio: create slab <bio-0> at 0
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
TCP established hash table entries: 512 (order: 0, 4096 bytes)
TCP bind hash table entries: 512 (order: 0, 4096 bytes)
TCP: Hash tables configured (established 512 bind 512)
TCP: reno registered
UDP hash table entries: 256 (order: 1, 8192 bytes)
UDP-Lite hash table entries: 256 (order: 1, 8192 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.
squashfs: version 4.0 (2009/01/31) Phillip Lougher
jffs2: version 2.2. (NAND) <0xc2><0xa9> 2001-2006 Red Hat, Inc.
fuse init (API version 7.22)
msgmni has been set to 112
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
dma-pl330 dma-pl330: Loaded driver for PL330 DMAC-267056
dma-pl330 dma-pl330: DBUFF-32x8bytes Num_Chans-4 Num_Peri-24 Num_Events-4
uart-pl011 uart:0: no DMA platform data
uart-pl011 uart:1: no DMA platform data
brd: module loaded
loop: module loaded
XMSFCV2: Unsupported flash IDs: 0xa14017 using default
5 cmdlinepart partitions found on MTD device xm_sfc
5 cmdlinepart partitions found on MTD device xm_sfc
Creating 5 MTD partitions on "xm_sfc":
0x000000000000-0x000000040000 : "boot"
0x000000040000-0x000000050000 : "env"
0x000000050000-0x000000250000 : "kernel"
0x000000250000-0x000000750000 : "rootfs"
0x000000750000-0x000000800000 : "rootfs_data"
tun: Universal TUN/TAP device driver, 1.6
tun: (C) 1999-2004 Max Krasnyansky <maxk@qualcomm.com>
XMMMAC driver:
platform registration...
done!
eth0 - (dev. name: xmmaceth - id: -1, IRQ #35
IO base addr: 0xfe010000)
libphy: XMMMAC MII Bus: probed
eth0: PHY ID 937c4024 at 0 IRQ 0 (0:00)
eth0: PHY ID 937c4024 at 1 IRQ 0 (0:01) active
TCP: cubic registered
NET: Registered protocol family 17
Key type dns_resolver registered
VFP support v0.3: implementor 41 architecture 2 part 30 variant 5 rev 1
registered taskstats version 1
VFS: Mounted root (squashfs filesystem) readonly on device 31:3.
devtmpfs: mounted
Freeing unused kernel memory: 148K (c0302000 - c0327000)
jffs2: notice: (354) jffs2_build_xattr_subsystem: complete building xattr subsystem, 0 of xdatum (0 unchecked, 0 orphan) and 0 of xref (0 dead, 0 orphan) found.
devpts: called with bogus options
Seeding 2048 bits without crediting
Saving 2048 bits of non-creditable seed for next boot
Starting syslogd: OK
Starting klogd: OK
Running sysctl: OK
Thu Jan 1 23:29:55 GMT 2026
Loading kernel modules...
modprobe: module exfat not found in modules.dep
Starting mdev...
Starting network...
udhcpc: started, v1.36.1
udhcpc: broadcasting discover
udhcpc: broadcasting discover
udhcpc: broadcasting select for 192.168.44.40, server 192.168.44.1
udhcpc: lease of 192.168.44.40 obtained from 192.168.44.1, lease time 43200
deleting routers
adding dns 192.168.44.1
Alarm clock
Starting ntpd: OK
Starting dropbear: OK
Starting crond: OK
Loading vendor modules...
MEM_START=0x83c00000 MEM_LEN=0x00400000
insmod: can't insert 'xm530_h264.ko': Resource busy
insert audio
insert h265
I also tried using different osmem U-boot environment and mem linux kernel parameter arguments, ranging from 10M to 60M of memory. In the provided boot log I used 60M. Increasing the memory from the recommended 35M to 60M didn't help. Using 10M results in the system freezing earlier (about at Starting dropbear: OK), but it doesn't reboot automatically.
Do you know what can be the cause of the ability of the system to properly boot?
Thanks in advance.