Skip to content
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

Merged
merged 1 commit into from
Jul 12, 2024

Conversation

procub3r
Copy link
Contributor

This is the second post that outlines the progress on the UEFI GOP GSoC project, particulary from week four to six.

Copy link
Member

@StefanJum StefanJum left a 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.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
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
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
## 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
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- 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!
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
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
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
## 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
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
## Acknowledgement
## Acknowledgement

@StefanJum
Copy link
Member

@mogasergiu can you also take a look content-wise?

Copy link
Member

@mogasergiu mogasergiu left a 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!
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
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(?))
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- 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]>
@procub3r
Copy link
Contributor Author

@StefanJum @mogasergiu Made all the corrections!

Copy link
Member

@mogasergiu mogasergiu left a 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]

Copy link
Member

@StefanJum StefanJum left a 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]

@StefanJum StefanJum merged commit cd4bc10 into unikraft:main Jul 12, 2024
1 of 2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants