From owner-freebsd-mips@freebsd.org Fri Dec 11 16:02:20 2015 Return-Path: Delivered-To: freebsd-mips@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id A14879D7015 for ; Fri, 11 Dec 2015 16:02:20 +0000 (UTC) (envelope-from sgalabov@gmail.com) Received: from mail-wm0-x233.google.com (mail-wm0-x233.google.com [IPv6:2a00:1450:400c:c09::233]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 414A01DA4 for ; Fri, 11 Dec 2015 16:02:20 +0000 (UTC) (envelope-from sgalabov@gmail.com) Received: by mail-wm0-x233.google.com with SMTP id l68so20245082wml.0 for ; Fri, 11 Dec 2015 08:02:20 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:content-type:content-transfer-encoding:subject:date:message-id :cc:to:mime-version; bh=EBqh/BDXcy56wzikyV0vogrLx9Ml6kVg9sxbxTdsee0=; b=T67bk4V/LvqGIx9LT5A0YFLGH86NAehNBEpefzs91ppxjwcdsccsmMjmLo/nINyWpP +AjcUE2Z4Bk9dbTFjSeWAxSaiEf6ViyL180kY6HJMSrtkE8Mv82a+uvGnlfkeDx8en2P pkYozHPEPQqA7Gin4Du9j3GZW4bw3NgpXHG6H1wx06YWWE0CY7QUNSOmcoMNfv9dI22/ yxtcNJG25iM6MtpxA6FC4lYNssSrptKAz89iOOAx/YWgt/uOXXRAbadRBG/prVaA/eGx WZFW9f1JeWdf9rLcnYAnUSCAx+d9j4igKTha9iGfdDlkngWZc+G6lWnxGZ46I8HcmTjZ HLrQ== X-Received: by 10.194.246.132 with SMTP id xw4mr21057315wjc.75.1449849738801; Fri, 11 Dec 2015 08:02:18 -0800 (PST) Received: from ?IPv6:2001:67c:2154:ffff:d198:2b0c:9743:90ee? ([2001:67c:2154:ffff:d198:2b0c:9743:90ee]) by smtp.gmail.com with ESMTPSA id ql10sm17581746wjc.23.2015.12.11.08.02.16 (version=TLS1 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Fri, 11 Dec 2015 08:02:17 -0800 (PST) From: Stanislav Galabov Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Subject: MIPS_CONFIG0_VI defined wrong in sys/mips/include/cpuregs.h? Date: Fri, 11 Dec 2015 18:02:15 +0200 Message-Id: <7514D462-9B7F-4728-8784-135614215992@gmail.com> To: freebsd-mips@freebsd.org Mime-Version: 1.0 (Mac OS X Mail 9.0 \(3094\)) X-Mailer: Apple Mail (2.3094) X-BeenThere: freebsd-mips@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: Porting FreeBSD to MIPS List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 Dec 2015 16:02:20 -0000 Hi all, It seems that MIPS_CONFIG0_VI is defined wrong in = sys/mips/include/cpuregs.h. According to MIPS=C2=AE Architecture For Programmers Volume III, page = 149, Figure 9-29 (Config Register Format), accessed via = http://www.t-es-t.hu/download/mips/md00090c.pdf, bit 3 of config0 is = supposed to be VI (Virtual Instruction Cache), while the current = definition of MIPS_CONFIG0_VI (0x00000004) implies that it=E2=80=99s bit = 2. This leads to a lot of headaches when trying to bring up a new CPU = (1004KC in my case) and trying to use Cachable-Coherent CCA (0x5 or = 0b101) for Kseg0 :-) I guess we=E2=80=99ve been able to get away with this so far due to = mainly 2 things: 1. CPUs that use CCA 0x4 - 0x7 for Kseg0 usually are cache-coherent = anyway, so their cache ops are most likely no-op. 2. CPUs that use CCA 0x0 - 0x3 for Kseg0 work just fine, as bit 2 is not = set :-) This leads to improper detection of the I-Cache type (it=E2=80=99s = detected as virtual when it actually isn=E2=80=99t) on kernels that use = CCA >=3D 0x4 for Kseg0, which, in turn, leads to a lot of fun trying to = figure out what=E2=80=99s wrong and why things work with CCA 0x3 and not = with 0x5 on a single core... After changing the definition of MIPS_CONFIG0_VI from 0x00000004 to = 0x00000008 everything goes back to normal even with CCA 0x5. I would appreciate it if someone would commit this change (if you guys = think it=E2=80=99s necessary). I would do it myself if I but I have no = commit privileges. Best wishes, Stanislav=