Hi Steven, On Fri, Jun 29, 2018 at 03:37:09PM -0500, Steven J. Hill wrote: > +static inline uint64_t CVMX_CIU_MBOX_CLRX(unsigned int coreid) > { > - switch (cvmx_get_octeon_family()) { > - case OCTEON_CN30XX & OCTEON_FAMILY_MASK: > - return CVMX_ADD_IO_SEG(0x0001070000000680ull) + (offset) * 8; > - case OCTEON_CN52XX & OCTEON_FAMILY_MASK: > - case OCTEON_CNF71XX & OCTEON_FAMILY_MASK: > - case OCTEON_CN61XX & OCTEON_FAMILY_MASK: > - return CVMX_ADD_IO_SEG(0x0001070000000680ull) + (offset) * 8; > - case OCTEON_CN31XX & OCTEON_FAMILY_MASK: > - case OCTEON_CN50XX & OCTEON_FAMILY_MASK: > - return CVMX_ADD_IO_SEG(0x0001070000000680ull) + (offset) * 8; > - case OCTEON_CN38XX & OCTEON_FAMILY_MASK: > - case OCTEON_CN58XX & OCTEON_FAMILY_MASK: > - return CVMX_ADD_IO_SEG(0x0001070000000680ull) + (offset) * 8; > - case OCTEON_CN56XX & OCTEON_FAMILY_MASK: > - return CVMX_ADD_IO_SEG(0x0001070000000680ull) + (offset) * 8; > - case OCTEON_CN66XX & OCTEON_FAMILY_MASK: > - return CVMX_ADD_IO_SEG(0x0001070000000680ull) + (offset) * 8; > - case OCTEON_CN63XX & OCTEON_FAMILY_MASK: > - return CVMX_ADD_IO_SEG(0x0001070000000680ull) + (offset) * 8; > - case OCTEON_CN68XX & OCTEON_FAMILY_MASK: > - return CVMX_ADD_IO_SEG(0x0001070100100600ull) + (offset) * 8; > - } > - return CVMX_ADD_IO_SEG(0x0001070000000680ull) + (offset) * 8; > + if (cvmx_get_octeon_family() == OCTEON_CN68XX) > + return CVMX_CIU_ADDR(0x100100600, coreid, 0xffff, 8); > + else > + return CVMX_CIU_ADDR(0x0680, coreid, 0xffff, 8); > } Like I replied to the last revision, cvmx_get_octeon_family() returns a value ANDed with OCTEON_FAMILY_MASK but the OCTEON_CN68XX macro & others like it include bits outside of OCTEON_FAMILY_MASK. Therefore your condition here can never evaluate true. I've looked no further than this - the change is clearly broken & clearly not well tested. Thanks, Paul