utility.cc revision 6759
16757SAli.Saidi@ARM.com/*
26757SAli.Saidi@ARM.com * Copyright (c) 2009 ARM Limited
36757SAli.Saidi@ARM.com * All rights reserved.
46757SAli.Saidi@ARM.com *
56757SAli.Saidi@ARM.com * Redistribution and use in source and binary forms, with or without
66757SAli.Saidi@ARM.com * modification, are permitted provided that the following conditions are
76757SAli.Saidi@ARM.com * met: redistributions of source code must retain the above copyright
86757SAli.Saidi@ARM.com * notice, this list of conditions and the following disclaimer;
96757SAli.Saidi@ARM.com * redistributions in binary form must reproduce the above copyright
106757SAli.Saidi@ARM.com * notice, this list of conditions and the following disclaimer in the
116757SAli.Saidi@ARM.com * documentation and/or other materials provided with the distribution;
126757SAli.Saidi@ARM.com * neither the name of the copyright holders nor the names of its
136757SAli.Saidi@ARM.com * contributors may be used to endorse or promote products derived from
146757SAli.Saidi@ARM.com * this software without specific prior written permission.
156757SAli.Saidi@ARM.com *
166757SAli.Saidi@ARM.com * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
176757SAli.Saidi@ARM.com * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
186757SAli.Saidi@ARM.com * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
196757SAli.Saidi@ARM.com * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
206757SAli.Saidi@ARM.com * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
216757SAli.Saidi@ARM.com * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
226757SAli.Saidi@ARM.com * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
236757SAli.Saidi@ARM.com * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
246757SAli.Saidi@ARM.com * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
256757SAli.Saidi@ARM.com * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
266757SAli.Saidi@ARM.com * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
276757SAli.Saidi@ARM.com *
286757SAli.Saidi@ARM.com * Authors: Ali Saidi
296757SAli.Saidi@ARM.com */
306735Sgblack@eecs.umich.edu
316757SAli.Saidi@ARM.com
326757SAli.Saidi@ARM.com#include "arch/arm/faults.hh"
336757SAli.Saidi@ARM.com#include "arch/arm/utility.hh"
346757SAli.Saidi@ARM.com#include "cpu/thread_context.hh"
356735Sgblack@eecs.umich.edu
366735Sgblack@eecs.umich.edu
376735Sgblack@eecs.umich.edunamespace ArmISA {
386735Sgblack@eecs.umich.edu
396735Sgblack@eecs.umich.eduvoid
406735Sgblack@eecs.umich.eduinitCPU(ThreadContext *tc, int cpuId)
416735Sgblack@eecs.umich.edu{
426735Sgblack@eecs.umich.edu    // Reset CP15?? What does that mean -- ali
436735Sgblack@eecs.umich.edu
446735Sgblack@eecs.umich.edu    // FPEXC.EN = 0
456735Sgblack@eecs.umich.edu
466757SAli.Saidi@ARM.com    static Fault reset = new Reset;
476735Sgblack@eecs.umich.edu    if (cpuId == 0)
486735Sgblack@eecs.umich.edu        reset->invoke(tc);
496735Sgblack@eecs.umich.edu}
506735Sgblack@eecs.umich.edu
516757SAli.Saidi@ARM.comuint64_t getArgument(ThreadContext *tc, int number, bool fp) {
526757SAli.Saidi@ARM.com#if FULL_SYSTEM
536757SAli.Saidi@ARM.com    panic("getArgument() not implemented for ARM!\n");
546757SAli.Saidi@ARM.com#else
556757SAli.Saidi@ARM.com    panic("getArgument() only implemented for FULL_SYSTEM\n");
566757SAli.Saidi@ARM.com    M5_DUMMY_RETURN
576757SAli.Saidi@ARM.com#endif
586757SAli.Saidi@ARM.com}
596757SAli.Saidi@ARM.com
606759SAli.Saidi@ARM.comFault
616759SAli.Saidi@ARM.comsetCp15Register(uint32_t &Rd, int CRn, int opc1, int CRm, int opc2)
626759SAli.Saidi@ARM.com{
636759SAli.Saidi@ARM.com   return new UnimpFault(csprintf("MCR CP15: CRn: %d opc1: %d CRm: %d opc1: %d\n",
646759SAli.Saidi@ARM.com               CRn, opc1, CRm, opc2));
656757SAli.Saidi@ARM.com}
666759SAli.Saidi@ARM.com
676759SAli.Saidi@ARM.comFault
686759SAli.Saidi@ARM.comreadCp15Register(uint32_t &Rd, int CRn, int opc1, int CRm, int opc2)
696759SAli.Saidi@ARM.com{
706759SAli.Saidi@ARM.com   return new UnimpFault(csprintf("MRC CP15: CRn: %d opc1: %d CRm: %d opc1: %d\n",
716759SAli.Saidi@ARM.com           CRn, opc1, CRm, opc2));
726759SAli.Saidi@ARM.com
736759SAli.Saidi@ARM.com}
746759SAli.Saidi@ARM.com
756759SAli.Saidi@ARM.com
766759SAli.Saidi@ARM.com}
77