[Skiboot] [PATCH 09/12] opal: Inform fsp about the topology switch.

Stewart Smith stewart at linux.vnet.ibm.com
Wed Apr 22 14:17:20 AEST 2015


Mahesh J Salgaonkar <mahesh at linux.vnet.ibm.com> writes:
> From: Mahesh Salgaonkar <mahesh at linux.vnet.ibm.com>
>
> After the topology switch, we may have a non-functional backup topology.
> This means, we won't be able to recover from future TOD errors that
> requires topology switch. Someone needs to either fix it OR configure
> new functional backup topology.
>
> Bit 18 of the Pervasive local FIR (SCOM: EH.TPCHIP.TPC.LOCAL_FIR: 0x0104000C)
> is used to signal that TOD error analysis needs to be performed. This
> allows FSP/PRD to investigate and re-configure new backup topology if
> required. Once new backup topology is configured and ready, FSP sends a
> mailbox command xE6, s/c 0x06, mod 0, to enable the backup topology.
>
> This isn't documented anywhere. This info is provided by FSP folks.

Any chance they're going to fix their documentation?

We should have it down solid how this is going to work on non-FSP
systems too. Will it be magic with the prd daemon we have?

> This patch implements setting of bit 18 in Pervasive local FIR. The next
> patch will handle FSP mailbox command xE6, s/c 0x06, mod 0.
>
> Signed-off-by: Mahesh Salgaonkar <mahesh at linux.vnet.ibm.com>
> ---
>  hw/chiptod.c |   32 ++++++++++++++++++++++++++++++++
>  1 file changed, 32 insertions(+)
>
> diff --git a/hw/chiptod.c b/hw/chiptod.c
> index 1f6e2f1..f43d973 100644
> --- a/hw/chiptod.c
> +++ b/hw/chiptod.c
> @@ -94,6 +94,10 @@
>  #define   TOD_ERR_TTYPE4_RECVD		PPC_BIT(42)
>  #define   TOD_ERR_TTYPE5_RECVD		PPC_BIT(43)
>  
> +/* Local FIR EH.TPCHIP.TPC.LOCAL_FIR */
> +#define LOCAL_CORE_FIR		0x0104000C
> +#define LFIR_SWITCH_COMPLETE	PPC_BIT(18)
> +
>  /* Magic TB value. One step cycle ahead of sync */
>  #define INIT_TB	0x000000000001ff0
>  
> @@ -1002,6 +1006,33 @@ static bool chiptod_backup_valid(void)
>  	return false;
>  }
>  
> +static void chiptod_topology_switch_complete(void)
> +{
> +	/*
> +	 * After the topology switch, we may have a non-functional backup
> +	 * topology, and we won't be able to recover from future TOD errors
> +	 * that requires topology switch. Someone needs to either fix it OR
> +	 * configure new functional backup topology.
> +	 *
> +	 * Bit 18 of the Pervasive FIR is used to signal that TOD error
> +	 * analysis needs to be performed. This allows FSP/PRD to
> +	 * investigate and re-configure new backup topology if required.
> +	 * Once new backup topology is configured and ready, FSP sends a
> +	 * mailbox command xE6, s/c 0x06, mod 0, to enable the backup
> +	 * topology.
> +	 *
> +	 * This isn't documented anywhere. This info is provided by FSP
> +	 * folks.
> +	 */
> +	if (xscom_writeme(LOCAL_CORE_FIR, LFIR_SWITCH_COMPLETE) != 0) {
> +		prerror("CHIPTOD: XSCOM error writing LOCAL_CORE_FIR\n");
> +		return;
> +	}
> +
> +	prlog(PR_DEBUG, "CHIPTOD: Topology switch complete\n");
> +	print_topology_info();
> +}
> +
>  /*
>   * Sync up TOD with other chips and get TOD in running state.
>   * Check if current topology is active and running. If not, then
> @@ -1045,6 +1076,7 @@ static int chiptod_start_tod(void)
>  		current_topology = query_current_topology();
>  		chiptod_update_topology(chiptod_topo_primary);
>  		chiptod_update_topology(chiptod_topo_secondary);
> +		chiptod_topology_switch_complete();
>  	}
>  
>  	if (!chiptod_master_running()) {
>
> _______________________________________________
> Skiboot mailing list
> Skiboot at lists.ozlabs.org
> https://lists.ozlabs.org/listinfo/skiboot



More information about the Skiboot mailing list