From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([140.186.70.92]:39611) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RpNmE-0008Qy-UT for qemu-devel@nongnu.org; Mon, 23 Jan 2012 12:33:56 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1RpNmD-0002gd-Hs for qemu-devel@nongnu.org; Mon, 23 Jan 2012 12:33:54 -0500 Message-ID: <4F1D99FF.4010905@suse.de> Date: Mon, 23 Jan 2012 18:33:51 +0100 From: Alexander Graf MIME-Version: 1.0 References: <1327119330-29304-1-git-send-email-agraf@suse.de> <1327119330-29304-8-git-send-email-agraf@suse.de> <4F1D99A1.7080003@freescale.com> In-Reply-To: <4F1D99A1.7080003@freescale.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH 7/8] PPC: booke206: Check for min/max TLB entry size List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Scott Wood Cc: qemu-ppc@nongnu.org, qemu-devel Developers On 01/23/2012 06:32 PM, Scott Wood wrote: > On 01/20/2012 10:15 PM, Alexander Graf wrote: >> @@ -4273,6 +4274,16 @@ void helper_booke206_tlbwe(void) >> tlb->mas1&= ~MAS1_IPROT; >> } >> >> + /* check that we support the targeted size */ >> + size_tlb = (tlb->mas1& MAS1_TSIZE_MASK)>> MAS1_TSIZE_SHIFT; >> + size_ps = booke206_tlbnps(env, tlbn); >> + if ((tlb->mas1& MAS1_VALID)&& (tlbncfg& TLBnCFG_AVAIL)&& >> + !(size_ps& (1<< size_tlb))) { >> + helper_raise_exception_err(POWERPC_EXCP_PROGRAM, >> + POWERPC_EXCP_INVAL | >> + POWERPC_EXCP_INVAL_INVAL); >> + } >> + >> if (booke206_tlb_to_page_size(env, tlb) == TARGET_PAGE_SIZE) { >> tlb_flush_page(env, tlb->mas2& MAS2_EPN_MASK); >> } else { > For tlb0 on e500 and derivatives, tsize is explicitly documented as > ignored. Software may rely on this. Yup, that's why there's the check for TLBnCG_AVAIL, which indicates that a TLB has dynamic page size capabilities, which TLB0 does not have. Alex