On 6/19/20 3:59 PM, Julien Grall wrote:
> Hi,
>
> On 19/06/2020 13:51, Oleksandr Andrushchenko wrote:
>> On 6/19/20 3:47 PM, Julien Grall wrote:
>>> They will not be available from the fdt, but you can retrieve them with an 
>>> hypervisor call (see HVM_PARAM_STORE_PFN, HVM_PARAM_CONSOLE_PFN).
>> Yes, and it used in the relevant pieces of code (hyp calls)
>>> One question though, why do you need to map them in advance? Couldn't you 
>>> map them on demand?
>>
>> Well, we need to at least estimate the pg_table size so we can reserve and 
>> allocate memory later,
>
> Oh, so U-boot doesn't support runtime page-table table allocation. Is that 
> right?
As per my understanding no, we provide a memory map and the tables are 
allocated beforehand
>
>>
>> so I have to provide memory range from either by coding a constant or 
>> looking into the devtree at
>>
>> hypervisor { reg = <>; }. It is a bit tricky though
>
> Looking for a node in the device-tree shouldn't be too difficult given that 
> you have fdt_* available.
>
> However, please not that <reg> doesn't refer to the guest magic pages. 
> Instead, it provides a region you can use for mapping the grant-table frames

Indeed, this is in my case 0x38000000, but the magic is at 0x39000000

So, I need the memory range set up beforehand, but I can't as there is no cute 
way to get that.

Of course, I can issue a hyp call to get HVM_PARAM_CONSOLE_PFN and use it as 
the base address,

but this smells like a hack. I can call other HVM_PARAM_ to get their pfns and 
set up the memory regions,

but this looks a bit weird. I need that constant badly ;)

>
> Cheers,
>

Reply via email to