X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?p=rpikern;a=blobdiff_plain;f=src%2Frpi.h;fp=src%2Frpi.h;h=36f8ac4e52217bf972a747d7871610324e2d2cca;hp=0000000000000000000000000000000000000000;hb=32ccc707bc0821d7ff4248fe9f58e92e9c6ebef9;hpb=203b43a75a028e9238307bd6e73768eb8e942071 diff --git a/src/rpi.h b/src/rpi.h new file mode 100644 index 0000000..36f8ac4 --- /dev/null +++ b/src/rpi.h @@ -0,0 +1,50 @@ +#ifndef RPI_H_ +#define RPI_H_ + +#include + +#define RPI_MBOX_FRAMEBUF 1 +#define RPI_MBOX_PROP 8 + +#define RPI_TAG_GETMODEL 0x010001 +#define RPI_TAG_GETRAM 0x010005 +#define RPI_TAG_GETVRAM 0x010006 +#define RPI_TAG_SETCLOCK 0x038002 + +#define RPI_TAG_ALLOCFB 0x040001 +#define RPI_TAG_RELEASEFB 0x048001 +#define RPI_TAG_SETFBPHYS 0x048003 +#define RPI_TAG_SETFBVIRT 0x048004 +#define RPI_TAG_SETFBDEPTH 0x048005 + +struct rpi_tag_getmodel { + uint32_t id, size, res; + uint32_t model; +}; + +struct rpi_tag_getram { + uint32_t id, size, res; + uint32_t membase, memsize; +}; + +struct rpi_tag_setclock { + uint32_t id, size, res; + uint32_t clock_id, rate, skip_turbo; +}; + +struct rpi_prop_header { + uint32_t size; + uint32_t res; +}; + +extern int rpi_model; +extern uint32_t rpi_iobase; +extern uint32_t rpi_memsize, rpi_vc_memsize; + +void rpi_init(void); + +void rpi_mbox_send(int chan, uint32_t msg); +uint32_t rpi_mbox_recv(int chan); +int rpi_mbox_pending(int chan); + +#endif /* RPI_H_ */