On 30.01.20 15:50, Jan Kiszka wrote:
On 30.01.20 11:52, vijai kumar wrote:
Hi All,

I see that there are two RAM regions defined in ARM linux demos. One mapped to virtual address 0 and the other 1:1.

I am not sure what the first region is for. Can anyone please help me understand that?

For Example in qemu-arm64-linux-demo.c

I am not sure what the below region is for.

     /* RAM */ {
                         .phys_start = 0x7f900000,
                         .virt_start = 0,
                         .size = 0x10000,
                         .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE |                                  JAILHOUSE_MEM_EXECUTE | JAILHOUSE_MEM_LOADABLE,
                 },

Thanks,
Vijai Kumar K

That first region is for bootstrapping. "jailhouse cell linux" loads linux-loader.bin at address 0 in the cell because that is the default start address of cell cores. The loader performs a few additional initializations and then jumps to the kernel start address that is located in the second, larger region.

HTH,
Jan


Oh, and that 1:1 mapping for the second region is needed for systems that do not have an SMMU (quite a few) or where we lack the driver upstream (SMMUv2).

Jan

--
Siemens AG, Corporate Technology, CT RDA IOT SES-DE
Corporate Competence Center Embedded Linux

--
You received this message because you are subscribed to the Google Groups 
"Jailhouse" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jailhouse-dev/0fc83e67-fe60-9a03-a222-a99f0e5ef308%40siemens.com.

Reply via email to