| 
    
 [Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH v1 5/5] xen/riscv: map FDT
 On 03.07.2024 12:42, Oleksii Kurochko wrote:
> Except mapping of FDT, it is also printing command line passed by
> a DTB and initialize bootinfo from a DTB.
I'm glad the description isn't empty here. However, ...
> --- a/xen/arch/riscv/riscv64/head.S
> +++ b/xen/arch/riscv/riscv64/head.S
> @@ -41,6 +41,9 @@ FUNC(start)
>  
>          jal     setup_initial_pagetables
>  
> +        mv      a0, s1
> +        jal     fdt_map
> +
>          /* Calculate proper VA after jump from 1:1 mapping */
>          la      a0, .L_primary_switched
>          sub     a0, a0, s2
... it could do with clarifying why this needs calling from assembly
code. Mapping the FDT clearly looks like something that wants doing
from start_xen(), i.e. from C code.
> @@ -33,15 +35,34 @@ static void test_macros_from_bug_h(void)
>      printk("WARN is most likely working\n");
>  }
>  
> +void __init fdt_map(paddr_t dtb_addr)
> +{
> +    device_tree_flattened = early_fdt_map(dtb_addr);
> +    if ( !device_tree_flattened )
> +    {
> +        printk("wrong FDT\n");
> +        die();
> +    }
> +}
> +
>  void __init noreturn start_xen(unsigned long bootcpu_id,
>                                 paddr_t dtb_addr)
>  {
> +    size_t fdt_size;
> +    const char *cmdline;
> +
>      remove_identity_mapping();
>  
>      trap_init();
>  
>      test_macros_from_bug_h();
>  
> +    fdt_size = boot_fdt_info(device_tree_flattened, dtb_addr);
You don't use the return value anywhere below. What use is the local var
then?
Jan
> +    cmdline = boot_fdt_cmdline(device_tree_flattened);
> +    printk("Command line: %s\n", cmdline);
> +    cmdline_parse(cmdline);
> +
>      printk("All set up\n");
>  
>      for ( ;; )
 
 
  | 
  
![]()  | 
            
         Lists.xenproject.org is hosted with RackSpace, monitoring our  |