#include "fb.h" #include "mbox.h" #include "uart.h" #include "utils.h" int kernelmain(void) { struct fbst *fb; unsigned char *ptr; uart_init(); if (fb_init() == 0) { puts("Fail to init framebuffer"); } mbox[0] = 8 * 4; mbox[1] = MBOX_REQUEST; mbox[2] = MBOX_TAG_GETVCOREMEM; mbox[3] = 8; mbox[4] = 0; mbox[5] = 0; mbox[6] = 0; mbox[7] = MBOX_TAG_LAST; if (!mbox_call(MBOX_CH_PROP, mbox)) { puts("videocore start at 0x"); printhex(mbox[5]); puts(" - "); int mem = mbox[6] / 1024 / 1024; printdec(mem); puts(" Mo\n"); } else { puts("Error getting videocore mem\n"); } printclock(); fb = fb_get(); ptr = fb->fbp; for (unsigned int y = 0; y < fb->height; y++) { for (unsigned int x = 0; x < fb->width; x++) { if (y % 60 == 0) *((unsigned int *)ptr) = 0x00FF0000; else if (y % 40 == 0) *((unsigned int *)ptr) = 0x0000FF00; else if (y % 20 == 0) *((unsigned int *)ptr) = 0x000000FF; else *((unsigned int *)ptr) = 0x00000000; ptr += 4; } } fb_print(0, 0, "Hello Dude\n"); return 0; }