Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

system architecture documentation #279

Open
nnako opened this issue Oct 6, 2024 · 1 comment
Open

system architecture documentation #279

nnako opened this issue Oct 6, 2024 · 1 comment

Comments

@nnako
Copy link

nnako commented Oct 6, 2024

Hi,

I was wondering if there exist any "diagrams" describing the technical architecture of BMC64 and its interfaces. There exist some standard diagramming means (like within UML and SysML) where a partial system can be described on a suitable level to promote understanding the architecture and interfaces. I would be interested in drawn descriptions of e.g.:

  • the interface to resources of 3rd party tools (like VICE)
  • the interface to relevant resources of the Linux kernel
  • the interface to components on the RaspberryPi hardware (there could be some?)

background for this request is the goal to lower the bar for contributors intending to add some functionality (like integration of RPi's Ethernet capabilities). The diagrams don't have to be conforming to existing standards but could even be hand-drawn sketches. As long as they correctly represent an aspect of the BMC64 system, anything would be helpful for building up technical understanding.

Thanks.

@mcgurk
Copy link

mcgurk commented Oct 6, 2024

BMC64 is "bare metal" software, so there is no underlying operating system like linux or kernel.
If I'm not totally wrong, all hardware interfacing is made through environment named Circle.
https://github.com/rsta2/circle

Biggest current hold up for new hardware features might be fact that BMC64 uses quite old version of Circle. I can imagine that integrating more updated Circle to BMC64 would need guite a work, so that would propably be most important thing to do. Before that there is no possibility to add any new hardware dependant features (like Ethernet) to BMC64.

So with new features workflow goes like this:

  1. Add feature to Circle (if it is not there already). This work is purely done in Circle github.
  2. Update Circle with needed features to BMC64 (this is probably most hardest task)
  3. Add feature to BMC64

Edit:
I'm not actually sure if Ethernet is already supported in Circle version that BMC64 uses. It might be supported (I didn't remember that earlier (<Pi4) Ethernet interface was behind USB-bus):
https://github.com/smuehlst/circle-stdlib/tree/49fddf66e49f48c6368c477ed54e31c463100fff?tab=readme-ov-file
https://github.com/rsta2/circle/tree/fe24b6bebd1532f2a0ee981af12eaf50cc9e97fb

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants