This series implements - detection of installed physical memory - setup of the physical allocator - setup of the MMU / page tables / DAT - setup of the virtual allocator The CPU now runs with DAT enabled. I added a small test to make sure malloc() indeed works and uses virtual adresses. Also, the sieve test is added. While at it, fix the TEST BLOCK test on newer compilers. Tested with upsteam QEMU TCG and KVM. However, to pass under TCG a fix is necessary ("[PATCH v1] s390x/tcg: fix disabling/enabling DAT"). v2 -> v3: - split up configure_dat() to make use of two functions extract_psw_mask() and load_psw_mask(), it is now much cleaner and we might need these functions in the future. - Minor cleanups / comment fixes David Hildenbrand (11): s390x: fix TEST BLOCK tests s390x: use highest addresses for PGM_ADDRESSING errors s390x: set initital stack pointer to stackptr, not stacktop s390x: add missing sclp definitions from QEMU s390x: rename sclp_setup() to sclp_ascii_setup() s390x: detect installed memory s390x: initialize the physical allocator s390x: add vmalloc support s390x: enable DAT in PGM interrupt handler s390x: add test for (v)malloc s390x: add sieve test lib/s390x/asm/arch_def.h | 58 ++++++++++++ lib/s390x/asm/interrupt.h | 1 + lib/s390x/asm/page.h | 24 +++++ lib/s390x/asm/pgtable.h | 224 ++++++++++++++++++++++++++++++++++++++++++++++ lib/s390x/interrupt.c | 11 +++ lib/s390x/io.c | 3 +- lib/s390x/mmu.c | 108 ++++++++++++++++++++++ lib/s390x/sclp-ascii.c | 6 +- lib/s390x/sclp.c | 72 +++++++++++++++ lib/s390x/sclp.h | 112 ++++++++++++++++++++++- s390x/Makefile | 7 ++ s390x/cstart64.S | 2 +- s390x/intercept.c | 14 +-- s390x/selftest.c | 31 ++++++- s390x/sieve.c | 59 ++++++++++++ s390x/unittests.cfg | 6 ++ 16 files changed, 723 insertions(+), 15 deletions(-) create mode 100644 lib/s390x/asm/pgtable.h create mode 100644 lib/s390x/mmu.c create mode 100644 lib/s390x/sclp.c create mode 100644 s390x/sieve.c -- 2.14.3