(P1020 RDB) 2.6.31ではCONFIG_FSL_BOOKE、RAM の内容が存続するように、U-Boot または bootmem アロケーターによって触れられない、手付かずの固定位置 (場所は関係ありません) に 1MB の RAM を予約する必要があります。ウォームリブート。CONFIG_PRAM/を使用するように U-boot を変更できないことに注意してくださいmem=。
再配置可能なカーネルのコンパイルは、arc/powerpc 2.6.31 ではオプションではありません。memmaparch/powerpc/kernel/setup_32.c ではサポートされていません。
理想的には、この領域は、割り込みコンテキストからの ramoops を格納するために使用できるように、L1 d キャッシュではなく予約する必要があります。
_endbootmem の前に 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 の領域は上書きされました。