FermiOS: An OS development for Raspi 3

GNU Autoconf can go die in a fire. Custom written Makefiles that assume sane config that is documented in README is the way to go IMO.

Also said Makefiles should make editing them (at least the flags and stuff) easy.

1 Like

What made you go with BitBucket? Iā€™ve never used it, so Iā€™m not talking shit, just curious.

The fact that am too poor to self-host and they allow free private repos. Also the fact that I hate how social github is lol

1 Like

I hear thatā€¦ wish there were more people with that mindset

1 Like

I think I could make the var names in the Makefile bit easier to read. I am just in this habit of making them short. :man_shrugging:

Might rewrite it and try to fix the jobs problem.

@redgek
Ummā€¦ I just realised something scary and cool while starting at your sourceā€¦ this is the tools needed to use the Raspberry Pi as a fucking microcontrollerā€¦

Its a fucking Quad Core 1GHz stm32 blue pill rnā€¦

With USB and Ethernet, assuming someone writes a barebones driver for itā€¦

This opens so many opportunitiesā€¦

The first thing I feel like doing is writing an Arduino target for it!


Thank you for opening this upā€¦ I know your project is to build an OS, but I am thinking I could build a real time system from this, by dedicating a core to handling the USB and network IO, there are 3 cores left to running a real time application.

1 Like

I plan to write drivers :wink: Itā€™s gonna take some time, especially with uni.

Some resources (will add to top too):


1: AFAIK BCM2837 has same peripherals as BCM2835. The difference between them are ARM core and more clocked VideoCore.
2: You probs want ARMĀ® Architecture Reference Manual ARMv8, for ARMv8-A architecture profile
and Arm Cortex-A53 MPCore Processor Technical Reference Manual

1 Like

I have been looking at the peripherals to see what toys are hidden in silicon.

the Triple I2C controller and 15(!!) Software configurable DMA channels look fun :smiling_imp:

How experienced are you in this kind of stuff? Coz looks like a lot :stuck_out_tongue:
I am one helluva noob, just tryina learn shit.

@redgek Im half way through an EEE degree, so I understand most of the theory, but never get to play with this stuffā€¦

My experience with embedded development starts at Arduinos and ends at trying to build rust programs for STMF103xx parts.

I am excited by this cos I feel like someone has just handed me the worlds fanciest microcontroller and said ā€œhave fun, donā€™t break itā€. But instead of being a $300 dev board from ST or Xilinx its a $35 PC that I already own!

2 Likes

@redgek did you find any information on talking to the GPU?

Yeah, I used that to get the board serial. You talk with the VideoCore via the mailbox.

I just skimmed it to implement basic stuff. Still need to read on it.

1 Like

Mini-update:

Couldnā€™t fall asleep so decided to play around with message box to query stuff on Raspi:

Actual hardware:

QEMU:
image

As you can see, there are some quirks to iron out. Canā€™t read the clock rate on actual hardwareā€¦ Also max clock rate should be 1.2 GHz on Raspi 3 B :man_shrugging:

Also need to factor some code :wink: :

Anyways, that was kinda fun, but I think I finally feel like sleeping.

Thatā€™s it for now.

Commit:

3 Likes

Super small update (wonā€™t even bother writing in OP):

just refactored the mbox calls from main into separate functions. Didnā€™t even look into fixing the clock bug on real HW. :man_shrugging: gotta go write some thesis.

Commit:

1 Like

Another smol update (that I wonā€™t bother to add to OP):

Just threw some ugly code together to test sending data over serial. The goal atm is to write a bootloader over serial.

image

Commit:

1 Like

Smol Update: FML Edition :expressionless::gun:

Half a day of work to realize I have faulty serial connection on real hardwreā€¦ (kept rewriting my code, kept thinking I am doing something wrong lol)

Redid the serial boot interface, as well as, wrote a script to actually upload the kernel over serial from host.

Commit:


code is shit, and needs refactor, hence why itā€™s in dev branch.

2 Likes

Not-an-update-update:

Ripped apart my Arduino breadboard USB 2 serial contraption. I am not sure if itā€™s the culprit, but I definitely get output cut at some point when using that.

But I went and ordered some stuff that might help me out:

  • Logic analyser
  • Multimeter
  • USB2UART
3 Likes

Sorry to hear about your tools letting you down,

Its great to see progress though. Keep at it man!

1 Like

Itā€™s here my dudes!

5 Likes