zachberger / xinu-arm

Xinu arm port, for Raspberry Pi
Other
2 stars 0 forks source link

Mailbox Interface #2

Open jhaberstro opened 11 years ago

jhaberstro commented 11 years ago

The Mailbox is the primary interface that the ARM CPU and the GPU firmware use to communicate. For example it's used to query framebuffer information (width, height, size, memory location, etc.), to manipulate LEDs and buttons, and to allocate/execute/release GPU memory (!).

Having a nice API that will allow to do use the mailbox easily would be nice to have, and could be a good candidate of code to have merged back into Xinu.

jhaberstro commented 11 years ago

For now I've assigned this to myself, but anyone is free to work on this task, too, if they so fancy :-). I'll start working on this (once I get my hands on a device) and try to implement the crucial functionality (querying fb info and allocating/executing gpu memory).

zachberger commented 11 years ago

I don't know if you've seen include/mailbox.h and mailbox/*, but they should be good starting points for interacting with the mailboxes

jhaberstro commented 11 years ago

Ah, I should have specified. The mailbox API that is apart of Xinu all ready is a different beast. The Xinu mailbox is a software based concurrency communication mechanism. If you look at the implementation in mailbox/, you will see that it is essentially just a bunch of shared thread safe queues.

The mailboxes I'm referring to have dedicated hardware and a much narrower use-case (ARM <--> GPU communication). Check out https://github.com/raspberrypi/firmware/wiki for more information :-).