From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:51453) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SFPSI-0005A8-RS for qemu-devel@nongnu.org; Wed, 04 Apr 2012 08:36:56 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1SFPSA-0007Ou-Vd for qemu-devel@nongnu.org; Wed, 04 Apr 2012 08:36:54 -0400 Received: from smtp.ispras.ru ([83.149.198.202]:47899) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SFPSA-0007O0-K3 for qemu-devel@nongnu.org; Wed, 04 Apr 2012 08:36:46 -0400 Message-ID: <4F7C401D.4000502@ispras.ru> Date: Wed, 04 Apr 2012 16:35:41 +0400 From: Dmitry Zhurikhin MIME-Version: 1.0 References: <1333534133-9917-1-git-send-email-zhur@ispras.ru> <4F7C36C4.2070500@samsung.com> In-Reply-To: <4F7C36C4.2070500@samsung.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Subject: Re: [Qemu-devel] [PATCH] Support system reset in Exynos4210 List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Maksim Kozlov Cc: Kyungmin Park , Igor Mitsyanko , qemu-devel@nongnu.org, Evgeny Voevodin , Dmitry Solodkiy On 2012-04-04 15:55, Maksim Kozlov wrote: > 04.04.2012 14:08, Dmitry Zhurikhin =D0=BF=D0=B8=D1=88=D0=B5=D1=82: >> 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 =3D=3D offset) { >> PRINT_DEBUG_EXTEND("%s<0x%04x> <- 0x%04x\n", reg_p->nam= e, >> (uint32_t)offset, (uint32_t)val); >> + switch (offset) { >> + case SWRESET: >> + if (val& 1) { >> + qemu_system_reset_request(); >> + } >> + break; >> + default: >> + /* Nothing */ >> + break; >> + } >> s->reg[i] =3D 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 Well, this is the case when there is a need to modify booting procedure depending on the values of these registers. I haven't found any such code in the current kernel. As I now remember saving their values was indeed important when we were trying to use an U-Boot bootloader. But as long as we are sticking with QEMU bootloader it doesn't matter.=20 Anyway this information is unfortunately absent in Exynos4210 public documentation. > > And use #define for registers and fields of the registers. It's more > clearly, as for me. As you say. > > Regards, > MK Regards, Dmitry