Thread (5 messages) 5 messages, 3 authors, 2010-12-16

Re: RapidIO: multiple mport support for QorIQ

From: Thomas Taranowski <hidden>
Date: 2010-12-15 20:40:27

quoted
There is some divergance in respect to the memory map that is non-trivia=
l that
quoted
I'm not sure how to handle, since it totally hoses the common fsl_rio.c =
structures.
quoted
I think I want to create a new set that's p2020 specific, but has potent=
ial to be
quoted
shared with the other QorIQ series, so dumping the pseries-specific code=
 into
quoted
platforms/pseries seems like a reasonable way to go. =A0Thoughts?
The dual-port RIO is very common on QorIQ chips. =A0I won't suggest you a=
dd P2020 specific memory map file. =A0The two port memory map should also b=
e compatible with one port driver.
Should be, but isn't.  For the most part the new registers introduced
match up with the pad present in the previous processors, but not for
the atmu registers.  They are wildly inconsistent, and I don't see a
way to make them compatible.

# The current implementation
struct rio_atmu_regs {
        u32 rowtar;
        u32 rowtear;
        u32 rowbar;
        u32 pad2;
        u32 rowar;
        u32 pad3[3];
};

# The QorIQ p2020 register set.
struct rio_atmu_outb_window_regs {
    u32 rowtar0;    /* Outbound window translation address register 0 *
    u32 rowtear0;   /* Outbound window ext. address register 0 */
    u32 pad;        /* There is no rowbar0. Believe it. */
    u32 rowar0;     /* Outbound window attribute register 1 */
    u32 rowtar1;    /* Outbound window translation address register 1 *
    u32 rowtear1;   /* Outbound window ext. translation address registe
    u32 rowbar1;    /* Outbound window base address register 1 */
    u32 rowar1;     /* Outbound window attributes register 1 */
    u32 rowsr1[3];  /* Outbound window segment  register 1 */
};

struct rio_atmu_inb_window_regs {
    u32 iwtar;      /* Inbound window translation address register. */
    u32 iwbar;      /* Inbound window base address register. */
    u32 iwar;       /* Ibound window attribute register. */
};

struct rio_atmu_regs {
    rio_atmu_outb_window_regs outb_window[8]; /* window 1-8, upcounting
    rio atmu_inb_window_regs  inb_window[4] /* window 4-1, downcounting
};



-Leo
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help