Linux的启动参数中,mem用来指定Linux系统使用的物理内存大小,mem一定要设置为1M对齐吗?
本文是原「蜗窝讨论区」的历史存档(2016-06-24),来自版块「Linux kernel技术问答」,共 4 帖。讨论区已停止服务,此处仅供查阅。
我现在使用的socfpga的单板,设置mem时必须1M对齐,否则内核就起不来。请问这个是和硬件架构有关,还是和内核代码有关?
anchen 写道: 我现在使用的socfpga的单板,设置mem时必须1M对齐,否则内核就起不来。请问这个是和硬件架构有关,还是和内核代码有关?
是ARM64吗? 只有在ARM64中,kernel RAM的虚拟地址才需要1M对齐,如果此时物理地址不是1M对齐,有可能出问题?
[== C++ ==]
/* arch/arm64/kernel/head.S */
#if (KERNEL_RAM_VADDR & 0xfffff) != 0x80000
#error KERNEL_RAM_VADDR must start at 0xXXX80000
#endif
应该不是。 里面是两个Cortex A9。和DTS的设置有关吗?
在ARM32也是需要1M对齐的 因为前期页表就是按照1M来做的虚实地址映射
