Branch: refs/heads/next
  Home:   https://github.com/siemens/jailhouse
  Commit: 43b1a38ade21abbbf3cce72e039967c010e0cc09
      
https://github.com/siemens/jailhouse/commit/43b1a38ade21abbbf3cce72e039967c010e0cc09
  Author: Ralf Ramsauer <[email protected]>
  Date:   2019-06-14 (Fri, 14 Jun 2019)

  Changed paths:
    M inmates/lib/x86/header-32.S
    M inmates/lib/x86/header.S
    M inmates/lib/x86/include/inmate.h
    M inmates/lib/x86/setup.c
    M inmates/lib/x86/smp.c

  Log Message:
  -----------
  inmates: x86: use a valid stack for secondary CPUs

Woops -- we shared the stack across CPUs.

To fix this, let the CPU consume the stack pointer held by 'stack'. In case of
the parallel cell startup, only the primary CPU will consume the stack.

After setting the stack, the consumer will zero the variable to signalise that
it's ready (cf. ap_entry).

Even if we don't support SMP for 32 bit inmates, align 32 bit header code, as
well as 64 bit header code.

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


  Commit: 28c9c6114a64a389a6456054c79a4e07d2f563f0
      
https://github.com/siemens/jailhouse/commit/28c9c6114a64a389a6456054c79a4e07d2f563f0
  Author: Ralf Ramsauer <[email protected]>
  Date:   2019-06-14 (Fri, 14 Jun 2019)

  Changed paths:
    M inmates/lib/x86/Makefile
    A inmates/lib/x86/header-64.S
    R inmates/lib/x86/header.S

  Log Message:
  -----------
  inmates: x86: rename header.S to header-64.S

The 32-bit header is called header-32.S, so let's name the 64-bit header
header-64.S.

With this, we can also simplify and tune the Makefile a bit. This makes
life easier, if we later add further 32/64-bit specific targets.

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


  Commit: 7dd41b56131331339ef7ec873dd51895dadfc147
      
https://github.com/siemens/jailhouse/commit/7dd41b56131331339ef7ec873dd51895dadfc147
  Author: Ralf Ramsauer <[email protected]>
  Date:   2019-06-14 (Fri, 14 Jun 2019)

  Changed paths:
    M inmates/lib/x86/Makefile
    M inmates/lib/x86/header-32.S
    M inmates/lib/x86/header-64.S
    A inmates/lib/x86/header-common.S
    M inmates/lib/x86/inmate.lds

  Log Message:
  -----------
  inmates: x86: introduce a common assembler entry point

Early startup code is equivalent for both, 32 and 64 bit, so let's
consolidate them.

This patch introduces an empty start32 hook that is empty at the moment.
Later, we will use it to enable SSE, which, again, will be the same code
for 32 and 64 bit.

There's only one drawback: We need __reset_entry at 0x0, but it's now up
to the linker's mood which files it places there first. Enforce to
linker to always place __reset_entry to 0x0 by introducing the
subsection .boot.reset_entry.

Additionally, tweak the Makefile a bit.

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


  Commit: 7079c583fbbe4220769a14459785fb108739fa44
      
https://github.com/siemens/jailhouse/commit/7079c583fbbe4220769a14459785fb108739fa44
  Author: Ralf Ramsauer <[email protected]>
  Date:   2019-06-14 (Fri, 14 Jun 2019)

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

  Log Message:
  -----------
  inmates: Add string.h

We will need it at another spot, let's share definitions.

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


  Commit: b74b055f8e48c927b49157488fb9d3cc11d3a3d0
      
https://github.com/siemens/jailhouse/commit/b74b055f8e48c927b49157488fb9d3cc11d3a3d0
  Author: Ralf Ramsauer <[email protected]>
  Date:   2019-06-14 (Fri, 14 Jun 2019)

  Changed paths:
    M inmates/lib/x86/include/asm/regs.h
    M inmates/lib/x86/mem.c

  Log Message:
  -----------
  inmates: x86: Add acessors for different system registers

Add R/W accessors for CR3, CR4, XCR0 and implement CPUID.

And use these acessors where it's already possible.

Signed-off-by: Ralf Ramsauer <[email protected]>
[Jan: adjusted indentions of READ_CR]
Signed-off-by: Jan Kiszka <[email protected]>


  Commit: 9fa3e85ba24d5f6006a38b77a652b7d49404936d
      
https://github.com/siemens/jailhouse/commit/9fa3e85ba24d5f6006a38b77a652b7d49404936d
  Author: Ralf Ramsauer <[email protected]>
  Date:   2019-06-14 (Fri, 14 Jun 2019)

  Changed paths:
    M inmates/lib/x86/Makefile
    M inmates/lib/x86/header-32.S
    M inmates/lib/x86/header-64.S
    M inmates/lib/x86/include/asm/regs.h

  Log Message:
  -----------
  inmates: x86: discover and activate SSE/AVX

Recent gcc versions emit SSE instructions for 32-bit inmates (e.g., in
hex2str or cmdline_parse routines). Inmates aren't able to execute those
instructions as SSE is not enabled and will crash.

Enabling SSE is the same code for 32 and 64 bit x86 and straight
forward: Lookup SSE/AVX availability via cpuid and set according bits in
control registers.

Simply call the routine before calling the actual C entry point.

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


  Commit: fe27d3c2c81ba54699af3ce32c1c4ebd0bc4bb22
      
https://github.com/siemens/jailhouse/commit/fe27d3c2c81ba54699af3ce32c1c4ebd0bc4bb22
  Author: Ralf Ramsauer <[email protected]>
  Date:   2019-06-14 (Fri, 14 Jun 2019)

  Changed paths:
    A inmates/lib/include/test.h
    A inmates/lib/test.c
    M inmates/lib/x86/Makefile
    M inmates/tests/x86/mmio-access-32.c
    M inmates/tests/x86/mmio-access.c

  Log Message:
  -----------
  inmates: introduce test.h and test.c

MMIO access tests use the same test pattern. Let's share the code.
Later, we will also reuse it for the SSE test.

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


  Commit: 89f09da9bf234f695b138bcf1d40c4de055ed68c
      
https://github.com/siemens/jailhouse/commit/89f09da9bf234f695b138bcf1d40c4de055ed68c
  Author: Ralf Ramsauer <[email protected]>
  Date:   2019-06-14 (Fri, 14 Jun 2019)

  Changed paths:
    M inmates/tests/x86/Makefile
    A inmates/tests/x86/sse-demo.c

  Log Message:
  -----------
  inmates: x86: Add SSE/AVX test inmate

Depending on availability, this inmates executes some SSE/AVX
instructions, compares the result against an expected result and exits.

Signed-off-by: Ralf Ramsauer <[email protected]>
[Jan: replaced source link for sse-demo-32.c with makefile rule]
Signed-off-by: Jan Kiszka <[email protected]>


Compare: 
https://github.com/siemens/jailhouse/compare/23766cddc2c5...89f09da9bf23

-- 
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].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jailhouse-dev/siemens/jailhouse/push/refs/heads/next/23766c-89f09d%40github.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to