system.cc (12525:2959af162048) system.cc (12531:3141027bd11a)
1/*
2 * Copyright (c) 2010, 2012-2013, 2015,2017-2018 ARM Limited
3 * All rights reserved
4 *
5 * The license below extends only to copyright in the software and shall
6 * not be construed as granting a license to any other intellectual
7 * property including but not limited to intellectual property relating
8 * to a hardware implementation of the functionality of the software

--- 30 unchanged lines hidden (view full) ---

39 *
40 * Authors: Ali Saidi
41 */
42
43#include "arch/arm/system.hh"
44
45#include <iostream>
46
1/*
2 * Copyright (c) 2010, 2012-2013, 2015,2017-2018 ARM Limited
3 * All rights reserved
4 *
5 * The license below extends only to copyright in the software and shall
6 * not be construed as granting a license to any other intellectual
7 * property including but not limited to intellectual property relating
8 * to a hardware implementation of the functionality of the software

--- 30 unchanged lines hidden (view full) ---

39 *
40 * Authors: Ali Saidi
41 */
42
43#include "arch/arm/system.hh"
44
45#include <iostream>
46
47#include "arch/arm/semihosting.hh"
47#include "base/loader/object_file.hh"
48#include "base/loader/symtab.hh"
49#include "cpu/thread_context.hh"
50#include "mem/fs_translating_port_proxy.hh"
51#include "mem/physical.hh"
52#include "sim/full_system.hh"
53
54using namespace std;

--- 10 unchanged lines hidden (view full) ---

65 _resetAddr64(p->auto_reset_addr_64 ?
66 (kernelEntry & loadAddrMask) + loadAddrOffset :
67 p->reset_addr_64),
68 _physAddrRange64(p->phys_addr_range_64),
69 _haveLargeAsid64(p->have_large_asid_64),
70 _m5opRange(p->m5ops_base ?
71 RangeSize(p->m5ops_base, 0x10000) :
72 AddrRange(1, 0)), // Create an empty range if disabled
48#include "base/loader/object_file.hh"
49#include "base/loader/symtab.hh"
50#include "cpu/thread_context.hh"
51#include "mem/fs_translating_port_proxy.hh"
52#include "mem/physical.hh"
53#include "sim/full_system.hh"
54
55using namespace std;

--- 10 unchanged lines hidden (view full) ---

66 _resetAddr64(p->auto_reset_addr_64 ?
67 (kernelEntry & loadAddrMask) + loadAddrOffset :
68 p->reset_addr_64),
69 _physAddrRange64(p->phys_addr_range_64),
70 _haveLargeAsid64(p->have_large_asid_64),
71 _m5opRange(p->m5ops_base ?
72 RangeSize(p->m5ops_base, 0x10000) :
73 AddrRange(1, 0)), // Create an empty range if disabled
74 semihosting(p->semihosting),
73 multiProc(p->multi_proc)
74{
75 // Check if the physical address range is valid
76 if (_highestELIs64 && (
77 _physAddrRange64 < 32 ||
78 _physAddrRange64 > 48 ||
79 (_physAddrRange64 % 4 != 0 && _physAddrRange64 != 42))) {
80 fatal("Invalid physical address range (%d)\n", _physAddrRange64);

--- 182 unchanged lines hidden (view full) ---

263}
264
265bool
266ArmSystem::haveLargeAsid64(ThreadContext *tc)
267{
268 return getArmSystem(tc)->haveLargeAsid64();
269}
270
75 multiProc(p->multi_proc)
76{
77 // Check if the physical address range is valid
78 if (_highestELIs64 && (
79 _physAddrRange64 < 32 ||
80 _physAddrRange64 > 48 ||
81 (_physAddrRange64 % 4 != 0 && _physAddrRange64 != 42))) {
82 fatal("Invalid physical address range (%d)\n", _physAddrRange64);

--- 182 unchanged lines hidden (view full) ---

265}
266
267bool
268ArmSystem::haveLargeAsid64(ThreadContext *tc)
269{
270 return getArmSystem(tc)->haveLargeAsid64();
271}
272
273bool
274ArmSystem::haveSemihosting(ThreadContext *tc)
275{
276 return getArmSystem(tc)->haveSemihosting();
277}
278
279uint64_t
280ArmSystem::callSemihosting64(ThreadContext *tc,
281 uint32_t op, uint64_t param)
282{
283 ArmSystem *sys = getArmSystem(tc);
284 return sys->semihosting->call64(tc, op, param);
285}
286
287uint32_t
288ArmSystem::callSemihosting32(ThreadContext *tc,
289 uint32_t op, uint32_t param)
290{
291 ArmSystem *sys = getArmSystem(tc);
292 return sys->semihosting->call32(tc, op, param);
293}
294
271ArmSystem *
272ArmSystemParams::create()
273{
274 return new ArmSystem(this);
275}
276
277void
278GenericArmSystem::initState()

--- 14 unchanged lines hidden ---
295ArmSystem *
296ArmSystemParams::create()
297{
298 return new ArmSystem(this);
299}
300
301void
302GenericArmSystem::initState()

--- 14 unchanged lines hidden ---