@@ -567,134 +567,6 @@ namespace xdp {
567
567
return comboEvents;
568
568
}
569
569
570
- /* ***************************************************************************
571
- * Configure group events (core modules only)
572
- ***************************************************************************/
573
- void AieTrace_WinImpl::configGroupEvents (const XAie_LocType loc, const XAie_ModuleType mod,
574
- const module_type type, const std::string metricSet)
575
- {
576
- // Only needed for core module and metric sets that include DMA events
577
- if (!aie::isDmaSet (metricSet) || (type != module_type::core))
578
- return ;
579
-
580
- // Set masks for group events
581
- XAie_EventGroupControl (&aieDevInst, loc, mod, XAIE_EVENT_GROUP_CORE_PROGRAM_FLOW_CORE,
582
- GROUP_CORE_FUNCTIONS_MASK);
583
- XAie_EventGroupControl (&aieDevInst, loc, mod, XAIE_EVENT_GROUP_CORE_STALL_CORE,
584
- GROUP_CORE_STALL_MASK);
585
- XAie_EventGroupControl (&aieDevInst, loc, mod, XAIE_EVENT_GROUP_STREAM_SWITCH_CORE,
586
- GROUP_STREAM_SWITCH_RUNNING_MASK);
587
- }
588
-
589
- /* ***************************************************************************
590
- * Configure event selection (memory tiles only)
591
- ***************************************************************************/
592
- void AieTrace_WinImpl::configEventSelections (const XAie_LocType loc, const module_type type,
593
- const std::string metricSet, const uint8_t channel0,
594
- const uint8_t channel1, aie_cfg_base& config)
595
- {
596
- if (type != module_type::mem_tile)
597
- return ;
598
-
599
- XAie_DmaDirection dmaDir = aie::isInputSet (type, metricSet) ? DMA_S2MM : DMA_MM2S;
600
-
601
- if (aie::isDebugVerbosity ()) {
602
- std::string typeName = (dmaDir == DMA_S2MM) ? " S2MM" : " MM2S" ;
603
- std::string msg = " Configuring memory tile event selections to DMA "
604
- + typeName + " channels " + std::to_string (channel0)
605
- + " and " + std::to_string (channel1);
606
- xrt_core::message::send (severity_level::debug, " XRT" , msg);
607
- }
608
-
609
- XAie_EventSelectDmaChannel (&aieDevInst, loc, 0 , dmaDir, channel0);
610
- XAie_EventSelectDmaChannel (&aieDevInst, loc, 1 , dmaDir, channel1);
611
-
612
- // Record for runtime config file
613
- config.port_trace_ids [0 ] = channel0;
614
- config.port_trace_ids [1 ] = channel1;
615
- if (aie::isInputSet (type, metricSet)) {
616
- config.port_trace_is_master [0 ] = true ;
617
- config.port_trace_is_master [1 ] = true ;
618
- config.s2mm_channels [0 ] = channel0;
619
- if (channel0 != channel1)
620
- config.s2mm_channels [1 ] = channel1;
621
- }
622
- else {
623
- config.port_trace_is_master [0 ] = false ;
624
- config.port_trace_is_master [1 ] = false ;
625
- config.mm2s_channels [0 ] = channel0;
626
- if (channel0 != channel1)
627
- config.mm2s_channels [1 ] = channel1;
628
- }
629
- }
630
-
631
- /* ***************************************************************************
632
- * Configure edge detection events
633
- ***************************************************************************/
634
- void AieTrace_WinImpl::configEdgeEvents (const tile_type& tile, const module_type type,
635
- const std::string metricSet, const XAie_Events event,
636
- const uint8_t channel)
637
- {
638
- if ((event != XAIE_EVENT_EDGE_DETECTION_EVENT_0_MEM_TILE)
639
- && (event != XAIE_EVENT_EDGE_DETECTION_EVENT_1_MEM_TILE)
640
- && (event != XAIE_EVENT_EDGE_DETECTION_EVENT_0_MEM)
641
- && (event != XAIE_EVENT_EDGE_DETECTION_EVENT_1_MEM))
642
- return ;
643
-
644
- // Catch memory tiles
645
- if (type == module_type::mem_tile) {
646
- // Event is DMA_S2MM_Sel0_stream_starvation or DMA_MM2S_Sel0_stalled_lock
647
- uint16_t eventNum = aie::isInputSet (type, metricSet)
648
- ? EVENT_MEM_TILE_DMA_S2MM_SEL0_STREAM_STARVATION
649
- : EVENT_MEM_TILE_DMA_MM2S_SEL0_STALLED_LOCK;
650
-
651
- // Register Edge_Detection_event_control
652
- // 26 Event 1 triggered on falling edge
653
- // 25 Event 1 triggered on rising edge
654
- // 23:16 Input event for edge event 1
655
- // 10 Event 0 triggered on falling edge
656
- // 9 Event 0 triggered on rising edge
657
- // 7:0 Input event for edge event 0
658
- uint32_t edgeEventsValue = (1 << 26 ) + (eventNum << 16 ) + (1 << 9 ) + eventNum;
659
-
660
- xrt_core::message::send (severity_level::debug, " XRT" ,
661
- " Configuring memory tile edge events to detect rise and fall of event "
662
- + std::to_string (eventNum));
663
-
664
- auto tileOffset = _XAie_GetTileAddr (&aieDevInst, tile.row , tile.col );
665
- XAie_Write32 (&aieDevInst, tileOffset + AIE_OFFSET_EDGE_CONTROL_MEM_TILE,
666
- edgeEventsValue);
667
- return ;
668
- }
669
-
670
- // Below is AIE tile support
671
-
672
- // Event is DMA_MM2S_stalled_lock or DMA_S2MM_stream_starvation
673
- // Event is DMA_S2MM_Sel0_stream_starvation or DMA_MM2S_Sel0_stalled_lock
674
- uint16_t eventNum = aie::isInputSet (type, metricSet)
675
- ? ((channel == 0 ) ? EVENT_MEM_DMA_MM2S_0_STALLED_LOCK
676
- : EVENT_MEM_DMA_MM2S_1_STALLED_LOCK)
677
- : ((channel == 0 ) ? EVENT_MEM_DMA_S2MM_0_STREAM_STARVATION
678
- : EVENT_MEM_DMA_S2MM_1_STREAM_STARVATION);
679
-
680
- // Register Edge_Detection_event_control
681
- // 26 Event 1 triggered on falling edge
682
- // 25 Event 1 triggered on rising edge
683
- // 23:16 Input event for edge event 1
684
- // 10 Event 0 triggered on falling edge
685
- // 9 Event 0 triggered on rising edge
686
- // 7:0 Input event for edge event 0
687
- uint32_t edgeEventsValue = (1 << 26 ) + (eventNum << 16 ) + (1 << 9 ) + eventNum;
688
-
689
- xrt_core::message::send (severity_level::debug, " XRT" ,
690
- " Configuring AIE tile edge events to detect rise and fall of event "
691
- + std::to_string (eventNum));
692
-
693
- auto tileOffset = _XAie_GetTileAddr (&aieDevInst, tile.row , tile.col );
694
- XAie_Write32 (&aieDevInst, tileOffset + AIE_OFFSET_EDGE_CONTROL_MEM,
695
- edgeEventsValue);
696
- }
697
-
698
570
/* ***************************************************************************
699
571
* Configure requested tiles with trace metrics and settings
700
572
***************************************************************************/
@@ -858,7 +730,7 @@ namespace xdp {
858
730
859
731
// Configure combo & group events (e.g., to monitor DMA channels)
860
732
auto comboEvents = configComboEvents (loc, mod, type, metricSet, cfgTile->core_trace_config );
861
- configGroupEvents (loc, mod, type, metricSet);
733
+ aie::trace:: configGroupEvents (&aieDevInst, loc, mod, type, metricSet);
862
734
863
735
// Set overall start/end for trace capture
864
736
// NOTE: This needs to be done first.
@@ -1027,8 +899,8 @@ namespace xdp {
1027
899
1028
900
// Specify Sel0/Sel1 for memory tile events 21-44
1029
901
if (type == module_type::mem_tile) {
1030
- configEventSelections (loc, type, metricSet, channel0, channel1,
1031
- cfgTile->memory_tile_trace_config );
902
+ aie::trace:: configEventSelections (&aieDevInst, loc, type, metricSet, channel0, channel1,
903
+ cfgTile->memory_tile_trace_config );
1032
904
}
1033
905
else {
1034
906
// Record if these are channel-specific events
@@ -1075,7 +947,7 @@ namespace xdp {
1075
947
numMemoryTraceEvents++;
1076
948
1077
949
// Configure edge events (as needed)
1078
- configEdgeEvents (tile, type, metricSet, memoryEvents[i], channel0);
950
+ aie::trace:: configEdgeEvents (&aieDevInst, tile, type, metricSet, memoryEvents[i], channel0);
1079
951
1080
952
// Update config file
1081
953
uint16_t phyEvent = 0 ;
0 commit comments