acrn-hypervisor/misc/config_tools
Junjie Mao 3e3120d342 board_inspector/extractors: extract CPU topology and models
This patch extracts information on CPU topology and capability and put them
under the `/acrn-config/processors` node in the board XML.

The added information can be divided into two categories.

1. The topology of CPUs like the following. Each thread (which is a leaf
   node in the topology) contains its addresses (i.e. CPU ID, APIC ID,
   x2APIC ID) and model identifiers (i.e. family, model, stepping IDs, core
   types and native model ID).

    <die id="0">
      <core id="0x0">
        <thread id="0x0">
          <cpu_id>0</cpu_id>
          <apic_id>0x0</apic_id>
          <x2apic_id>0x0</x2apic_id>
          <family_id>0x6</family_id>
          <model_id>0x9e</model_id>
          <stepping_id>0x9</stepping_id>
          <core_type></core_type>
          <native_model_id></native_model_id>
	</thread>
        <thread id="0x1"> ... </thread>
      </core>
      <core id="0x1">
        <thread id="0x2"> ... </thread>
        <thread id="0x3"> ... </thread>
      </core>
      <core id="0x2">
        <thread id="0x4"> ... </thread>
        <thread id="0x5"> ... </thread>
      </core>
      <core id="0x3">
        <thread id="0x6"> ... </thread>
        <thread id="0x7"> ... </thread>
      </core>
    </die>

2. The CPU models identified by the quadruple (family_id, model_id,
   core_type, native_model_id). Each model is described by its brandstring
   and capabilities, both of which are fetched from CPUID leaves.

    <model description="Intel(R) Core(TM) i7-7700 CPU @ 3.60GHz">
      <family_id>0x6</family_id>
      <model_id>0x9e</model_id>
      <core_type></core_type>
      <native_model_id></native_model_id>
      <capability id="sse3"/>
      <capability id="pclmulqdq"/>
      <capability id="dtes64"/>
      <capability id="monitor"/>
      ...
    </model>

Tracked-On: #5922
Signed-off-by: Junjie Mao <junjie.mao@intel.com>
2021-05-16 19:02:00 +08:00
..
acpi_gen config_tools: update condition for bootargs error check 2021-02-09 09:00:46 +08:00
acpi_template config_tools: add PTCT configs 2021-02-24 09:27:42 +08:00
board_config hv: mod: do not use explicit arch name when including headers 2021-05-08 11:15:46 +08:00
board_inspector board_inspector/extractors: extract CPU topology and models 2021-05-16 19:02:00 +08:00
config_app config-tools: change default industry kata vm id to 7 2021-04-20 10:28:11 +08:00
data config-tools: NVMX_ENABLED defaults to 'n' in all scenario config files 2021-05-13 16:16:30 +08:00
hv_config config_tools: update IVSHMEM_SHM_SIZE part for HV_RAM_SIZE calculation 2021-04-23 11:23:55 +08:00
kconfig acrn-config: Reorg config tool folder 2021-01-27 11:08:28 +08:00
launch_config config_tools: add psram config in launch config 2021-03-03 16:15:52 +08:00
library config-tools: refine append_node and add get_node 2021-05-07 14:39:08 +08:00
scenario_config hv: mod: do not use explicit arch name when including headers 2021-05-08 11:15:46 +08:00
schema config-tools: fix the regular expression of ivshmem region name 2021-05-14 10:50:38 +08:00
static_allocators config-tools: add pio static allocator 2021-05-07 14:39:08 +08:00
xforms config-tools: add NVMX_ENABLED feature and GUEST_FLAG_NVMX_ENABLED flag 2021-05-13 16:16:30 +08:00
README acrn-config: Reorg config tool folder 2021-01-27 11:08:28 +08:00

folder structure

	Kconfig		: Select working scenario and target board, configure ACRN hypervisor capabilities and features.
	target		: Get target board information under native Linux environment and generate board_info XML.
	board_config	: Parse board_info XML and scenario XML to generate board related configuration files under misc/acrn-config/xmls/board-xmls/ folder.
	scenario_config	: Parse board_info XML and scenario XML to generate scenario based VM configuration files under misc/acrn-config/xmls/config-xmls/$(BOARD)/ folder.
	launch_config	: Parse board_info XML, scenario XML and devicemodel param XML to generate launch script for post-launched vm under misc/acrn-config/xmls/config-xmls/$(BOARD)/ folder.
	library		: The folder stores shared software modules or libs for acrn-config offline tool.