mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-29 19:21:31 -04:00
RISC-V updates for v5.3
- Hugepage support - "Image" header support for RISC-V kernel binaries, compatible with the current ARM64 "Image" header - Initial page table setup now split into two stages - CONFIG_SOC support (starting with SiFive SoCs) - Avoid reserving memory between RAM start and the kernel in setup_bootmem() - Enable high-res timers and dynamic tick in the RV64 defconfig - Remove long-deprecated gate area stubs - MAINTAINERS updates to switch to the newly-created shared RISC-V git tree, and to fix a get_maintainers.pl issue for patches involving SiFive E-mail addresses Also, one integration fix to resolve a build problem introduced during in the v5.3-rc1 merge window: - Fix build break after macro-to-function conversion in asm-generic/cacheflush.h -----BEGIN PGP SIGNATURE----- iQIzBAABCgAdFiEElRDoIDdEz9/svf2Kx4+xDQu9KksFAl0wwmkACgkQx4+xDQu9 KkvM0A//W641P2vQm/GBkPiqecAoYhRdGGXO7En3UiOSMe6qoDvhX9p09OtgGWa9 0XyEdj0RQK4UuE07EnHsaIAynYdbv/er1cskkdGRhs28FdJTP2z3OrfnjcRBPQtP mP1d4fwm+n0DTx+BzxihNu+CRSClqVSl58ruaGiN6ZttEuJsVyjM32OPQfQapxxW TWl1oHugXmWLg0QIB+fjNLY9om143di6pRJeBWAQRSDzjA1x+lkVxPy6pqUK3Hjb F/kio+0ornReAwoY8n9WXPijUQ/bK6uY5gj2XpCpbEVbfaWjlh/a9hN8OveDLzFP F2l9bdKaR9/w0B7tplE7MllVI91S3gJ/UscZJQNmVStjY9iI4gphT5Hji6eR5RH4 j15piAR9fY91iXH9XfJYIs69J1oYsaeDBUji8Sy7IdHwQwjdUjncVSF7IUakA6UJ okE1mq14ErZK+E2nl9OJvE89pep0R9GZDQ1kCFKQSw979CfnINDmfr5TsuiRdTU4 mdeYmSu+l6szknLRL/bzMATAAmx6KXAO409scs8KD/xNxOylWkeZ+P47MYpEsV56 G6d3GVZO5r+YafZYjF4aDHATI1Sh/aFPUHRrdqWSAlLJfAIMImV9Vf2UJhotzcTR XDWLZLqFqXB/Vl1xgkmtDAKdEEfu3iL9M9J6szYZdtI9fSiRWl4= =SVSp -----END PGP SIGNATURE----- Merge tag 'riscv/for-v5.3-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux Pull RISC-V updates from Paul Walmsley: - Hugepage support - "Image" header support for RISC-V kernel binaries, compatible with the current ARM64 "Image" header - Initial page table setup now split into two stages - CONFIG_SOC support (starting with SiFive SoCs) - Avoid reserving memory between RAM start and the kernel in setup_bootmem() - Enable high-res timers and dynamic tick in the RV64 defconfig - Remove long-deprecated gate area stubs - MAINTAINERS updates to switch to the newly-created shared RISC-V git tree, and to fix a get_maintainers.pl issue for patches involving SiFive E-mail addresses Also, one integration fix to resolve a build problem introduced during in the v5.3-rc1 merge window: - Fix build break after macro-to-function conversion in asm-generic/cacheflush.h * tag 'riscv/for-v5.3-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux: riscv: fix build break after macro-to-function conversion in generic cacheflush.h RISC-V: Add an Image header that boot loader can parse. RISC-V: Setup initial page tables in two stages riscv: remove free_initrd_mem riscv: ccache: Remove unused variable riscv: Introduce huge page support for 32/64bit kernel x86, arm64: Move ARCH_WANT_HUGE_PMD_SHARE config in arch/Kconfig RISC-V: Fix memory reservation in setup_bootmem() riscv: defconfig: enable SOC_SIFIVE riscv: select SiFive platform drivers with SOC_SIFIVE arch: riscv: add config option for building SiFive's SoC resource riscv: Remove gate area stubs MAINTAINERS: change the arch/riscv git tree to the new shared tree MAINTAINERS: don't automatically patches involving SiFive to the linux-riscv list RISC-V: defconfig: Enable NO_HZ_IDLE and HIGH_RES_TIMERS
This commit is contained in:
commit
0570bc8b7c
24 changed files with 620 additions and 121 deletions
50
Documentation/riscv/boot-image-header.txt
Normal file
50
Documentation/riscv/boot-image-header.txt
Normal file
|
|
@ -0,0 +1,50 @@
|
|||
Boot image header in RISC-V Linux
|
||||
=============================================
|
||||
|
||||
Author: Atish Patra <[email protected]>
|
||||
Date : 20 May 2019
|
||||
|
||||
This document only describes the boot image header details for RISC-V Linux.
|
||||
The complete booting guide will be available at Documentation/riscv/booting.txt.
|
||||
|
||||
The following 64-byte header is present in decompressed Linux kernel image.
|
||||
|
||||
u32 code0; /* Executable code */
|
||||
u32 code1; /* Executable code */
|
||||
u64 text_offset; /* Image load offset, little endian */
|
||||
u64 image_size; /* Effective Image size, little endian */
|
||||
u64 flags; /* kernel flags, little endian */
|
||||
u32 version; /* Version of this header */
|
||||
u32 res1 = 0; /* Reserved */
|
||||
u64 res2 = 0; /* Reserved */
|
||||
u64 magic = 0x5643534952; /* Magic number, little endian, "RISCV" */
|
||||
u32 res3; /* Reserved for additional RISC-V specific header */
|
||||
u32 res4; /* Reserved for PE COFF offset */
|
||||
|
||||
This header format is compliant with PE/COFF header and largely inspired from
|
||||
ARM64 header. Thus, both ARM64 & RISC-V header can be combined into one common
|
||||
header in future.
|
||||
|
||||
Notes:
|
||||
- This header can also be reused to support EFI stub for RISC-V in future. EFI
|
||||
specification needs PE/COFF image header in the beginning of the kernel image
|
||||
in order to load it as an EFI application. In order to support EFI stub,
|
||||
code0 should be replaced with "MZ" magic string and res5(at offset 0x3c) should
|
||||
point to the rest of the PE/COFF header.
|
||||
|
||||
- version field indicate header version number.
|
||||
Bits 0:15 - Minor version
|
||||
Bits 16:31 - Major version
|
||||
|
||||
This preserves compatibility across newer and older version of the header.
|
||||
The current version is defined as 0.1.
|
||||
|
||||
- res3 is reserved for offset to any other additional fields. This makes the
|
||||
header extendible in future. One example would be to accommodate ISA
|
||||
extension for RISC-V in future. For current version, it is set to be zero.
|
||||
|
||||
- In current header, the flag field has only one field.
|
||||
Bit 0: Kernel endianness. 1 if BE, 0 if LE.
|
||||
|
||||
- Image size is mandatory for boot loader to load kernel image. Booting will
|
||||
fail otherwise.
|
||||
Loading…
Reference in a new issue