[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
"earlycon=uart8250,mmio,0x10000000"
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:
https://github.com/avpatel/linux.git.

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

--
2.17.1