Unable to handle kernel paging request for data at address 0x00000000

这篇博客讨论了一个Linux内核启动时遇到的问题,即在处理内存请求时遇到0x00000000地址的页错误。内容涉及内核版本、设备树解析、PCI内存空间设置、初始化RAMdisk和设备树 blob加载等。在尝试使用调试内核和分析调用踪迹后,作者指出问题可能出现在设备树或内存管理方面,但没有找到确切原因。讨论中提到了内存分配、u-boot配置以及可能的硬件问题,包括内存大小限制和BAT寄存器设置。
摘要由CSDN通过智能技术生成
  1. Linux version 2.6.26.3 (gr1x@mars) (gcc version 4.2.2) #1 Mon Sep 8 23:39:50 CS8
  2. console [udbg0] enabled
  3. setup_arch: bootmem
  4. arch: exit
  5. Zone PFN ranges:
  6.   DMA             0 ->   131072
  7.   Normal     131072 ->   131072
  8. Movable zone start PFN for each node
  9. early_node_map[1] active PFN ranges
  10.     0:        0 ->   131072
  11. Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 130048
  12. Kernel command line:
  13. UIC3 (32 IRQ sources) at DCR 0x200
  14. UIC0 (32 IRQ sources) at DCR 0xc0
  15. UIC1 (32 IRQ sources) at DCR 0xd0
  16. UIC2 (32 IRQ sources) at DCR 0x210
  17. Unable to handle kernel paging request for data at address 0x00000000
  18. Faulting instruction address: 0xc0010a2c
  19. Oops: Kernel access of bad area, sig: 11 [#1]
  20. Galaxy
  21. Modules linked in:
  22. NIP: c0010a2c LR: c01418cc CTR: c0013aec
  23. REGS: c0265e60 TRAP: 0300   Not tainted  (2.6.26.3)
  24. MSR: 00021000 <ME>  CR: 84e22448  XER: 20000000
  25. DEAR: 00000000, ESR: 00000000
  26. TASK = c024d4a0[0] 'swapper' THREAD: c0264000
  27. GPR00: c014190c c0265f10 c024d4a0 00000000 c01f6103 ffffffff 00000000 00000090
  28. GPR08: 00000000 00000069 c025be8c c07faafb 42e22484 4a1060c1 1ffe5f00 00000000
  29. GPR16: 1ffdb7e4 1ffe0178 00000000 00000000 00000000 00000000 1ffe111c 00000006
  30. GPR24: 00000000 00000000 c00161f4 c01f6220 dfffe434 c0265f48 c01f6104 dffff048
  31. NIP [c0010a2c] strcmp+0x8/0x24
  32. LR [c01418cc] of_find_property+0x4c/0x7c
  33. Call Trace:
  34. [c0265f10] [c0047784] set_irq_type+0x60/0x98 (unreliable)
  35. [c0265f30] [c014190c] of_get_property+0x10/0x34
  36. [c0265f40] [c0141ce8] of_device_is_compatible+0x24/0xa0
  37. [c0265f70] [c0141f54] of_find_compatible_node+0x78/0xc4
  38. [c0265f90] [c023303c] uic_init_tree+0x140/0x17c
  39. [c0265fb0] [c022e7e0] init_IRQ+0x24/0x34
  40. [c0265fc0] [c02288f8] start_kernel+0x174/0x2a8
  41. [c0265ff0] [c00001e8] skpinv+0x190/0x1cc
  42. Instruction dump:
  43. 3884ffff 8c050001 2c000000 4082fff8 38a5ffff 8c040001 2c000000 9c050001
  44. 4082fff4 4e800020 38a3ffff 3884ffff <8c650001> 2c830000 8c040001 7c601851
  45. ---[ end trace 31fd0ba7d8756001 ]---
  46. Kernel panic - not syncing: Attempted to kill the idle task!
  47. Rebooting in 180 seconds..
昨天的问题,邮件列表里曾有人问过相同的问题,摘录一下: http://ozlabs.org/pipermail/linuxppc-dev/2008-April/054087.html,
crash位置是 "console_init()" ...(bdi2000,羡慕)
  1. after building a debug kernel and attaching the bdi2000 it looks like  
  2. the crash occurs during "console_init()" ...
和我一样,最开始也认为dts文件有问题
  1. > Kernel starts and crashes with "unable to handle kernel paging request @  
  2. > 00000000".
  3. >
  4. > After turning debug on 
Unable to handle kernel paging request at virtual address 0000000200005401 [ 21.757454] Mem abort info: [ 21.760240] ESR = 0x96000004 [ 21.763286] Exception class = DABT (current EL), IL = 32 bits [ 21.769199] SET = 0, FnV = 0 [ 21.772245] EA = 0, S1PTW = 0 [ 21.775378] Data abort info: [ 21.778250] ISV = 0, ISS = 0x00000004 [ 21.782078] CM = 0, WnR = 0 [ 21.785038] [0000000200005401] user address but active_mm is swapper [ 21.791385] Internal error: Oops: 96000004 [#2] PREEMPT SMP [ 21.796951] Modules linked in: [ 21.800002] CPU: 0 PID: 1 Comm: swapper/0 Tainted: G S D 4.19.0-4.19.9-x100-0707+ #30 [ 21.808956] Hardware name: E2000Q TESTC DDR4 Board (DT) [ 21.814175] pstate: 20000085 (nzCv daIf -PAN -UAO) [ 21.818963] pc : __kmalloc+0xe8/0x248 [ 21.822618] lr : __kmalloc+0x48/0x248 [ 21.826272] sp : ffff000008003c50 [ 21.829580] x29: ffff000008003c50 x28: 0000000000000001 [ 21.834888] x27: ffff000009911158 x26: ffff000009c267cb [ 21.840196] x25: 0000000000000000 x24: 0000000000000001 [ 21.845504] x23: 0000000000016e00 x22: ffff000008733b0c [ 21.850812] x21: 0000000000480020 x20: 0000000200005401 [ 21.856120] x19: ffff8020ff803800 x18: ffffffffffffffff [ 21.861429] x17: 0000000000001800 x16: 0000000000000000 [ 21.866737] x15: ffff000009b696c8 x14: 0720072007200720 [ 21.872044] x13: 0720072007200720 x12: 0720072007200720 [ 21.877353] x11: 0720072007200720 x10: 0000000000000040 [ 21.882660] x9 : ffff000009b84f20 x8 : ffff8020ff400248 [ 21.887968] x7 : ffff8020ff4002b8 x6 : 0000000000000048 [ 21.893276] x5 : 00008020f6425000 x4 : 0000000000000000 [ 21.898584] x3 : ffff7e0083d67e00 x2 : 00008020f6425000 [ 21.903892] x1 : 0000000000000000 x0 : 0000000000000001 [ 21.909201] Process swapper/0 (pid: 1, stack limit = 0x(____ptrval____)) [ 21.915895] Call trace: [ 21.918335] __kmalloc+0xe8/0x248 [ 21.921646] __tty_buffer_request_room+0x7c/0x148 [ 21.926344] __tty_insert_flip_char+0x28/0x80 [ 21.930696] uart_insert_char+0xd4/0x140 [ 21.934613] pl011_fifo_to_tty+0x88/0x1b8 [ 21.938616] pl011_int+0x340/0x488分析一下这段内核报错
07-12
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值