From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:43042) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SFOoq-0003On-Ry for qemu-devel@nongnu.org; Wed, 04 Apr 2012 07:56:13 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1SFOoo-0005jC-L4 for qemu-devel@nongnu.org; Wed, 04 Apr 2012 07:56:08 -0400 Received: from plane.gmane.org ([80.91.229.3]:35964) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SFOoo-0005iz-EA for qemu-devel@nongnu.org; Wed, 04 Apr 2012 07:56:06 -0400 Received: from list by plane.gmane.org with local (Exim 4.69) (envelope-from ) id 1SFOom-0003HQ-58 for qemu-devel@nongnu.org; Wed, 04 Apr 2012 13:56:04 +0200 Received: from 213.33.220.118 ([213.33.220.118]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Wed, 04 Apr 2012 13:56:04 +0200 Received: from m.kozlov by 213.33.220.118 with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Wed, 04 Apr 2012 13:56:04 +0200 From: Maksim Kozlov Date: Wed, 04 Apr 2012 15:55:48 +0400 Message-ID: <4F7C36C4.2070500@samsung.com> References: <1333534133-9917-1-git-send-email-zhur@ispras.ru> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit In-Reply-To: <1333534133-9917-1-git-send-email-zhur@ispras.ru> Subject: Re: [Qemu-devel] [PATCH] Support system reset in Exynos4210 List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: Kyungmin Park , Igor Mitsyanko , Evgeny Voevodin , Dmitry Solodkiy 04.04.2012 14:08, Dmitry Zhurikhin пишет: > Reset the system when 1 is written to SWRESET register > > Signed-off-by: Dmitry Zhurikhin > --- > hw/exynos4210_pmu.c | 11 +++++++++++ > 1 files changed, 11 insertions(+), 0 deletions(-) > > diff --git a/hw/exynos4210_pmu.c b/hw/exynos4210_pmu.c > index c12d750..edf6e34 100644 > --- a/hw/exynos4210_pmu.c > +++ b/hw/exynos4210_pmu.c > @@ -25,6 +25,7 @@ > */ > > #include "sysbus.h" > +#include "sysemu.h" > > #ifndef DEBUG_PMU > #define DEBUG_PMU 0 > @@ -422,6 +423,16 @@ static void exynos4210_pmu_write(void *opaque, target_phys_addr_t offset, > if (reg_p->offset == offset) { > PRINT_DEBUG_EXTEND("%s<0x%04x> <- 0x%04x\n", reg_p->name, > (uint32_t)offset, (uint32_t)val); > + switch (offset) { > + case SWRESET: > + if (val& 1) { > + qemu_system_reset_request(); > + } > + break; > + default: > + /* Nothing */ > + break; > + } > s->reg[i] = val; > return; > } It's not quite well. At first, when you do reset, appropriate status must be set in RST_STAT register. At second, not all registers in PMU should be set in default value after reset, so you should change PMU reset function for handling different resets (see spec) So, this functionality should be wrote more carefully And use #define for registers and fields of the registers. It's more clearly, as for me. Regards, MK