Patchwork [arm-devs,v1,04/15] xilinx_spips: Add verbose LQSPI debug output

login
register
mail settings
Submitter Peter Crosthwaite
Date April 3, 2013, 4:32 a.m.
Message ID <475b23a3c56ec5ee1a8652f33e0a12d0bb4ac7f6.1364962908.git.peter.crosthwaite@xilinx.com>
Download mbox | patch
Permalink /patch/233222/
State New
Headers show

Comments

Peter Crosthwaite - April 3, 2013, 4:32 a.m.
You really need this is you want to track a guest banging on LQSPI.

Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
---

 hw/xilinx_spips.c |    5 ++++-
 1 files changed, 4 insertions(+), 1 deletions(-)
Peter Maydell - April 5, 2013, 6:42 p.m.
On 3 April 2013 05:32, Peter Crosthwaite <peter.crosthwaite@xilinx.com> wrote:
> You really need this is you want to track a guest banging on LQSPI.
>
> Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
> ---
>
>  hw/xilinx_spips.c |    5 ++++-
>  1 files changed, 4 insertions(+), 1 deletions(-)
>
> diff --git a/hw/xilinx_spips.c b/hw/xilinx_spips.c
> index a8691d5..29636ce 100644
> --- a/hw/xilinx_spips.c
> +++ b/hw/xilinx_spips.c
> @@ -456,10 +456,13 @@ lqspi_read(void *opaque, hwaddr addr, unsigned int size)
>      int i;
>      XilinxQSPIPS *q = opaque;
>      XilinxSPIPS *s = opaque;
> +    uint32_t ret;
>
>      if (addr >= q->lqspi_cached_addr &&
>              addr <= q->lqspi_cached_addr + LQSPI_CACHE_SIZE - 4) {
> -        return q->lqspi_buf[(addr - q->lqspi_cached_addr) >> 2];
> +        ret = q->lqspi_buf[(addr - q->lqspi_cached_addr) >> 2];
> +        DB_PRINT("addr: %08x, data: %08x\n", (unsigned)addr, (unsigned)ret);
> +        return ret;
>      } else {
>          int flash_addr = (addr / num_effective_busses(s));
>          int slave = flash_addr >> LQSPI_ADDRESS_BITS;

I'd recommend keeping the scope of the variable inside the if {} personally,
but if you prefer this way round that's fine.

-- PMM
Peter Crosthwaite - April 7, 2013, 10:54 p.m.
On Sat, Apr 6, 2013 at 4:42 AM, Peter Maydell <peter.maydell@linaro.org> wrote:
> On 3 April 2013 05:32, Peter Crosthwaite <peter.crosthwaite@xilinx.com> wrote:
>> You really need this is you want to track a guest banging on LQSPI.
>>
>> Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
>> ---
>>
>>  hw/xilinx_spips.c |    5 ++++-
>>  1 files changed, 4 insertions(+), 1 deletions(-)
>>
>> diff --git a/hw/xilinx_spips.c b/hw/xilinx_spips.c
>> index a8691d5..29636ce 100644
>> --- a/hw/xilinx_spips.c
>> +++ b/hw/xilinx_spips.c
>> @@ -456,10 +456,13 @@ lqspi_read(void *opaque, hwaddr addr, unsigned int size)
>>      int i;
>>      XilinxQSPIPS *q = opaque;
>>      XilinxSPIPS *s = opaque;
>> +    uint32_t ret;
>>
>>      if (addr >= q->lqspi_cached_addr &&
>>              addr <= q->lqspi_cached_addr + LQSPI_CACHE_SIZE - 4) {
>> -        return q->lqspi_buf[(addr - q->lqspi_cached_addr) >> 2];
>> +        ret = q->lqspi_buf[(addr - q->lqspi_cached_addr) >> 2];
>> +        DB_PRINT("addr: %08x, data: %08x\n", (unsigned)addr, (unsigned)ret);
>> +        return ret;
>>      } else {
>>          int flash_addr = (addr / num_effective_busses(s));
>>          int slave = flash_addr >> LQSPI_ADDRESS_BITS;
>
> I'd recommend keeping the scope of the variable inside the if {} personally,
> but if you prefer this way round that's fine.
>

I'm usually the same, but for return temporaries I usually define on
top level as they have a habit of getting reused and its verbose if
multiple ifs all define their own ret tempory. All personal pref I
guess.

Regards,
Peter

> -- PMM
>

Patch

diff --git a/hw/xilinx_spips.c b/hw/xilinx_spips.c
index a8691d5..29636ce 100644
--- a/hw/xilinx_spips.c
+++ b/hw/xilinx_spips.c
@@ -456,10 +456,13 @@  lqspi_read(void *opaque, hwaddr addr, unsigned int size)
     int i;
     XilinxQSPIPS *q = opaque;
     XilinxSPIPS *s = opaque;
+    uint32_t ret;
 
     if (addr >= q->lqspi_cached_addr &&
             addr <= q->lqspi_cached_addr + LQSPI_CACHE_SIZE - 4) {
-        return q->lqspi_buf[(addr - q->lqspi_cached_addr) >> 2];
+        ret = q->lqspi_buf[(addr - q->lqspi_cached_addr) >> 2];
+        DB_PRINT("addr: %08x, data: %08x\n", (unsigned)addr, (unsigned)ret);
+        return ret;
     } else {
         int flash_addr = (addr / num_effective_busses(s));
         int slave = flash_addr >> LQSPI_ADDRESS_BITS;