DMASequencer.cc (9466:23e13ad7091f) DMASequencer.cc (9508:dde110931867)
1/*
2 * Copyright (c) 2008 Mark D. Hill and David A. Wood
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are
7 * met: redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer;

--- 56 unchanged lines hidden (view full) ---

65 active_request.start_paddr = paddr;
66 active_request.write = write;
67 active_request.data = data;
68 active_request.len = len;
69 active_request.bytes_completed = 0;
70 active_request.bytes_issued = 0;
71 active_request.pkt = pkt;
72
1/*
2 * Copyright (c) 2008 Mark D. Hill and David A. Wood
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are
7 * met: redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer;

--- 56 unchanged lines hidden (view full) ---

65 active_request.start_paddr = paddr;
66 active_request.write = write;
67 active_request.data = data;
68 active_request.len = len;
69 active_request.bytes_completed = 0;
70 active_request.bytes_issued = 0;
71 active_request.pkt = pkt;
72
73 SequencerMsg *msg = new SequencerMsg(curCycle());
73 SequencerMsg *msg = new SequencerMsg(clockEdge());
74 msg->getPhysicalAddress() = Address(paddr);
75 msg->getLineAddress() = line_address(msg->getPhysicalAddress());
76 msg->getType() = write ? SequencerRequestType_ST : SequencerRequestType_LD;
77 int offset = paddr & m_data_block_mask;
78
79 msg->getLen() = (offset + len) <= RubySystem::getBlockSizeBytes() ?
80 len : RubySystem::getBlockSizeBytes() - offset;
81

--- 21 unchanged lines hidden (view full) ---

103 // the callback may cause a previously nacked request to be reissued
104 //
105 DPRINTF(RubyDma, "DMA request completed\n");
106 m_is_busy = false;
107 ruby_hit_callback(active_request.pkt);
108 return;
109 }
110
74 msg->getPhysicalAddress() = Address(paddr);
75 msg->getLineAddress() = line_address(msg->getPhysicalAddress());
76 msg->getType() = write ? SequencerRequestType_ST : SequencerRequestType_LD;
77 int offset = paddr & m_data_block_mask;
78
79 msg->getLen() = (offset + len) <= RubySystem::getBlockSizeBytes() ?
80 len : RubySystem::getBlockSizeBytes() - offset;
81

--- 21 unchanged lines hidden (view full) ---

103 // the callback may cause a previously nacked request to be reissued
104 //
105 DPRINTF(RubyDma, "DMA request completed\n");
106 m_is_busy = false;
107 ruby_hit_callback(active_request.pkt);
108 return;
109 }
110
111 SequencerMsg *msg = new SequencerMsg(curCycle());
111 SequencerMsg *msg = new SequencerMsg(clockEdge());
112 msg->getPhysicalAddress() = Address(active_request.start_paddr +
113 active_request.bytes_completed);
114
115 assert((msg->getPhysicalAddress().getAddress() & m_data_block_mask) == 0);
116 msg->getLineAddress() = line_address(msg->getPhysicalAddress());
117
118 msg->getType() = (active_request.write ? SequencerRequestType_ST :
119 SequencerRequestType_LD);

--- 58 unchanged lines hidden ---
112 msg->getPhysicalAddress() = Address(active_request.start_paddr +
113 active_request.bytes_completed);
114
115 assert((msg->getPhysicalAddress().getAddress() & m_data_block_mask) == 0);
116 msg->getLineAddress() = line_address(msg->getPhysicalAddress());
117
118 msg->getType() = (active_request.write ? SequencerRequestType_ST :
119 SequencerRequestType_LD);

--- 58 unchanged lines hidden ---