Permalink
Browse files

Got corebootPkg to boot

It reuses more Ovmf libraries than is good for its health or mine,
it has no idea about coreboot and its tables yet.
It can't store "fault tolerant" (ie. non-volatile) variables.

The entry point is still 0x64 bytes off for unknown reasons, but
that luckily doesn't matter since 0x32 times 0x00 0x00 are just the
right instruction for x86 to survive.

It's half blind since I have no GOP driver - serial console works.

In short, it has tons of warts. Tons of places that can be improved.
Many things left to do.

But it boots into EFI Shell. Let's ship it.

build instructions Tiano side:
  . edksetup.sh
  build -a IA32 -p corebootPkg/corebootPkgIa32.dsc

build instructions coreboot side:
  build emulator/qemu-x86 image with 2MB and no payload
  cbfstool coreboot.rom add-flat-binary \
    -f edk2/Build/corebootIa32/DEBUG_UNIXGCC/FV/COREBOOT.fd \
    -n fallback/payload -l 0x800000 -e 0x800400 -c lzma

0x800000 is the location (see corebootPkgIa32.fdf)
0x800400 is the entry point (you have to believe me on that one)

Signed-off-by: Patrick Georgi <patrick@georgi-clan.de>
  • Loading branch information...
1 parent f2cbe09 commit d53b201dcaf2257c0c3f7827cab9d83f05a9e223 @pgeorgi committed Feb 2, 2013
Showing with 83 additions and 18,984 deletions.
  1. +0 −188 corebootPkg/Contributions.txt
  2. +0 −960 corebootPkg/EmuVariableFvbRuntimeDxe/Fvb.c
  3. +0 −140 corebootPkg/EmuVariableFvbRuntimeDxe/Fvb.h
  4. +0 −76 corebootPkg/EmuVariableFvbRuntimeDxe/Fvb.inf
  5. +0 −42 corebootPkg/Include/Guid/XenInfo.h
  6. +0 −164 corebootPkg/Include/IndustryStandard/LinuxBzimage.h
  7. +0 −131 corebootPkg/Include/IndustryStandard/Virtio.h
  8. +0 −80 corebootPkg/Include/IndustryStandard/VirtioBlk.h
  9. +0 −100 corebootPkg/Include/IndustryStandard/VirtioScsi.h
  10. +0 −211 corebootPkg/Include/Library/LoadLinuxLib.h
  11. +0 −51 corebootPkg/Include/Library/NvVarsFileLib.h
  12. +0 −87 corebootPkg/Include/Library/PlatformFvbLib.h
  13. +0 −197 corebootPkg/Include/Library/QemuFwCfgLib.h
  14. +0 −229 corebootPkg/Include/Library/SerializeVariablesLib.h
  15. +0 −251 corebootPkg/Include/Library/VirtioLib.h
  16. +0 −50 corebootPkg/Include/Protocol/BlockMmio.h
  17. +0 −86 corebootPkg/Library/PlatformBdsLib/BdsPlatform.c
  18. +0 −1 corebootPkg/Library/PlatformBdsLib/BdsPlatform.h
  19. +1 −8 corebootPkg/Library/PlatformBdsLib/PlatformBdsLib.inf
  20. +0 −1,043 corebootPkg/Library/PlatformBdsLib/QemuBootOrder.c
  21. +0 −53 corebootPkg/Library/PlatformBdsLib/QemuBootOrder.h
  22. +0 −164 corebootPkg/Library/PlatformBdsLib/QemuKernel.c
  23. +0 −75 corebootPkg/OvmfPkg.dec
  24. +0 −542 corebootPkg/OvmfPkgIa32X64.dsc
  25. +0 −405 corebootPkg/OvmfPkgIa32X64.fdf
  26. +5 −5 corebootPkg/PlatformPei/Fv.c
  27. +1 −1 corebootPkg/PlatformPei/MemDetect.c
  28. +0 −34 corebootPkg/PlatformPei/Platform.c
  29. +0 −5 corebootPkg/PlatformPei/Platform.h
  30. +3 −6 corebootPkg/PlatformPei/PlatformPei.inf
  31. +0 −144 corebootPkg/PlatformPei/Xen.c
  32. +0 −212 corebootPkg/QemuVideoDxe/ComponentName.c
  33. +0 −949 corebootPkg/QemuVideoDxe/Driver.c
  34. +0 −21 corebootPkg/QemuVideoDxe/DriverSupportedEfiVersion.c
  35. +0 −375 corebootPkg/QemuVideoDxe/Gop.c
  36. +0 −255 corebootPkg/QemuVideoDxe/Initialize.c
  37. +0 −499 corebootPkg/QemuVideoDxe/Qemu.h
  38. +0 −65 corebootPkg/QemuVideoDxe/QemuVideoDxe.inf
  39. +0 −137 corebootPkg/README
  40. +1 −1 corebootPkg/Sec/Ia32/SecEntry.S
  41. +4 −20 corebootPkg/Sec/SecMain.c
  42. +4 −0 corebootPkg/Sec/SecMain.inf
  43. +1 −1 corebootPkg/Sec/X64/SecEntry.S
  44. +0 −495 corebootPkg/SecureBootConfigDxe/SecureBootConfig.vfr
  45. +0 −1,537 corebootPkg/SecureBootConfigDxe/SecureBootConfigDevicePath.c
  46. +0 −133 corebootPkg/SecureBootConfigDxe/SecureBootConfigDriver.c
  47. +0 −105 corebootPkg/SecureBootConfigDxe/SecureBootConfigDxe.inf
  48. +0 −1,227 corebootPkg/SecureBootConfigDxe/SecureBootConfigFileExplorer.c
  49. +0 −2,804 corebootPkg/SecureBootConfigDxe/SecureBootConfigImpl.c
  50. +0 −614 corebootPkg/SecureBootConfigDxe/SecureBootConfigImpl.h
  51. +0 −334 corebootPkg/SecureBootConfigDxe/SecureBootConfigMisc.c
  52. +0 −118 corebootPkg/SecureBootConfigDxe/SecureBootConfigNvData.h
  53. BIN corebootPkg/SecureBootConfigDxe/SecureBootConfigStrings.uni
  54. +0 −1,089 corebootPkg/VirtioBlkDxe/VirtioBlk.c
  55. +0 −298 corebootPkg/VirtioBlkDxe/VirtioBlk.h
  56. +0 −42 corebootPkg/VirtioBlkDxe/VirtioBlk.inf
  57. +0 −1,264 corebootPkg/VirtioScsiDxe/VirtioScsi.c
  58. +0 −209 corebootPkg/VirtioScsiDxe/VirtioScsi.h
  59. +0 −47 corebootPkg/VirtioScsiDxe/VirtioScsi.inf
  60. +0 −232 corebootPkg/build.sh
  61. +27 −0 corebootPkg/corebootPkg.dec
  62. +26 −47 corebootPkg/{OvmfPkgIa32.dsc → corebootPkgIa32.dsc}
  63. +10 −85 corebootPkg/{OvmfPkgIa32.fdf → corebootPkgIa32.fdf}
  64. +0 −240 corebootPkg/create-release.py
@@ -1,188 +0,0 @@
-
-======================
-= Code Contributions =
-======================
-
-To make a contribution to a TianoCore project, follow these steps.
-1. Create a change description in the format specified below to
- use in the source control commit log.
-2. Your commit message must include your "Signed-off-by" signature,
- and "Contributed-under" message.
-3. Your "Contributed-under" message explicitly states that the
- contribution is made under the terms of the specified
- contribution agreement. Your "Contributed-under" message
- must include the name of contribution agreement and version.
- For example: Contributed-under: TianoCore Contribution Agreement 1.0
- The "TianoCore Contribution Agreement" is included below in
- this document.
-4. Submit your code to the TianoCore project using the process
- that the project documents on its web page. If the process is
- not documented, then submit the code on development email list
- for the project.
-
-=======================================
-= Change Description / Commit Message =
-=======================================
-
-Your change description should use the standard format for a
-commit message, and must include your "Signed-off-by" signature
-and the "Contributed-under" message.
-
-== Sample Change Description / Commit Message =
-
-=== Definitions for sample change description ===
-
-* "CodeModule" is a short idenfier for the affected code. For
- example MdePkg, or MdeModulePkg UsbBusDxe.
-* "Brief-single-line-summary" is a short summary of the change.
-* The entire first line should be less than ~70 characters.
-* "Full-commit-message" a verbose multiple line comment describing
- the change. Each line should be less than ~70 characters.
-* "Contributed-under" explicitely states that the contribution is
- made under the terms of the contribtion agreement. This
- agreement is included below in this document.
-* "Signed-off-by" is the contributor's signature identifying them
- by their real/legal name and their email address.
-
-=== Start of sample change description / commit message ===
-CodeModule: Brief-single-line-summary
-
-Full-commit-message
-
-Contributed-under: TianoCore Contribution Agreement 1.0
-Signed-off-by: Contributor Name <contributor@email.server>
-=== End of sample change description / commit message ===
-
-========================================
-= TianoCore Contribution Agreement 1.0 =
-========================================
-
-INTEL CORPORATION ("INTEL") MAKES AVAILABLE SOFTWARE, DOCUMENTATION,
-INFORMATION AND/OR OTHER MATERIALS FOR USE IN THE TIANOCORE OPEN SOURCE
-PROJECT (COLLECTIVELY "CONTENT"). USE OF THE CONTENT IS GOVERNED BY THE
-TERMS AND CONDITIONS OF THIS AGREEMENT BETWEEN YOU AND INTEL AND/OR THE
-TERMS AND CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR
-REFERENCED BELOW. BY USING THE CONTENT, YOU AGREE THAT YOUR USE OF THE
-CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS
-OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED
-BELOW. IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS
-AGREEMENT AND THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE
-AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT
-USE THE CONTENT.
-
-Unless otherwise indicated, all Content made available on the TianoCore
-site is provided to you under the terms and conditions of the BSD
-License ("BSD"). A copy of the BSD License is available at
-http://opensource.org/licenses/bsd-license.php
-or when applicable, in the associated License.txt file.
-
-Certain other content may be made available under other licenses as
-indicated in or with such Content. (For example, in a License.txt file.)
-
-You accept and agree to the following terms and conditions for Your
-present and future Contributions submitted to TianoCore site. Except
-for the license granted to Intel hereunder, You reserve all right,
-title, and interest in and to Your Contributions.
-
-== SECTION 1: Definitions ==
-* "You" or "Contributor" shall mean the copyright owner or legal
- entity authorized by the copyright owner that is making a
- Contribution hereunder. All other entities that control, are
- controlled by, or are under common control with that entity are
- considered to be a single Contributor. For the purposes of this
- definition, "control" means (i) the power, direct or indirect, to
- cause the direction or management of such entity, whether by
- contract or otherwise, or (ii) ownership of fifty percent (50%)
- or more of the outstanding shares, or (iii) beneficial ownership
- of such entity.
-* "Contribution" shall mean any original work of authorship,
- including any modifications or additions to an existing work,
- that is intentionally submitted by You to the TinaoCore site for
- inclusion in, or documentation of, any of the Content. For the
- purposes of this definition, "submitted" means any form of
- electronic, verbal, or written communication sent to the
- TianoCore site or its representatives, including but not limited
- to communication on electronic mailing lists, source code
- control systems, and issue tracking systems that are managed by,
- or on behalf of, the TianoCore site for the purpose of
- discussing and improving the Content, but excluding
- communication that is conspicuously marked or otherwise
- designated in writing by You as "Not a Contribution."
-
-== SECTION 2: License for Contributions ==
-* Contributor hereby agrees that redistribution and use of the
- Contribution in source and binary forms, with or without
- modification, are permitted provided that the following
- conditions are met:
-** Redistributions of source code must retain the Contributor's
- copyright notice, this list of conditions and the following
- disclaimer.
-** Redistributions in binary form must reproduce the Contributor's
- copyright notice, this list of conditions and the following
- disclaimer in the documentation and/or other materials provided
- with the distribution.
-* Disclaimer. None of the names of Contributor, Intel, or the names
- of their respective contributors may be used to endorse or
- promote products derived from this software without specific
- prior written permission.
-* Contributor grants a license (with the right to sublicense) under
- claims of Contributor's patents that Contributor can license that
- are infringed by the Contribution (as delivered by Contributor) to
- make, use, distribute, sell, offer for sale, and import the
- Contribution and derivative works thereof solely to the minimum
- extent necessary for licensee to exercise the granted copyright
- license; this patent license applies solely to those portions of
- the Contribution that are unmodified. No hardware per se is
- licensed.
-* EXCEPT AS EXPRESSLY SET FORTH IN SECTION 3 BELOW, THE
- CONTRIBUTION IS PROVIDED BY THE CONTRIBUTOR "AS IS" AND ANY
- EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
- THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
- PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- CONTRIBUTOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THE
- CONTRIBUTION, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
- DAMAGE.
-
-== SECTION 3: Representations ==
-* You represent that You are legally entitled to grant the above
- license. If your employer(s) has rights to intellectual property
- that You create that includes Your Contributions, You represent
- that You have received permission to make Contributions on behalf
- of that employer, that Your employer has waived such rights for
- Your Contributions.
-* You represent that each of Your Contributions is Your original
- creation (see Section 4 for submissions on behalf of others).
- You represent that Your Contribution submissions include complete
- details of any third-party license or other restriction
- (including, but not limited to, related patents and trademarks)
- of which You are personally aware and which are associated with
- any part of Your Contributions.
-
-== SECTION 4: Third Party Contributions ==
-* Should You wish to submit work that is not Your original creation,
- You may submit it to TianoCore site separately from any
- Contribution, identifying the complete details of its source
- and of any license or other restriction (including, but not
- limited to, related patents, trademarks, and license agreements)
- of which You are personally aware, and conspicuously marking the
- work as "Submitted on behalf of a third-party: [named here]".
-
-== SECTION 5: Miscellaneous ==
-* Applicable Laws. Any claims arising under or relating to this
- Agreement shall be governed by the internal substantive laws of
- the State of Delaware or federal courts located in Delaware,
- without regard to principles of conflict of laws.
-* Language. This Agreement is in the English language only, which
- language shall be controlling in all respects, and all versions
- of this Agreement in any other language shall be for accommodation
- only and shall not be binding. All communications and notices made
- or given pursuant to this Agreement, and all documentation and
- support to be provided, unless otherwise noted, shall be in the
- English language.
-
Oops, something went wrong.

0 comments on commit d53b201

Please sign in to comment.