[Pdbg] [PATCH v2 3/5] main: Implement putscom with mask

Alistair Popple alistair at popple.id.au
Fri Aug 9 14:50:44 AEST 2019


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

On Wednesday, 24 July 2019 4:13:00 PM AEST Amitay Isaacs wrote:
> Signed-off-by: Amitay Isaacs <amitay at ozlabs.org>
> ---
>  src/scom.c | 9 +++++++--
>  1 file changed, 7 insertions(+), 2 deletions(-)
> 
> diff --git a/src/scom.c b/src/scom.c
> index 1f8e6c7..8d8e988 100644
> --- a/src/scom.c
> +++ b/src/scom.c
> @@ -88,6 +88,7 @@ int putscom(uint64_t addr, uint64_t data, uint64_t mask)
>  	for_each_path_target(target) {
>  		struct pdbg_target *addr_base;
>  		uint64_t xlate_addr;
> +		int rc;
>  
>  		if (pdbg_target_status(target) != PDBG_TARGET_ENABLED)
>  			continue;
> @@ -102,8 +103,12 @@ int putscom(uint64_t addr, uint64_t data, uint64_t mask)
>  		xlate_addr = addr;
>  		addr_base = pdbg_address_absolute(target, &xlate_addr);
>  
> -		/* TODO: Restore the <mask> functionality */
> -		if (pib_write(target, addr, data)) {
> +		if (mask == 0xffffffffffffffffULL)
> +			rc = pib_write(target, addr, data);
> +		else
> +			rc = pib_write_mask(target, addr, data, mask);
> +
> +		if (rc) {
>  			printf("p%d: 0x%016" PRIx64 " failed (%s)\n", pdbg_target_index(addr_base), xlate_addr, path);
>  			free(path);
>  			continue;
> 






More information about the Pdbg mailing list