Hi Julien, > On Sep 16, 2023, at 05:41, Julien Grall <[email protected]> wrote: > > Hi Henry, > > I realize that this was already committed. But something went wrong during > the code movement. > > On 28/08/2023 02:32, Henry Wang wrote: >> +/* >> + * Enable mm (turn on the data cache and the MMU) for the boot CPU. >> + * The function will return to the virtual address provided in LR (e.g. the >> + * runtime mapping). >> + * >> + * Inputs: >> + * lr : Virtual address to return to. >> + * >> + * Clobbers x0 - x5 >> + */ >> +ENTRY(enable_boot_cpu_mm) >> + mov x5, lr >> + >> + bl create_page_tables >> + load_paddr x0, boot_pgtable >> + >> + bl enable_mmu >> + mov lr, x5 >> + >> + /* >> + * The MMU is turned on and we are in the 1:1 mapping. Switch >> + * to the runtime mapping. >> + */ >> + ldr x0, =1f >> + br x0 >> +1: >> + /* >> + * The 1:1 map may clash with other parts of the Xen virtual memory >> + * layout. As it is not used anymore, remove it completely to >> + * avoid having to worry about replacing existing mapping >> + * afterwards. Function will return to primary_switched. >> + */ >> + b remove_identity_mapping >> + >> + /* >> + * Below is supposed to be unreachable code, as "ret" in >> + * remove_identity_mapping will use the return address in LR in >> advance. >> + */ >> + b fail > > The "b fail" didn't exist in head.S. I guess this was due to a wrong > rebase? Can you check if there is something else that went missing?
Please correct me if I am wrong but I think the “b fail” of enable_boot_cpu_mm() is in the mmu head.S, see line 348 [1]. [1] https://xenbits.xen.org/gitweb/?p=xen.git;a=blob;f=xen/arch/arm/arm64/mmu/head.S;h=d71fdc69a531780501387fc5c717b4c41bb1b66a;hb=6734327d76be38d20f280ecc96392e385fbc1d8b#l348 Kind regards, Henry > > Cheers, > > -- > Julien Grall
