#include "fb.h" #include "mbox.h" #include "uart.h" #include "utils.h" struct fbst fb; int kernelmain(void) { init_uart(); if (init_fb(&fb) == 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(); unsigned char *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; } } return 0; }