Trying to port Linux kernel on RISC-V Rocket chip - u-boot

We have looked the u-boot support from www.denx.de webpage, but we could not able find support for RISC-V.
So where can we find the u-boot support for RISC-V chip.
The "www.lowrisc.org" web page says RISC-V should use BBL (Berkeley bootloader) for loading the Linux kernel.
We are not clear about the process for developing the BBL based boot image, since it required FSBL (first stage bootloader) image development and the FSBL is associated to Vivado SDK.
Note: Bootloader which we are looking for is not for simulation

There is message in the mailing list from 14 Feb 2017 about u-boot for risc-v: https://groups.google.com/a/groups.riscv.org/forum/#!topic/sw-dev/j63wzz2ylY8
U-Boot port on RISC-V 32-bit is available on github.
https://github.com/Microsemi-SoC-IP/RISC-V_U-Boot
This repository contains the U-Boot port by Microsemi for RISC-V core
on Smartfusion2 M2Sxxx devices. The Smartfusion2 M2S150 FPGA Advance
Dev Kit is used for RISC-V U-Boot and the FPGA design available at
RISCV-on-Microsemi-FPGA.
The site of this project is https://github.com/Microsemi-SoC-IP/RISC-V_U-Boot
Development repository for RISC-V U-Boot on Microsemi FPGA
This repository contains the U-Boot created by Microsemi for RISC-V core on Smartfusion2 M2Sxxx devices. The Smartfusion2 M2S150 FPGA Advance Dev Kit is used for RISC-V U-Boot and the FPGA design available at RISCV-on-Microsemi-FPGA.
PS: FSBL is specific to Xilinx SoC "Zynq"; but BBL itself should be independent from FPGA vendor. Check also Untethered lowRISC: http://www.lowrisc.org/blog/2015/12/untethered-lowrisc-release/ http://www.lowrisc.org/docs/untether-v0.2/. Second page has http://www.lowrisc.org/docs/untether-v0.2/bootload/ about boot process and BBL just should be copied to RAM by risc-v "first stage bootloader" ($TOP/fpga/board/$FPGA_BOARD/examples/boot.c) in case of Untethered (this is not FSBL of Zynq); then risc-v "first stage bootloader" will do softreset to restart cpu from BBL which will load linux kernel.

Related

Programming external QSPI flash Raspberry Pi Pico

I want to reprogram the external flash of a raspberry Pico via SWD line.
This feature must be implemented in a different microcontroller, not from a Linux computer so the OpenOCD library cannot be used.
I already wrote a C library that is able to read and write in RAM and in core registers via SWD and I'm able to put the Cortex-M0+ into halt state.
I read many tutorials and documentation and those that are useful are:
http://markding.github.io/swd_programing_sram/
https://www.silabs.com/documents/public/application-notes/an0062.pdf
https://community.silabs.com/s/article/how-to-program-internal-sram-over-swd?language=en_US
but unfortunately they aren't clear enough.
Can you explain the sequence of commands that I should send to RP2040 to correctly upload the new firmware?
Thanks for your help!

parallella fpga : how to give an interrupt from pl to arm ps

I successfully implemented an "[accelerator in 15 minutes]"1 on parallella board. Now I need to send an interrupt from pl to ps. So I connected it to IRQ_F2P of Zynq processing system.
Now, how can I get this interrupt in arm processor?
Usual interrupt example using "XILINX SDK" tool which uses a JTAG. But in parallella , I don't have a JTAG. (I am coping the program to SD card and execute it from SD card using Ubuntu). So any suggestions are most welcome.
So for parallella, I tried to use the Xilinx SDK, but the header files are creating an error..
My one more doubt is "Is it possible to create a bsp using sdk tool and copy it into sd card and then make it run on parallella board. Will it work ?
If not, how do we get this interrupt in arm processor, because all example uses Xilinx header files like "xparameters.h, xil_printf.h, xcugic.h, etc" and these are connected to many other Xilinx functions.

U-Boot Application that can access all files on USB Flash Drive

I just started learning about U-Boot and being able to write applications that can be run with U-Boot, so please be patient and if possible add more details to help me learn.
I wanted to ask for help, as I am trying to connect USB flash drive to my Arm Cortex A9 device. I want to be able to have access to all files on that drive through my U-Boot script. For example what I write will just run after U-Boot loads, and will be as simple as reading all files.
I plan to use U-Boot, so that I have access to all U-Boot drivers. U-boot supports USB, and I am able to see my USB Flash Drive on the U-boot command line. How can this be done, any help is HIGHLY appreciated please.

How to connect on Nucleo with GDB?

I am using arm-none-eabi toolchain to create binary file for Nucleo which I then flash to the Nucleo using the USB virtual storage device it provides.
I am compiling the program with -ggdb. But how could I possibly connect to the nucleo and execute breakpoints on it? I can't even imagine how could it work, but I'm complete beginner.
Can I connect? How?
Yes you can connect, at least from a Linux host. I never tried from Windows system. Use OpenOCD to open a debug port and connect gdb (used arm-none-eabi-gdb) to this port with "gdb extended-remote" command. I am using this method from Linux host PC to connect to a custom board based on STM32L4 series for debugging and collecting log messages. Nucleo boards are also using the same series of STM controller.
For what it's worth there's a free IDE call EMBlocks that I've used in the past. I think the new version is called EMBitz https://www.embitz.org/
I've used it to both flash the STM32 Nucleo boards as well as debug the flashed image file.
A quick search also turns up this website that seems to indicate you can use GDB with the stlink utility. https://openenergymonitor.org/emon/node/6189

How load not OS Application with at91bootstrap bootloader on ATMEL ARM 9 Procesoor

I want to Load my application with AT91BootStrap bootloader instead of U-boot and OS.
My Chip is Atmel ARM 9 processor.( AT91SAMX25)
How i Can do it, what is the constrains of application and compile.
Is there any sample for it.

Resources