[Skiboot] [PATCH] pci: recheck pci nvram hacks on fast-reboot
Alexey Kardashevskiy
aik at ozlabs.ru
Thu Aug 22 13:35:51 AEST 2019
On 20/08/2019 20:31, Oliver O'Halloran wrote:
> Sometimes it's useful to fiddle with some of the PCI NVRAM options that
> we have. Currently this is mostly for enabling and disabling pci-tracing
> mode, but having a common place for this stuff is a good idea.
>
> Signed-off-by: Oliver O'Halloran <oohall at gmail.com>
Reviewed-by: Alexey Kardashevskiy <aik at ozlabs.ru>
> ---
> core/fast-reboot.c | 3 +++
> core/init.c | 5 ++++-
> hw/phb4.c | 2 --
> include/pci.h | 5 ++++-
> 4 files changed, 11 insertions(+), 4 deletions(-)
>
> diff --git a/core/fast-reboot.c b/core/fast-reboot.c
> index ed5f54671692..9631eb96d072 100644
> --- a/core/fast-reboot.c
> +++ b/core/fast-reboot.c
> @@ -433,6 +433,9 @@ void __noreturn fast_reboot_entry(void)
> psi_irq_reset();
> }
>
> + /* update pci nvram settings */
> + pci_nvram_init();
> +
> /* Remove all PCI devices */
> if (pci_reset()) {
> prlog(PR_NOTICE, "RESET: Fast reboot failed to reset PCI\n");
> diff --git a/core/init.c b/core/init.c
> index 60871d36a7f6..8d455230fc18 100644
> --- a/core/init.c
> +++ b/core/init.c
> @@ -48,6 +48,7 @@
>
> enum proc_gen proc_gen;
> unsigned int pcie_max_link_speed;
> +bool pci_tracing;
> bool verbose_eeh;
> extern const char version[];
>
> @@ -844,7 +845,7 @@ static void per_thread_sanity_checks(void)
> assert(cpu->state != cpu_state_no_cpu);
> }
>
> -static void pci_nvram_init(void)
> +void pci_nvram_init(void)
> {
> const char *nvram_speed;
>
> @@ -860,6 +861,8 @@ static void pci_nvram_init(void)
> prlog(PR_NOTICE, "PHB: NVRAM set max link speed to GEN%i\n",
> pcie_max_link_speed);
> }
> +
> + pci_tracing = nvram_query_eq_safe("pci-tracing", "true");
> }
>
> static uint32_t mem_csum(void *_p, void *_e)
> diff --git a/hw/phb4.c b/hw/phb4.c
> index c932cf980fd7..3c71427aef2f 100644
> --- a/hw/phb4.c
> +++ b/hw/phb4.c
> @@ -138,7 +138,6 @@ static void phb4_init_hw(struct phb4 *p);
>
> #define PHB4_CAN_STORE_EOI(p) XIVE_STORE_EOI_ENABLED
>
> -static bool pci_tracing;
> static bool pci_eeh_mmio;
> static bool pci_retry_all;
> static int rx_err_max = PHB4_RX_ERR_MAX;
> @@ -5946,7 +5945,6 @@ void probe_phb4(void)
> struct dt_node *np;
> const char *s;
>
> - pci_tracing = nvram_query_eq_safe("pci-tracing", "true");
> pci_eeh_mmio = !nvram_query_eq_dangerous("pci-eeh-mmio", "disabled");
> pci_retry_all = nvram_query_eq_dangerous("pci-retry-all", "true");
> s = nvram_query_dangerous("phb-rx-err-max");
> diff --git a/include/pci.h b/include/pci.h
> index 220d6b187f5f..dcd354a7cfef 100644
> --- a/include/pci.h
> +++ b/include/pci.h
> @@ -356,8 +356,11 @@ enum phb_type {
> phb_type_npu_v3,
> };
>
> -
> +/* Generic PCI NVRAM flags */
> extern bool verbose_eeh;
> +extern bool pci_tracing;
> +
> +void pci_nvram_init(void);
>
> struct phb {
> struct dt_node *dt_node;
>
--
Alexey
More information about the Skiboot
mailing list