Fb can configure resolution
This commit is contained in:
parent
36a21f97c0
commit
ad5210eb86
10
fb.c
10
fb.c
@ -28,7 +28,7 @@ extern volatile unsigned char _binary_font_psf_start;
|
|||||||
|
|
||||||
static struct fbst fb;
|
static struct fbst fb;
|
||||||
|
|
||||||
unsigned char *fb_init()
|
unsigned char *fb_init(int width, int height)
|
||||||
{
|
{
|
||||||
// sending many tags at once
|
// sending many tags at once
|
||||||
mbox[0] = 35 * 4;
|
mbox[0] = 35 * 4;
|
||||||
@ -36,13 +36,13 @@ unsigned char *fb_init()
|
|||||||
mbox[2] = MBOX_TAG_FBSETPHYS; // set phy wh
|
mbox[2] = MBOX_TAG_FBSETPHYS; // set phy wh
|
||||||
mbox[3] = 8;
|
mbox[3] = 8;
|
||||||
mbox[4] = 0;
|
mbox[4] = 0;
|
||||||
mbox[5] = 1920; // FrameBufferInfo.width
|
mbox[5] = width; // FrameBufferInfo.width
|
||||||
mbox[6] = 1080; // FrameBufferInfo.height
|
mbox[6] = height; // FrameBufferInfo.height
|
||||||
mbox[7] = MBOX_TAG_FBSETVIRT; // set virt wh
|
mbox[7] = MBOX_TAG_FBSETVIRT; // set virt wh
|
||||||
mbox[8] = 8;
|
mbox[8] = 8;
|
||||||
mbox[9] = 0;
|
mbox[9] = 0;
|
||||||
mbox[10] = 1920; // FrameBufferInfo.virtual_width
|
mbox[10] = width; // FrameBufferInfo.virtual_width
|
||||||
mbox[11] = 1080; // FrameBufferInfo.virtual_height
|
mbox[11] = height; // FrameBufferInfo.virtual_height
|
||||||
mbox[12] = MBOX_TAG_FBSETOFF; // set virt offset
|
mbox[12] = MBOX_TAG_FBSETOFF; // set virt offset
|
||||||
mbox[13] = 8;
|
mbox[13] = 8;
|
||||||
mbox[14] = 0;
|
mbox[14] = 0;
|
||||||
|
2
fb.h
2
fb.h
@ -8,6 +8,6 @@ struct fbst {
|
|||||||
unsigned int isrgb;
|
unsigned int isrgb;
|
||||||
};
|
};
|
||||||
|
|
||||||
unsigned char *fb_init();
|
unsigned char *fb_init(int width, int height);
|
||||||
struct fbst * fb_get();
|
struct fbst * fb_get();
|
||||||
void fb_print(int x, int y, char *s);
|
void fb_print(int x, int y, char *s);
|
||||||
|
5
hello.c
5
hello.c
@ -3,13 +3,16 @@
|
|||||||
#include "uart.h"
|
#include "uart.h"
|
||||||
#include "utils.h"
|
#include "utils.h"
|
||||||
|
|
||||||
|
#define FB_WIDTH 640
|
||||||
|
#define FB_HEIGHT 480
|
||||||
|
|
||||||
int kernelmain(void)
|
int kernelmain(void)
|
||||||
{
|
{
|
||||||
struct fbst *fb;
|
struct fbst *fb;
|
||||||
unsigned char *ptr;
|
unsigned char *ptr;
|
||||||
|
|
||||||
uart_init();
|
uart_init();
|
||||||
if (fb_init() == 0) {
|
if (fb_init(FB_WIDTH, FB_HEIGHT) == 0) {
|
||||||
puts("Fail to init framebuffer");
|
puts("Fail to init framebuffer");
|
||||||
}
|
}
|
||||||
mbox[0] = 8 * 4;
|
mbox[0] = 8 * 4;
|
||||||
|
Loading…
Reference in New Issue
Block a user