Code Monkey home page Code Monkey logo

Comments (13)

Dolu1990 avatar Dolu1990 commented on August 17, 2024 1

Another 128MB :
https://github.com/enjoy-digital/linux-on-litex-vexriscv/blob/7ab77c974f8af07dfa13531e87d65d5f9cd5834d/buildroot/board/litex_vexriscv/litex_vexriscv.dts#L63

from linux-on-litex-vexriscv.

Dolu1990 avatar Dolu1990 commented on August 17, 2024

Later i can give a try with that linux images on the VexRiscv verilator simulation.

from linux-on-litex-vexriscv.

enjoy-digital avatar enjoy-digital commented on August 17, 2024

@Dolu1990 thanks, i haven't investigated yet, the emulator code catches something since it stops the simulation.

from linux-on-litex-vexriscv.

daveshah1 avatar daveshah1 commented on August 17, 2024

Make sure the memory size is set correctly in https://github.com/enjoy-digital/linux-on-litex-vexriscv/blob/master/buildroot/board/litex_vexriscv/litex_vexriscv.dts#L63 as well as the command line. The startup logs still refer to 128MB of RAM.

from linux-on-litex-vexriscv.

daveshah1 avatar daveshah1 commented on August 17, 2024

You might also want to reduce swiotlb further (I think each unit takes up 512KB, and I don't think it's important for anything atm)

from linux-on-litex-vexriscv.

futaris avatar futaris commented on August 17, 2024

looks like rootfs is being loaded on top of Image.

And the cmdline args like daveshah1 mentioned

from linux-on-litex-vexriscv.

futaris avatar futaris commented on August 17, 2024

Kernel takes up ~2MB. initramfs about 8MB.

12MB reserved.

Should still have 10MB free.

from linux-on-litex-vexriscv.

Dolu1990 avatar Dolu1990 commented on August 17, 2024

Be carefull about mega pages. I'm not sure how the linux would behave if things aren't 4 MB aligned.
At least have multiple of 4MB for each parts i would say in a first time.

from linux-on-litex-vexriscv.

daveshah1 avatar daveshah1 commented on August 17, 2024

I think reducing swiotlb should reduce the amount of "reserved" memory. In the longer term, the rootfs could probably be on the SD card rather than using an initrd.

from linux-on-litex-vexriscv.

enjoy-digital avatar enjoy-digital commented on August 17, 2024

Thanks, fixing the remaining 128MB makes it work:

        __   _ __      _  __
       / /  (_) /____ | |/_/
      / /__/ / __/ -_)>  <
     /____/_/\__/\__/_/|_|

 (c) Copyright 2012-2019 Enjoy-Digital
 (c) Copyright 2012-2015 M-Labs Ltd

 BIOS built on May  7 2019 11:17:11
 BIOS CRC passed (21f2eb48)

--============ SoC info ================--
CPU:       VexRiscv @ 1MHz
ROM:       32KB
SRAM:      4KB
MAIN-RAM:  32768KB

--========= Peripherals init ===========--

--========== Boot sequence =============--
Booting from serial...
Press Q or ESC to abort boot completely.
sL5DdSMmkekro
Timeout
Executing booted program at 0x20000000
--============= Liftoff! ===============--
VexRiscv Machine Mode software built May  7 2019 11:15:54
--========== Booting Linux =============--
[    0.000000] No DTB passed to the kernel
[    0.000000] Linux version 5.0.9 (florent@lab) (gcc version 8.3.0 (Buildroot 2019.05-git-00938-g75f9fcd0c9)) #1 Thu May 2 17:43:30 CEST 2019
[    0.000000] Initial ramdisk at: 0x(ptrval) (8388608 bytes)
[    0.000000] Zone ranges:
[    0.000000]   Normal   [mem 0x00000000c0000000-0x00000000c1ffffff]
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x00000000c0000000-0x00000000c1ffffff]
[    0.000000] Initmem setup node 0 [mem 0x00000000c0000000-0x00000000c1ffffff]
[    0.000000] elf_hwcap is 0x1101
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 8128
[    0.000000] Kernel command line: mem=32M@0x40000000 rootwait console=hvc0 root=/dev/ram0 init=/sbin/init swiotlb=32
[    0.000000] Dentry cache hash table entries: 4096 (order: 2, 16384 bytes)
[    0.000000] Inode-cache hash table entries: 2048 (order: 1, 8192 bytes)
[    0.000000] Sorting __ex_table...
[    0.000000] Memory: 21588K/32768K available (1957K kernel code, 92K rwdata, 317K rodata, 104K init, 184K bss, 11180K reserved, 0K cma-reserved)
[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[    0.000000] NR_IRQS: 0, nr_irqs: 0, preallocated irqs: 0
[    0.000000] clocksource: riscv_clocksource: mask: 0xffffffffffffffff max_cycles: 0x114c1bade8, max_idle_ns: 440795203839 ns
[    0.000160] sched_clock: 64 bits at 75MHz, resolution 13ns, wraps every 2199023255546ns
[    0.001538] Console: colour dummy device 80x25
[    0.008144] printk: console [hvc0] enabled
[    0.009248] Calibrating delay loop (skipped), value calculated using timer frequency.. 150.00 BogoMIPS (lpj=300000)
[    0.009927] pid_max: default: 32768 minimum: 301
[    0.016569] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)
[    0.017112] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes)
[    0.046477] devtmpfs: initialized
[    0.065334] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns
[    0.066348] futex hash table entries: 256 (order: -1, 3072 bytes)
[    0.128120] clocksource: Switched to clocksource riscv_clocksource
[    0.264355] Unpacking initramfs...
[    2.008315] workingset: timestamp_bits=30 max_order=13 bucket_order=0
[    2.181809] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 254)
[    2.182267] io scheduler mq-deadline registered
[    2.182623] io scheduler kyber registered
[    3.044680] random: get_random_bytes called from init_oops_id+0x4c/0x60 with crng_init=0
[    3.057582] Freeing unused kernel memory: 104K
[    3.057905] This architecture does not have kernel memory protection.
[    3.058295] Run /init as init process
mount: mounting tmpfs on /dev/shm failed: Invalid argument
mount: mounting tmpfs on /tmp failed: Invalid argument
mount: mounting tmpfs on /run failed: Invalid argument
Starting syslogd: OK
Starting klogd: OK
Initializing random number generator... [    4.395597] random: dd: uninitialized urandom read (512 bytes read)
done.
Starting network: ip: socket: Function not implemented
ip: socket: Function not implemented
FAIL

Welcome to Buildroot
buildroot login: root
login[48]: root login on 'hvc0'
# 

This still needs to be merged correctly, but at leat we know it works.

from linux-on-litex-vexriscv.

daveshah1 avatar daveshah1 commented on August 17, 2024

Board-specific device trees would probably be a good idea, so all boards can use their full amount of RAM. This would also be useful once we start adding other peripherals like Ethernet and SD cards.

from linux-on-litex-vexriscv.

enjoy-digital avatar enjoy-digital commented on August 17, 2024

@daveshah1 yes i was also thinking about that, or even generating the device tree directly from the target.

from linux-on-litex-vexriscv.

enjoy-digital avatar enjoy-digital commented on August 17, 2024

For now i added board-specific device trees and dts are recompiled before loading/flashing the board. The default dts/dtb is the 32MB variant which will run on all targets.

from linux-on-litex-vexriscv.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.