I'm passing the command line from u-boot. So should I try to set mem=0 and see what happens? On Tue, Oct 31, 2017 at 10:22 AM, David Daney <ddaney@xxxxxxxxxxxxxxxxxx> wrote: > On 10/31/2017 09:54 AM, Gabriel Kuri wrote: >> >> I'm working on getting Kernel 4.4.92 running on a board with a CN5010 >> processor and 64MB RAM. >> >> The issue I'm running in to is the kernel memory map seems to be >> messed up. It's only recognizing 46MB of RAM of the 64MB and only 21MB >> are usable of the 46MB it recognizes. Not sure what is wrong, but >> could someone give me some guidance on where I could troubleshoot? >> > > Look at the command line passed from u-boot. > > With some kernels, not all memory is allocated to the kernel unless you pass > "mem=0" on the command line. > > Since special Octeon code consumes the "mem=..." parameter, it isn't > available in userspace after the kernel is booted, so you must look at what > is done in u-boot. > > > >> Thanks >> >> >> Below is some relevant kernel output at boot ... >> >> >> ELF file is 64 bit >> Allocated memory for ELF segment: addr: 0x1100000, size 0x16189c8 >> Loading .text @ 0x81100000 (0x355290 bytes) >> Loading __ex_table @ 0x81455290 (0x57c0 bytes) >> Loading .rodata @ 0x8145b000 (0xca300 bytes) >> Loading .pci_fixup @ 0x81525300 (0x1db8 bytes) >> Loading __ksymtab @ 0x815270b8 (0xbdd0 bytes) >> Loading __ksymtab_gpl @ 0x81532e88 (0x6710 bytes) >> Loading __ksymtab_strings @ 0x81539598 (0x14cfd bytes) >> Loading __param @ 0x8154e298 (0x988 bytes) >> Clearing __modver @ 0x8154ec20 (0x3e0 bytes) >> Loading .data @ 0x8154f000 (0x3cad8 bytes) >> Loading .data..page_aligned @ 0x8158c000 (0x4000 bytes) >> Loading .init.text @ 0x81590000 (0x2660c bytes) >> Loading .init.data @ 0x815b6620 (0x11308 bytes) >> Loading .data..percpu @ 0x815c8000 (0x3eb0 bytes) >> Clearing .bss @ 0x816d0000 (0x10489c8 bytes) >> ## Loading OS kernel with entry point: 0x81107920 ... >> Bootloader: Done loading app on coremask: 0x1 >> [ 0.000000] Linux version 4.4.92 (gkuri@galileo) (gcc version 5.4.0 >> (LEDE GCC 5.4.0 r3560-79f57e422d) ) #0 SMP Tue7 >> [ 0.000000] CVMSEG size: 2 cache lines (256 bytes) >> [ 0.000000] bootconsole [early0] enabled >> [ 0.000000] CPU0 revision is: 000d0601 (Cavium Octeon+) >> [ 0.000000] Checking for the multiply/shift bug... no. >> [ 0.000000] Checking for the daddiu bug... no. >> [ 0.000000] Determined physical RAM map: >> [ 0.000000] memory: 0000000001800000 @ 0000000002800000 (usable) >> [ 0.000000] memory: 00000000016189c8 @ 0000000001100000 (usable) >> [ 0.000000] Wasting 243712 bytes for tracking 4352 unused pages >> [ 0.000000] Using internal Device Tree. >> [ 0.000000] software IO TLB [mem 0x0280b000-0x0284b000] (0MB) >> mapped at [800000000280b000-800000000284afff] >> [ 0.000000] Zone ranges: >> [ 0.000000] DMA32 [mem 0x0000000001100000-0x00000000efffffff] >> [ 0.000000] Normal empty >> [ 0.000000] Movable zone start for each node >> [ 0.000000] Early memory node ranges >> [ 0.000000] node 0: [mem 0x0000000001100000-0x0000000002717fff] >> [ 0.000000] node 0: [mem 0x0000000002800000-0x0000000003ffffff] >> [ 0.000000] Initmem setup node 0 [mem >> 0x0000000001100000-0x0000000003ffffff] >> [ 0.000000] Primary instruction cache 32kB, virtually tagged, 4 >> way, 64 sets, linesize 128 bytes. >> [ 0.000000] Primary data cache 16kB, 64-way, 2 sets, linesize 128 >> bytes. >> [ 0.000000] PERCPU: Embedded 13 pages/cpu @8000000002858000 s16048 >> r8192 d29008 u53248 >> [ 0.000000] Built 1 zonelists in Zone order, mobility grouping on. >> Total pages: 11635 >> [ 0.000000] Kernel command line: bootoctlinux bed00000 >> console=ttyS0,9600 bootver=APBoot 1.0.8.3/20343 >> [ 0.000000] PID hash table entries: 256 (order: -1, 2048 bytes) >> [ 0.000000] Dentry cache hash table entries: 8192 (order: 4, 65536 >> bytes) >> [ 0.000000] Inode-cache hash table entries: 4096 (order: 3, 32768 >> bytes) >> [ 0.000000] Memory: 20468K/47200K available (3411K kernel code, >> 261K rwdata, 976K rodata, 1280K init, 16674K bss, ) >> [ 0.000000] SLUB: HWalign=128, Order=0-3, MinObjects=0, CPUs=1, Nodes=1 >> [ 0.000000] Hierarchical RCU implementation. >> [ 0.000000] CONFIG_RCU_FANOUT set to non-default value of 32 >> [ 0.000000] RCU restricting CPUs from NR_CPUS=16 to nr_cpu_ids=1. >> [ 0.000000] RCU: Adjusting geometry for rcu_fanout_leaf=16, >> nr_cpu_ids=1 >> >> >> >> Some relevant output once booted ... >> >> # cat /proc/iomem >> 01100000-027189c7 : System RAM >> 01100000-0145528f : Kernel code >> 01455290-0158ffff : Kernel data >> 02800000-03ffffff : System RAM >> 1f400000-1fbfffff : 1f400000.nor >> 1070000000800-10700000008ff : /soc@0/gpio-controller@1070000000800 >> 1180000000800-118000000083f : serial >> 1180000000c00-1180000000c3f : serial >> 1180000001000-11800000011ff : /soc@0/i2c@1180000001000 >> 1180000001800-118000000183f : /soc@0/mdio@1180000001800 >> 1180040000000-118004000000f : octeon_rng >> 11b00f0000000-11b0130000000 : Octeon PCI MEM >> 11b00f0000000-11b00f000ffff : 0000:00:03.0 >> 11b00f0010000-11b00f001ffff : 0000:00:04.0 >> 1400000000000-1400000000007 : octeon_rng >> >> >> # free -m >> total used free shared buffers cached >> Mem: 21748 19616 2132 32 1012 2196 >> -/+ buffers/cache: 16408 5340 >> Swap: 0 0 0 >> >> # cat /proc/cpuinfo >> system type : CN3010_EVB_HS5 (CN5010p1.1-500-SCP) >> machine : Unknown >> processor : 0 >> cpu model : Cavium Octeon+ V0.1 >> BogoMIPS : 1000.00 >> wait instruction : yes >> microsecond timers : yes >> tlb_entries : 64 >> extra interrupt vector : yes >> hardware watchpoint : yes, count: 2, address/irw mask: [0x0ffc, >> 0x0ffb] >> isa : mips1 mips2 mips3 mips4 mips5 mips64r2 >> ASEs implemented : >> shadow register sets : 1 >> kscratch registers : 0 >> package : 0 >> core : 0 >> VCED exceptions : not available >> VCEI exceptions : not available >> >> >> # cat /proc/meminfo >> MemTotal: 21748 kB >> MemFree: 2148 kB >> MemAvailable: 3256 kB >> Buffers: 1012 kB >> Cached: 2196 kB >> SwapCached: 0 kB >> Active: 3168 kB >> Inactive: 656 kB >> Active(anon): 644 kB >> Inactive(anon): 4 kB >> Active(file): 2524 kB >> Inactive(file): 652 kB >> Unevictable: 0 kB >> Mlocked: 0 kB >> SwapTotal: 0 kB >> SwapFree: 0 kB >> Dirty: 0 kB >> Writeback: 0 kB >> AnonPages: 628 kB >> Mapped: 1320 kB >> Shmem: 32 kB >> Slab: 8416 kB >> SReclaimable: 984 kB >> SUnreclaim: 7432 kB >> KernelStack: 720 kB >> PageTables: 88 kB >> NFS_Unstable: 0 kB >> Bounce: 0 kB >> WritebackTmp: 0 kB >> CommitLimit: 10872 kB >> Committed_AS: 1620 kB >> VmallocTotal: 1069547512 kB >> VmallocUsed: 0 kB >> VmallocChunk: 0 kB >> >> >