circle
usbboot
circle | usbboot | |
---|---|---|
31 | 8 | |
1,733 | 843 | |
- | 1.9% | |
8.9 | 8.1 | |
11 days ago | 9 days ago | |
C | C | |
GNU General Public License v3.0 only | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
circle
-
MiniScript on a bare-metal Raspberry Pi
If you're a developer and feeling adventurous, you can also try building it yourself. The source is all on GitHub. It uses the circle-stdlib project (which is circle plus some additions to support much of the C and C++ standard libraries) as a submodule; hopefully I've set that up correctly, but you could always clone that separately and place it in the MiniScript-Pi folder. Check out circle's build instructions for info on setting up your toolchain. (Mac users: be careful with the configure script, which does not work properly on MacOS; find me on Discord and I'll help you fix the script or configure manually.)
-
Bare Metal Emulation on the Raspberry Pi – Commodore 64
I suggest checking out circle https://github.com/rsta2/circle since it's basically a library for the pi hardware. I'm doing some experiments with it myself now.
-
Assembly coding without OS
You can also run a Pi without an operating system, programming it in C or C++ probably. See for example: GitHub - rsta2/circle: A C++ bare metal environment for Raspberry Pi with USB (32 and 64 bit)
- Bare Metal Emulators and launcher for RetroFlag GPI v1
-
Help with C64 Emulation (never used a C64 before in my life)?
BMC64 is VICE in a trenchcoat unikernel / bare-metal framework called Circle: https://github.com/rsta2/circle
-
Smalltalk-80 on Raspberry Pi: A Bare Metal Implementation
It uses the circle library (https://github.com/rsta2/circle) to provide a minimal runtime (mainly to interface with the hardware).
-
How do I get started with making my own Linux based OS on Embedded Hardware?
I experimented with circle the other day (https://github.com/rsta2/circle) Looks promising, and most likely within your knowledge of C/C++ development.
-
EmuTOS: A Modern FOSS Replacement OS for the Atari ST – and the Amiga Too
Natively would be amazing but a vast amount of work.
The way Apple moved classic MacOS from 680x0 to PowerPC was to write a tiny kernel emulator, with an API to run native stuff on the metal, and run more or less the whole OS under emulation, profile it and just translate the most speed-critical bits.
That's a lot of work for a FOSS project but given the performance delta between 1980s 680x0 and 2020s ARM, total emulation of the whole thing should be perfectly fine. It's how the PiStorm Amiga upgrade works.
https://amigastore.eu/853-pistorm.html
So all I envision is something like Aranym:
https://aranym.github.io/
... running on top of Ultibo, say:
https://ultibo.org/
Or maybe Circle:
https://github.com/rsta2/circle
-
Solutions for >1GHz microprocessor with option for bare metal or freeRTOS
Circle is a C++ bare metal programming environment for the Raspberry Pi.
-
New in this sub, some questions…
The only other reasonable option would be to port it to a new platform which is popular that has a few well documented hardware interfaces so as not to create a hellish nightmare writing drivers. Maybe then you could do a one-off port to that platform (though you might have to re-target the HolyC compiler to target it instead if it is not x86_64). The Raspberry PI seems like a decent option here since there is already a baremetal C++ library supporting USB, keyboard, mouse, sound, video, and as an added bonus UART, I2C, SPI, GPIO. You would have good code examples for porting all the necessary drivers. But obviously this would still be a lot of work and the compiler would need to be re-targeted and user space adapted for running on ARM. That being said backwards compatibility is strong, ARM seems actually interested in keeping it that way (at least for now). The library I'm talking about is here: https://github.com/rsta2/circle
usbboot
-
Why Nordic Is Getting Involved in RISC-V
https://github.com/raspberrypi/usbboot/blob/master/secure-bo...
Note that the Raspberry Pi does not have a full TrustZone implementation to protect secure mode memory, etc. But it is a widely available device with good documentation and allows developers to experiment with and learn about the basics of TrustZone architecture.
-
UEFI Secure Boot on the Raspberry Pi
The Pi4 has true hardware support for secure boot. If set up correctly, you won't be able to boot anything not properly signed. An incomplete overview of how this works is:
* Instead of having all boot related files (start4.elf, kernel.img, ...) on the first partition of the SD card, you instead have a single boot.img FAT image containing those files instead.
* You sign that file with your own RSA 2048 key and place a boot.sig containing the signature next to the boot.img file.
* You flash the Pi4 EEPROM and include your public key and some additional EEPROM settings.
* You instruct the EEPROM to burn the hash of your public key into the Pi's OTP memory. Once that's done, the key cannot be changed and the Pi will not boot into anything not signed with your key.
* Optionally you can also place keys for disk encryption into the OTP memory and use that to encrypt everything except the boot files. That way it should be pretty hard to access them as you cannot run a rogue OS to read the OTP memory due to secure boot.
References:
* https://github.com/raspberrypi/usbboot/blob/master/secure-bo...
-
What would it take to use my desktop as a virtual boot drive for an RPi 4?
That may be something you could do with this tool? I haven’t tried it myself yet, but I’ve been meaning to. https://github.com/raspberrypi/usbboot
-
RPi CM4 and dual ethernet board working awesome.
I used a CM4 with 2GB, 8 GB eMMC, and has wifi/bt. To flash the eMMC memory, you need rpiboot. Some instructions link to old versions, it might not connect the CM4. Click current release on Raspberry Pi's usbboot github. I tried different carrier boards, different cables, different computers before figuring this out...
-
Gpi case 2 ... black screen at boot
This is exactly what I just discovered! I was having a hard time getting the CM4 in my GPi 2 Case to get recognized by my PC. You need to download usbboot from Raspberry Pi’s GitHub page https://github.com/raspberrypi/usbboot
-
Raspberry pi zero W 1.1 ONLY boots from USB
I went further and tried this: https://github.com/raspberrypi/usbboot
-
Tutorial: Writing a “bare metal” operating system for Raspberry Pi 4
On the Pi Zero and Pi CM (maybe also others) you don't even need an SD card to boot it. You can boot it via rpi-boot https://github.com/raspberrypi/usbboot
-
2021 Jun 14 Stickied 𝐇𝐄𝐋𝐏𝐃𝐄𝐒𝐊 thread - Boot problems? Display problems? Networking problems? Need ideas? Get help with these and other questions! 𝑳𝑶𝑶𝑲 𝑯𝑬𝑹𝑬 𝑭𝑰𝑹𝑺𝑻
apt update apt install build-essential libusb-1.0-0-dev git -y git clone --depth=1 https://github.com/raspberrypi/usbboot cd usbboot make ./rpiboot
What are some alternatives?
rust-raspberrypi-OS-tutorials - :books: Learn to write an embedded OS in Rust :crab:
rpi4-osdev - Tutorial: Writing a "bare metal" operating system for Raspberry Pi 4
raspberry-pi-os - Learning operating system development using Linux kernel and Raspberry Pi
rust-raspberrypi-OS-tutoria
MiniDexed - Dexed FM synthesizer similar to 8x DX7 (TX816/TX802) running on a bare metal Raspberry Pi (without a Linux kernel or operating system)
circle - The compiler is available for download. Get it!
linux - Linux kernel source tree
dts2hx - Converts TypeScript definition files (d.ts) to haxe externs (.hx) via the TypeScript compiler API
8821cu - Linux Driver for USB WiFi Adapters that are based on the RTL8811CU, RTL8821CU and RTL8731AU Chipsets
tools