Hello Niteesh, thanks. I pushed it: https://git.rtems.org/rtems-docs/commit/?id=5763454b307afae6f5feb7e6d3d3d780f05f83ab
Best regards Christian On 15/02/2020 15:20, G. S. Niteesh wrote: > Another remainder. > Can someone please push this? > > Thanks, > Niteesh > > On Thu, Feb 13, 2020 at 11:19 PM G. S. Niteesh <gsnb...@gmail.com > <mailto:gsnb...@gmail.com>> wrote: > > On Thu, Feb 13, 2020 at 11:16 PM Alan Cudmore > <alan.cudm...@gmail.com <mailto:alan.cudm...@gmail.com>> wrote: > > "set scheduler-locking on" in GDB works! I was able to run RPI2 > hello.exe > > So I consider your instructions ready to go in the repo. > More Pi 2 SMP debugging when I get the time.. > Thanks! > Alan > > Great. But just a caution, QEMU support raspberry pi is very > much incomplete > so any exception or problem may be from QEMU side and not RTEMS. So > if any > test goes wrong, try running it on a real board. > > Thanks, > Niteesh > > On Thu, Feb 13, 2020 at 12:30 PM G. S. Niteesh > <gsnb...@gmail.com <mailto:gsnb...@gmail.com>> wrote: > > > > On Thu, Feb 13, 2020 at 10:57 PM Alan Cudmore > <alan.cudm...@gmail.com <mailto:alan.cudm...@gmail.com>> wrote: > >> > >> I get exceptions when trying to run hello.exe. > >> I'm using qemu-system-arm v 2.11.1 from ubuntu. Should I try > using the > >> one built by RSB? > > > > No this should be fine. Can you post a screenshot of the output? > >> > >> I was trying to get this setup to try RPI 2 SMP in QEMU. I > may want to > >> get the latest repo and do a clean build to try this again. > > > > SMP doesn't work well with QEMU. Did you try set > scheduler-locking on in GDB? > > Running the executables directly in QEMU doesn't work. > >> > >> Thanks, > >> Alan > >> > >> On Thu, Feb 13, 2020 at 12:12 PM G. S. Niteesh > <gsnb...@gmail.com <mailto:gsnb...@gmail.com>> wrote: > >> > > >> > On Thu, Feb 13, 2020 at 10:40 PM Alan Cudmore > <alan.cudm...@gmail.com <mailto:alan.cudm...@gmail.com>> wrote: > >> >> > >> >> Hi Niteesh, > >> >> I have followed your instructions for getting RTEMS > running on the Pi > >> >> 1 and 2. SMP currently is not working on the 2 for me, but > that is not > >> >> a problem with these instructions. > >> >> I started to try running on QEMU following your > instructions but have > >> >> not been able to get time to complete my tests. > >> > > >> > What problem are you exactly facing? > >> >> > >> >> > >> >> > >> >> But this is a vast improvement over "TODO", so I recommend > accepting > >> >> this change. > >> >> > >> >> Thanks for creating this, > >> >> Alan > >> >> > >> >> On Thu, Feb 13, 2020 at 1:49 AM G. S. Niteesh > <gsnb...@gmail.com <mailto:gsnb...@gmail.com>> wrote: > >> >> > > >> >> > Can someone take a look at this, It has been unnoticed > for quite a while. > >> >> > > >> >> > Thank you, > >> >> > Niteesh > >> >> > > >> >> > On Sat, Jan 25, 2020 at 10:49 PM G S Niteesh > <gsnb...@gmail.com <mailto:gsnb...@gmail.com>> wrote: > >> >> >> > >> >> >> Added instructions to run examples on raspberrypi. > >> >> >> --- > >> >> >> user/bsps/arm/raspberrypi.rst | 111 > +++++++++++++++++++++++++++++++++- > >> >> >> 1 file changed, 110 insertions(+), 1 deletion(-) > >> >> >> > >> >> >> diff --git a/user/bsps/arm/raspberrypi.rst > b/user/bsps/arm/raspberrypi.rst > >> >> >> index 4ef75bd..72889a5 100644 > >> >> >> --- a/user/bsps/arm/raspberrypi.rst > >> >> >> +++ b/user/bsps/arm/raspberrypi.rst > >> >> >> @@ -5,4 +5,113 @@ > >> >> >> raspberrypi > >> >> >> =========== > >> >> >> > >> >> >> -TODO. > >> >> >> +This BSP supports `Raspberry Pi 1` and `Raspberry Pi > 2` currently. > >> >> >> +The support for `Raspberry Pi 3` is work under progress. > >> >> >> +The default bootloader on the Raspberry Pi which is > used to boot Raspbian > >> >> >> +or other OS can be also used to boot RTEMS. U-boot can > also be used. > >> >> >> + > >> >> >> +Setup SD card > >> >> >> +---------------- > >> >> >> + > >> >> >> +The Raspberry Pis have an unconventional booting > mechanism. The GPU > >> >> >> +boots first, initializes itself, runs the bootloader > and starts the CPU. > >> >> >> +The bootloader looks for a kernel image, by default > the kernel images must > >> >> >> +have a name of the form ``kernel*.img`` but this can > be changed by adding > >> >> >> +`kernel=<img_name>` to ``config.txt``. > >> >> >> + > >> >> >> +You must provide the required files for the GPU to > proceed. These files > >> >> >> +can be downloaded from > >> >> >> +`the Raspberry Pi Firmware Repository > <https://github.com/raspberrypi/firmware/tree/master/boot>`_. > >> >> >> +You can remove the ``kernel*.img`` files if you want > too, but don't touch > >> >> >> +the other files. > >> >> >> + > >> >> >> +Copy these files in to a SD card with FAT filesystem. > >> >> >> + > >> >> >> +Kernel image > >> >> >> +------------ > >> >> >> + > >> >> >> +The following steps show how to run ``hello.exe`` on a > Raspberry Pi 2. > >> >> >> +The same instructions can be applied to Raspberry Pi 1 > also. > >> >> >> +Other executables can be processed in a similar way. > >> >> >> + > >> >> >> +To create the kernel image: > >> >> >> + > >> >> >> +.. code-block:: none > >> >> >> + > >> >> >> + $ arm-rtems5-objcopy -Obinary hello.exe kernel.img > >> >> >> + > >> >> >> +Copy the kernel image to the SD card. > >> >> >> + > >> >> >> +Make sure you have these lines below, in your > ``config.txt``. > >> >> >> + > >> >> >> +.. code-block:: none > >> >> >> + > >> >> >> + enable-uart=1 > >> >> >> + kernel_address=0x200000 > >> >> >> + kernel=kernel.img > >> >> >> + > >> >> >> +Testing using QEMU > >> >> >> +------------------ > >> >> >> + > >> >> >> +QEMU can be built using RSB. Navigate to > ``<SOURCE_BUILDER_DIR>/rtems`` > >> >> >> +and run this command. > >> >> >> + > >> >> >> +.. code-block:: none > >> >> >> + > >> >> >> + $ ../source-builder/sb-set-builder > --prefix=<TOOLCHAIN_DIR> devel/qemu4.bset > >> >> >> + > >> >> >> +**Note**: Replace ``<SOURCE_BUILDER_DIR>`` and > ``<TOOLCHAIN_DIR>`` with the > >> >> >> +correct path of the directories. For example, if you > used quick-start section > >> >> >> +as your reference, these two will be > ``$HOME/quick-start/src/rsb`` and > >> >> >> +``$HOME/quick-start/rtems/5`` respectively, > >> >> >> + > >> >> >> +QEMU along with GDB can be used for debugging, but it > only supports > >> >> >> +Raspberry Pi 2 and the emulation is also incomplete. > So some of the > >> >> >> +features might not work as expected. > >> >> >> + > >> >> >> +Make sure your version of QEMU is newer than v2.6, > because older ones don't > >> >> >> +support Raspberry Pis. > >> >> >> + > >> >> >> +.. code-block:: none > >> >> >> + > >> >> >> + $ qemu-system-arm -M raspi2 -m 1G -kernel > hello.exe -serial mon:stdio -nographic -S -s > >> >> >> + > >> >> >> +This starts QEMU and creates a socket at port > ``localhost:1234`` for GDB to > >> >> >> +connect. > >> >> >> + > >> >> >> +The Device Tree Blob (DTB) is needed to load the > device tree while starting up > >> >> >> +the kernel. The BSP uses information from this file to > initialize the drivers. > >> >> >> + > >> >> >> +Make sure you pass in the correct DTB file. There are > currently two version of > >> >> >> +DTB for the Raspberry Pi 2 ``bcm2709-rpi-2-b.dtb`` and > ``bcm2710-rpi-2-b.dtb``. > >> >> >> +The ``bcm2709-rpi-2-b.dtb`` is for Raspberry Pi 2 > Model B and > >> >> >> +``bcm2710-rpi-2-b.dtb`` is for Raspberry Pi 2 Model B v1.2 > >> >> >> + > >> >> >> +We need to pass in the DTB file to GDB before running > the example. > >> >> >> + > >> >> >> +In a new terminal, run GDB using > >> >> >> + > >> >> >> +.. code-block:: none > >> >> >> + > >> >> >> + $ arm-rtems5-gdb hello.exe > >> >> >> + > >> >> >> +This will open GDB and will load the symbol table from > hello.exe. Issue the > >> >> >> +following commands in the GDB prompt. > >> >> >> + > >> >> >> +.. code-block:: none > >> >> >> + > >> >> >> + (gdb) tar remote:1234 > >> >> >> + (gdb) load > >> >> >> + (gdb) restore bcm2709-rpi-2-b.dtb binary 0x2ef00000 > >> >> >> + (gdb) set $r2 = 0x2ef00000 > >> >> >> + > >> >> >> +This will connect GDB to QEMU and will load the DTB > file and the application. > >> >> >> + > >> >> >> +.. code-block:: none > >> >> >> + > >> >> >> + (gdb) continue > >> >> >> + > >> >> >> +The ``continue`` command will run the executable. > >> >> >> + > >> >> >> +**Note**: Add ``set scheduler-locking on`` in GDB if > you have any issues > >> >> >> +running the examples. > >> >> >> -- > >> >> >> 2.17.1 > >> >> >> > >> >> > _______________________________________________ > >> >> > devel mailing list > >> >> > devel@rtems.org <mailto:devel@rtems.org> > >> >> > http://lists.rtems.org/mailman/listinfo/devel > > > _______________________________________________ > devel mailing list > devel@rtems.org > http://lists.rtems.org/mailman/listinfo/devel > _______________________________________________ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel