Meu kernel SMDK2416 (para s3c2416) funciona em 64MRAM, mas caiu em 128M

3

Atualmente estou trabalhando em braço Linux embutido com smdk2416 (s3c2416)

O kernel está trabalhando no 64MRAM. Recentemente, eu preciso aumentar a memória RAM de 64M para 128MB com 64MB no bank0 e 64MB no bank1.

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

Eu mapeei com sucesso bank0 de 0x30000000 para 0xc0000000 e bank1 de 0x38000000 para 0xc4000000 no U-Boot.

Eu tentei um teste de memória nesses endereços (o addr físico e virtual de ambos os bancos sob o U-Boot.

Quando eu estou inicializando o kernel do linux com a tag de memória bootarg mem=128M , e executo um programa simples que usa memória além de 64MB. Em seguida, o sistema travou com a mensagem "dereference do ponteiro NULL do kernel".

Descobri que existe um CONFIG_DISCONTIGMEM definido em src/include/asm-arm/memory.h , mas quando olho para o "Modelo de recursos / memória do kernel" em make menuconfig , existe apenas a opção "Memória simples".

Como e onde devo modificar a configuração / código para fazer o kernel do Linux funcionar em 128 MB completos?

    
por bigfootya_088 31.01.2013 / 06:44

0 respostas