Comments (13)
from linux-on-litex-vexriscv.
Later i can give a try with that linux images on the VexRiscv verilator simulation.
from linux-on-litex-vexriscv.
@Dolu1990 thanks, i haven't investigated yet, the emulator code catches something since it stops the simulation.
from linux-on-litex-vexriscv.
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.
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.
looks like rootfs is being loaded on top of Image.
And the cmdline args like daveshah1 mentioned
from linux-on-litex-vexriscv.
Kernel takes up ~2MB. initramfs about 8MB.
12MB reserved.
Should still have 10MB free.
from linux-on-litex-vexriscv.
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.
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.
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.
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.
@daveshah1 yes i was also thinking about that, or even generating the device tree directly from the target.
from linux-on-litex-vexriscv.
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)
- sim.py: Could not initialize class sbt.internal.parser.SbtParser$ HOT 6
- Add support to Colorlight 5a-75e HOT 1
- Ethernet not working on genesys 2 HOT 10
- Boot Crash Afer --============= Liftoff! ===============-- HOT 7
- After booting to [10.122727] Waiting for root device /dev/mmcblk0p2... there is no response. HOT 4
- Error with the Prebuilt images HOT 1
- running on hardware HOT 5
- extension zicsr is missing HOT 6
- No Module Found HOT 1
- ResolutionError$CantDownloadModule: Error downloading org.scala-sbt:sbt:1.6.0 HOT 7
- SpinalHDL git repository not detected HOT 16
- Error: unrecognized opcode `csrr s5,0xf14', extension `zicsr' required HOT 9
- linux doesnt boot HOT 4
- ./sim.py hangs indefinitely HOT 1
- ERROR:SoC:LOCALIP1 Constant already declared HOT 3
- ImportError: cannot import name '{board name}' from 'litex_boards.targets' HOT 7
- Support for 1bpp framebuffer HOT 2
- Utilizing the PL to DDR interface of Zynq to define `main_ram` HOT 4
- java.lang.ClassNotFoundException: vexriscv.demo.smp.VexRiscvLitexSmpClusterCmdGen at java.net.URLClassLoader.findClass(URLClassLoader.java:387) HOT 2
- Error: unable to open ftdi device with description '*', serial '*' at bus location '*' HOT 13
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from linux-on-litex-vexriscv.