@@ -666,30 +666,30 @@ static void decode_ap_access(const uint8_t ap, const uint8_t addr)
666666 DEBUG_PROTO ("Reserved(%02x): " , addr );
667667}
668668
669- static void decode_access (const uint16_t addr , const uint8_t rnw , const uint32_t value )
669+ static void decode_access (const uint16_t addr , const uint8_t rnw , const uint8_t apsel , const uint32_t value )
670670{
671671 if (rnw )
672672 DEBUG_PROTO ("Read " );
673673 else
674674 DEBUG_PROTO ("Write " );
675675
676- if (addr < 0x100U )
677- decode_dp_access ( addr & 0xffU , rnw , value );
676+ if (addr & ADIV5_APnDP )
677+ decode_ap_access ( apsel , addr & 0xffU );
678678 else
679- decode_ap_access (addr >> 8U , addr & 0xffU );
679+ decode_dp_access (addr & 0xffU , rnw , value );
680680}
681681
682682void adiv5_dp_write (adiv5_debug_port_s * dp , uint16_t addr , uint32_t value )
683683{
684- decode_access (addr , ADIV5_LOW_WRITE , value );
684+ decode_access (addr , ADIV5_LOW_WRITE , 0U , value );
685685 DEBUG_PROTO ("0x%08" PRIx32 "\n" , value );
686686 dp -> low_access (dp , ADIV5_LOW_WRITE , addr , value );
687687}
688688
689689uint32_t adiv5_dp_read (adiv5_debug_port_s * dp , uint16_t addr )
690690{
691691 uint32_t ret = dp -> dp_read (dp , addr );
692- decode_access (addr , ADIV5_LOW_READ , 0U );
692+ decode_access (addr , ADIV5_LOW_READ , 0U , 0U );
693693 DEBUG_PROTO ("0x%08" PRIx32 "\n" , ret );
694694 return ret ;
695695}
@@ -704,22 +704,22 @@ uint32_t adiv5_dp_error(adiv5_debug_port_s *dp)
704704uint32_t adiv5_dp_low_access (adiv5_debug_port_s * dp , uint8_t rnw , uint16_t addr , uint32_t value )
705705{
706706 uint32_t ret = dp -> low_access (dp , rnw , addr , value );
707- decode_access (addr , rnw , value );
707+ decode_access (addr , rnw , 0U , value );
708708 DEBUG_PROTO ("0x%08" PRIx32 "\n" , rnw ? ret : value );
709709 return ret ;
710710}
711711
712712uint32_t adiv5_ap_read (adiv5_access_port_s * ap , uint16_t addr )
713713{
714714 uint32_t ret = ap -> dp -> ap_read (ap , addr );
715- decode_access (addr , ADIV5_LOW_READ , 0U );
715+ decode_access (addr , ADIV5_LOW_READ , ap -> apsel , 0U );
716716 DEBUG_PROTO ("0x%08" PRIx32 "\n" , ret );
717717 return ret ;
718718}
719719
720720void adiv5_ap_write (adiv5_access_port_s * ap , uint16_t addr , uint32_t value )
721721{
722- decode_access (addr , ADIV5_LOW_WRITE , value );
722+ decode_access (addr , ADIV5_LOW_WRITE , ap -> apsel , value );
723723 DEBUG_PROTO ("0x%08" PRIx32 "\n" , value );
724724 ap -> dp -> ap_write (ap , addr , value );
725725}
0 commit comments