-
Notifications
You must be signed in to change notification settings - Fork 84
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
blog: Add GSoC'24 UEFI GOP, Part II post #441
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
See the inline comments.
|
||
The widely available and standardized [UEFI Graphics Output Protocol](https://uefi.org/specs/UEFI/2.10/12_Protocols_Console_Support.html#efi-graphics-output-protocol) (GOP) interface is an excellent alternative to VGA or serial port consoles for printing logs to the screen. | ||
|
||
This project aims to implement a UEFI GOP based console. For more information, check out [Part I](https://unikraft.org/blog/2024-06-18-gsoc-uefi-gop) of this series. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This project aims to implement a UEFI GOP based console. For more information, check out [Part I](https://unikraft.org/blog/2024-06-18-gsoc-uefi-gop) of this series. | |
This project aims to implement a UEFI GOP based console. | |
For more information, check out [Part I](https://unikraft.org/blog/2024-06-18-gsoc-uefi-gop) of this series. |
Use one line per sentence and one sentence per line
|
||
This project aims to implement a UEFI GOP based console. For more information, check out [Part I](https://unikraft.org/blog/2024-06-18-gsoc-uefi-gop) of this series. | ||
|
||
## Progress |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
## Progress | |
## Progress | |
This project aims to implement a UEFI GOP based console. For more information, check out [Part I](https://unikraft.org/blog/2024-06-18-gsoc-uefi-gop) of this series. | ||
|
||
## Progress | ||
- Using a placeholder [font](https://github.com/dhepper/font8x8), it is now possible to print null-terminated strings to the screens |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
- Using a placeholder [font](https://github.com/dhepper/font8x8), it is now possible to print null-terminated strings to the screens | |
- Using a placeholder [font](https://github.com/dhepper/font8x8), it is now possible to print null-terminated strings to the screens. | |
src="/images/uefi-gop-after-scrolling.png" | ||
/> | ||
|
||
Right now, scrolling moves all the framebuffer data in place. Reads and writes in framebuffer memory are slower because the video adapter driver actually syncs the framebuffer with the screen. This needs to be optimized! |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Right now, scrolling moves all the framebuffer data in place. Reads and writes in framebuffer memory are slower because the video adapter driver actually syncs the framebuffer with the screen. This needs to be optimized! | |
Right now, scrolling moves all the framebuffer data in place. | |
Reads and writes in framebuffer memory are slower because the video adapter driver actually syncs the framebuffer with the screen. | |
This needs to be optimized! |
Use one line per sentence and one sentence per line
|
||
Right now, scrolling moves all the framebuffer data in place. Reads and writes in framebuffer memory are slower because the video adapter driver actually syncs the framebuffer with the screen. This needs to be optimized! | ||
|
||
## Next Steps |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
## Next Steps | |
## Next Steps | |
- Optimize scrolling (by maintaining an additional buffer(?)) | ||
- Look into [this PR](https://github.com/unikraft/unikraft/pull/1464), which adds a generic console interface. | ||
|
||
## Acknowledgement |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
## Acknowledgement | |
## Acknowledgement | |
@mogasergiu can you also take a look content-wise? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good. Nice progress! A couple of minor comments.
src="/images/uefi-gop-after-scrolling.png" | ||
/> | ||
|
||
Right now, scrolling moves all the framebuffer data in place. Reads and writes in framebuffer memory are slower because the video adapter driver actually syncs the framebuffer with the screen. This needs to be optimized! |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Right now, scrolling moves all the framebuffer data in place. Reads and writes in framebuffer memory are slower because the video adapter driver actually syncs the framebuffer with the screen. This needs to be optimized! | |
Right now, scrolling moves all the framebuffer data in place. Reads and writes in framebuffer memory are slower because the video adapter actually syncs the framebuffer with the screen. This needs to be optimized! |
|
||
## Next Steps | ||
- Finalize a font! | ||
- Optimize scrolling (by maintaining an additional buffer(?)) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
- Optimize scrolling (by maintaining an additional buffer(?)) | |
- Optimize scrolling (by maintaining an additional buffer) |
Yes we should use double buffering :). Side note, I noticed that in your PR you memcpy
for scrolling (unless I misread that). Try to replace that with a memmove. :)
This is the second post that outlines the progress on the UEFI GOP GSoC project, particulary from week four to six. Signed-off-by: procub3r <[email protected]>
@StefanJum @mogasergiu Made all the corrections! |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Reviewed-by: Sergiu Moga [email protected]
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Reviewed-by: Stefan Jumarea [email protected]
Approved-by: Stefan Jumarea [email protected]
This is the second post that outlines the progress on the UEFI GOP GSoC project, particulary from week four to six.