[PATCH v6 0/5] Fixmap support and MM cleanups

From: Anup Patel
Date: Wed Feb 13 2019 - 06:53:42 EST

This patchset does:
1. Moves MM related code from kernel/setup.c to mm/init.c
2. Implements compile-time fixed mappings

Using fixed mappings, we get earlyprints even without SBI calls.

For example, we can now use kernel parameter
to get early prints on QEMU virt machine without using SBI calls.

The patchset is tested on QEMU virt machine. It is based on
Linux-5.0-rc6 and can be found at riscv_fixmap_v6 branch of:

Changes since v5:
- Drop PATCH1. Instead move setup_initrd() to mm/init.c along
with setup_bootmem()

Changes since v4:
- Use free_reserved_area() instead of memblock_free() in PATCH6

Changes since v3:
- Re-worked and simplified PATCH6

Changes since v2:
- Fixed commit description of PATCH6
- Ensured commit description of all PATCH use upto 72
characters per line

Changes since v1:
- Use more characters per line in changelog of PATCH3
- Removed #ifndef __ASSEMBLY__ from PATCH5
- Use more characters per line in commets of PATCH5
- Added PATCH6 to implement keepinitrd kernel parameter

Anup Patel (5):
RISC-V: Setup init_mm before parse_early_param()
RISC-V: Move setup_bootmem() to mm/init.c
RISC-V: Move setup_vm() to mm/init.c
RISC-V: Implement compile-time fixed mappings
RISC-V: Free-up initrd in free_initrd_mem()

arch/riscv/Kconfig | 3 +
arch/riscv/include/asm/fixmap.h | 44 +++++++++
arch/riscv/include/asm/pgtable.h | 1 +
arch/riscv/kernel/setup.c | 130 +-------------------------
arch/riscv/mm/init.c | 156 ++++++++++++++++++++++++++++++-
5 files changed, 207 insertions(+), 127 deletions(-)
create mode 100644 arch/riscv/include/asm/fixmap.h