使用CONFIG_FSL_BOOKE
(P1020 RDB) 2.6.31 我需要在原始的某个固定位置(无论在哪里)保留 1MB 的 RAM,这意味着 U-Boot 或 bootmem 分配器不会触及它,因此 RAM 内容可以保留热重启。需要注意的是,我无法将 U-boot 更改为使用CONFIG_PRAM
/ mem=
。
在 arc/powerpc 2.6.31 中编译可重定位内核不是一个选项。memmap
在 arch/powerpc/kernel/setup_32.c 中不受支持。
理想情况下,这个区域应该被保留而不是 L1 d-cached,这样它就可以用来存储来自中断上下文的 ramoops。
有没有办法_end
在 bootmem 之前移出到 0x600000 以创建一个没有人触及的洞?也就是说,欺骗内核认为_end
更远?
在 vmlinux.lds.SI 中尝试了类似的东西:
. = ALIGN(PAGE_SIZE);
_end = . ;
PROVIDE32 (end = .);
变成
. = ALIGN(PAGE_SIZE);
_start_unused_ram = .;
. = ALIGN(0x400000);
_end = . ;
PROVIDE32 (end = .);
但是,__bss_stop
0x400000 和 0x400000 之间的区域被覆盖。