misc: refine the allocate logic of offline tool
The current code use VM number to calculate HV_RAM_SIZE, this is not match the HV logic. This patch use the max number of trusty VMs to calculate the size of sworld memory and assume 4M ram / VM to calculate the final ACRN ram size. Tracked-On: #6690 Signed-off-by: Chenli Wei <chenli.wei@intel.com> Reviewed-by: Junjie Mao <junjie.mao@intel.com>
This commit is contained in:
parent
4b6c782726
commit
7ae785a452
|
@ -45,7 +45,8 @@ MAX_VM_NUM = 16
|
|||
MAX_VUART_NUM = 8
|
||||
|
||||
HV_BASE_RAM_SIZE = 0x1400000
|
||||
VM_RAM_SIZE = 0x2800000
|
||||
VM_RAM_SIZE = 0x400000
|
||||
TRUSTY_RAM_SIZE = 0x1000000
|
||||
|
||||
class MultiItem():
|
||||
|
||||
|
|
|
@ -412,9 +412,9 @@ These settings can only be changed at build time.</xs:documentation>
|
|||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:element>
|
||||
<xs:element name="secure_world_support" type="Boolean" default="n" minOccurs="0">
|
||||
<xs:annotation acrn:views="">
|
||||
<xs:documentation>Specify secure world support for trusty OS.</xs:documentation>
|
||||
<xs:element name="secure_world_support" type="Boolean" default="n">
|
||||
<xs:annotation acrn:title="Enable secure world for running Trusty" acrn:views="advanced" acrn:applicable-vms="post-launched">
|
||||
<xs:documentation>Enable secure world for this VM to provide an isolated execution environment which is suitable for running Trusted Execution Environment (TEE) such as Trusty. This is typically enabled when the VM is designed to run Android OS, and disabled otherwise.</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element name="hide_mtrr_support" type="Boolean" default="n" minOccurs="0">
|
||||
|
|
|
@ -17,11 +17,9 @@ def fn(board_etree, scenario_etree, allocation_etree):
|
|||
# this dictonary mapped with 'address start':'mem range'
|
||||
ram_range = {}
|
||||
|
||||
vm_num = 0
|
||||
vm_list = scenario_etree.xpath("//vm")
|
||||
if vm_list is not None:
|
||||
vm_num = len(vm_list)
|
||||
hv_ram_size = common.HV_BASE_RAM_SIZE + common.VM_RAM_SIZE * vm_num
|
||||
max_vm_num = int(common.get_node(f"//hv/CAPACITIES/MAX_VM_NUM/text()", scenario_etree))
|
||||
max_trusty_vm = len(scenario_etree.xpath(f"//vm[./secure_world_support/text() = 'y']"))
|
||||
hv_ram_size = common.HV_BASE_RAM_SIZE + common.VM_RAM_SIZE * max_vm_num + max_trusty_vm * common.TRUSTY_RAM_SIZE
|
||||
ivshmem_list = scenario_etree.xpath("//IVSHMEM_SIZE/text()")
|
||||
total_shm_size = 0
|
||||
for ram_size in ivshmem_list:
|
||||
|
|
|
@ -57,6 +57,7 @@
|
|||
<xsl:value-of select="acrn:define('PRE_VM_NUM', count(vm[acrn:is-pre-launched-vm(load_order)]), 'U')" />
|
||||
<xsl:value-of select="acrn:define('SERVICE_VM_NUM', count(vm[acrn:is-service-vm(load_order)]), 'U')" />
|
||||
<xsl:value-of select="acrn:define('MAX_POST_VM_NUM', hv/CAPACITIES/MAX_VM_NUM - count(vm[acrn:is-pre-launched-vm(load_order)]) - count(vm[acrn:is-service-vm(load_order)]) , 'U')" />
|
||||
<xsl:value-of select="acrn:define('MAX_TRUSTY_VM_NUM', count(vm[./secure_world_support/text() = 'y']) , 'U')" />
|
||||
<xsl:value-of select="acrn:define('CONFIG_MAX_VM_NUM', hv/CAPACITIES/MAX_VM_NUM , 'U')" />
|
||||
</xsl:template>
|
||||
|
||||
|
|
Loading…
Reference in New Issue