grub-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] ieee1275 : extended support in options vector5


From: Michal Suchánek
Subject: Re: [PATCH] ieee1275 : extended support in options vector5
Date: Mon, 20 Mar 2023 21:46:40 +0100
User-agent: Mutt/1.10.1 (2018-07-13)

Hello,

On Fri, Mar 17, 2023 at 03:08:11PM +0530, Avnish Chouhan wrote:
> This patch enables the multiple options in Options Vector5.
> 
> Signed-off-by: Avnish Chouhan <avnish@linux.vnet.ibm.com>
> Reviewed-by: Brian King <brking@linux.vnet.ibm.com>
> ---
>  grub-core/kern/ieee1275/init.c | 43 
> ++++++++++++++++++++++++++++++++++++++++++-
>  1 file changed, 42 insertions(+), 1 deletion(-)
> 
> diff --git a/grub-core/kern/ieee1275/init.c b/grub-core/kern/ieee1275/init.c
> index 7337e28..6f0eeee 100644
> --- a/grub-core/kern/ieee1275/init.c
> +++ b/grub-core/kern/ieee1275/init.c
> @@ -72,6 +72,42 @@ extern char _end[];
>  grub_addr_t grub_ieee1275_original_stack;
>  #endif
>  
> +/* Options vector5 properties */
> +
> +#define LPAR                0x80
> +#define SPLPAR              0x40
> +#define DYN_RCON_MEM        0x20
> +#define LARGE_PAGES         0x10
> +#define DONATE_DCPU_CLS     0x2
> +#define PCI_EXP             0x1
> +#define BYTE2               (LPAR | SPLPAR | DYN_RCON_MEM | LARGE_PAGES | 
> DONATE_DCPU_CLS | PCI_EXP)
> +
> +#define CMOC                0x80
> +#define EXT_CMO             0x40
> +#define CMO                 (CMOC | EXT_CMO)
> +
> +#define ASSOC_REF           0x80
> +#define AFFINITY            0x40
> +#define NUMA                0x20
> +#define ASSOCIATIVITY       (ASSOC_REF | AFFINITY | NUMA)
> +
> +#define HOTPLUG_INTRPT      0x4
> +#define HPT_RESIZE          0x1
> +#define BIN_OPTS            (HOTPLUG_INTRPT | HPT_RESIZE)
> +
> +#define MAX_CPU             256
> +
> +#define PFO_HWRNG           0x80000000
> +#define PFO_HW_COMP         0x40000000
> +#define PFO_ENCRYPT         0x20000000
> +#define PLATFORM_FACILITIES (PFO_HWRNG | PFO_HW_COMP | PFO_ENCRYPT)
> +
> +#define SUB_PROCESSORS      1
> +
> +#define DY_MEM_V2           0x80
> +#define DRC_INFO            0x40
> +#define BYTE22              (DY_MEM_V2 | DRC_INFO)
> +
>  void
>  grub_exit (void)
>  {
> @@ -511,6 +547,11 @@ struct option_vector5
>    grub_uint8_t micro_checkpoint;
>    grub_uint8_t reserved0;
>    grub_uint32_t max_cpus;
> +  grub_uint16_t base_PAPR;
> +  grub_uint16_t mem_reference;
> +  grub_uint32_t platform_facilities;
> +  grub_uint8_t sub_processors;
> +  grub_uint8_t byte22;
>  } GRUB_PACKED;
>  
>  struct pvr_entry
> @@ -573,7 +614,7 @@ grub_ieee1275_ibm_cas (void)
>      .vec4 = 0x0001, /* set required minimum capacity % to the lowest value */
>      .vec5_size = 1 + sizeof (struct option_vector5) - 2,
>      .vec5 = {
> -      0, 192, 0, 128, 0, 0, 0, 0, 256
> +      0, BYTE2, 0, CMO, ASSOCIATIVITY, BIN_OPTS, 0, 0, MAX_CPU, 0, 0, 
> PLATFORM_FACILITIES, SUB_PROCESSORS, BYTE22

Thanks for adding the named constants, that makes the initialization
much more readable.

Thanks

Michal

>      }
>    };
>  
> -- 
> 2.31.1
> 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]