From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from [140.186.70.92] (port=58697 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1PTgvI-0007zJ-P8 for qemu-devel@nongnu.org; Fri, 17 Dec 2010 15:29:06 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1PTgvC-0008I0-Sk for qemu-devel@nongnu.org; Fri, 17 Dec 2010 15:28:59 -0500 Received: from mail.mc.net ([209.172.128.24]:58774) by eggs.gnu.org with smtp (Exim 4.71) (envelope-from ) id 1PTgvC-0008GY-N0 for qemu-devel@nongnu.org; Fri, 17 Dec 2010 15:28:58 -0500 Message-ID: <4D0BC9BB.9070100@mc.net> Date: Fri, 17 Dec 2010 14:36:11 -0600 From: Bob Breuer MIME-Version: 1.0 Subject: Re: [Qemu-devel] [PATCH] sparc32_dma: separate ledma and espdma References: In-Reply-To: Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Blue Swirl Cc: qemu-devel , Artyom Tarasenko Blue Swirl wrote: > ESP and Lance DMA controllers are not identical. > > Separate the controllers on VMState and instantiation level. > > NB: This change breaks savevm and migration compatibility. > > Signed-off-by: Blue Swirl > --- > Perhaps the compat properties could be used to retain compatibility. > But if nobody cares (as I suspect), let's just break it. > > Further changes can either use s->is_ledma or make the state > structures separate. > > hw/sparc32_dma.c | 65 ++++++++++++++++++++++++++++++++++++++++++++--------- > hw/sun4m.c | 16 ++++++------ > 2 files changed, 62 insertions(+), 19 deletions(-) > This change never made it in, and I found a case that may benefit from it. The ledma seems to have an extra register that Solaris 9 reads, address 0x78400020 on SS-5, and the OBP properties of a SS-20 do indicate that there could be up to 32 bytes of registers: ok cd /iommu/sbus/ledma ok .attributes burst-sizes 0000003f reg 0000000f 00400010 00000020 name ledma As a hack, you can get Solaris 9 to boot single user by adding this one line to sun4m_hw_init() in sun4m.c: empty_slot_init(hwdef->dma_base + 32ULL, 16); Bob