BUG: Bad page state in process swapper pfn:801bd while booting linux (5.15.68, arm64)
0
votes
0
answers
9
views
I'm tyring to boot linux on an SoC (arm64 based) and seeing trap in early stage.
Here is the boot message.
Booting Linux on physical CPU 0x0000000002 [0x411fd401]
Linux version 5.15.68 (etri@AB21-T07) (aarch64-none-elf-gcc (GNU Toolchain for the Arm Architecture 11.2-2022.02 (arm-11.14)) 11.2.1 20220111, GNU ld (GNU Toolchain for the Arm Architecture 11.2-2022.02 (arm-11.14)) 2.37.20220122) #106 SMP PREEMPT Sun Jun 29 20:47:09 KST 2025
Machine model: ETRI ab21m
earlycon: ns16550a0 at MMIO 0x0000000010220020 (options '115200n8')
printk: bootconsole [ns16550a0] enabled
Reserved memory: created CMA memory pool at 0x00000000f0000000, size 256 MiB
OF: reserved mem: initialized node linux,cma, compatible id shared-dma-pool
Reserved memory: created DMA memory pool at 0x00000000e0000000, size 128 MiB
OF: reserved mem: initialized node axpursvd@e0000000, compatible id shared-dma-pool
Zone ranges:
DMA [mem 0x0000000080000000-0x00000000ffffffff]
DMA32 empty
Normal empty
Movable zone start for each node
Early memory node ranges
node 0: [mem 0x0000000080000000-0x00000000dfffffff]
node 0: [mem 0x00000000e0000000-0x00000000e7ffffff]
node 0: [mem 0x00000000e8000000-0x00000000ffffffff]
Initmem setup node 0 [mem 0x0000000080000000-0x00000000ffffffff]
percpu: Embedded 23 pages/cpu s57312 r8192 d28704 u94208
Detected PIPT I-cache on CPU0
CPU features: detected: GIC system register CPU interface
CPU features: detected: Virtualization Host Extensions
CPU features: detected: Hardware dirty bit management
CPU features: detected: Spectre-v4
CPU features: detected: Spectre-BHB
alternatives: patching kernel code
Built 1 zonelists, mobility grouping on. Total pages: 517120
Kernel command line: earlycon root=/dev/ram init=/init nokaslr, cpuidle.off=1
Unknown kernel command line parameters "nokaslr,", will be passed to user space.
Dentry cache hash table entries: 262144 (order: 9, 2097152 bytes, linear)
Inode-cache hash table entries: 131072 (order: 8, 1048576 bytes, linear)
entering mm_init..
mem auto-init: stack:off, heap alloc:off, heap free:off
BUG: Bad page state in process swapper pfn:801bd
------------[ cut here ]------------
kernel BUG at arch/arm64/kernel/traps.c:498!
Internal error: Oops - BUG: 0 [#1] PREEMPT SMP
Modules linked in:
CPU: 0 PID: 0 Comm: swapper Not tainted 5.15.68 #106
Hardware name: ETRI ab21m (DT)
pstate: 000000c9 (nzcv daIF -PAN -UAO -TCO -DIT -SSBS BTYPE=--)
pc : do_undefinstr+0x180/0x1a4
lr : do_undefinstr+0x194/0x1a4
sp : ffffffc008693ad0
x29: ffffffc008693ad0 x28: ffffffc00869a100 x27: 000000000030f231
x26: fffffffe00007000 x25: 0000000080000000 x24: 0000000000000008
x23: 00000000800000c9 x22: ffffffc00813c810 x21: ffffffc008693c90
x20: 00000000ffffffff x19: ffffffc008693b40 x18: ffffffffffffffff
x17: 2c73657479622036 x16: 373538343031202c x15: ffffffc008701fcd
x14: 0000000000000000 x13: ffffffc0086a78f8 x12: 0000000000000072
x11: 0000000000000026 x10: ffffffc0086a78f8 x9 : ffffffc0086a78f8
x8 : 00000000ffffff7f x7 : ffffffc0086aa4f8 x6 : ffffffc0086aa4f8
x5 : ffffffc00869bca8 x4 : fffffffffefffffe x3 : 0000000000000000
x2 : 0000000000000002 x1 : ffffffc00869a100 x0 : 00000000800000c9
Call trace:
do_undefinstr+0x180/0x1a4
el1_undef+0x28/0x44
el1h_64_sync_handler+0x80/0xc0
el1h_64_sync+0x74/0x78
__dump_page+0x0/0x410
bad_page+0xe8/0x120
__free_pages_ok+0x418/0x460
__free_pages_core+0xa8/0xc0
memblock_free_pages+0x10/0x18
memblock_free_all+0x1ac/0x258
mem_init+0x70/0x88
mm_init+0x2c/0x78
start_kernel+0x260/0x64c
__primary_switched+0xa0/0xac
Code: b94037f4 a9025bf5 17ffffca a9025bf5 (d4210000)
------------[ cut here ]------------
kernel BUG at arch/arm64/kernel/traps.c:498!
I think my device tree have something wrong. This is the line related to memory, and I don't know what is wrong. Can any one notice anything suspicous?
memory@80000000 {
device_type = "memory";
/*reg = , trusted ram */
/*, non-trusted ram */
reg = ;
};
reserved-memory {
#address-cells = ;
#size-cells = ;
ranges;
axpu_reserved_mem: axpursvd@e0000000 {
compatible = "shared-dma-pool";
no-map;
reg = ;
};
linux,cma {
compatible = "shared-dma-pool";
reusable;
size = ;
alloc-ranges = ;
linux,cma-default;
};
};
Asked by Chan Kim
(459 rep)
Jun 30, 2025, 03:13 AM