[Skiboot] [PATCH] hdata: Move 'HRMOR_BIT' macro to header file
Vasant Hegde
hegdevasant at linux.vnet.ibm.com
Wed Mar 21 19:03:40 AEDT 2018
On 03/19/2018 07:59 AM, Oliver wrote:
> On Thu, Mar 15, 2018 at 6:43 PM, Vasant Hegde
> <hegdevasant at linux.vnet.ibm.com> wrote:
>> Its already defined twice. Lets move it to header file.
>>
>> Signed-off-by: Vasant Hegde <hegdevasant at linux.vnet.ibm.com>
>> ---
>> hdata/memory.c | 2 --
>> hdata/spira.c | 5 ++---
>> hdata/spira.h | 6 ++++++
>> 3 files changed, 8 insertions(+), 5 deletions(-)
>>
>> diff --git a/hdata/memory.c b/hdata/memory.c
>> index 27dc559f5..a83898955 100644
>> --- a/hdata/memory.c
>> +++ b/hdata/memory.c
>> @@ -602,8 +602,6 @@ static struct dt_node *add_hb_reserve_node(const char *name, u64 start, u64 end)
>> return node;
>> }
>>
>> -#define HRMOR_BIT (1ul << 63)
>> -
>> static void get_hb_reserved_mem(struct HDIF_common_hdr *ms_vpd)
>> {
>> const struct msvpd_hb_reserved_mem *hb_resv_mem;
>> diff --git a/hdata/spira.c b/hdata/spira.c
>> index 0724dcc42..19f456a1e 100644
>> --- a/hdata/spira.c
>> +++ b/hdata/spira.c
>> @@ -88,16 +88,15 @@ __section(".cpuctrl.data") struct cpu_ctl_init_data cpu_ctl_init_data = {
>> * To help the FSP distinguishing between TCE tokens and actual physical
>> * addresses, we set the top bit to 1 on physical addresses
>> */
>> -#define ADDR_TOP_BIT (1ul << 63)
>>
>> __section(".mdst.data") struct dump_mdst_table init_mdst_table[2] = {
>> {
>> - .addr = CPU_TO_BE64(INMEM_CON_START | ADDR_TOP_BIT),
>> + .addr = CPU_TO_BE64(INMEM_CON_START | HRMOR_BIT),
>> .type = CPU_TO_BE32(DUMP_REGION_CONSOLE),
>> .size = CPU_TO_BE32(INMEM_CON_LEN),
>> },
>> {
>> - .addr = CPU_TO_BE64(HBRT_CON_START | ADDR_TOP_BIT),
>> + .addr = CPU_TO_BE64(HBRT_CON_START | HRMOR_BIT),
>> .type = CPU_TO_BE32(DUMP_REGION_HBRT_LOG),
>> .size = CPU_TO_BE32(HBRT_CON_LEN),
>> },
>> diff --git a/hdata/spira.h b/hdata/spira.h
>> index 39e0e3333..d8421dcb6 100644
>> --- a/hdata/spira.h
>> +++ b/hdata/spira.h
>> @@ -19,6 +19,12 @@
>>
>> #include "hdif.h"
>>
>
>> +/*
>> + * To help the FSP/hostboot distinguishing between physical address and relative
>> + * address/TCE tokens, we set the top bit to 1 on physical addresses.
>> + */
>> +#define HRMOR_BIT (1ul << 63)
>
> I don't understand this comment at all. On the host having bit 63 (ppc
> bit 0 set) causes
> the core to ignore the HRMOR setting when in hypervisor real mode. As
> far as I know this is
> why hostboot sets it.
AFAIK if we set this bit hostboot thinks its real address. Otherwise it uses
HRMOR and payload_base to get actual address (At least that's how its working in
dump collection path).
I want to move this macro to header file ... So that I can use this bit while
updating MDST
and MDDT table for MPIPL case.
> In OPAL we always run with HRMOR set to zero so
> it doesn't do anything
> for us (hence removing it), but if the FSP treats it as some kind of
> flag then that usage needs
> to be more clearly documented here.
IIRC if top bit is set, then FSP thinks its real address. Otherwise its TCE
mapped address.
-Vasant
More information about the Skiboot
mailing list