From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:51189) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UvtZ8-00024k-UA for qemu-devel@nongnu.org; Sun, 07 Jul 2013 14:20:08 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1UvtZ7-0002vy-LE for qemu-devel@nongnu.org; Sun, 07 Jul 2013 14:20:06 -0400 Received: from mail-ye0-f171.google.com ([209.85.213.171]:51585) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UvtZ7-0002to-Hm for qemu-devel@nongnu.org; Sun, 07 Jul 2013 14:20:05 -0400 Received: by mail-ye0-f171.google.com with SMTP id q14so1406459yen.16 for ; Sun, 07 Jul 2013 11:20:03 -0700 (PDT) Date: Sat, 06 Jul 2013 12:08:36 -0500 From: Rob Landley In-Reply-To: <51D5EEAD.9010103@caramail.com> (from odanet@caramail.com on Thu Jul 4 16:52:45 2013) Message-Id: <1373130516.27613.8@driftwood> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii; DelSp=Yes; Format=Flowed Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Subject: Re: [Qemu-devel] Openbios upgrade broke sparc32 linux. List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Olivier Danet Cc: Blue Swirl , Mark Cave-Ayland , qemu-devel@nongnu.org On 07/04/2013 04:52:45 PM, Olivier Danet wrote: > On 29/06/2013 22:29, Olivier Danet wrote: >> On 28/06/2013 23:44, Mark Cave-Ayland wrote: >>> On 28/06/13 03:08, Rob Landley wrote: >>>=20 >>>> Commit 467b34689d27 upgraded the openbios image, and ever since my =20 >>>> linux >>>> system images hang about the time they try to initialize =20 >>>> interrupts. >>>>=20 >>>> http://landley.net/aboriginal/bin/system-image-sparc.tar.bz2 >>>>=20 >>>> Extract that and "./run-emulator.sh" in the tarball. Using qemu =20 >>>> 1.2.0 >>>> for example works fine, you get a shell prompt. Using 1.5.0 hangs. ... > Hello > I think I have found the problem. >=20 > Each SPARC CPU model use different MMU TLB management functions. > For Linux, the callbacks are set in arch/sparc/mm/srmmu.c : =20 > xxx_flush_tlb_all, xxx_flush_tlb_mm, xxx_flush_tlb_range, =20 > xxx_flush_tlb_page. > The assembly code used for the MicroSparcII is arch/sparc/mm/swift.S. =20 > This code accesses the vm_mm member of vm_area_struct =20 > (include/linux/mm_types.h) >=20 > The position of the vm_mm field in the structure was modified =20 > recently, and the assembly > was not adjusted accordingly. > (https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/i= nclude/linux/mm_types.h?id=3De4c6bfd2d79d063017ab19a18915f0bc759f32d9) >=20 > The bug was introduced in Linux 3.8 >=20 > Here is a patch for swift, there are also issues in hypersparc.S, =20 > viking.S, tsunami.S ...: [snip patch that wasn't sent to linux-kernel] > For a cleaner fix, arch/sparc/kernel/asm_offsets.c should be modified. Huh, confirming that my old linux 3.5 image does boot under current =20 qemu. (I only tested back to 3.8, which worked before the qemu change =20 for some reason.) In the meantime, the -cpu "fujitsu thx1138" workaround is working for =20 me, well enough to ship the 3.10 images as soon as I get arm working =20 again. (Or just go "use qemu 1.2.0 for arm" and punt until next time...) Rob=