1e67db06eSJia Liu /* 2e67db06eSJia Liu * OpenRISC Machine 3e67db06eSJia Liu * 4e67db06eSJia Liu * Copyright (c) 2011-2012 Jia Liu <proljc@gmail.com> 5e67db06eSJia Liu * 6e67db06eSJia Liu * This library is free software; you can redistribute it and/or 7e67db06eSJia Liu * modify it under the terms of the GNU Lesser General Public 8e67db06eSJia Liu * License as published by the Free Software Foundation; either 9e67db06eSJia Liu * version 2 of the License, or (at your option) any later version. 10e67db06eSJia Liu * 11e67db06eSJia Liu * This library is distributed in the hope that it will be useful, 12e67db06eSJia Liu * but WITHOUT ANY WARRANTY; without even the implied warranty of 13e67db06eSJia Liu * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14e67db06eSJia Liu * Lesser General Public License for more details. 15e67db06eSJia Liu * 16e67db06eSJia Liu * You should have received a copy of the GNU Lesser General Public 17e67db06eSJia Liu * License along with this library; if not, see <http://www.gnu.org/licenses/>. 18e67db06eSJia Liu */ 19e67db06eSJia Liu 20ed2decc6SPeter Maydell #include "qemu/osdep.h" 2133c11879SPaolo Bonzini #include "qemu-common.h" 2233c11879SPaolo Bonzini #include "cpu.h" 23e67db06eSJia Liu #include "hw/hw.h" 24e67db06eSJia Liu #include "hw/boards.h" 251e00b8d5SPaolo Bonzini #include "migration/cpu.h" 26e67db06eSJia Liu 27da697214SAndreas Färber static const VMStateDescription vmstate_env = { 28da697214SAndreas Färber .name = "env", 29*930c3d00SRichard Henderson .version_id = 2, 30*930c3d00SRichard Henderson .minimum_version_id = 2, 31e67db06eSJia Liu .fields = (VMStateField[]) { 32*930c3d00SRichard Henderson VMSTATE_UINTTL_ARRAY(gpr, CPUOpenRISCState, 32), 33*930c3d00SRichard Henderson VMSTATE_UINTTL(pc, CPUOpenRISCState), 34*930c3d00SRichard Henderson VMSTATE_UINTTL(npc, CPUOpenRISCState), 35*930c3d00SRichard Henderson VMSTATE_UINTTL(ppc, CPUOpenRISCState), 36*930c3d00SRichard Henderson VMSTATE_UINTTL(jmp_pc, CPUOpenRISCState), 37*930c3d00SRichard Henderson VMSTATE_UINTTL(lock_addr, CPUOpenRISCState), 38*930c3d00SRichard Henderson VMSTATE_UINTTL(lock_value, CPUOpenRISCState), 39*930c3d00SRichard Henderson VMSTATE_UINTTL(epcr, CPUOpenRISCState), 40*930c3d00SRichard Henderson VMSTATE_UINTTL(eear, CPUOpenRISCState), 41e67db06eSJia Liu VMSTATE_UINT32(sr, CPUOpenRISCState), 42*930c3d00SRichard Henderson VMSTATE_UINT32(vr, CPUOpenRISCState), 43*930c3d00SRichard Henderson VMSTATE_UINT32(upr, CPUOpenRISCState), 44*930c3d00SRichard Henderson VMSTATE_UINT32(cpucfgr, CPUOpenRISCState), 45*930c3d00SRichard Henderson VMSTATE_UINT32(dmmucfgr, CPUOpenRISCState), 46*930c3d00SRichard Henderson VMSTATE_UINT32(immucfgr, CPUOpenRISCState), 47e67db06eSJia Liu VMSTATE_UINT32(esr, CPUOpenRISCState), 48e67db06eSJia Liu VMSTATE_UINT32(fpcsr, CPUOpenRISCState), 49e67db06eSJia Liu VMSTATE_END_OF_LIST() 50e67db06eSJia Liu } 51e67db06eSJia Liu }; 52e67db06eSJia Liu 53da697214SAndreas Färber const VMStateDescription vmstate_openrisc_cpu = { 54da697214SAndreas Färber .name = "cpu", 55da697214SAndreas Färber .version_id = 1, 56da697214SAndreas Färber .minimum_version_id = 1, 57da697214SAndreas Färber .fields = (VMStateField[]) { 58da697214SAndreas Färber VMSTATE_CPU(), 59da697214SAndreas Färber VMSTATE_STRUCT(env, OpenRISCCPU, 1, vmstate_env, CPUOpenRISCState), 60da697214SAndreas Färber VMSTATE_END_OF_LIST() 61e67db06eSJia Liu } 62da697214SAndreas Färber }; 63