@@ -195,7 +195,7 @@ where
195195 enable_write_protect_bit ( ) ;
196196
197197 let config = kernel. config ;
198- let kernel_slice_start = kernel. start_address as u64 ;
198+ let kernel_slice_start = PhysAddr :: new ( kernel. start_address as _ ) ;
199199 let kernel_slice_len = u64:: try_from ( kernel. len ) . unwrap ( ) ;
200200
201201 let ( kernel_image_offset, entry_point, tls_template) = load_kernel:: load_kernel (
@@ -402,7 +402,7 @@ where
402402
403403 kernel_slice_start,
404404 kernel_slice_len,
405- kernel_image_offset : kernel_image_offset . as_u64 ( ) ,
405+ kernel_image_offset,
406406
407407 ramdisk_slice_start,
408408 ramdisk_slice_len,
@@ -428,11 +428,11 @@ pub struct Mappings {
428428 pub tls_template : Option < TlsTemplate > ,
429429
430430 /// Start address of the kernel slice allocation in memory.
431- pub kernel_slice_start : u64 ,
431+ pub kernel_slice_start : PhysAddr ,
432432 /// Size of the kernel slice allocation in memory.
433433 pub kernel_slice_len : u64 ,
434- /// Start address of the kernel image relocated in memory.
435- pub kernel_image_offset : u64 ,
434+ /// Relocation offset of the kernel image in virtual memory.
435+ pub kernel_image_offset : VirtAddr ,
436436 pub ramdisk_slice_start : Option < VirtAddr > ,
437437 pub ramdisk_slice_len : u64 ,
438438}
@@ -547,9 +547,9 @@ where
547547 . map ( |addr| addr. as_u64 ( ) )
548548 . into ( ) ;
549549 info. ramdisk_len = mappings. ramdisk_slice_len ;
550- info. kernel_addr = mappings. kernel_slice_start as _ ;
550+ info. kernel_addr = mappings. kernel_slice_start . as_u64 ( ) ;
551551 info. kernel_len = mappings. kernel_slice_len as _ ;
552- info. kernel_image_offset = mappings. kernel_image_offset ;
552+ info. kernel_image_offset = mappings. kernel_image_offset . as_u64 ( ) ;
553553 info. _test_sentinel = boot_config. _test_sentinel ;
554554 info
555555 } ) ;
0 commit comments