Lines Matching refs:efifb

49 efifb_color_depth(struct efi_fb *efifb)
54 mask = efifb->fb_mask_red | efifb->fb_mask_green |
55 efifb->fb_mask_blue | efifb->fb_mask_reserved;
64 efifb_mask_from_pixfmt(struct efi_fb *efifb, EFI_GRAPHICS_PIXEL_FORMAT pixfmt,
72 efifb->fb_mask_red = 0x000000ff;
73 efifb->fb_mask_green = 0x0000ff00;
74 efifb->fb_mask_blue = 0x00ff0000;
75 efifb->fb_mask_reserved = 0xff000000;
78 efifb->fb_mask_red = 0x00ff0000;
79 efifb->fb_mask_green = 0x0000ff00;
80 efifb->fb_mask_blue = 0x000000ff;
81 efifb->fb_mask_reserved = 0xff000000;
84 efifb->fb_mask_red = pixinfo->RedMask;
85 efifb->fb_mask_green = pixinfo->GreenMask;
86 efifb->fb_mask_blue = pixinfo->BlueMask;
87 efifb->fb_mask_reserved = pixinfo->ReservedMask;
97 efifb_from_gop(struct efi_fb *efifb, EFI_GRAPHICS_OUTPUT_PROTOCOL_MODE *mode,
102 efifb->fb_addr = mode->FrameBufferBase;
103 efifb->fb_size = mode->FrameBufferSize;
104 efifb->fb_height = info->VerticalResolution;
105 efifb->fb_width = info->HorizontalResolution;
106 efifb->fb_stride = info->PixelsPerScanLine;
107 result = efifb_mask_from_pixfmt(efifb, info->PixelFormat,
269 efifb_from_uga(struct efi_fb *efifb, EFI_UGA_DRAW_PROTOCOL *uga)
282 efifb->fb_height = vert;
283 efifb->fb_width = horiz;
285 if (efifb->fb_height == 0 || efifb->fb_width == 0)
289 efifb_mask_from_pixfmt(efifb, PixelBlueGreenRedReserved8BitPerColor,
296 status = efifb_uga_locate_framebuffer(pciio, &efifb->fb_addr,
297 &efifb->fb_size);
299 efifb->fb_addr = 0;
300 efifb->fb_size = 0;
337 if (offset >= 0 && efifb->fb_width == horiz &&
338 efifb->fb_height == vert && efifb->fb_addr == fbaddr) {
339 efifb->fb_addr += offset;
340 efifb->fb_size -= offset;
341 efifb->fb_stride = stride;
353 efifb->fb_stride = efifb->fb_width;
355 np = efifb->fb_stride & (efifb->fb_stride - 1);
357 efifb->fb_stride |= (np - 1);
358 efifb->fb_stride++;
362 ev = getenv("hw.efifb.address");
364 if (efifb->fb_addr == 0) {
365 printf("Please set hw.efifb.address and "
366 "hw.efifb.stride.\n");
387 offset = efifb_uga_find_pixel(uga, 0, pciio, efifb->fb_addr,
388 efifb->fb_size >> 8);
392 efifb->fb_addr += offset;
393 efifb->fb_size -= offset;
397 efifb->fb_size = efifb->fb_height * efifb->fb_stride * 4;
398 efifb->fb_addr = strtoul(ev, &p, 0);
403 ev = getenv("hw.efifb.stride");
408 efifb->fb_addr, horiz * 8);
410 efifb->fb_stride = offset >> 2;
415 efifb->fb_stride = strtoul(ev, &p, 0);
424 efifb->fb_size = efifb->fb_height * efifb->fb_stride * 4;
429 efi_find_framebuffer(struct efi_fb *efifb)
437 return (efifb_from_gop(efifb, gop->Mode, gop->Mode->Info));
441 return (efifb_from_uga(efifb, uga));
447 print_efifb(int mode, struct efi_fb *efifb, int verbose)
453 depth = efifb_color_depth(efifb);
454 printf("%ux%ux%u, stride=%u", efifb->fb_width, efifb->fb_height,
455 depth, efifb->fb_stride);
458 (uintmax_t)efifb->fb_addr, (uintmax_t)efifb->fb_size);
460 efifb->fb_mask_red, efifb->fb_mask_green,
461 efifb->fb_mask_blue);
470 struct efi_fb efifb;
505 efifb_from_gop(&efifb, gop->Mode, gop->Mode->Info);
506 print_efifb(gop->Mode->Mode, &efifb, 1);
519 efifb_from_gop(&efifb, gop->Mode, info);
520 print_efifb(mode, &efifb, 0);
539 struct efi_fb efifb;
553 if (efifb_from_uga(&efifb, uga) != CMD_OK) {
559 print_efifb(-1, &efifb, 1);