Hello everyone,
I am Preetam (lostux), currently pursuing a master’s degree in Computer Science. My area of interest revolves around system software, operating systems, and more recently, embedded systems. In the past summer, I had the opportunity as an intern to work on inter-processor communication, OpenVX framework and PCIe-based data streaming for TI’s Jacinto 7 family of SOCs.
Continuing this venture of exploring this area, I want to contribute to the open-source world and hence GSOC. I found a good project that aligns with my interests & experience and want to contribute to it - Add a BSP for the Raspberry Pi 5 (Issue 85).
This post is for proof of work and some updates on what I have done so far.
1. Proof of work
Modified the hello world sample for sparc/erc32 on RTEMS 7.
Patch:
From e575b77c727fdca1d07823d299f28306a9f699c4 Mon Sep 17 00:00:00 2001
From: Preetam Das <riki10112001@gmail.com>
Date: Mon, 12 Jan 2026 17:08:57 +0530
Subject: [PATCH] testsuites/samples/hello/init.c: GSOC26 proof of work
---
testsuites/samples/hello/init.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/testsuites/samples/hello/init.c b/testsuites/samples/hello/init.c
index c9f07118c5..6e70f095bc 100644
--- a/testsuites/samples/hello/init.c
+++ b/testsuites/samples/hello/init.c
@@ -43,7 +43,7 @@ static rtems_task Init(
rtems_print_printer_fprintf_putc(&rtems_test_printer);
TEST_BEGIN();
- printf( "Hello World\n" );
+ printf( "Hiya RTEMS!! 🙋" );
TEST_END();
rtems_test_exit( 0 );
}
--
2.52.0
Working:
~/Programming/gsoc/rtems-gsoc/rtems (bsps/aarch64/raspberrypi5)
> rtems-run --rtems-bsp=erc32-sis build/sparc/erc32/testsuites/samples/hello.exe
RTEMS Testing - Run, 7.0.not_released
Command Line: /home/pree/.local/rtems/7/bin/rtems-run --rtems-bsp=erc32-sis build/sparc/erc32/testsuites/samples/hello.exe
Host: Linux archbox 6.18.4-arch1-1 #1 SMP PREEMPT_DYNAMIC Fri, 09 Jan 2026 19:43:48 +0000 x86_64
Python: 3.7.17 (default, Dec 9 2025, 18:36:29) [GCC 15.2.1 20251112]
Host: Linux-6.18.4-arch1-1-x86_64-with-arch (Linux archbox 6.18.4-arch1-1 #1 SMP PREEMPT_DYNAMIC Fri, 09 Jan 2026 19:43:48 +0000 x86_64 )
SIS - SPARC/RISCV instruction simulator 2.30, copyright Jiri Gaisler 2020
Bug-reports to jiri@gaisler.se
ERC32 emulation enabled
Loaded build/sparc/erc32/testsuites/samples/hello.exe, entry 0x02000000
*** BEGIN OF TEST HELLO WORLD ***
*** TEST VERSION: 7.0.0.e575b77c727fdca1d07823d299f28306a9f699c4
*** TEST STATE: EXPECTED_PASS
*** TEST BUILD: RTEMS_POSIX_API
*** TEST TOOLS: 15.2.0 20250808 (RTEMS 7, RSB 94768365158083a6be02759c800827c0d7c60c79, Newlib 038afec1)
Hiya RTEMS!! 🙋
*** END OF TEST HELLO WORLD ***
[ RTEMS shutdown ]
RTEMS version: 7.0.0.e575b77c727fdca1d07823d299f28306a9f699c4
RTEMS tools: 15.2.0 20250808 (RTEMS 7, RSB 94768365158083a6be02759c800827c0d7c60c79, Newlib 038afec1)
executing thread ID: 0x0a010001
executing thread name: UI1
cpu 0 in error mode (tt = 0x101)
74110 02005e60: 91d02000 ta 0x0
Run time : 0:00:00.260368
~/Programming/gsoc/rtems-gsoc/rtems (bsps/aarch64/raspberrypi5)
> git log
commit e575b77c727fdca1d07823d299f28306a9f699c4 (HEAD -> bsps/aarch64/raspberrypi5, main)
Author: Preetam Das <riki10112001@gmail.com>
Date: Mon Jan 12 17:08:57 2026 +0530
testsuites/samples/hello/init.c: GSOC26 proof of work
commit 5384a26b48c5cebe05c77809df8c6a39623b69d5 (upstream/main, upstream/HEAD, origin/main, origin/HEAD)
Author: Joel Sherrill <joel@rtems.org>
Date: Sun Jan 4 10:50:00 2026 -0600
spec/build/cpukit/optwarn.yml: Reduce ignored warnings
2. MR for a documentation fix - Merged
This is my first contribution. Fixed broken link rendering in users/support/contrib.html. MR has been merged. Link - https://gitlab.rtems.org/rtems/docs/rtems-docs/-/merge_requests/199
3. BSP for RPI 5 - GSOC’26 Contribution
I will link here another post dedicated on the contribution. Link: to be updated
For now I am updating my findings here: pi5 rtems bsp - Google Docs
Below is the summary:
-
Following @JoelSherrill and @opticron advice I started with comparing the memory map and peripherals of Pi 4 and Pi 5. I referenced the circles project and the bcm2712 dts for this.
-
Went through the boot process of Pi4. Its similar to Pi5
-
Just to get started, I put together a very rough implementation to see if I can boot or not.
I did this in a separate bsp folder
bsps/raspberrypi5just to test, I guess the final implementation would be merged with thebsps/raspberrypifolder. I successfully built the bsp (with disabled tests and samples) and put a stub for the required console driver and other functions for now.Tested it on a physical Pi 5 4gb model.
Status - I got to
bsp_startbut got stuck there due to what I believe a bad heap section in the linker script when it tries to map the heap inrtems_cache_coherent_add_area.
Details and further updates, I will post in the dedicated post for the contribution.
I would appreciate any comments/suggestions from the maintainers and the community. Thank you.
