
[ 0.000000] Memory: 256MB = 256MB total
[ 0.000000] Memory: 171736k/171736k available, 90408k reserved, 0K highmem
[ 0.000000] Virtual kernel memory layout:
[ 0.000000] vector : 0xffff0000 - 0xffff1000 ( 4 kB)
[ 0.000000] fixmap : 0xfff00000 - 0xfffe0000 ( 896 kB)
[ 0.000000] vmalloc : 0xd0800000 - 0xff000000 ( 744 MB)
[ 0.000000] lowmem : 0xc0000000 - 0xd0000000 ( 256 MB)
[ 0.000000] pkmap : 0xbfe00000 - 0xc0000000 ( 2 MB)
[ 0.000000] modules : 0xbf000000 - 0xbfe00000 ( 14 MB)
[ 0.000000] .text : 0xc0008000 - 0xc048d000 (4628 kB)
[ 0.000000] .init : 0xc048d000 - 0xc04b2000 ( 148 kB)
[ 0.000000] .data : 0xc04b2000 - 0xc04f7400 ( 277 kB)
[ 0.000000] .bss : 0xc04f7424 - 0xc0593f68 ( 627 kB)
Eu tenho um dispositivo arm sun8i com o kernel 3.4.39. A memória disponível é de apenas 256 MB, mas o chip da placa tem 2 GB. Inicializei um kernel com highmem=y habilitado, mas o problema permanece. O que está acontecendo aqui? Lomem tem um limite de 256 MB, posso alocar o bloco de 700 MB? Achei que lomem deveria incluir o bloco vmalloc.
Responder1
Pesquisando no Google o chip que você mencionou nos comentários, o H5TQ2G63FFR é um chip de 2 Gb (gigabit), portanto possui apenas 256 MB (megabytes) de memória.
O H5TQ2G83FFR-xxC, H5TQ2G63FFR-xxC,[...] são 2.147.483.648-pedaçoCMOS Double Data Rate III (DDR3) DRAM síncrona,[...]
(Citação doeste PDF. )
Não é incomum que os chips de memória sejam especificados em bits, já que você poderia juntar oito deles para formar um cartão de memória de 2 GB. (Mais chips podem criar um caminho de dados mais amplo, depende da largura do sistema/processador.)