Closed zhemao closed 7 years ago
Oh. I understand why that happened. DTS can only describe memory regions that are contiguous. So when you have controllers with alternating cache blocks it will describe every single block alternating between the two controllers!
The solution is to describe both channels as the same DTS device.
Yeah, that's what I thought. But how do I change HasPeripheryMasterAXI4MemPort trait to fix it? I suspect the change will have to be made somewhere deep in AXI4BlindOutputNode.
I've been trying to instantiate dual-memory channel configurations, but I get Chisel elaboration errors. At first I get
So I fixed that with the following change in HasPeripheryMasterAXI4MemPort
But after that I now get this error
This is from the following line
Printing out the value of
contents.size
indicates that it's 4196620. So somehow increasing the number of memory channels causes the DTB to balloon to >4MB? I don't understand why that happens.