-
Notifications
You must be signed in to change notification settings - Fork 2.1k
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
OpenNetworkBoot: Add PXE and HTTP(S) Boot support #562
base: master
Are you sure you want to change the base?
Conversation
d63bd2b
to
650f201
Compare
650f201
to
7819fb2
Compare
Rebased and updated to use new MdePkg IntrinsicLib location. Is there any progress reviewing or testing this? |
a25fbbb
to
0ea9019
Compare
Full https boot to recovery: https://www.youtube.com/watch?v=xo_Pb-3thS4 |
0ea9019
to
0c4bae0
Compare
@vit9696 @MikhailKrichanov - I have updated the PR so that OpenCore ships the three network stack drivers which are required only for PXE Boot (in addition to already shipping all the drivers required for HTTP(S) Boot). This includes the driver |
0c4bae0
to
c293fbf
Compare
To date I tested only PXE Boot (works fine in QEMU), which needs not only |
@vit9696 would also like you to add to OpenCore CI tests for PXE and HTTP(S) Boot as a separate pull request. |
I missed Rather similarly, the standard EDK II and audk builds of OvmfPkg include On the hardware side, a similar issue is that almost all real hardware already includes at least PXE boot ... unless it's using special, cut-down, firmware... - so again I never encountered this, as the relevant hardware drivers are almost always present on most normal machines. But ofc I agree it should be mentioned. Do you have any links to relevant h/ware device drivers? EDIT: Btw it's been successfully tested by a few other users - but I'm not sure anyone except me so far has tested HTTP(S) boot support! |
c293fbf
to
40a0748
Compare
@vit9696 @MikhailKrichanov - Hi, I added some text covering firmware and option ROMs: https://github.com/acidanthera/OpenCorePkg/tree/network-boot/Platform/OpenNetworkBoot#firmware-and-option-roms |
9ffbf8f
to
6ad77fa
Compare
|
6ad77fa
to
51089ad
Compare
I have added those links to the README: |
51089ad
to
fd7319b
Compare
fd7319b
to
026ce0b
Compare
This replaces #554, now that the previous two changes #552 #553 are merged.
I was surprised how much of network boot is done in the OVMF UI package. Hence needing to take (sometimes with small mods) several bits of that, in the files imported from EDK 2; and then needing to reimplement the rest of it, in the rest of this driver. Doing it that way means it works with existing network boot drivers, up to the top level of the network boot stack; and means it works, full stop, i.e. no need to try to work out from scratch the correct usage patterns for the lower level network libraries, which are very low level (e.g. you can't 'just' issue a GET or a POST in http, very far from it).
The three commits here are: 1. import three edk 2 files; 2. clean them down to just what I kept and modified; 3. everything else, so if you review just the third commit, it is much easier to see what I changed from the originals in BmBoot.c, BmBootDescription.c and TlsAuthConfigImpl.c.
As before, the biggest change for the rest of the project is switching to use the CryptoPkg intrinsics lib. Maybe that change per se could be discussed independent of reviewing the rest of this? (REFS: #555; acidanthera/audk#67; tianocore/edk2#6169 - based on these refs, I say a) we should use it, and b) we should leave it where it is (not move to MdePkg) for now.)EDIT: Now rebased and updated to use new MdePkg IntrinsicLib location.