linux-mips
[Top] [All Lists]

Re: O2 RM7000 Issues

To: Ralf Baechle <ralf@linux-mips.org>
Subject: Re: O2 RM7000 Issues
From: "Gleb O. Raiko" <raiko@niisi.msk.ru>
Date: Tue, 17 Jul 2007 11:54:36 +0400
Cc: Sergey Rogozhkin <rogozhkin@niisi.msk.ru>, kumba@gentoo.org, linux-mips@linux-mips.org
In-reply-to: <20070716123343.GA13439@linux-mips.org>
Organization: NIISI RAN
Original-recipient: rfc822;linux-mips@linux-mips.org
References: <4687DCE2.8070302@gentoo.org> <468825BE.6090001@gmx.net> <50451.70.107.91.207.1183381723.squirrel@webmail.wesleyan.edu> <20070704152729.GA2925@linux-mips.org> <20070704192208.GA7873@linux-mips.org> <469B5C2E.5080905@niisi.msk.ru> <20070716123343.GA13439@linux-mips.org>
Sender: linux-mips-bounce@linux-mips.org
User-agent: Thunderbird 1.5.0.10 (Windows/20070221)
Ralf,

Considering RM7k the latest kernel improperly sets some hazards. At least, mtc0_tlbw_hazard and tlbw_use_hazard shall contain 4 nops, not 2.

Also, there shall be 10 nops after modification of the K0 field of the config register. The suspicious place I see is in arch/mips/mm/c-r4k.c:coherency_setup():
        change_c0_config(CONF_CM_CMASK, CONF_CM_DEFAULT);

If the K0 field has the value different than CONF_CM_DEFAULT, we definitely need nops here and, I'm afraid, even the line shall be executed uncached.

Strictly speaking, manual doesn't clearly define the term "modification". I expect, if I write the same value in the K0 field, it doesn't consider "modification".

And I guess all boards with RM7k select DMA_NONCOHERENT. Otherwise, CONF_CM_DEFAULT will have a garbage in case of RM7k. Perhaps, it's worth
to select DMA_NONCOHERENT inside the "config CPU_RM7000" block.

Regards,
Gleb.

<Prev in Thread] Current Thread [Next in Thread>