From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:39592) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aazNT-0000pz-6T for qemu-devel@nongnu.org; Wed, 02 Mar 2016 00:31:16 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aazNR-00086f-I5 for qemu-devel@nongnu.org; Wed, 02 Mar 2016 00:31:15 -0500 MIME-Version: 1.0 In-Reply-To: References: <56D52825.1010107@weilnetz.de> Date: Tue, 1 Mar 2016 21:31:09 -0800 Message-ID: From: Peter Crosthwaite Content-Type: text/plain; charset=UTF-8 Subject: Re: [Qemu-devel] [PATCH v1 00/17] ARM big-endian and setend support List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Andrew Baumann Cc: Peter Maydell , Stefan Weil , "qemu-devel@nongnu.org Developers" , Alistair Francis , sridhar kulkarni , qemu-arm , Paolo Bonzini , =?UTF-8?Q?Piotr_Kr=C3=B3l?= On Tue, Mar 1, 2016 at 1:34 PM, Andrew Baumann wrote: >> From: Peter Crosthwaite [mailto:crosthwaitepeter@gmail.com] >> Sent: Tuesday, 1 March 2016 10:44 AM >> >> On Mon, Feb 29, 2016 at 9:27 PM, Stefan Weil wrote: >> > Am 18.01.2016 um 08:12 schrieb Peter Crosthwaite: >> >> Hi All, >> >> >> >> This patch series adds system-mode big-endian support for ARM. It also >> >> implements the setend instruction, and loading of BE binaries even in >> >> LE emulation mode. >> >> >> >> Based on Paolo's original work. I have moved all the BE32 related work >> >> to the back of the series. Multiple parties are interested in the BE8 >> >> work just on its own, so that could potentially be merged w/o BE32. >> >> PMM requested BE32 be at least thought out architecturally, so this >> >> series sees BE32 functionality through. >> >> >> >> I have tested all of LE. BE8 and BE32 in both linux-user mode (for >> >> regressions) and system mode (BE8 and BE32 are new here). >> >> My test application is here, the README gives some example command >> >> lines you can run: >> >> >> >> https://github.com/pcrost/arm-be-test >> >> >> >> Regards, >> >> Peter >> > >> > It would be nice to get at least the emulation for 'setend' into the >> > next version, because it is needed for the Raspberry Pi emulation. >> > >> >> BTW if you can link me binaries and a failing command line for the >> failing rPI work I can test it, I am currently doing my own standalone >> tests (of linux user as well). > > Download and unzip: > https://downloads.raspberrypi.org/raspbian_lite_latest > > Then, mount the boot partition, and grab a copy of kernel7.img. You should now be able to boot on a current qemu with: > > qemu-system-arm -M raspi2 -kernel kernel7.img -sd 2016-02-26-raspbian-jessie-lite.img -append "rw earlyprintk loglevel=8 console=ttyAMA0 root=/dev/mmcblk0p2 rootwait" -serial stdio -d unimp > > At present, this fails with: > > [ 10.535232] VFS: Mounted root (ext4 filesystem) on device 179:2. > [ 10.729685] devtmpfs: mounted > [ 10.805125] Freeing unused kernel memory: 416K (80776000 - 807de000) > [ 17.317286] random: systemd urandom read with 6 bits of entropy available > arm: unimplemented setend > [ 17.366656] Kernel panic - not syncing: Attempted to kill init! exitcode=0x00000004 > [ 17.366656] > [ 17.384625] CPU: 0 PID: 1 Comm: systemd Not tainted 4.1.7-v7+ #817 > [ 17.395562] Hardware name: BCM2709 > [ 17.404738] [<80018440>] (unwind_backtrace) from [<80013e0c>] (show_stack+0x20/0x24) > [ 17.419042] [<80013e0c>] (show_stack) from [<80558548>] (dump_stack+0x98/0xe0) > [ 17.432237] [<80558548>] (dump_stack) from [<8055473c>] (panic+0xa4/0x204) > [ 17.444761] [<8055473c>] (panic) from [<8002937c>] (do_exit+0xa0c/0xa64) > [ 17.452507] [<8002937c>] (do_exit) from [<80029470>] (do_group_exit+0x50/0xcc) > [ 17.462827] [<80029470>] (do_group_exit) from [<80033ed4>] (get_signal+0x2b0/0x6e0) > [ 17.474429] [<80033ed4>] (get_signal) from [<80013194>] (do_signal+0x98/0x3ac) > [ 17.482176] [<80013194>] (do_signal) from [<80013690>] (do_work_pending+0xb8/0xc8) > [ 17.490129] [<80013690>] (do_work_pending) from [<8000f9e4>] (work_pending+0xc/0x20) > [ 17.501020] ---[ end Kernel panic - not syncing: Attempted to kill init! exitcode=0x00000004 > [ 17.501020] > Reproduced. With my patch series I am now getting further: [ 5.570600] VFS: Mounted root (ext4 filesystem) on device 179:2. [ 5.628967] devtmpfs: mounted [ 5.667292] Freeing unused kernel memory: 448K (8078a000 - 807fa000) [ 7.829100] random: systemd urandom read with 2 bits of entropy available [ 7.902604] systemd[1]: systemd 215 running in system mode. (+PAM +AUDIT +SELINUX +IMA +SYSVINIT +LIBCRYPTSETUP +GCRYPT +ACL +XZ -SECCOMP -APPARMOR) [ 7.913866] systemd[1]: Detected architecture 'arm'. Welcome to Raspbian GNU/Linux 8 (jessie)! [ 8.625874] NET: Registered protocol family 10 [ 8.645330] systemd[1]: Inserted module 'ipv6' [ 8.671989] systemd[1]: Set hostname to . [ 12.670915] systemd[1]: Cannot add dependency job for unit display-manager.service, ignoring: Unit display-manager.service failed to load: No such file or directory. [ 12.720439] systemd[1]: Starting Forward Password Requests to Wall Directory Watch. [ 12.731310] systemd[1]: Started Forward Password Requests to Wall Directory Watch. [ 12.734406] systemd[1]: Expecting device dev-ttyAMA0.device... Expecting device dev-ttyAMA0.device... ... [ OK ] Started Permit User Sessions. [ OK ] Started Login Service. [ OK ] Started System Logging Service. [ OK ] Started LSB: Apply config from /boot/os_config.json. [ OK ] Started dhcpcd on all interfaces. [ OK ] Reached target Network. Starting /etc/rc.local Compatibility... [ OK ] Reached target Network is Online. Starting LSB: Start NTP daemon... [ OK ] Started /etc/rc.local Compatibility. Starting Wait for Plymouth Boot Screen to Quit... Starting Terminate Plymouth Boot Screen... [ OK ] Started Wait for Plymouth Boot Screen to Quit. Starting Getty on tty1... [ OK ] Started Getty on tty1. Starting Serial Getty on ttyAMA0... [ OK ] Started Serial Getty on ttyAMA0. [ OK ] Reached target Login Prompts. [ OK ] Started Terminate Plymouth Boot Screen. Raspbian GNU/Linux 8 raspberrypi ttyAMA0 raspberrypi login: pi Password: Linux raspberrypi 4.1.18-v7+ #846 SMP Thu Feb 25 14:22:53 GMT 2016 armv7l The programs included with the Debian GNU/Linux system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. pi@raspberrypi:~$ cat /proc/cpuinfo processor : 0 model name : ARMv7 Processor rev 1 (v7l) BogoMIPS : 38.40 Features : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm CPU implementer : 0x41 CPU architecture: 7 CPU variant : 0x2 CPU part : 0xc0f CPU revision : 1 Hardware : BCM2709 Revision : 0000 Serial : 0000000000000000 pi@raspberrypi:~$ uname -a Linux raspberrypi 4.1.18-v7+ #846 SMP Thu Feb 25 14:22:53 GMT 2016 armv7l GNU/Linux Regards, Peter > Cheers, > Andrew