Skip to content

Latest commit

 

History

History
120 lines (90 loc) · 2.97 KB

板子.md

File metadata and controls

120 lines (90 loc) · 2.97 KB

板子

On node 0 totalpages: 196608

!!!!! error !!!!!
filename:mm/memory.c
line:284
function:alloc_node_mem_map


===========================================================================================

qumu 虚拟机

On node 0 totalpages: 196608
[Normal zone]: 3072 pages used for memmap
irq_init start
irq_init done

===========================================================================================

看上去貌似在bit_scan死了,查看bit_off是否为-1 是-1,确实是bit_scan哪里出错了

  1. bit_scan函数出错
  2. reserve_phy_pool.bits 那块地方不能访问
  3. reserve_phy_pool.bits 的那块内存已被污染
  4. reserve_phy_pool所在内存被污染

1: 1a因为count没有达到bit_cnt运行后退出 打印bit_idx、count

2:bit_scan返回了,如果是不能访问,那么应该立即出错,不会返回。

/**** 正确原因 *****/ 3:刚开始内存没申请多少,bit_byte不大,打印看看 bit_byte=0,如果被污染bit_byte不会这么小 打印btmp->bits[bit_idx/8]后发现很多1,应该是0才对,可能是没有初始化的原因 初始化后解决此问题

4:已经查看过参数paddr_start没错,被污染可能性不大 4a:打印出reserve_phy_pool的地址 reserve_phy_pool at 9000000090030018 4b:打印出btmp.bits、btmp.btmp_bytes_len查看与刚初始化时是否相同 是相同的,reserve_phy_pool没有被污染 paddr_start:9000000000006000 len:7ffa bits:9000000000002000

===========================================================================================

卡在 pci_init

[Normal zone]: 3072 pages used for memmap
irq_init start
irq_init done
pci_init start
!!!!!!!      exception message begin  !!!!!!!!
intr_table[4b]: unknown happened
!!!!!!!      exception message end    !!!!!!!!

0x4b是时钟中断 1.时钟中断还没初始化完就触发了 更改了timer_init的位置 新问题:

!!!!! error !!!!!
filename:drivers/timer.c
line:32
function:intr_timer_handler

1.函数栈位置有问题,压栈破坏 2.未初始化 thread_init中make_main_thread中赋值task_struct。 交换thread_init 与 到timer_init前面

再次卡在 pci_init

[Normal zone]: 3072 pages used for memmap
irq_init start
irq_init done
pci_init start

尝试定位,缩小范围... 在 执行

pci_write_config(PCI_CONFIG0_BASE,bus, device, function, reg, (int *)0xffffffff);

时卡住。

===========================================================================================

卡在pci_init处:

pci_init卡在pci_scan_buses()中,bus: 0, device: 13, function: 1时处理函数疑似有问题? 某些pci设备寄存器设置有问题。

===========================================================================================

读驱动设置 PORT_CLB 寄存器向其中写入失败。

Alt text

左:开发板 右:docker

原因:板子上端口0的命令引擎未正常开启,正常开启应该为0xc017

Alt text