
On Mon, 2013-10-07 at 13:16 +0300, Claudiu Manoil wrote:
On 10/5/2013 5:31 PM, Timur Tabi wrote:
On Fri, Oct 4, 2013 at 11:25 AM, Claudiu Manoil claudiu.manoil@freescale.com wrote:
[v3] declaring the BDs as __iomem to avoid casting submitted: http://patchwork.ozlabs.org/patch/280664/
- out_be32(®s->tbase, (u32)&txbd[0]);
- out_be32(®s->rbase, (u32)&rxbd[0]);
&rxbd[0] is a virtual address.
Doesn't rbase require a physical address? You're assuming that virt == phys.
These SoCs don't feature IOMMU so it cannot be a virtual address. I think you're suggesting that virt_to_phys() should be used to fix that, right? However, virt_to_phys() is equivalent to that simple cast in most cases as there's no CONFIG_PHYS_64BIT for the platforms with eTSEC. I'm actually not sure if there's a platform with eTSEC for which that cast wouldn't be enough.
There is CONFIG_PHYS_64BIT for most eTSEC SoCs, but since this is a RAM address rather than MMIO (and U-Boot only uses a static identity mapping of the low 2G of RAM), it doesn't matter, though ideally virt_to_phys should still be used.
-Scott