X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?p=rpikern;a=blobdiff_plain;f=src%2Frpi.h;fp=src%2Frpi.h;h=1ae7636084a0cffbcae4a6ba3d7fcfda0e6a818b;hp=36f8ac4e52217bf972a747d7871610324e2d2cca;hb=6da291dc416a718164b5596aa16b1901f2770732;hpb=32ccc707bc0821d7ff4248fe9f58e92e9c6ebef9 diff --git a/src/rpi.h b/src/rpi.h index 36f8ac4..1ae7636 100644 --- a/src/rpi.h +++ b/src/rpi.h @@ -3,6 +3,11 @@ #include + +#define RPI_MEM_BUS_COHERENT(addr) (((uint32_t)addr) | 0x40000000) +#define RPI_MEM_BUS_UNCACHED(addr) (((uint32_t)addr) | 0xc0000000) + + #define RPI_MBOX_FRAMEBUF 1 #define RPI_MBOX_PROP 8 @@ -13,35 +18,30 @@ #define RPI_TAG_ALLOCFB 0x040001 #define RPI_TAG_RELEASEFB 0x048001 +#define RPI_TAG_BLANKSCR 0x040002 #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_prop_header { + uint32_t size; + uint32_t res; }; -struct rpi_tag_setclock { +struct rpi_prop { uint32_t id, size, res; - uint32_t clock_id, rate, skip_turbo; + uint32_t data[1]; }; -struct rpi_prop_header { - uint32_t size; - uint32_t res; -}; +#define RPI_PROP_NEXT(p) \ + ((struct rpi_prop*)((char*)((p) + 1) + ((p)->size - sizeof (p)->data))) extern int rpi_model; extern uint32_t rpi_iobase; extern uint32_t rpi_memsize, rpi_vc_memsize; void rpi_init(void); +void rpi_reboot(void) __attribute__((noreturn)); void rpi_mbox_send(int chan, uint32_t msg); uint32_t rpi_mbox_recv(int chan);