On Wed, May 20, 2020 at 08:30:57PM +0200, Thomas Bogendoerfer wrote: > On Wed, May 20, 2020 at 04:48:26PM +0300, Serge Semin wrote: > > On Wed, May 20, 2020 at 03:38:27PM +0200, Thomas Bogendoerfer wrote: > > > On Wed, May 20, 2020 at 03:12:01PM +0300, Serge Semin wrote: > > > > Since you don't like the way I initially fixed it, suppose there we don't have > > > > another way but to introduce something like CONFIG_MIPS_CPS_NS16550_WIDTH > > > > parameter to select a proper accessors, like sw in our case, and sb by defaul). > > > > Right? > > > > > > to be on the safe side it's probably the best thing. But I don't know > > > enough about CPS_NS16550 to judge whether shift value correlates with > > > possible access width. > > > > The base address passed to the _mips_cps_putc() leaf is UART-base address. It > > has nothing to do with CPS. See: > > ok, I'm confused. So this isn't an uart inside CPS hardware, but an uart used > by CPS code for debug output, right ? Right. It's not CPS, but just UART available on the system. See a comment in the arch/mips/kernel/cps-vec-ns16550.S: /** * mips_cps_bev_dump() - dump relevant exception state to UART * @a0: pointer to NULL-terminated ASCII string naming the exception * * Write information that may be useful in debugging an exception to the * UART configured by CONFIG_MIPS_CPS_NS16550_*. *... */ LEAF(mips_cps_bev_dump) move s0, ra move s1, a0 li t9, CKSEG1ADDR(CONFIG_MIPS_CPS_NS16550_BASE) ... See the base is just loaded to the t9 register. > > To solve the issued please add CONFIG_MIPS_CPS_NS16550_WIDTH to select the > correct access width. Ok. Thanks. -Sergey > > Thomas. > > -- > Crap can work. Given enough thrust pigs will fly, but it's not necessarily a > good idea. [ RFC1925, 2.3 ]