x86/64: remove Multiboot header and entry point

The x86-64 kernel expects to be started in 64-bit long mode as of commit
7ed9ea8f858a ("arch: x86: Switch to 64-bit entry"), which works when the
kernel is loaded as ELF by crosvm.

However, the 64-bit kernel still contains a Multiboot header, and a
Multiboot-compliant loader would start the kernel in 32-bit protected
mode, which won't work since the 32-to-64 transition code was removed as
part of the previously mentioned commit. This doesn't matter in practice
currently for Trusty, but in order to avoid confusion and simplify the
entry point code, this change removes the Multiboot header and related
code, leaving only the 64-bit entry point at _start.

This means that the guest kernel currently has no way to determine the
memory map or total memory size, but this is no different than the
previous status quo, since crosvm did not provide Multiboot info to the
loaded guest kernel.

Bug: 372755978
Test: Build x86-64 lk.elf and execute it with crosvm
Change-Id: I893ac4aa766f21e8d99baa94f5223254530bed7b
1 file changed
tree: e897a4bf4250ea432dfe064e01b303af053e9c17
  1. app/
  2. arch/
  3. dev/
  4. external/
  5. hosttests/
  6. include/
  7. kernel/
  8. lib/
  9. make/
  10. platform/
  11. target/
  12. tools/
  13. top/
  14. .clang-format
  15. .gitignore
  16. Android.bp
  17. build-config-kerneltests
  18. engine.mk
  19. kerneltests-inc.mk
  20. LICENSE
  21. lk_inc.mk.example
  22. makefile
  23. PREUPLOAD.cfg
  24. README.md
  25. rustfmt.toml
README.md

LK

The LK embedded kernel. An SMP-aware kernel designed for small systems.

See https://github.com/littlekernel/lk for the latest version.

See https://github.com/littlekernel/lk/wiki for documentation.

Builds

Build Status

To build and test for ARM on linux

  1. install or build qemu. v2.4 and above is recommended.
  2. install gcc for embedded arm (see note 1)
  3. run scripts/do-qemuarm (from the lk directory)
  4. you should see ‘welcome to lk/MP’

This will get you a interactive prompt into LK which is running in qemu arm machine ‘virt’ emulation. type ‘help’ for commands.

note 1: for ubuntu: sudo apt-get install gcc-arm-none-eabi or fetch a prebuilt toolchain from http://newos.org/toolchains/arm-eabi-5.3.0-Linux-x86_64.tar.xz