public EEPRO100RxFD(ResourceManager rm) {
final int size = (nrFrames * (RxFDSize + FRAME_SIZE)) + 16;
this.data = new byte[size];
this.mem = rm.asMemoryResource(data);
final Address memAddr = mem.getAddress();
int addr = memAddr.toInt();
int offset = 0;
// Align on 16-byte boundary
while ((addr & 15) != 0) {
addr++;
offset++;
}
this.firstUPDOffset = offset;
this.firstUPDAddress = memAddr.add(firstUPDOffset);
this.firstFrameOffset = firstUPDOffset + (nrFrames * RxFDSize);
this.firstFrameAddress = memAddr.add(firstFrameOffset);
this.bufferAddress = mem.getAddress().toInt();
setRxBufferAddress(0xffffffff);
}