Memory deadlock when booting initramfs!

Hi all,
Splitted from this topic: Ecb350 bricked, tftp only partially working - #4 by brampe

When starting the initramfs image from TFTP, the memory get's filled completely. So I think a developer might want to look into this. I tried both the 21.02 rc and the snapshot initramfs.

This is the serial log:

U-Boot 1.1.4 (Jul 13 2012 - 20:54:36)

ECB350 (ar7241 - Virian) U-boot
DRAM:
sri
ar7240_ddr_initial_config(133): virian ddr1 init
#### TAP VALUE 1 = 0x2, 2 = 0x2 [0x0: 0x80500004]
32 MB
Top of RAM usable for U-Boot at: 82000000
Reserving 242k for U-Boot at: 81fc0000
Reserving 192k for malloc() at: 81f90000
Reserving 44 Bytes for Board Info at: 81f8ffd4
Reserving 36 Bytes for Global Data at: 81f8ffb0
Reserving 128k for boot params() at: 81f6ffb0
Stack Pointer at: 81f6ff98
Now running in RAM - U-Boot at: 81fc0000
Flash Manuf Id 0xc2, DeviceId0 0x20, DeviceId1 0x17
flash size 8MB, sector count = 128
Flash:  8 MB
In:    serial
Out:   serial
Err:   serial
Net:   ag7240_enet_initialize...
Fetching MAC Address from 0x81fea6f4
Virian MDC CFG Value ==> 6
: cfg1 0xf cfg2 0x7214
eth0: 00:02:6f:ee:ff:89
RGMII reg init
ATHRSF1_PHY: Port 0, Neg Success
ATHRSF1_PHY: unit 0 phy addr 4 eth0 up
eth0
eth_set_enetaddr(num=0, addr=00:02:6f:ee:ff:89)
Setting new HW address on eth0
New Address is             00:02:6F:EE:FF:89
eth_set_enetaddr(num=0, addr=00:02:6f:ee:ff:89)
Setting new HW address on eth0
New Address is             00:02:6F:EE:FF:89
Hit any key to stop autoboot:  0
Trying eth0
dup 1 speed 1000
Using eth0 device
TFTP from server 192.168.1.101; our IP address is 192.168.1.1
Filename 'vmlinux-art-ramdisk'.
Load address: 0x3000000
Loading: #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         ###############
done
Bytes transferred = 4402763 (432e4b hex)
## Booting image at 03000000 ...
   Image Name:   MIPS OpenWrt Linux-5.4.111
   Created:      2021-04-18  10:06:57 UTC
   Image Type:   MIPS Linux Kernel Image (lzma compressed)
   Data Size:    4402699 Bytes =  4.2 MB
   Load Address: 80060000
   Entry Point:  80060000
   Verifying Checksum at 0x03000040 ...OK
   Uncompressing Kernel Image ... OK
No initrd
## Transferring control to Linux (at address 80060000) ...
## Giving linux memsize in bytes, 33554432

Starting kernel ...

[    0.000000] Linux version 5.4.111 (builder@buildhost) (gcc version 8.4.0 (OpenWrt GCC 8.4.0 r16046-59980f7aaf)) #0 Sun Apr 18 10:06:57 2021
[    0.000000] printk: bootconsole [early0] enabled
[    0.000000] CPU0 revision is: 00019374 (MIPS 24Kc)
[    0.000000] MIPS: machine is EnGenius ECB350 v1
[    0.000000] SoC: Atheros AR7242 rev 1
[    0.000000] Initrd not found or empty - disabling initrd
[    0.000000] Primary instruction cache 64kB, VIPT, 4-way, linesize 32 bytes.
[    0.000000] Primary data cache 32kB, 4-way, VIPT, cache aliases, linesize 32 bytes
[    0.000000] Zone ranges:
[    0.000000]   Normal   [mem 0x0000000000000000-0x0000000001ffffff]
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x0000000000000000-0x0000000001ffffff]
[    0.000000] Initmem setup node 0 [mem 0x0000000000000000-0x0000000001ffffff]
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 8128
[    0.000000] Kernel command line: console=ttyS0,115200 rootfstype=squashfs,jffs2
[    0.000000] Dentry cache hash table entries: 4096 (order: 2, 16384 bytes, linear)
[    0.000000] Inode-cache hash table entries: 2048 (order: 1, 8192 bytes, linear)
[    0.000000] Writing ErrCtl register=00000000
[    0.000000] Readback ErrCtl register=00000000
[    0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off
[    0.000000] Memory: 17568K/32768K available (4050K kernel code, 148K rwdata, 600K rodata, 9848K init, 195K bss, 15200K reserved, 0K cma-reserved)
[    0.000000] SLUB: HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[    0.000000] NR_IRQS: 51
[    0.000000] random: get_random_bytes called from 0x80512990 with crng_init=0
[    0.000000] CPU clock: 400.000 MHz
[    0.000000] clocksource: MIPS: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 9556302233 ns
[    0.000013] sched_clock: 32 bits at 200MHz, resolution 5ns, wraps every 10737418237ns
[    0.007924] Calibrating delay loop... 265.98 BogoMIPS (lpj=531968)
[    0.050086] pid_max: default: 32768 minimum: 301
[    0.054986] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes, linear)
[    0.062301] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes, linear)
[    0.076133] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns
[    0.085914] futex hash table entries: 256 (order: -1, 3072 bytes, linear)
[    0.092797] pinctrl core: initialized pinctrl subsystem
[    0.101925] NET: Registered protocol family 16
[    0.141017] workqueue: max_active 576 requested for napi_workq is out of range, clamping between 1 and 512
[    0.155615] clocksource: Switched to clocksource MIPS
[    0.162455] NET: Registered protocol family 2
[    0.168347] tcp_listen_portaddr_hash hash table entries: 512 (order: 0, 4096 bytes, linear)
[    0.176777] TCP established hash table entries: 1024 (order: 0, 4096 bytes, linear)
[    0.184455] TCP bind hash table entries: 1024 (order: 0, 4096 bytes, linear)
[    0.191514] TCP: Hash tables configured (established 1024 bind 1024)
[    0.198093] UDP hash table entries: 256 (order: 0, 4096 bytes, linear)
[    0.204696] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes, linear)
[    0.212091] NET: Registered protocol family 1
[    0.216535] PCI: CLS 0 bytes, default 32
[    0.476974] swapper invoked oom-killer: gfp_mask=0x100cc2(GFP_HIGHUSER), order=0, oom_score_adj=0
[    0.485922] CPU: 0 PID: 1 Comm: swapper Not tainted 5.4.111 #0
[    0.491745] Stack : 804b99a0 804b9980 804b8fbc 81c299bc 00000000 00000000 00000000 00000000
[    0.500102]         00000000 00000000 00000000 00000000 00000000 00000001 81c29970 9380487f
[    0.508455]         81c29a08 00000000 00000000 00000000 00000038 8044efe4 2e342e31 31312023
[    0.516810]         6d6d3a20 00000040 00000033 73776170 00000000 81c29adc 00000000 804f6e70
[    0.525165]         804f6d10 ffffffff 00200000 00000000 00000001 80061518 00000000 80eb0000
[    0.533520]         ...
[    0.535973] Call Trace:
[    0.536000] [<8044efe4>] 0x8044efe4
[    0.541925] [<80061518>] 0x80061518
[    0.545419] [<80068f98>] 0x80068f98
[    0.548909] [<80068fa0>] 0x80068fa0
[    0.552398] [<800f7d0c>] 0x800f7d0c
[    0.555891] [<80097d24>] 0x80097d24
[    0.559374] [<800f88b8>] 0x800f88b8
[    0.562875] [<80126e5c>] 0x80126e5c
[    0.566386] [<800f5a2c>] 0x800f5a2c
[    0.569882] [<800f5b50>] 0x800f5b50
[    0.573378] [<8015a79c>] 0x8015a79c
[    0.576866] [<8014c7c8>] 0x8014c7c8
[    0.580360] [<800f3a58>] 0x800f3a58
[    0.583866] [<800f53c4>] 0x800f53c4
[    0.587340] [<800ff4f4>] 0x800ff4f4
[    0.590829] [<800f333c>] 0x800f333c
[    0.594321] [<805121b0>] 0x805121b0
[    0.597822] [<800f549c>] 0x800f549c
[    0.601320] [<8014ed70>] 0x8014ed70
[    0.604811] [<8013232c>] 0x8013232c
[    0.608307] [<801d05d8>] 0x801d05d8
[    0.611809] [<80133844>] 0x80133844
[    0.615290] [<80131288>] 0x80131288
[    0.618781] [<80133a08>] 0x80133a08
[    0.622269] [<8012c620>] 0x8012c620
[    0.625760] [<8014ed70>] 0x8014ed70
[    0.629252] [<80514620>] 0x80514620
[    0.632742] [<80513eb8>] 0x80513eb8
[    0.636231] [<80530000>] 0x80530000
[    0.639721] [<80530000>] 0x80530000
[    0.643196] [<80530000>] 0x80530000
[    0.646685] [<80530000>] 0x80530000
[    0.650176] [<80530000>] 0x80530000
[    0.653666] [<80530000>] 0x80530000
[    0.657157] [<80530000>] 0x80530000
[    0.660647] [<80530000>] 0x80530000
[    0.664138] [<80530000>] 0x80530000
[    0.667628] [<80530000>] 0x80530000
[    0.671103] [<80530000>] 0x80530000
[    0.674592] [<80513f5c>] 0x80513f5c
[    0.678084] [<80530000>] 0x80530000
[    0.681574] [<80530000>] 0x80530000
[    0.685065] [<80530000>] 0x80530000
[    0.688556] [<80513880>] 0x80513880
[    0.692045] [<805121b0>] 0x805121b0
[    0.695521] [<8010c480>] 0x8010c480
[    0.699011] [<80530000>] 0x80530000
[    0.702500] [<80513c88>] 0x80513c88
[    0.705990] [<805121b0>] 0x805121b0
[    0.709482] [<800a9550>] 0x800a9550
[    0.712974] [<80530000>] 0x80530000
[    0.716462] [<80530000>] 0x80530000
[    0.719952] [<80530000>] 0x80530000
[    0.723427] [<80450000>] 0x80450000
[    0.726916] [<8051361c>] 0x8051361c
[    0.730408] [<802f111c>] 0x802f111c
[    0.733898] [<805147a8>] 0x805147a8
[    0.737391] [<805121b0>] 0x805121b0
[    0.740880] [<805147cc>] 0x805147cc
[    0.744369] [<8052e02c>] 0x8052e02c
[    0.747861] [<80521d74>] 0x80521d74
[    0.751335] [<805147a8>] 0x805147a8
[    0.754824] [<80060954>] 0x80060954
[    0.758328] [<80512ca0>] 0x80512ca0
[    0.761826] [<805121b0>] 0x805121b0
[    0.765321] [<8044f368>] 0x8044f368
[    0.768815] [<8044f378>] 0x8044f378
[    0.772312] [<8044f368>] 0x8044f368
[    0.775802] [<8044f368>] 0x8044f368
[    0.779276] [<800647f8>] 0x800647f8
[    0.782784]
[    0.784280] Mem-Info:
[    0.786570] active_anon:0 inactive_anon:0 isolated_anon:0
[    0.786570]  active_file:0 inactive_file:0 isolated_file:0
[    0.786570]  unevictable:2745 dirty:0 writeback:0 unstable:0
[    0.786570]  slab_reclaimable:153 slab_unreclaimable:283
[    0.786570]  mapped:0 shmem:0 pagetables:0 bounce:0
[    0.786570]  free:1156 free_pcp:0 free_cma:0
[    0.817390] Node 0 active_anon:0kB inactive_anon:0kB active_file:0kB inactive_file:0kB unevictable:10980kB isolated(anon):0kB isolated(file):0kB mapped:0kB dirty:0kB writeback:0kB shmem:0kB writeback_tmp:0kB unstable:0kB all_unreclaimable? no
[    0.838802] Normal free:4624kB min:4624kB low:4756kB high:4888kB active_anon:0kB inactive_anon:0kB active_file:0kB inactive_file:0kB unevictable:10980kB writepending:0kB present:32768kB managed:17568kB mlocked:0kB kernel_stack:128kB pagetables:0kB bounce:0kB free_pcp:0kB local_pcp:0kB free_cma:0kB
[    0.865014] lowmem_reserve[]: 0 0
[    0.868339] Normal: 4*4kB (UM) 2*8kB (UM) 1*16kB (M) 1*32kB (M) 3*64kB (UM) 0*128kB 1*256kB (U) 0*512kB 2*1024kB (UM) 1*2048kB (U) 0*4096kB = 4624kB
[    0.881665] 2756 total pagecache pages
[    0.885412] 8192 pages RAM
[    0.888124] 0 pages HighMem/MovableOnly
[    0.891952] 3800 pages reserved
[    0.895073] Tasks state (memory values in pages):
[    0.899773] [  pid  ]   uid  tgid total_vm      rss pgtables_bytes swapents oom_score_adj name
[    0.908364] Out of memory and no killable processes...
[    0.913497] Kernel panic - not syncing: System is deadlocked on memory
[    0.920000] Rebooting in 1 seconds..

Try an older image. 32MB RAM is hardly enough anymore and might be too tight when you use a lot of it for a RAM disk, as you do with an initramfs

Unfortunately v21.02.0-rc1 is the first one that the supports my router, the Engenius ECB350.
Is there anything else I can try?

Sorry. I wasn't aware devices with such limitations were still added. Maybe you can build an even more stripped down image yourself? But I don't know how much you can save given that this is already a "tiny" target.

1 Like

Hmm interesting, I'm sure it must be possible to shrink it down! I'm not fluent in Linux myself, maybe the developers can compile something so the ECB350 is 'really' supported?

I tried a brand new USB-TTL adapter but still no reaction on my keypresses A local echo works though. This means I cannot interrupt the boot process except through providing an initramfs image on a tftp-server.
So my only option is still compiling a smaller initramfs image :frowning: