[ 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)
我有一个带有 3.4.39 内核的arm sun8i 设备。可用内存只有 256MB,但板上的芯片大小为 2GB。启动了启用 highmem=y 的内核,但问题仍然存在。这里发生了什么? Lomem 的上限为 256MB,我什至可以分配 700MB 的块吗?我认为 lomem 应该包含 vmalloc 块。
答案1
谷歌搜索您在评论中提到的芯片,H5TQ2G63FFR 是一个 2 Gb(千兆位)芯片,因此它只有 256 MB(兆字节)内存。
H5TQ2G83FFR-xxC、H5TQ2G63FFR-xxC、[...] 是 2,147,483,648-少量CMOS 双倍数据速率 III (DDR3) 同步 DRAM,[...]
(引自这个PDF。 )
内存芯片以位为单位的情况并不罕见,因为您可以将八个内存芯片组合在一起制成 2 GB 的内存条。 (更多芯片可以形成更宽的数据路径,取决于系统/处理器应该有多宽。)