我的 SMDK2416(适用于 s3c2416)内核在 64MRAM 上工作,但在 128M 上崩溃

我的 SMDK2416(适用于 s3c2416)内核在 64MRAM 上工作,但在 128M 上崩溃

我目前正在使用 smdk2416(s3c2416) 开发嵌入式arm linux

内核工作在 64MRAM 上。最近,我需要将RAM从64M增加到128MB,其中bank0上有64MB,bank1上有64MB。

bank0's physical address is at 0x30000000  
bank1's physical address is at 0x38000000  

我已经在U-Boot中成功将bank0从0x30000000映射到0xc0000000,将bank1从0x38000000映射到0xc4000000。

我在 U-Boot 下尝试过对这些地址(银行的物理地址和虚拟地址)进行内存测试。

当我使用 bootarg 内存标签启动 Linux 内核mem=128M,并运行一个使用超过 64MB 内存的简单程序时。然后系统崩溃并显示“内核空指针取消引用”消息。

我发现CONFIG_DISCONTIGMEM在 中定义了一个src/include/asm-arm/memory.h,但是当我在 中查看“内核功能/内存模型”时make menuconfig,只有“平坦内存”选项。

我应该如何以及在哪里修改配置/代码以使 Linux 内核在完整的 128MB 上运行?

相关内容