openhwgroup / cva6-sdk

CVA6 SDK containing RISC-V tools and Buildroot
60 stars 65 forks source link

Booting Linux on Openpiton Ariane #93

Open jimaandro opened 4 months ago

jimaandro commented 4 months ago

Hello, I am trying to boot Linux on an Openpiton system with 1 core + only 128MB of RAM. I use the openpiton branch which has the bbl.bin. This one copies the device tree from bootROM, which is configured to have only 128MB of RAM.

So booting starts, but after a while I get:

[   14.527671] piton_sd:v1.0 Apr 26, 2019
[   14.527671]
[   16.914508] swapper/0: page allocation failure: order:0, mode:0x4dc0(GFP_KERNEL|__GFP_RETRY_MAYFAIL|__GFP_ZERO), nodemask=(null)
[   16.926844] CPU: 0 PID: 1 Comm: swapper/0 Not tainted 5.1.0-rc7 #2
[   16.933015] Call Trace:
[   16.935603] [<ffffffe000693fd0>] walk_stackframe+0x0/0xa0
[   16.941027] [<ffffffe0006941cc>] show_stack+0x2a/0x34
[   16.946186] [<ffffffe000a1a2fa>] dump_stack+0x62/0x7c
[   16.951293] [<ffffffe0006f95d0>] warn_alloc+0x9a/0x10c
[   16.956467] [<ffffffe0006f9ea8>] __alloc_pages_nodemask+0x7f8/0x8da
[   16.962746] [<ffffffe0006f9f9c>] __get_free_pages+0x12/0x50
[   16.968487] [<ffffffe000711020>] __pte_alloc_kernel+0x1a/0x8c
[   16.974370] [<ffffffe000a1e3a8>] ioremap_page_range+0x1a4/0x1dc
[   16.980360] [<ffffffe000695bfe>] ioremap+0x5a/0x7a
[   16.985221] [<ffffffe00089e82a>] piton_sd_init+0xb2/0x254
[   16.990747] [<ffffffe000691fa0>] do_one_initcall+0x48/0x128
[   16.996373] [<ffffffe000000b56>] kernel_init_freeable+0x12e/0x1c6
[   17.002474] [<ffffffe000a2d8a6>] kernel_init+0x12/0xf0
[   17.007683] [<ffffffe000692f74>] ret_from_exception+0x0/0xc
[   17.014415] Mem-Info:
[   17.016978] active_anon:447 inactive_anon:3243 isolated_anon:0
[   17.016978]  active_file:0 inactive_file:0 isolated_file:0
[   17.016978]  unevictable:0 dirty:0 writeback:0 unstable:0
[   17.016978]  slab_reclaimable:99 slab_unreclaimable:695
[   17.016978]  mapped:0 shmem:3699 pagetables:0 bounce:0
[   17.016978]  free:220 free_pcp:0 free_cma:0
[   17.048808] Node 0 active_anon:1788kB inactive_anon:12972kB active_file:0kB inactive_file:0kB unevictable:0kB isolated(anon):0kB isolated(file):0kB mapped:0kB dirty:0kB writeback:0kB shmes
[   17.071761] DMA32 free:880kB min:880kB low:1100kB high:1320kB active_anon:1788kB inactive_anon:12972kB active_file:0kB inactive_file:0kB unevictable:0kB writepending:0kB present:129024kB B
[   17.098416] lowmem_reserve[]: 0 0 0
[   17.102176] DMA32: 0*4kB 0*8kB 1*16kB (U) 1*32kB (U) 1*64kB (U) 0*128kB 1*256kB (U) 1*512kB (U) 0*1024kB 0*2048kB 0*4096kB = 880kB
[   17.114706] 3699 total pagecache pages
[   17.118448] 0 pages in swap cache
[   17.122002] Swap cache stats: add 0, delete 0, find 0/0
[   17.127180] Free swap  = 0kB
[   17.130288] Total swap = 0kB
[   17.133155] 32256 pages RAM
[   17.135902] 0 pages HighMem/MovableOnly
[   17.139980] 20127 pages reserved
[   20.081576] ioremap returned NULL
[   20.085226] swapper/0 invoked oom-killer: gfp_mask=0xcc0(GFP_KERNEL), order=0, oom_score_adj=0
[   20.098057] CPU: 0 PID: 1 Comm: swapper/0 Not tainted 5.1.0-rc7 #2
[   20.104209] Call Trace:
[   20.106807] [<ffffffe000693fd0>] walk_stackframe+0x0/0xa0
[   20.112252] [<ffffffe0006941cc>] show_stack+0x2a/0x34
[   20.117413] [<ffffffe000a1a2fa>] dump_stack+0x62/0x7c
[   20.122672] [<ffffffe0006f608a>] dump_header+0x54/0x1f6
[   20.127967] [<ffffffe0006f5f98>] out_of_memory+0x2ac/0x2f0
[   20.133499] [<ffffffe0006f9c2a>] __alloc_pages_nodemask+0x57a/0x8da
[   20.139917] [<ffffffe0007273c8>] new_slab+0x2c4/0x2e6
[   20.145076] [<ffffffe000728e8a>] ___slab_alloc.constprop.35+0x1b2/0x250
[   20.151735] [<ffffffe000729250>] kmem_cache_alloc+0x94/0xf8
[   20.157391] [<ffffffe000891a82>] bus_add_driver+0x44/0x194
[   20.162946] [<ffffffe000892db6>] driver_register+0x3a/0xd0
[   20.168650] [<ffffffe00086fa82>] register_virtio_driver+0x1c/0x2a
[   20.174928] [<ffffffe00000fb12>] init+0x5a/0x96
[   20.179619] [<ffffffe000691fa0>] do_one_initcall+0x48/0x128
[   20.185254] [<ffffffe000000b56>] kernel_init_freeable+0x12e/0x1c6
[   20.191363] [<ffffffe000a2d8a6>] kernel_init+0x12/0xf0
[   20.196572] [<ffffffe000692f74>] ret_from_exception+0x0/0xc
[   20.203392] Mem-Info:
[   20.205971] active_anon:447 inactive_anon:3243 isolated_anon:0
[   20.205971]  active_file:0 inactive_file:0 isolated_file:0
[   20.205971]  unevictable:0 dirty:0 writeback:0 unstable:0
[   20.205971]  slab_reclaimable:99 slab_unreclaimable:695
[   20.205971]  mapped:0 shmem:3699 pagetables:0 bounce:0
[   20.205971]  free:220 free_pcp:0 free_cma:0
[   20.237827] Node 0 active_anon:1788kB inactive_anon:12972kB active_file:0kB inactive_file:0kB unevictable:0kB isolated(anon):0kB isolated(file):0kB mapped:0kB dirty:0kB writeback:0kB shmes
[   20.260664] DMA32 free:880kB min:880kB low:1100kB high:1320kB active_anon:1788kB inactive_anon:12972kB active_file:0kB inactive_file:0kB unevictable:0kB writepending:0kB present:129024kB B
[   20.287340] lowmem_reserve[]: 0 0 0
[   20.291168] DMA32: 0*4kB 0*8kB 1*16kB (U) 1*32kB (U) 1*64kB (U) 0*128kB 1*256kB (U) 1*512kB (U) 0*1024kB 0*2048kB 0*4096kB = 880kB
[   20.303700] 3699 total pagecache pages
[   20.307444] 0 pages in swap cache
[   20.311006] Swap cache stats: add 0, delete 0, find 0/0
[   20.316199] Free swap  = 0kB
[   20.319308] Total swap = 0kB
[   20.322174] 32256 pages RAM
[   20.324924] 0 pages HighMem/MovableOnly
[   20.328994] 20127 pages reserved
[   20.332201] Tasks state (memory values in pages):
[   20.336870] [  pid  ]   uid  tgid total_vm      rss pgtables_bytes swapents oom_score_adj name
[   20.345808] Out of memory and no killable processes...
[   20.351264] Kernel panic - not syncing: System is deadlocked on memory
[   20.357865] CPU: 0 PID: 1 Comm: swapper/0 Not tainted 5.1.0-rc7 #2
[   20.363996] Call Trace:
[   20.366567] [<ffffffe000693fd0>] walk_stackframe+0x0/0xa0
[   20.372004] [<ffffffe0006941cc>] show_stack+0x2a/0x34
[   20.377150] [<ffffffe000a1a2fa>] dump_stack+0x62/0x7c
[   20.382309] [<ffffffe000698472>] panic+0xe8/0x226
[   20.387170] [<ffffffe0006f5fbc>] out_of_memory+0x2d0/0x2f0
[   20.392711] [<ffffffe0006f9c2a>] __alloc_pages_nodemask+0x57a/0x8da
[   20.399107] [<ffffffe0007273c8>] new_slab+0x2c4/0x2e6
[   20.404245] [<ffffffe000728e8a>] ___slab_alloc.constprop.35+0x1b2/0x250
[   20.410899] [<ffffffe000729250>] kmem_cache_alloc+0x94/0xf8
[   20.416552] [<ffffffe000891a82>] bus_add_driver+0x44/0x194
[   20.422106] [<ffffffe000892db6>] driver_register+0x3a/0xd0
[   20.427774] [<ffffffe00086fa82>] register_virtio_driver+0x1c/0x2a
[   20.434024] [<ffffffe00000fb12>] init+0x5a/0x96
[   20.438691] [<ffffffe000691fa0>] do_one_initcall+0x48/0x128
[   20.444328] [<ffffffe000000b56>] kernel_init_freeable+0x12e/0x1c6
[   20.450449] [<ffffffe000a2d8a6>] kernel_init+0x12/0xf0
[   20.455658] [<ffffffe000692f74>] ret_from_exception+0x0/0xc
[   20.461364] ---[ end Kernel panic - not syncing: System is deadlocked on memory ]---

I have found that maybe changing the min_free_kbytes , would fix this issue, as the problem is that there is not enough space in RAM for allocation. How can I config this variable?