*** tpb has joined #litex | 00:00 | |
*** _whitelogger has quit IRC | 02:03 | |
*** _whitelogger has joined #litex | 02:05 | |
*** proteusguy has quit IRC | 02:31 | |
*** proteusguy has joined #litex | 02:43 | |
*** mescobar has joined #litex | 02:44 | |
mescobar | somlo yeah I would like the compiled app to be loaded over serial | 02:45 |
---|---|---|
mescobar | I'm assuming that including object file within the file system is the only way to go | 02:46 |
mescobar | I don't think gcc is included with the linux kernel, right? | 02:46 |
*** jaseg has quit IRC | 02:47 | |
*** jaseg has joined #litex | 02:49 | |
*** Degi has quit IRC | 03:25 | |
*** Degi has joined #litex | 03:28 | |
*** CarlFK has joined #litex | 04:18 | |
*** mescobar has quit IRC | 05:23 | |
keesj | wow.. it won't take long before the rootfs will be mounted over NFS | 05:44 |
*** _whitelogger has quit IRC | 06:21 | |
*** _whitelogger has joined #litex | 06:23 | |
daveshah | I did actually have an NFS rootfs working with litex linux | 07:12 |
daveshah | Was very useful for userspace debugging, although liteeth is pretty slow | 07:12 |
daveshah | In any case the place to put new userspace programs is in buildroot, which is where rootfs.cpio comes from | 07:13 |
*** CarlFK has quit IRC | 07:26 | |
keesj | I done such setup many times but every time it is a bit of work (again) also (when having a u-boot bootloader) Downloading linux/rootfs over tftp can also be nice | 08:05 |
*** CarlFK has joined #litex | 09:01 | |
*** _whitelogger has quit IRC | 09:33 | |
*** _whitelogger has joined #litex | 09:35 | |
*** _whitelogger has quit IRC | 09:48 | |
*** _whitelogger has joined #litex | 09:50 | |
somlo | mescobar: ok, so there are a number of steps on the path between CSRs and linux userspace (i.e. stuff running from a linux rootfs) | 10:53 |
somlo | first, you probably want to build a full litex SoC including the bios (bare-metal software included in the bitstream that runs as soon as the soft CPU "wakes up") | 10:54 |
somlo | a description of the CSRs MMIO addresses is typically generated under "build/<boardname>/software/include/generated/csr.h" | 10:54 |
somlo | and used to compile the bios binary, which is then added as "rom" to the gateware/bitstream | 10:55 |
somlo | mescobar: this stuff runs when you program the bitstream to your board, and it's smart enough to load a bunch of other things via either tftp or from an sdcard | 10:56 |
somlo | that's where you want things like a DTB blob, linux kernel, initrd, etc. | 10:56 |
somlo | you use the DT blob to tell e.g. linux what CSRs live at what addresses (more or less mirroring the generated csr.h) | 10:57 |
somlo | and it's linux (or whatever kernel) that's expected to have drivers for the hardware, and tickle the CSRs, not so much userspace code | 10:58 |
somlo | check out https://github.com/litex-hub/linux/tree/litex-rocket-rebase for a few examples of linux device drivers interacting with LiteX CSRs | 10:59 |
tpb | Title: GitHub - litex-hub/linux at litex-rocket-rebase (at github.com) | 10:59 |
*** awe00 has joined #litex | 11:54 | |
*** awe00 has quit IRC | 11:58 | |
*** _whitelogger has quit IRC | 12:09 | |
*** _whitelogger has joined #litex | 12:11 | |
*** awe00 has joined #litex | 12:28 | |
*** awe00 has quit IRC | 15:30 | |
*** awe00 has joined #litex | 15:34 | |
*** nrossi has left #litex | 16:00 | |
*** nrossi has quit IRC | 16:00 | |
*** awe001 has joined #litex | 16:18 | |
*** awe00 has quit IRC | 16:22 | |
*** awe002 has joined #litex | 18:01 | |
*** awe001 has quit IRC | 18:04 | |
*** SpaceCoaster has quit IRC | 19:12 | |
*** SpaceCoaster has joined #litex | 19:12 | |
*** jaseg has quit IRC | 20:04 | |
*** jaseg has joined #litex | 20:05 | |
*** peeps is now known as peepsalot | 22:26 | |
*** jaseg has quit IRC | 23:37 | |
*** awe002 has quit IRC | 23:37 | |
*** lf_ has quit IRC | 23:38 | |
*** lf has joined #litex | 23:38 | |
*** awe002 has joined #litex | 23:38 | |
*** jaseg has joined #litex | 23:48 |
Generated by irclog2html.py 2.17.2 by Marius Gedminas - find it at https://mg.pov.lt/irclog2html/!