Forum Discussion

Altera_Forum's avatar
Altera_Forum
Icon for Honored Contributor rankHonored Contributor
15 years ago

PCIe BAR offset

Hi!

I use DMA chaining app generated by MegaWizard.

Inside I use

find_mem_bar(bar_table, 6'b000001, 28, rc_slave_bar),

which finds my first BAR (that is BAR0 256 MBytes, addr: 10000000, Non-Prefetchable).

Having found the BAR, I try this:

ebfm_barwr_imm(bar_table, rc_slave_bar, 17'h1FFFC, 32'hDEAD_BEEF, 4, 0),

where DEAD_BEEF is my data, 4 is length, 0 is tclass, 17'h1FFFC is offset.

Well, it works, but I can't use 1FFFF offset size - it won't send anything. I think that's because only 1FFFC can be divided by 4, by why is that so? What do I do if I need offset that is not dividable by 4?

If the offset can not be divided by 8 (but can be by 4), sop and eop come simultaneously, and there is some mess in the wave (like with 1FFFC). Why?

Does it mean that I can only use offsets that are aligned like this?
No RepliesBe the first to reply