On 2017-11-17 22:54, Thomas Gleixner wrote:
> On Thu, 16 Nov 2017, Jan Kiszka wrote:
>   
>> +config JAILHOUSE_GUEST
>> +    bool "Jailhouse non-root cell support"
>> +    depends on PARAVIRT && X86_64
>> +    ---help---
>> +      This option allows to run Linux as guest in a Jailhouse non-root
>> +      cell. You can leave this option disabled if you only want to start
>> +      Jailhouse and run Linux afterwards in the root cell.
>> +
>> +      You likely also want to disable CONFIG_SUSPEND and CONFIG_SERIO to
>> +      avoid access to I/O resources that are usually not assigned to the
>> +      non-root cell.
> 
> That should be prevented programatically.

Theoretically, serio access could also be assigned to a non-root cell.
But excluding SUSPEND may make sense unconditionally, will check again.

> 
>> +#include <linux/kernel.h>
>> +#include <asm/cpu.h>
>> +#include <asm/hypervisor.h>
>> +#include <asm/setup.h>
>> +
>> +#define SETUP_JAILHOUSE             0x53484c4a /* "JLHS" */
>> +
>> +#define SETUP_REQUIRED_VERSION      1
>> +
>> +/*
>> + * The boot loader is passing platform information via this 
>> Jailhouse-specific
>> + * setup data structure.
>> + */
>> +struct jailhouse_setup_data {
>> +    struct setup_data header;
>> +    u16 version;
>> +    u16 compatible_version;
>> +    u16 pm_timer_address;
>> +    u16 num_cpus;
>> +    u64 pci_mmconfig_base;
>> +    u8 standard_ioapic;
>> +    u8 cpu_ids[255];
> 
> Shouldn't this structure and SETUP_JAILHOUSE be defined in a header file
> which can be exported to boot loaders?

Something like arch/x86/include/uapi/asm/jailhouse_setup.h?

Jan

Reply via email to