forked from aut0/avp64
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy patharm64_linux.cfg
96 lines (78 loc) · 3.78 KB
/
arm64_linux.cfg
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
##############################################################################
# #
# Copyright 2020 Lukas Jünger #
# #
# This software is licensed under the MIT license. #
# A copy of the license can be found in the LICENSE file at the root #
# of the source tree. #
# #
##############################################################################
### Simulation TCP port summary ##############################################
# system.term0 -> 52010 (raw binary)
# system.term1 -> 52011 (raw binary)
# system.term2 -> 52012 (raw binary)
# system.term3 -> 52013 (raw binary)
# system.arm0 -> 52100 (GDB RSP)
### General configuration ####################################################
system.name = avp64
system.desc = Boots Linux on a single-core aarch64 CPU
system.config = ${cfg}
# Specify the number of processors to instantiate in the simulation.
system.nrcpu = 1
# Specify simulation duration. Simulation will stop automatically once this
# time-stamp is reached. Use integer values with suffixes s, ms, us or ns. If
# you want to simulate infinitely, leave this commented out.
# system.duration = 2s
# TLM global quantum, a higher value improves performance but reduces timing
# accuracy. Use integer values with suffixes s, ms, us or ns.
system.quantum = 100us
# Clock frequency
system.clock.hz = 1000000000 # 1 GHz
### CPU configuration ########################################################
system.arm0.gdb_port = 52100
system.arm0.gdb_wait = 0 # (0) start core immediately; (1) wait for gdb
### Physical Address Map #####################################################
system.addr_ram = 0x00000000..0x0fffffff
system.addr_hwrng = 0x10007000..0x10007fff
system.addr_simdev = 0x10008000..0x10008fff
system.addr_uart0 = 0x10009000..0x10009fff
system.addr_uart1 = 0x1000a000..0x1000afff
system.addr_uart2 = 0x1000b000..0x1000bfff
system.addr_uart3 = 0x1000c000..0x1000cfff
system.addr_ethoc = 0x1000d000..0x1000efff
system.addr_sdhci = 0x1000f000..0x1000ffff
system.addr_gic_distif = 0x10140000..0x10140fff
system.addr_gic_cpuif = 0x10141000..0x10142fff
system.addr_gic_vifctrl= 0x10143000..0x10144fff
system.addr_gic_vcpuif = 0x10145000..0x10146fff
system.addr_spi = 0x10147000..0x10148fff
system.addr_gpio = 0x10149000..0x10149fff
### Interrupt Map ############################################################
system.irq_uart0 = 5
system.irq_uart1 = 6
system.irq_uart2 = 7
system.irq_uart3 = 8
system.irq_ethoc = 9
system.irq_sdhci = 10
system.irq_gt_hyp = 26
system.irq_gt_virt= 27
system.irq_gt_ns = 30
system.irq_gt_s = 29
system.irq_spi = 11
### Memory and IO peripherals configuration ##################################
# Memory configuration
system.ram.size = 0x10000000 # 256MB
system.ram.images = ${dir}/../sw/arm64/linux/boot.bin@0x00000000 \
${dir}/../sw/arm64/linux/Image-4.19.4@0x00080000 \
${dir}/../sw/arm64/linux/linux.dtb@0x07f00000
# SD Card configuration
system.sdcard.readonly = true
system.sdcard.image = ${dir}/../sw/arm64/linux/sdcard.img
# Terminal configuration
system.term0.backends = term tcp:52010 # stdout|file|tap|null
system.term1.backends = tcp:52011 # term|file|tap|null
system.term2.backends = tcp:52012 # term|file|tap|null
system.term3.backends = tcp:52013 # term|file|tap|null
# ETHOC configuration
system.ethoc.mac = 3a:44:1d:55:11:5a
system.bridge.backends = slirp:0