• Alexander Gordeev's avatar
    s390/boot: Swap vmalloc and Lowcore/Real Memory Copy areas · c8aef260
    Alexander Gordeev authored
    This is a preparatory rework to allow uncoupling virtual
    and physical addresses spaces.
    
    Currently the order of virtual memory areas is (the lowcore
    and .amode31 section are skipped, as it is irrelevant):
    
    	identity mapping (the kernel is contained within)
    	vmemmap
    	vmalloc
    	modules
    	Absolute Lowcore
    	Real Memory Copy
    
    In the future the kernel will be mapped separately and placed
    to the end of the virtual address space, so the layout would
    turn like this:
    
    	identity mapping
    	vmemmap
    	vmalloc
    	modules
    	Absolute Lowcore
    	Real Memory Copy
    	kernel
    
    However, the distance between kernel and modules needs to be as
    little as possible, ideally - none. Thus, the Absolute Lowcore
    and Real Memory Copy areas would stay in the way and therefore
    need to be moved as well:
    
    	identity mapping
    	vmemmap
    	Absolute Lowcore
    	Real Memory Copy
    	vmalloc
    	modules
    	kernel
    
    To facilitate such layout swap the vmalloc and Absolute Lowcore
    together with Real Memory Copy areas. As result, the current
    layout turns into:
    
    	identity mapping (the kernel is contained within)
    	vmemmap
    	Absolute Lowcore
    	Real Memory Copy
    	vmalloc
    	modules
    
    This will allow to locate the kernel directly next to the
    modules once it gets mapped separately.
    Acked-by: default avatarHeiko Carstens <hca@linux.ibm.com>
    Signed-off-by: default avatarAlexander Gordeev <agordeev@linux.ibm.com>
    c8aef260
startup.c 14.9 KB