@@ -53,13 +53,14 @@ static uint32_t create_zeropage_e820(struct zero_page *zp, const struct acrn_vm
53
53
static uint64_t create_zero_page (struct acrn_vm * vm )
54
54
{
55
55
struct zero_page * zeropage ;
56
- struct sw_linux * linux_info = & (vm -> sw .linux_info );
57
56
struct sw_kernel_info * sw_kernel = & (vm -> sw .kernel_info );
57
+ struct sw_module_info * bootargs_info = & (vm -> sw .bootargs_info );
58
+ struct sw_module_info * ramdisk_info = & (vm -> sw .ramdisk_info );
58
59
struct zero_page * hva ;
59
60
uint64_t gpa , addr ;
60
61
61
62
/* Set zeropage in Linux Guest RAM region just past boot args */
62
- gpa = (uint64_t )linux_info -> bootargs_load_addr + MEM_4K ;
63
+ gpa = (uint64_t )bootargs_info -> load_addr + MEM_4K ;
63
64
hva = (struct zero_page * )gpa2hva (vm , gpa );
64
65
zeropage = hva ;
65
66
@@ -73,16 +74,16 @@ static uint64_t create_zero_page(struct acrn_vm *vm)
73
74
& (hva -> hdr ), sizeof (hva -> hdr ));
74
75
75
76
/* See if kernel has a RAM disk */
76
- if (linux_info -> ramdisk_src_addr != NULL ) {
77
+ if (ramdisk_info -> src_addr != NULL ) {
77
78
/* Copy ramdisk load_addr and size in zeropage header structure
78
79
*/
79
- addr = (uint64_t )linux_info -> ramdisk_load_addr ;
80
+ addr = (uint64_t )ramdisk_info -> load_addr ;
80
81
zeropage -> hdr .ramdisk_addr = (uint32_t )addr ;
81
- zeropage -> hdr .ramdisk_size = (uint32_t )linux_info -> ramdisk_size ;
82
+ zeropage -> hdr .ramdisk_size = (uint32_t )ramdisk_info -> size ;
82
83
}
83
84
84
85
/* Copy bootargs load_addr in zeropage header structure */
85
- addr = (uint64_t )linux_info -> bootargs_load_addr ;
86
+ addr = (uint64_t )bootargs_info -> load_addr ;
86
87
zeropage -> hdr .bootargs_addr = (uint32_t )addr ;
87
88
88
89
/* set constant arguments in zero page */
@@ -103,8 +104,9 @@ int32_t direct_boot_sw_loader(struct acrn_vm *vm)
103
104
char dyn_bootargs [100 ] = {0 };
104
105
uint32_t kernel_entry_offset ;
105
106
struct zero_page * zeropage ;
106
- struct sw_linux * linux_info = & (vm -> sw .linux_info );
107
107
struct sw_kernel_info * sw_kernel = & (vm -> sw .kernel_info );
108
+ struct sw_module_info * bootargs_info = & (vm -> sw .bootargs_info );
109
+ struct sw_module_info * ramdisk_info = & (vm -> sw .ramdisk_info );
108
110
/* get primary vcpu */
109
111
struct acrn_vcpu * vcpu = vcpu_from_vid (vm , BOOT_CPU_ID );
110
112
const struct acrn_vm_config * vm_config = get_vm_config (vm -> vm_id );
@@ -147,9 +149,9 @@ int32_t direct_boot_sw_loader(struct acrn_vm *vm)
147
149
}
148
150
149
151
/* Copy Guest OS bootargs to its load location */
150
- (void )copy_to_gpa (vm , linux_info -> bootargs_src_addr ,
151
- (uint64_t )linux_info -> bootargs_load_addr ,
152
- (strnlen_s ((char * )linux_info -> bootargs_src_addr , MAX_BOOTARGS_SIZE ) + 1U ));
152
+ (void )copy_to_gpa (vm , bootargs_info -> src_addr ,
153
+ (uint64_t )bootargs_info -> load_addr ,
154
+ (strnlen_s ((char * )bootargs_info -> src_addr , MAX_BOOTARGS_SIZE ) + 1U ));
153
155
154
156
/* add "hugepagesz=1G hugepages=x" to cmdline for 1G hugepage
155
157
* reserving. Current strategy is "total_mem_size in Giga -
@@ -161,18 +163,18 @@ int32_t direct_boot_sw_loader(struct acrn_vm *vm)
161
163
reserving_1g_pages = (vm_config -> memory .size >> 30U ) - NUM_REMAIN_1G_PAGES ;
162
164
if (reserving_1g_pages > 0 ) {
163
165
snprintf (dyn_bootargs , 100U , " hugepagesz=1G hugepages=%lld" , reserving_1g_pages );
164
- (void )copy_to_gpa (vm , dyn_bootargs , ((uint64_t )linux_info -> bootargs_load_addr
165
- + linux_info -> bootargs_size ),
166
+ (void )copy_to_gpa (vm , dyn_bootargs , ((uint64_t )bootargs_info -> load_addr
167
+ + bootargs_info -> size ),
166
168
(strnlen_s (dyn_bootargs , 99U ) + 1U ));
167
169
}
168
170
}
169
171
170
172
/* Check if a RAM disk is present with Linux guest */
171
- if (linux_info -> ramdisk_src_addr != NULL ) {
173
+ if (ramdisk_info -> src_addr != NULL ) {
172
174
/* Copy RAM disk to its load location */
173
- (void )copy_to_gpa (vm , linux_info -> ramdisk_src_addr ,
174
- (uint64_t )linux_info -> ramdisk_load_addr ,
175
- linux_info -> ramdisk_size );
175
+ (void )copy_to_gpa (vm , ramdisk_info -> src_addr ,
176
+ (uint64_t )ramdisk_info -> load_addr ,
177
+ ramdisk_info -> size );
176
178
}
177
179
178
180
/* Create Zeropage and copy Physical Base Address of Zeropage
0 commit comments