I have a circuit board based on ARM926EJS, it was working fine with 128MB DDR2. I just changed to a 256MB chip, the kernel boots ok if I only use the lower 128MB. but will hang right after "booting the kernel" if I try to use more, say 130MB. I can r/w to the upper 128MB in uboot without any problem though. I am trying to locate where the kernel hangs. I turned on DEBUG in head.S, which didn't reveal anything usual. How can I get more debug info?
如果u-boot里可以访问high 128M,查kernel tree 基本肯定是local bus访问无效地址造成kernel崩溃,看mmu相关的mmap register,很 久没摸arm,忘了具体内容,查manual
the use
【在 b**r 的大作中提到】 : I have a circuit board based on ARM926EJS, it was working fine with 128MB : DDR2. I just changed to a 256MB chip, the kernel boots ok if I only use the : lower 128MB. but will hang right after "booting the kernel" if I try to use : more, say 130MB. : I can r/w to the upper 128MB in uboot without any problem though. : I am trying to locate where the kernel hangs. I turned on DEBUG in head.S, : which didn't reveal anything usual. How can I get more debug info?
Thanks for the replies. I've enabled CONFIG_DEBUG_LL, inserted some printascii() into codes. I narrowed it down to bootmem_init(). Trying to understand the code right now.