diff --git a/common/limine.h b/common/limine.h index c9a1faf5..0d9f141d 100644 --- a/common/limine.h +++ b/common/limine.h @@ -66,6 +66,8 @@ struct limine_framebuffer { uint8_t blue_mask_size; uint8_t blue_mask_shift; uint8_t unused; + uint64_t edid_size; + LIMINE_PTR(void *) edid; uint8_t reserved[256]; }; diff --git a/common/protos/limine.c b/common/protos/limine.c index 2c38e6aa..43df1333 100644 --- a/common/protos/limine.c +++ b/common/protos/limine.c @@ -391,6 +391,12 @@ FEAT_START framebuffer_response->fbs = reported_addr(fbp); framebuffer_response->fbs_count = 1; + struct edid_info_struct *edid_info = get_edid_info(); + if (edid_info != NULL) { + fbp->edid_size = sizeof(struct edid_info_struct); + fbp->edid = reported_addr(edid_info); + } + fbp->memory_model = LIMINE_FRAMEBUFFER_RGB; fbp->address = reported_addr((void *)(uintptr_t)fb.framebuffer_addr); fbp->width = fb.framebuffer_width; diff --git a/test/limine.c b/test/limine.c index 006a8f09..a181f9d2 100644 --- a/test/limine.c +++ b/test/limine.c @@ -153,6 +153,8 @@ FEAT_START e9_printf("Green mask shift: %d", fb->green_mask_shift); e9_printf("Blue mask size: %d", fb->blue_mask_size); e9_printf("Blue mask shift: %d", fb->blue_mask_shift); + e9_printf("EDID size: %d", fb->edid_size); + e9_printf("EDID at: %x", fb->edid); } FEAT_END