[Pdbg] [PATCH v5 05/19] libpdbg: Use PDBG_BACKEND_DRIVER to specify drivers to load

Alistair Popple alistair at popple.id.au
Thu Apr 30 14:39:56 AEST 2020


Thanks.

Reviewed-by: Alistair Popple <alistair at popple.id.au>

On Thursday, 30 April 2020 12:34:26 PM AEST Amitay Isaacs wrote:
> When PDBG_BACKEND_DTB is specified, backend may not be set.  This means
> only the drivers registered with PDBG_DEFAULT_BACKEND will be loaded.
> To be able to match backend specific drivers for targets in system tree,
> use the backend specified in PDBG_BACKEND_DRIVER environment variable.
> 
> Signed-off-by: Amitay Isaacs <amitay at ozlabs.org>
> ---
>  libpdbg/dtb.c | 23 ++++++++++++++++++++---
>  1 file changed, 20 insertions(+), 3 deletions(-)
> 
> diff --git a/libpdbg/dtb.c b/libpdbg/dtb.c
> index 70b7962..3b7a597 100644
> --- a/libpdbg/dtb.c
> +++ b/libpdbg/dtb.c
> @@ -76,8 +76,25 @@ static struct pdbg_dtb pdbg_dtb = {
>   * running on. */
>  static enum pdbg_backend default_backend(void)
>  {
> +	const char *tmp;
>  	int rc;
> 
> +	tmp = getenv("PDBG_BACKEND_DRIVER");
> +	if (tmp) {
> +		if (!strcmp(tmp, "fsi"))
> +			return PDBG_BACKEND_FSI;
> +		else if (!strcmp(tmp, "i2c"))
> +			return PDBG_BACKEND_I2C;
> +		else if (!strcmp(tmp, "kernel"))
> +			return PDBG_BACKEND_KERNEL;
> +		else if (!strcmp(tmp, "fake"))
> +			return PDBG_BACKEND_FAKE;
> +		else if (!strcmp(tmp, "host"))
> +			return PDBG_BACKEND_HOST;
> +		else if (!strcmp(tmp, "cronus"))
> +			return PDBG_BACKEND_CRONUS;
> +	}
> +
>  	rc = access(XSCOM_BASE_PATH, F_OK);
>  	if (rc == 0) /* PowerPC Host System */
>  		return PDBG_BACKEND_HOST;
> @@ -313,6 +330,9 @@ struct pdbg_dtb *pdbg_default_dtb(void *system_fdt)
>  	dtb->backend.fdt = NULL;
>  	dtb->system.fdt = system_fdt;
> 
> +	if (!pdbg_backend)
> +		pdbg_backend = default_backend();
> +
>  	fdt = getenv("PDBG_BACKEND_DTB");
>  	if (fdt)
>  		mmap_dtb(fdt, false, &dtb->backend);
> @@ -324,9 +344,6 @@ struct pdbg_dtb *pdbg_default_dtb(void *system_fdt)
>  	if (dtb->backend.fdt && dtb->system.fdt)
>  		goto done;
> 
> -	if (!pdbg_backend)
> -		pdbg_backend = default_backend();
> -
>  	switch(pdbg_backend) {
>  	case PDBG_BACKEND_HOST:
>  		ppc_target(dtb);






More information about the Pdbg mailing list