[roll] Roll fuchsia [kernel][x86][phys] Add linuxbiboot_executable()

This implements a "fat binary" scheme for Linux/x86 "bzImage"
format compatible bootable images.  This combines the existing
support for a "linuxboot" phys_executable(), which runs phys32
(x86-32) code and can be booted in 16-bit or 32-bit mode, but not
64-bit mode; and the support for a "linuxboot64" phys_executable(),
which runs phys (x86-64) code and must be booted in 64-bit mode.

The combination is called a "linuxbiboot" phys_executable(), and in
fact compiles the same program twice, once as kernel.phys32 and once
as kernel.phys (64-bit).  The latter is packed as unused data in the
former such that the whole image is compatible with Linux/x86 boot
loaders using 16-bit, 32-bit, or 64-bit entry paths.  If the boot
loader chooses the 64-bit entry path, the kernel.phys program runs.
If it chooses 16-bit or 32-bit paths, the kernel.phys32 program runs.

Original-Bug: 335547883
Original-Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/1037955
Original-Revision: c8186763abb66f9b3ab1833e2a372e1cd9261199
GitOrigin-RevId: 0162c63e83325a24bf7df5a3c08c0526b005f628
Change-Id: I4ded91777f0ea0d584cc9791fbb74cb16c30de11
1 file changed
tree: 127995d75da217fa43e76f4caa410dcc26ec6fd9
  1. ctf/
  2. git-hooks/
  3. infra/
  4. third_party/
  5. cts
  6. firmware
  7. flower
  8. jiri.lock
  9. MILESTONE
  10. minimal
  11. prebuilts
  12. README.md
  13. stem
  14. test_durations
  15. toolchain
README.md

Integration

This repository contains Fuchsia's Global Integration manifest files.

Making changes

All changes should be made to the internal version of this repository. Our infrastructure automatically updates this version when the internal one changes.

Currently all changes must be made by a Google employee. Non-Google employees wishing to make a change can ask for assistance via the IRC channel #fuchsia on Freenode.

Obtaining the source

First install Jiri.

Next run:

$ jiri init
$ jiri import minimal https://fuchsia.googlesource.com/integration
$ jiri update

Third party

Third party projects should have their own subdirectory in ./third_party.