Comments (6)
Well, you sort of asked in the right place since I did a heavy update on the build instructions on the OpenCores wiki last week. :)
As you have noticed, there are problems with openrisc.net, but you can use the kernel from here https://github.com/skristiansson/linux in the meantime. That should be the same version as is recommended on the wiki.
Regarding the BOOTLOADER_BIN=vmlinux parameter to fusescoc, there is no such parameter, so that won't do anything at all unfortunately. I'm not sure about the exact procedure, but you probably need to combine the FPGA image and the linux image to a single file that you can download to the Flash. You also need to add a proper bootloader so that the OpenRISC will start by reading the vmlinux image from SPI Flash to RAM. This is a bit trickier though. The default bootloader for Atlys (available in rtl/verilog/rom.v) will just clear a register and then end up in an endless loop. That might seem like a stupid thing to do, but I presume in this case that the intention is that users should connect a debugger to the JTAG port and load software that way.
I haven't played with the Atlys image very much unfortunately, so I might be wrong on some details here
from fusesoc.
Hi there,
Since old version can do this, I browsed orpsocv2, and I found the Makefile doing the combining work. It uses "promgen" command to generate the .mcs file from vmlinux and orpsoc_top.bin. And this is a Xilinx command, I don't need the old or32 toolchain to be installed to run it. So I tried copied this line from makefile and run it. It does generate the .mcs file but programmed to the Atlys board, no HDMI output. So I think the ORPSoC is still loading its initial ROM rather than the vmlinux. Can you give me a clue how to make it load the linux rather than the initial rom?
Thank you very much!
I attach the Makefile doing the combining below:
////* Generate MCS with bootloader specified by user, if BOOTLOADER_BIN defined.*/
ifeq ($(BOOTLOADER_BIN),)
@echo; echo "\t#### Generating .mcs file for SPI load ####";
else
@echo; echo "\t#### Generating .mcs file with bootloader for SPI load ####";
-data_file up
endif
from fusesoc.
Yes, promgen is the right thing to use here, but that only solves half the problem. When the CPU boots up it will execute the instructions in the bootrom (https://github.com/openrisc/orpsoc-cores/blob/master/systems/atlys/rtl/verilog/rom.v#L58) which will just put it in an endless loop. You need to replace the contents of this boot rom with instructions that gets the data out from the SPI flash. There is probably something hidden deep inside of orpsocv2 that you can use, bit it's a bit messy.
As a side note, I'm working on a collection of useful bootloaders that I'm going to add to orpsoc-cores soon that can be used for any board. I'm planning to put a SPI Flash loader there once I have dug up the one from orpsocv2 and polished it up a bit. I'm afraid that is no help for you right now, but I wanted to let you know that we at least are working on better solutions for these kinds of problems
from fusesoc.
Hi olof,
I'm wondering if you have already updated the bootloaders you mentioned above. I'm also looking for instructions on booting linux on atlys board, and I hope I can use fusesoc instead of orpsocv2.
Thanks,
Patrick
from fusesoc.
Hi Patrick,
I'm not all the way there yet. I have created a bootloader that can boot images in the uImage format (created by mkimage in uboot). This works fine for de0 nano, and is now the default bootloader for that system. I have tried to do the same thing on my lx9 microboard (which should be similar to Atlys), but haven't gotten it to work yet. It works fine in simulations, but not on real hw. I haven't had time to debug this further
from fusesoc.
Closing this due to inactivity and as it's not really relevant to FuseSoC
from fusesoc.
Related Issues (20)
- Select stage to run in core file HOT 2
- parameters_append overwrite inherited parameters_append HOT 3
- fusesoc 2.x on windows: export files get removed due to /, \ mismatch HOT 5
- Weird behaviour when the target name is changed HOT 2
- `iverilog` `timescale` option interacts badly with `resetall`
- Can't install fusesoc on Ubuntu 16.04 HOT 2
- Adding block design files for vivado flow HOT 1
- Targets in dependencies HOT 1
- Not possible to run multiple builds in parallel
- Update cached remote core if patch file was changed
- Does fusesoc support VC SpyGlass? HOT 3
- Issues with Merge Keys HOT 1
- Environment variable behaviour changed between fusesoc 2.1 and 2.2 HOT 7
- unable to run fuseSOC in windows installation HOT 3
- inherited scripts are overwritten HOT 1
- unknow location for get_edatools from edalize HOT 1
- No messages from tool are printed when the tool exits successfully
- Set path to file at runtime form the command line or read it from a command
- 'gapi' has an undocumented 'cores' section
- Add support for vvp extended arguments HOT 1
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 fusesoc.