On Wed, Sep 15, 2021 at 6:17 PM Ahmad Fatoum <a.fatoum@xxxxxxxxxxxxxx> wrote: > > Hello Marcelo, > > On 15.09.21 22:30, Marcelo Politzer wrote: > > Hi, I'm new to barebox > > > > I'm currently porting barebox to a riscv board (cartesi-machine). > > Oh, looks interesting! What SoC does it use? It uses SOC_VIRT. It is an emulator to be precise, we use it for verifiable computations. It is pretty easy to try it out (there is a docker image for it): https://www.cartesi.io/en/docs/machine/host/overview/ > > > I got it mostly working: > > - new serial: serial_sbi.c and > > Keep in mind that newer SBI versions deprecate > sbi_console_getchar() and sbi_console_putchar() with no replacement. > > But if your board's firmware provides it, there is no issue with > adding a driver for it. That is what the emulator implements for now. I have to admit that a virtio system would be cool, maybe in the future. > > > - ext4 filesystem with mtdram > > > > 1) What I am still trying to figure out is how to customize `env` correctly. > > I got it to build and appear based on the docs [1], [2], > > Those look ok. I assume you have > > defaultenv_append_directory(defaultenv_cartesi); in your board code? yes > > > however the only way I found around [3] was to replace `bin/init` with > > this[4] layout. > > After drivers probe, barebox invokes init to source init scripts and > do the countdown and such. This is written in C, but you can override > it with an /env/bin/init shell script, which is what you did here. > > I would not recommend this. Drop /env/bin/init and use the same C init > nearly everyone else does. You can still customize it via the > /env/init/ scripts > > > Is there a recommended way to go about this? > > You need to set boot.default, e.g. > > echo 'cartesi net' > defaultenv-cartesi/nv/boot.default > > Which would try cartesi first and then net if the first one failed. That worked great. Looks a lot cleaner now. > > > 2) I also would like clarification on the upstreaming process, is it > > PR based, patches on this list? > > Patches to the mailing list are the usual way of contributing. OK, I'll clean this up and send it as two patches: - serial_sbi - cartesi (board) > > Cheers, > Ahmad > > > > > best, > > Marcelo > > > > > > [1] Makefile: > > ``` > > bbenv-$(CONFIG_BOARD_CARTESI) += defaultenv-cartesi > > ``` > > > > [2] arch/riscv/boards/cartesi: > > ``` > > defaultenv-cartesi > > ├── boot > > │ └── cartesi > > ├── init > > │ ├── automount > > │ └── ps1 > > └── nv > > ├── allow_color > > ├── autoboot_timeout > > └── user > > ``` > > > > [3] > > ``` > > Hit m for menu or any to stop autoboot: 0 > > Booting entry 'net' > > ``` > > > > [4] > > ``` > > defaultenv-cartesi > > ├── bin > > │ └── init > > └── boot > > └── cartesi > > ``` > > > > _______________________________________________ > > barebox mailing list > > barebox@xxxxxxxxxxxxxxxxxxx > > http://lists.infradead.org/mailman/listinfo/barebox > > > > > -- > Pengutronix e.K. | | > Steuerwalder Str. 21 | http://www.pengutronix.de/ | > 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 | > Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 | _______________________________________________ barebox mailing list barebox@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/barebox