Branch: refs/heads/next
  Home:   https://github.com/siemens/jailhouse
  Commit: 6963075b67fa9d01c674523a1d365407e8ca69ae
      
https://github.com/siemens/jailhouse/commit/6963075b67fa9d01c674523a1d365407e8ca69ae
  Author: Ralf Ramsauer <[email protected]>
  Date:   2018-05-27 (Sun, 27 May 2018)

  Changed paths:
    A inmates/lib/alloc.c
    M inmates/lib/arm-common/Makefile.lib
    M inmates/lib/inmate_common.h
    M inmates/lib/x86/Makefile
    M inmates/lib/x86/inmate.h
    M inmates/lib/x86/mem.c

  Log Message:
  -----------
  inmates: make alloc() a common library function

We later will use this function on ARM(64) for allocating page tables.

Signed-off-by: Ralf Ramsauer <[email protected]>
Signed-off-by: Jan Kiszka <[email protected]>


  Commit: 56067f05328e47c2b1f460c7d9213041f6e437de
      
https://github.com/siemens/jailhouse/commit/56067f05328e47c2b1f460c7d9213041f6e437de
  Author: Ralf Ramsauer <[email protected]>
  Date:   2018-05-27 (Sun, 27 May 2018)

  Changed paths:
    M inmates/lib/arm-common/Makefile.lib
    A inmates/lib/arm-common/setup.c
    M inmates/lib/inmate_common.h
    M inmates/lib/setup.c
    M inmates/lib/x86/Makefile
    A inmates/lib/x86/setup.c

  Log Message:
  -----------
  inmates: implement arch_init_early() routine

Later we will use this function to do architecture-dependent
initialisation. Like setting up the MMU on ARM(64).

Signed-off-by: Ralf Ramsauer <[email protected]>
Signed-off-by: Jan Kiszka <[email protected]>


  Commit: 56b5023a2065f24f90451dbd887ce997896f72f5
      
https://github.com/siemens/jailhouse/commit/56b5023a2065f24f90451dbd887ce997896f72f5
  Author: Ralf Ramsauer <[email protected]>
  Date:   2018-05-27 (Sun, 27 May 2018)

  Changed paths:
    M inmates/lib/arm-common/gic-v3.c
    A inmates/lib/arm-common/include/asm/sysregs_common.h
    M inmates/lib/arm/include/asm/sysregs.h
    M inmates/lib/arm64/include/asm/sysregs.h

  Log Message:
  -----------
  inmates: arm-common: introduce sysregs_common.h

Many sysregs are shared across arm and arm64. Introduce a common header
for shared definitions.

Signed-off-by: Ralf Ramsauer <[email protected]>
Signed-off-by: Jan Kiszka <[email protected]>


  Commit: ae33843132c1a1921e52fa1257e06ddf3e57d524
      
https://github.com/siemens/jailhouse/commit/ae33843132c1a1921e52fa1257e06ddf3e57d524
  Author: Ralf Ramsauer <[email protected]>
  Date:   2018-05-27 (Sun, 27 May 2018)

  Changed paths:
    M inmates/lib/arm-common/include/asm/sysregs_common.h

  Log Message:
  -----------
  inmates: arm-common: define more sysregs

Later we'll need more sysregs, define them now.

Signed-off-by: Ralf Ramsauer <[email protected]>
Signed-off-by: Jan Kiszka <[email protected]>


  Commit: 0fe5eed1395f4908ad86ae059042371f3d2e1f14
      
https://github.com/siemens/jailhouse/commit/0fe5eed1395f4908ad86ae059042371f3d2e1f14
  Author: Ralf Ramsauer <[email protected]>
  Date:   2018-05-27 (Sun, 27 May 2018)

  Changed paths:
    M inmates/lib/arm/include/asm/sysregs.h

  Log Message:
  -----------
  inmates: arm: define more sysregs

For implementing MMU support, we need access to:
  - SCTLR
  - TTBCR
  - TTBR
  - MAIR

Signed-off-by: Ralf Ramsauer <[email protected]>
Signed-off-by: Jan Kiszka <[email protected]>


  Commit: 849e04225856cd30bb2727a3c183e1b1703ceacd
      
https://github.com/siemens/jailhouse/commit/849e04225856cd30bb2727a3c183e1b1703ceacd
  Author: Ralf Ramsauer <[email protected]>
  Date:   2018-05-27 (Sun, 27 May 2018)

  Changed paths:
    M inmates/lib/arm64/include/asm/sysregs.h

  Log Message:
  -----------
  inmates: arm64: define more sysregs

Same for arm64, define system registers and settings that we will use
later.

Signed-off-by: Ralf Ramsauer <[email protected]>
Signed-off-by: Jan Kiszka <[email protected]>


  Commit: 1d7685415fed73ef50aa39815504aa58d5c225c7
      
https://github.com/siemens/jailhouse/commit/1d7685415fed73ef50aa39815504aa58d5c225c7
  Author: Ralf Ramsauer <[email protected]>
  Date:   2018-05-27 (Sun, 27 May 2018)

  Changed paths:
    M inmates/lib/inmate_common.h
    M inmates/lib/x86/inmate.h

  Log Message:
  -----------
  inmates: make map_range global

This declaration can get global once paging is supported on all
architectures.

Signed-off-by: Ralf Ramsauer <[email protected]>
Signed-off-by: Jan Kiszka <[email protected]>


  Commit: 82feaf6c0b4a174384b1d04bab5e5605fea7f5c7
      
https://github.com/siemens/jailhouse/commit/82feaf6c0b4a174384b1d04bab5e5605fea7f5c7
  Author: Ralf Ramsauer <[email protected]>
  Date:   2018-05-27 (Sun, 27 May 2018)

  Changed paths:
    M inmates/lib/arm/inmate.lds.S
    M inmates/lib/arm64/inmate.lds.S
    M inmates/lib/inmate_common.h

  Log Message:
  -----------
  inmates: arm: move calculation of CONFIG_INMATE_BASE to inmate_common.h

We need to id-remap our own inmate. Therefore it needs to know its own
base address. Currently, the base address is determined by
CONFIG_INMATE_BASE in config.h.

So far, only linker scripts used this definition. Now we need it for
both: the linker script and in the code. Move it to inmate_common.h

Signed-off-by: Ralf Ramsauer <[email protected]>
[Jan: indention tuning]
Signed-off-by: Jan Kiszka <[email protected]>


  Commit: cf91c4c3b9a5fdea7660d6520a738070b290df9f
      
https://github.com/siemens/jailhouse/commit/cf91c4c3b9a5fdea7660d6520a738070b290df9f
  Author: Ralf Ramsauer <[email protected]>
  Date:   2018-05-27 (Sun, 27 May 2018)

  Changed paths:
    M inmates/lib/arm-common/include/inmate.h
    M inmates/lib/arm-common/setup.c

  Log Message:
  -----------
  inmates: arm-common: implement common map_range routine

map_range() id-maps pages. Pages may either be uncached (e.g., MMIO) or
cached (e.g., RAM).

On arm and arm64, we only use two level paging. On both architectures,
we will enter level one, IOW we skip level zero on arm64. The first
level page table (the page directory) is allocated statically, the
second level page tables (page middle directores, which have 512
entries) will dynamically be allocated as needed.

As we only use level one and two, the paging granularity well be 2MiB
(HUGE_PAGE_SIZE), same as for x86.

Signed-off-by: Ralf Ramsauer <[email protected]>
Signed-off-by: Jan Kiszka <[email protected]>


  Commit: f2b9e1366ddc78983d9190474e58cd2d727baf14
      
https://github.com/siemens/jailhouse/commit/f2b9e1366ddc78983d9190474e58cd2d727baf14
  Author: Ralf Ramsauer <[email protected]>
  Date:   2018-05-27 (Sun, 27 May 2018)

  Changed paths:
    M inmates/tools/arm/linux-loader.c
    M inmates/tools/arm64/linux-loader.c

  Log Message:
  -----------
  inmates: tools: arm: linux-loader: disable mmu before starting

by implementing and calling an arch_disable_mmu routine.

Linux wants the MMU to be disabled. Disable it before handing control
over to Linux.

Signed-off-by: Ralf Ramsauer <[email protected]>
[Jan: explain why there is no cache flushing on ARM]
Signed-off-by: Jan Kiszka <[email protected]>


  Commit: 645b1ed2cde05674f32e4e7f68fbc96dc2c03bdb
      
https://github.com/siemens/jailhouse/commit/645b1ed2cde05674f32e4e7f68fbc96dc2c03bdb
  Author: Ralf Ramsauer <[email protected]>
  Date:   2018-05-27 (Sun, 27 May 2018)

  Changed paths:
    M inmates/lib/x86/Makefile.lib
    A inmates/lib/x86/include/inmate.h
    R inmates/lib/x86/inmate.h

  Log Message:
  -----------
  inmates: x86: introduce architecture specific include directory

Don't intermix sources and headers. Use an own include directory like on
all other architectures.

Signed-off-by: Ralf Ramsauer <[email protected]>
Signed-off-by: Jan Kiszka <[email protected]>


  Commit: 5adcc81beab8f0a6fffd81fb3a7593582334c800
      
https://github.com/siemens/jailhouse/commit/5adcc81beab8f0a6fffd81fb3a7593582334c800
  Author: Ralf Ramsauer <[email protected]>
  Date:   2018-05-27 (Sun, 27 May 2018)

  Changed paths:
    M inmates/lib/arm-common/gic-v2.c
    M inmates/lib/arm-common/gic-v3.c
    M inmates/lib/arm-common/printk.c
    M inmates/lib/arm-common/setup.c

  Log Message:
  -----------
  inmates: arm-common: add MMU support

Basically, the MMU on both ARM architectures work in the same way.

There are only slight differences in register naming and their content.
But the 'same' set of registers needs to be written. By abstracting
registers and their content to sysregs.h, we're now able to use the same
MMU driver code for both architectures.

Device drivers will ID-map the regions they are touching:
  - Base address of the inmate, length 0x10000 (results in 2MiB)
  - Communication Region, length 0x1000 (results in 2MiB)
  - UART, if existent, length 0x1000 (results in 2MiB)
  - GIC[CD|DR], length 0x1000 (results in 2MiB)

Signed-off-by: Ralf Ramsauer <[email protected]>
Signed-off-by: Jan Kiszka <[email protected]>


Compare: 
https://github.com/siemens/jailhouse/compare/d19b12063239...5adcc81beab8
      **NOTE:** This service been marked for deprecation: 
https://developer.github.com/changes/2018-04-25-github-services-deprecation/

      Functionality will be removed from GitHub.com on January 31st, 2019.

-- 
You received this message because you are subscribed to the Google Groups 
"Jailhouse" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to