me2150 microkit part1 and 2

This commit is contained in:
Dane Sabo 2025-02-17 14:47:10 -05:00
parent edfdd215b3
commit 1e7742c6a3
9 changed files with 534 additions and 184 deletions

View File

@ -7,57 +7,82 @@
# Loader Regions # Loader Regions
<Region name=PD-ELF serial_server-0 addr=0x60247000 size=20584> <Region name=PD-ELF serial_server-0 addr=0x60248000 size=20896>
<Region name=PD-ELF serial_server-1 addr=0x6024d000 size=112> <Region name=PD-ELF serial_server-1 addr=0x6024e000 size=128>
<Region name=PD-ELF client-0 addr=0x6024f000 size=20992>
<Region name=PD-ELF client-1 addr=0x60255000 size=320>
# Monitor (Initial Task) Info # Monitor (Initial Task) Info
virtual memory : MemoryRegion(base=0x8a000000, end=0x8a008000) virtual memory : MemoryRegion(base=0x8a000000, end=0x8a008000)
physical memory: MemoryRegion(base=0x6024e000, end=0x60256000) physical memory: MemoryRegion(base=0x60256000, end=0x6025e000)
# Allocated Kernel Objects Summary # Allocated Kernel Objects Summary
# of allocated objects: 23 # of allocated objects: 46
# Bootstrap Kernel Invocations Summary # Bootstrap Kernel Invocations Summary
# of invocations : 9 # of invocations : 9
size of invocations: 576 size of invocations: 616
# System Kernel Invocations Summary # System Kernel Invocations Summary
# of invocations : 48 # of invocations : 84
size of invocations: 3,232 size of invocations: 5,944
# Allocated Kernel Objects Detail # Allocated Kernel Objects Detail
Page(4 KiB): IPC Buffer PD=serial_server 9 cap_addr=8000000000000002 phys_addr=60002000 Page(4 KiB): IPC Buffer PD=serial_server 9 cap_addr=8000000000000003 phys_addr=60003000
Page(4 KiB): MR=STACK:serial_server #0 9 cap_addr=8000000000000003 phys_addr=60003000 Page(4 KiB): IPC Buffer PD=client 9 cap_addr=8000000000000004 phys_addr=60004000
Page(4 KiB): MR=uart @ 9000000 9 cap_addr=8000000000000004 phys_addr=9000000 Page(4 KiB): MR=serial_to_client #0 9 cap_addr=8000000000000005 phys_addr=60005000
Page(4 KiB): MR=ELF:serial_server-0 @ 60247000 9 cap_addr=8000000000000005 phys_addr=60247000 Page(4 KiB): MR=client_to_serial #0 9 cap_addr=8000000000000006 phys_addr=60006000
Page(4 KiB): MR=ELF:serial_server-0 @ 60248000 9 cap_addr=8000000000000006 phys_addr=60248000 Page(4 KiB): MR=STACK:serial_server #0 9 cap_addr=8000000000000007 phys_addr=60007000
Page(4 KiB): MR=ELF:serial_server-0 @ 60249000 9 cap_addr=8000000000000007 phys_addr=60249000 Page(4 KiB): MR=STACK:client #0 9 cap_addr=8000000000000008 phys_addr=60008000
Page(4 KiB): MR=ELF:serial_server-0 @ 6024a000 9 cap_addr=8000000000000008 phys_addr=6024a000 Page(4 KiB): MR=uart @ 9000000 9 cap_addr=8000000000000009 phys_addr=9000000
Page(4 KiB): MR=ELF:serial_server-0 @ 6024b000 9 cap_addr=8000000000000009 phys_addr=6024b000 Page(4 KiB): MR=ELF:serial_server-0 @ 60248000 9 cap_addr=800000000000000a phys_addr=60248000
Page(4 KiB): MR=ELF:serial_server-0 @ 6024c000 9 cap_addr=800000000000000a phys_addr=6024c000 Page(4 KiB): MR=ELF:serial_server-0 @ 60249000 9 cap_addr=800000000000000b phys_addr=60249000
Page(4 KiB): MR=ELF:serial_server-1 @ 6024d000 9 cap_addr=800000000000000b phys_addr=6024d000 Page(4 KiB): MR=ELF:serial_server-0 @ 6024a000 9 cap_addr=800000000000000c phys_addr=6024a000
TCB: PD=serial_server 1 cap_addr=800000000000000c phys_addr=60004000 Page(4 KiB): MR=ELF:serial_server-0 @ 6024b000 9 cap_addr=800000000000000d phys_addr=6024b000
SchedContext: PD=serial_server 5 cap_addr=800000000000000d phys_addr=60006000 Page(4 KiB): MR=ELF:serial_server-0 @ 6024c000 9 cap_addr=800000000000000e phys_addr=6024c000
Reply: Monitor 6 cap_addr=800000000000000e phys_addr=60008000 Page(4 KiB): MR=ELF:serial_server-0 @ 6024d000 9 cap_addr=800000000000000f phys_addr=6024d000
Reply: PD=serial_server 6 cap_addr=800000000000000f phys_addr=60008020 Page(4 KiB): MR=ELF:serial_server-1 @ 6024e000 9 cap_addr=8000000000000010 phys_addr=6024e000
EP: Monitor Fault 2 cap_addr=8000000000000010 phys_addr=60008040 Page(4 KiB): MR=ELF:client-0 @ 6024f000 9 cap_addr=8000000000000011 phys_addr=6024f000
Notification: PD=serial_server 3 cap_addr=8000000000000011 phys_addr=60008080 Page(4 KiB): MR=ELF:client-0 @ 60250000 9 cap_addr=8000000000000012 phys_addr=60250000
VSpace: PD=serial_server 8 cap_addr=8000000000000012 phys_addr=6000a000 Page(4 KiB): MR=ELF:client-0 @ 60251000 9 cap_addr=8000000000000013 phys_addr=60251000
PageTable: PD=serial_server VADDR=0x0 11 cap_addr=8000000000000013 phys_addr=6000c000 Page(4 KiB): MR=ELF:client-0 @ 60252000 9 cap_addr=8000000000000014 phys_addr=60252000
PageTable: PD=serial_server VADDR=0xffc0000000 11 cap_addr=8000000000000014 phys_addr=6000d000 Page(4 KiB): MR=ELF:client-0 @ 60253000 9 cap_addr=8000000000000015 phys_addr=60253000
PageTable: PD=serial_server VADDR=0x200000 11 cap_addr=8000000000000015 phys_addr=60258000 Page(4 KiB): MR=ELF:client-0 @ 60254000 9 cap_addr=8000000000000016 phys_addr=60254000
PageTable: PD=serial_server VADDR=0x2000000 11 cap_addr=8000000000000016 phys_addr=60259000 Page(4 KiB): MR=ELF:client-1 @ 60255000 9 cap_addr=8000000000000017 phys_addr=60255000
PageTable: PD=serial_server VADDR=0xffffe00000 11 cap_addr=8000000000000017 phys_addr=6025a000 TCB: PD=serial_server 1 cap_addr=8000000000000018 phys_addr=60009000
CNode: PD=serial_server 4 cap_addr=8000000000000018 phys_addr=6025c000 TCB: PD=client 1 cap_addr=8000000000000019 phys_addr=60009800
SchedContext: PD=serial_server 5 cap_addr=800000000000001a phys_addr=6000a000
SchedContext: PD=client 5 cap_addr=800000000000001b phys_addr=6000c000
Reply: Monitor 6 cap_addr=800000000000001c phys_addr=6000e000
Reply: PD=serial_server 6 cap_addr=800000000000001d phys_addr=6000e020
Reply: PD=client 6 cap_addr=800000000000001e phys_addr=6000e040
EP: Monitor Fault 2 cap_addr=800000000000001f phys_addr=6000e060
Notification: PD=serial_server 3 cap_addr=8000000000000020 phys_addr=6000e080
Notification: PD=client 3 cap_addr=8000000000000021 phys_addr=6000e0c0
VSpace: PD=serial_server 8 cap_addr=8000000000000022 phys_addr=60260000
VSpace: PD=client 8 cap_addr=8000000000000023 phys_addr=60262000
PageTable: PD=serial_server VADDR=0x0 11 cap_addr=8000000000000024 phys_addr=60264000
PageTable: PD=serial_server VADDR=0xffc0000000 11 cap_addr=8000000000000025 phys_addr=60265000
PageTable: PD=client VADDR=0x0 11 cap_addr=8000000000000026 phys_addr=60266000
PageTable: PD=client VADDR=0xffc0000000 11 cap_addr=8000000000000027 phys_addr=60267000
PageTable: PD=serial_server VADDR=0x200000 11 cap_addr=8000000000000028 phys_addr=60268000
PageTable: PD=serial_server VADDR=0x2000000 11 cap_addr=8000000000000029 phys_addr=60269000
PageTable: PD=serial_server VADDR=0x4000000 11 cap_addr=800000000000002a phys_addr=6026a000
PageTable: PD=serial_server VADDR=0xffffe00000 11 cap_addr=800000000000002b phys_addr=6026b000
PageTable: PD=client VADDR=0x200000 11 cap_addr=800000000000002c phys_addr=6026c000
PageTable: PD=client VADDR=0x4000000 11 cap_addr=800000000000002d phys_addr=6026d000
PageTable: PD=client VADDR=0xffffe00000 11 cap_addr=800000000000002e phys_addr=6026e000
CNode: PD=serial_server 4 cap_addr=800000000000002f phys_addr=60270000
CNode: PD=client 4 cap_addr=8000000000000030 phys_addr=60274000
# Bootstrap Kernel Invocations Detail # Bootstrap Kernel Invocations Detail
0x0000 Untyped - Retype - 0x0000000000000041 (Untyped @ 0x60000000:0x10000) 0x0000 Untyped - Retype - 0x0000000000000042 (Untyped @ 0x60000000:0x10000)
object_type 4 (SEL4_CNODE_OBJECT - variable size) object_type 4 (SEL4_CNODE_OBJECT - variable size)
size_bits 1 (0x2) size_bits 1 (0x2)
root (cap) 0x0000000000000002 (CNode: init) root (cap) 0x0000000000000002 (CNode: init)
@ -79,9 +104,9 @@
cspace_root_data 0 cspace_root_data 0
vspace_root (cap) 0x0000000000000003 (VSpace: init) vspace_root (cap) 0x0000000000000003 (VSpace: init)
vspace_root_data 0 vspace_root_data 0
0x0003 Untyped - Retype - 0x0000000000000041 (Untyped @ 0x60000000:0x10000) 0x0003 Untyped - Retype - 0x0000000000000042 (Untyped @ 0x60000000:0x10000)
object_type 4 (SEL4_CNODE_OBJECT - variable size) object_type 4 (SEL4_CNODE_OBJECT - variable size)
size_bits 6 (0x40) size_bits 7 (0x80)
root (cap) 0x0000000000000002 (CNode: init) root (cap) 0x0000000000000002 (CNode: init)
node_index 0 node_index 0
node_depth 0 node_depth 0
@ -94,7 +119,7 @@
src_obj (cap) 0x0000000000000061 (CNode: system) src_obj (cap) 0x0000000000000061 (CNode: system)
src_depth 64 src_depth 64
rights 15 rights 15
badge 57 badge 56
0x0005 Untyped - Retype - 0x000000000000001b (Untyped @ 0x60246000:0x2000 (device)) 0x0005 Untyped - Retype - 0x000000000000001b (Untyped @ 0x60246000:0x2000 (device))
object_type 9 (SEL4_SMALL_PAGE_OBJECT - 0x1000) object_type 9 (SEL4_SMALL_PAGE_OBJECT - 0x1000)
size_bits 0 (N/A) size_bits 0 (N/A)
@ -102,16 +127,16 @@
node_index 1 node_index 1
node_depth 1 node_depth 1
node_offset 0 node_offset 0
num_objects 1 num_objects 2
0x0006 Untyped - Retype - 0x0000000000000041 (Untyped @ 0x60000000:0x10000) 0x0006 Untyped - Retype - 0x0000000000000042 (Untyped @ 0x60000000:0x10000)
object_type 11 (SEL4_PAGE_TABLE_OBJECT - 0x1000) object_type 11 (SEL4_PAGE_TABLE_OBJECT - 0x1000)
size_bits 0 (N/A) size_bits 0 (N/A)
root (cap) 0x0000000000000060 (CNode: root) root (cap) 0x0000000000000060 (CNode: root)
node_index 1 node_index 1
node_depth 1 node_depth 1
node_offset 1 node_offset 2
num_objects 1 num_objects 1
0x0007 Page Table - Map - 0x8000000000000001 (PageTable: monitor) 0x0007 Page Table - Map - 0x8000000000000002 (PageTable: monitor)
vspace (cap) 0x0000000000000003 (VSpace: init) vspace (cap) 0x0000000000000003 (VSpace: init)
vaddr 0x80000000 vaddr 0x80000000
attr 3 attr 3
@ -120,58 +145,19 @@
vaddr 0x80000000 vaddr 0x80000000
rights 2 rights 2
attr 7 attr 7
REPEAT: count=2
# System Kernel Invocations Detail # System Kernel Invocations Detail
0x0000 Untyped - Retype - 0x0000000000000041 (Untyped @ 0x60000000:0x10000) 0x0000 Untyped - Retype - 0x0000000000000042 (Untyped @ 0x60000000:0x10000)
object_type 9 (SEL4_SMALL_PAGE_OBJECT - 0x1000) object_type 9 (SEL4_SMALL_PAGE_OBJECT - 0x1000)
size_bits 0 (N/A) size_bits 0 (N/A)
root (cap) 0x0000000000000060 (CNode: root) root (cap) 0x0000000000000060 (CNode: root)
node_index 1 node_index 1
node_depth 1 node_depth 1
node_offset 2 node_offset 3
num_objects 2 num_objects 6
0x0001 Untyped - Retype - 0x0000000000000032 (Untyped @ 0x9000000:0x1000000 (device)) 0x0001 Untyped - Retype - 0x0000000000000033 (Untyped @ 0x9000000:0x1000000 (device))
object_type 9 (SEL4_SMALL_PAGE_OBJECT - 0x1000)
size_bits 0 (N/A)
root (cap) 0x0000000000000060 (CNode: root)
node_index 1
node_depth 1
node_offset 4
num_objects 1
0x0002 Untyped - Retype - 0x000000000000001b (Untyped @ 0x60246000:0x2000 (device))
object_type 9 (SEL4_SMALL_PAGE_OBJECT - 0x1000)
size_bits 0 (N/A)
root (cap) 0x0000000000000060 (CNode: root)
node_index 1
node_depth 1
node_offset 5
num_objects 1
0x0003 Untyped - Retype - 0x000000000000001c (Untyped @ 0x60248000:0x4000 (device))
object_type 9 (SEL4_SMALL_PAGE_OBJECT - 0x1000)
size_bits 0 (N/A)
root (cap) 0x0000000000000060 (CNode: root)
node_index 1
node_depth 1
node_offset 6
num_objects 1
0x0004 Untyped - Retype - 0x000000000000001c (Untyped @ 0x60248000:0x4000 (device))
object_type 9 (SEL4_SMALL_PAGE_OBJECT - 0x1000)
size_bits 0 (N/A)
root (cap) 0x0000000000000060 (CNode: root)
node_index 1
node_depth 1
node_offset 7
num_objects 1
0x0005 Untyped - Retype - 0x000000000000001c (Untyped @ 0x60248000:0x4000 (device))
object_type 9 (SEL4_SMALL_PAGE_OBJECT - 0x1000)
size_bits 0 (N/A)
root (cap) 0x0000000000000060 (CNode: root)
node_index 1
node_depth 1
node_offset 8
num_objects 1
0x0006 Untyped - Retype - 0x000000000000001c (Untyped @ 0x60248000:0x4000 (device))
object_type 9 (SEL4_SMALL_PAGE_OBJECT - 0x1000) object_type 9 (SEL4_SMALL_PAGE_OBJECT - 0x1000)
size_bits 0 (N/A) size_bits 0 (N/A)
root (cap) 0x0000000000000060 (CNode: root) root (cap) 0x0000000000000060 (CNode: root)
@ -179,7 +165,7 @@
node_depth 1 node_depth 1
node_offset 9 node_offset 9
num_objects 1 num_objects 1
0x0007 Untyped - Retype - 0x000000000000001d (Untyped @ 0x6024c000:0x2000 (device)) 0x0002 Untyped - Retype - 0x000000000000001c (Untyped @ 0x60248000:0x8000 (device))
object_type 9 (SEL4_SMALL_PAGE_OBJECT - 0x1000) object_type 9 (SEL4_SMALL_PAGE_OBJECT - 0x1000)
size_bits 0 (N/A) size_bits 0 (N/A)
root (cap) 0x0000000000000060 (CNode: root) root (cap) 0x0000000000000060 (CNode: root)
@ -187,7 +173,7 @@
node_depth 1 node_depth 1
node_offset 10 node_offset 10
num_objects 1 num_objects 1
0x0008 Untyped - Retype - 0x000000000000001d (Untyped @ 0x6024c000:0x2000 (device)) 0x0003 Untyped - Retype - 0x000000000000001c (Untyped @ 0x60248000:0x8000 (device))
object_type 9 (SEL4_SMALL_PAGE_OBJECT - 0x1000) object_type 9 (SEL4_SMALL_PAGE_OBJECT - 0x1000)
size_bits 0 (N/A) size_bits 0 (N/A)
root (cap) 0x0000000000000060 (CNode: root) root (cap) 0x0000000000000060 (CNode: root)
@ -195,238 +181,508 @@
node_depth 1 node_depth 1
node_offset 11 node_offset 11
num_objects 1 num_objects 1
0x0009 Untyped - Retype - 0x0000000000000041 (Untyped @ 0x60000000:0x10000) 0x0004 Untyped - Retype - 0x000000000000001c (Untyped @ 0x60248000:0x8000 (device))
object_type 1 (SEL4_TCB_OBJECT - 0x800) object_type 9 (SEL4_SMALL_PAGE_OBJECT - 0x1000)
size_bits 0 (N/A) size_bits 0 (N/A)
root (cap) 0x0000000000000060 (CNode: root) root (cap) 0x0000000000000060 (CNode: root)
node_index 1 node_index 1
node_depth 1 node_depth 1
node_offset 12 node_offset 12
num_objects 1 num_objects 1
0x000a Untyped - Retype - 0x0000000000000041 (Untyped @ 0x60000000:0x10000) 0x0005 Untyped - Retype - 0x000000000000001c (Untyped @ 0x60248000:0x8000 (device))
object_type 5 (SEL4_SCHEDCONTEXT_OBJECT - variable size) object_type 9 (SEL4_SMALL_PAGE_OBJECT - 0x1000)
size_bits 8 (0x100) size_bits 0 (N/A)
root (cap) 0x0000000000000060 (CNode: root) root (cap) 0x0000000000000060 (CNode: root)
node_index 1 node_index 1
node_depth 1 node_depth 1
node_offset 13 node_offset 13
num_objects 1 num_objects 1
0x000b Untyped - Retype - 0x0000000000000041 (Untyped @ 0x60000000:0x10000) 0x0006 Untyped - Retype - 0x000000000000001c (Untyped @ 0x60248000:0x8000 (device))
object_type 6 (SEL4_REPLY_OBJECT - 0x20) object_type 9 (SEL4_SMALL_PAGE_OBJECT - 0x1000)
size_bits 0 (N/A) size_bits 0 (N/A)
root (cap) 0x0000000000000060 (CNode: root) root (cap) 0x0000000000000060 (CNode: root)
node_index 1 node_index 1
node_depth 1 node_depth 1
node_offset 14 node_offset 14
num_objects 2 num_objects 1
0x000c Untyped - Retype - 0x0000000000000041 (Untyped @ 0x60000000:0x10000) 0x0007 Untyped - Retype - 0x000000000000001c (Untyped @ 0x60248000:0x8000 (device))
object_type 2 (SEL4_ENDPOINT_OBJECT - 0x10) object_type 9 (SEL4_SMALL_PAGE_OBJECT - 0x1000)
size_bits 0 (N/A)
root (cap) 0x0000000000000060 (CNode: root)
node_index 1
node_depth 1
node_offset 15
num_objects 1
0x0008 Untyped - Retype - 0x000000000000001c (Untyped @ 0x60248000:0x8000 (device))
object_type 9 (SEL4_SMALL_PAGE_OBJECT - 0x1000)
size_bits 0 (N/A) size_bits 0 (N/A)
root (cap) 0x0000000000000060 (CNode: root) root (cap) 0x0000000000000060 (CNode: root)
node_index 1 node_index 1
node_depth 1 node_depth 1
node_offset 16 node_offset 16
num_objects 1 num_objects 1
0x000d Untyped - Retype - 0x0000000000000041 (Untyped @ 0x60000000:0x10000) 0x0009 Untyped - Retype - 0x000000000000001c (Untyped @ 0x60248000:0x8000 (device))
object_type 3 (SEL4_NOTIFICATION_OBJECT - 0x40) object_type 9 (SEL4_SMALL_PAGE_OBJECT - 0x1000)
size_bits 0 (N/A) size_bits 0 (N/A)
root (cap) 0x0000000000000060 (CNode: root) root (cap) 0x0000000000000060 (CNode: root)
node_index 1 node_index 1
node_depth 1 node_depth 1
node_offset 17 node_offset 17
num_objects 1 num_objects 1
0x000e Untyped - Retype - 0x0000000000000041 (Untyped @ 0x60000000:0x10000) 0x000a Untyped - Retype - 0x000000000000001d (Untyped @ 0x60250000:0x4000 (device))
object_type 8 (SEL4_VSPACE_OBJECT - 0x2000) object_type 9 (SEL4_SMALL_PAGE_OBJECT - 0x1000)
size_bits 0 (N/A) size_bits 0 (N/A)
root (cap) 0x0000000000000060 (CNode: root) root (cap) 0x0000000000000060 (CNode: root)
node_index 1 node_index 1
node_depth 1 node_depth 1
node_offset 18 node_offset 18
num_objects 1 num_objects 1
0x000f Untyped - Retype - 0x0000000000000041 (Untyped @ 0x60000000:0x10000) 0x000b Untyped - Retype - 0x000000000000001d (Untyped @ 0x60250000:0x4000 (device))
object_type 11 (SEL4_PAGE_TABLE_OBJECT - 0x1000) object_type 9 (SEL4_SMALL_PAGE_OBJECT - 0x1000)
size_bits 0 (N/A) size_bits 0 (N/A)
root (cap) 0x0000000000000060 (CNode: root) root (cap) 0x0000000000000060 (CNode: root)
node_index 1 node_index 1
node_depth 1 node_depth 1
node_offset 19 node_offset 19
num_objects 2 num_objects 1
0x0010 Untyped - Retype - 0x0000000000000043 (Untyped @ 0x60258000:0x8000) 0x000c Untyped - Retype - 0x000000000000001d (Untyped @ 0x60250000:0x4000 (device))
object_type 11 (SEL4_PAGE_TABLE_OBJECT - 0x1000) object_type 9 (SEL4_SMALL_PAGE_OBJECT - 0x1000)
size_bits 0 (N/A)
root (cap) 0x0000000000000060 (CNode: root)
node_index 1
node_depth 1
node_offset 20
num_objects 1
0x000d Untyped - Retype - 0x000000000000001d (Untyped @ 0x60250000:0x4000 (device))
object_type 9 (SEL4_SMALL_PAGE_OBJECT - 0x1000)
size_bits 0 (N/A) size_bits 0 (N/A)
root (cap) 0x0000000000000060 (CNode: root) root (cap) 0x0000000000000060 (CNode: root)
node_index 1 node_index 1
node_depth 1 node_depth 1
node_offset 21 node_offset 21
num_objects 1
0x000e Untyped - Retype - 0x000000000000001e (Untyped @ 0x60254000:0x2000 (device))
object_type 9 (SEL4_SMALL_PAGE_OBJECT - 0x1000)
size_bits 0 (N/A)
root (cap) 0x0000000000000060 (CNode: root)
node_index 1
node_depth 1
node_offset 22
num_objects 1
0x000f Untyped - Retype - 0x000000000000001e (Untyped @ 0x60254000:0x2000 (device))
object_type 9 (SEL4_SMALL_PAGE_OBJECT - 0x1000)
size_bits 0 (N/A)
root (cap) 0x0000000000000060 (CNode: root)
node_index 1
node_depth 1
node_offset 23
num_objects 1
0x0010 Untyped - Retype - 0x0000000000000042 (Untyped @ 0x60000000:0x10000)
object_type 1 (SEL4_TCB_OBJECT - 0x800)
size_bits 0 (N/A)
root (cap) 0x0000000000000060 (CNode: root)
node_index 1
node_depth 1
node_offset 24
num_objects 2
0x0011 Untyped - Retype - 0x0000000000000042 (Untyped @ 0x60000000:0x10000)
object_type 5 (SEL4_SCHEDCONTEXT_OBJECT - variable size)
size_bits 8 (0x100)
root (cap) 0x0000000000000060 (CNode: root)
node_index 1
node_depth 1
node_offset 26
num_objects 2
0x0012 Untyped - Retype - 0x0000000000000042 (Untyped @ 0x60000000:0x10000)
object_type 6 (SEL4_REPLY_OBJECT - 0x20)
size_bits 0 (N/A)
root (cap) 0x0000000000000060 (CNode: root)
node_index 1
node_depth 1
node_offset 28
num_objects 3 num_objects 3
0x0011 Untyped - Retype - 0x0000000000000043 (Untyped @ 0x60258000:0x8000) 0x0013 Untyped - Retype - 0x0000000000000042 (Untyped @ 0x60000000:0x10000)
object_type 2 (SEL4_ENDPOINT_OBJECT - 0x10)
size_bits 0 (N/A)
root (cap) 0x0000000000000060 (CNode: root)
node_index 1
node_depth 1
node_offset 31
num_objects 1
0x0014 Untyped - Retype - 0x0000000000000042 (Untyped @ 0x60000000:0x10000)
object_type 3 (SEL4_NOTIFICATION_OBJECT - 0x40)
size_bits 0 (N/A)
root (cap) 0x0000000000000060 (CNode: root)
node_index 1
node_depth 1
node_offset 32
num_objects 2
0x0015 Untyped - Retype - 0x0000000000000044 (Untyped @ 0x60260000:0x20000)
object_type 8 (SEL4_VSPACE_OBJECT - 0x2000)
size_bits 0 (N/A)
root (cap) 0x0000000000000060 (CNode: root)
node_index 1
node_depth 1
node_offset 34
num_objects 2
0x0016 Untyped - Retype - 0x0000000000000044 (Untyped @ 0x60260000:0x20000)
object_type 11 (SEL4_PAGE_TABLE_OBJECT - 0x1000)
size_bits 0 (N/A)
root (cap) 0x0000000000000060 (CNode: root)
node_index 1
node_depth 1
node_offset 36
num_objects 4
0x0017 Untyped - Retype - 0x0000000000000044 (Untyped @ 0x60260000:0x20000)
object_type 11 (SEL4_PAGE_TABLE_OBJECT - 0x1000)
size_bits 0 (N/A)
root (cap) 0x0000000000000060 (CNode: root)
node_index 1
node_depth 1
node_offset 40
num_objects 7
0x0018 Untyped - Retype - 0x0000000000000044 (Untyped @ 0x60260000:0x20000)
object_type 4 (SEL4_CNODE_OBJECT - variable size) object_type 4 (SEL4_CNODE_OBJECT - variable size)
size_bits 9 (0x200) size_bits 9 (0x200)
root (cap) 0x0000000000000060 (CNode: root) root (cap) 0x0000000000000060 (CNode: root)
node_index 1 node_index 1
node_depth 1 node_depth 1
node_offset 24 node_offset 47
num_objects 1 num_objects 2
0x0012 IRQ Control - Get - 0x0000000000000004 (IRQ Control) 0x0019 IRQ Control - Get - 0x0000000000000004 (IRQ Control)
irq 33 irq 33
trigger 0 trigger 0
dest_root (cap) 0x0000000000000060 (CNode: root) dest_root (cap) 0x0000000000000060 (CNode: root)
dest_index 9223372036854775833 dest_index 9223372036854775857
dest_depth 64 dest_depth 64
0x0013 ASID Pool - Assign - 0x0000000000000006 (ASID Pool: init) 0x001a ASID Pool - Assign - 0x0000000000000006 (ASID Pool: init)
vspace (cap) 0x8000000000000012 (VSpace: PD=serial_server) vspace (cap) 0x8000000000000022 (VSpace: PD=serial_server)
0x0014 CNode - Mint - 0x0000000000000061 (CNode: system) REPEAT: count=2
dest_index 26 0x001b CNode - Mint - 0x0000000000000061 (CNode: system)
dest_depth 6 dest_index 50
dest_depth 7
src_root (cap) 0x0000000000000060 (CNode: root) src_root (cap) 0x0000000000000060 (CNode: root)
src_obj (cap) 0x8000000000000004 (Page(4 KiB): MR=uart @ 9000000) src_obj (cap) 0x8000000000000009 (Page(4 KiB): MR=uart @ 9000000)
src_depth 64 src_depth 64
rights 3 rights 3
badge 0 badge 0
0x0015 CNode - Mint - 0x0000000000000061 (CNode: system) 0x001c CNode - Mint - 0x0000000000000061 (CNode: system)
dest_index 27 dest_index 51
dest_depth 6 dest_depth 7
src_root (cap) 0x0000000000000060 (CNode: root) src_root (cap) 0x0000000000000060 (CNode: root)
src_obj (cap) 0x8000000000000005 (Page(4 KiB): MR=ELF:serial_server-0 @ 60247000) src_obj (cap) 0x8000000000000005 (Page(4 KiB): MR=serial_to_client #0)
src_depth 64
rights 3
badge 0
0x001d CNode - Mint - 0x0000000000000061 (CNode: system)
dest_index 52
dest_depth 7
src_root (cap) 0x0000000000000060 (CNode: root)
src_obj (cap) 0x8000000000000006 (Page(4 KiB): MR=client_to_serial #0)
src_depth 64
rights 2
badge 0
0x001e CNode - Mint - 0x0000000000000061 (CNode: system)
dest_index 53
dest_depth 7
src_root (cap) 0x0000000000000060 (CNode: root)
src_obj (cap) 0x800000000000000a (Page(4 KiB): MR=ELF:serial_server-0 @ 60248000)
src_depth 64 src_depth 64
rights 2 rights 2
badge 0 badge 0
REPEAT: count=6 REPEAT: count=6
0x0016 CNode - Mint - 0x0000000000000061 (CNode: system) 0x001f CNode - Mint - 0x0000000000000061 (CNode: system)
dest_index 33 dest_index 59
dest_depth 6 dest_depth 7
src_root (cap) 0x0000000000000060 (CNode: root) src_root (cap) 0x0000000000000060 (CNode: root)
src_obj (cap) 0x800000000000000b (Page(4 KiB): MR=ELF:serial_server-1 @ 6024d000) src_obj (cap) 0x8000000000000010 (Page(4 KiB): MR=ELF:serial_server-1 @ 6024e000)
src_depth 64 src_depth 64
rights 3 rights 3
badge 0 badge 0
0x0017 CNode - Mint - 0x0000000000000061 (CNode: system) 0x0020 CNode - Mint - 0x0000000000000061 (CNode: system)
dest_index 34 dest_index 60
dest_depth 6 dest_depth 7
src_root (cap) 0x0000000000000060 (CNode: root) src_root (cap) 0x0000000000000060 (CNode: root)
src_obj (cap) 0x8000000000000003 (Page(4 KiB): MR=STACK:serial_server #0) src_obj (cap) 0x8000000000000007 (Page(4 KiB): MR=STACK:serial_server #0)
src_depth 64 src_depth 64
rights 3 rights 3
badge 0 badge 0
0x0018 CNode - Mint - 0x0000000000000061 (CNode: system) 0x0021 CNode - Mint - 0x0000000000000061 (CNode: system)
dest_index 35 dest_index 61
dest_depth 6 dest_depth 7
src_root (cap) 0x0000000000000060 (CNode: root) src_root (cap) 0x0000000000000060 (CNode: root)
src_obj (cap) 0x8000000000000011 (Notification: PD=serial_server) src_obj (cap) 0x8000000000000005 (Page(4 KiB): MR=serial_to_client #0)
src_depth 64
rights 2
badge 0
0x0022 CNode - Mint - 0x0000000000000061 (CNode: system)
dest_index 62
dest_depth 7
src_root (cap) 0x0000000000000060 (CNode: root)
src_obj (cap) 0x8000000000000006 (Page(4 KiB): MR=client_to_serial #0)
src_depth 64
rights 3
badge 0
0x0023 CNode - Mint - 0x0000000000000061 (CNode: system)
dest_index 63
dest_depth 7
src_root (cap) 0x0000000000000060 (CNode: root)
src_obj (cap) 0x8000000000000011 (Page(4 KiB): MR=ELF:client-0 @ 6024f000)
src_depth 64
rights 2
badge 0
REPEAT: count=6
0x0024 CNode - Mint - 0x0000000000000061 (CNode: system)
dest_index 69
dest_depth 7
src_root (cap) 0x0000000000000060 (CNode: root)
src_obj (cap) 0x8000000000000017 (Page(4 KiB): MR=ELF:client-1 @ 60255000)
src_depth 64
rights 3
badge 0
0x0025 CNode - Mint - 0x0000000000000061 (CNode: system)
dest_index 70
dest_depth 7
src_root (cap) 0x0000000000000060 (CNode: root)
src_obj (cap) 0x8000000000000008 (Page(4 KiB): MR=STACK:client #0)
src_depth 64
rights 3
badge 0
0x0026 CNode - Mint - 0x0000000000000061 (CNode: system)
dest_index 71
dest_depth 7
src_root (cap) 0x0000000000000060 (CNode: root)
src_obj (cap) 0x8000000000000020 (Notification: PD=serial_server)
src_depth 64 src_depth 64
rights 15 rights 15
badge 2 badge 2
0x0019 CNode - Mint - 0x0000000000000061 (CNode: system) 0x0027 CNode - Mint - 0x0000000000000061 (CNode: system)
dest_index 36 dest_index 72
dest_depth 6 dest_depth 7
src_root (cap) 0x0000000000000060 (CNode: root) src_root (cap) 0x0000000000000060 (CNode: root)
src_obj (cap) 0x8000000000000010 (EP: Monitor Fault) src_obj (cap) 0x800000000000001f (EP: Monitor Fault)
src_depth 64 src_depth 64
rights 15 rights 15
badge 1 badge 1
0x001a CNode - Mint - 0x8000000000000018 (CNode: PD=serial_server) 0x0028 CNode - Mint - 0x0000000000000061 (CNode: system)
dest_index 73
dest_depth 7
src_root (cap) 0x0000000000000060 (CNode: root)
src_obj (cap) 0x800000000000001f (EP: Monitor Fault)
src_depth 64
rights 15
badge 2
0x0029 CNode - Mint - 0x800000000000002f (CNode: PD=serial_server)
dest_index 1 dest_index 1
dest_depth 9 dest_depth 9
src_root (cap) 0x0000000000000060 (CNode: root) src_root (cap) 0x0000000000000060 (CNode: root)
src_obj (cap) 0x8000000000000011 (Notification: PD=serial_server) src_obj (cap) 0x8000000000000020 (Notification: PD=serial_server)
src_depth 64 src_depth 64
rights 15 rights 15
badge 0 badge 0
0x001b CNode - Mint - 0x8000000000000018 (CNode: PD=serial_server) 0x002a CNode - Mint - 0x8000000000000030 (CNode: PD=client)
dest_index 1
dest_depth 9
src_root (cap) 0x0000000000000060 (CNode: root)
src_obj (cap) 0x8000000000000021 (Notification: PD=client)
src_depth 64
rights 15
badge 0
0x002b CNode - Mint - 0x800000000000002f (CNode: PD=serial_server)
dest_index 4 dest_index 4
dest_depth 9 dest_depth 9
src_root (cap) 0x0000000000000060 (CNode: root) src_root (cap) 0x0000000000000060 (CNode: root)
src_obj (cap) 0x800000000000000f (Reply: PD=serial_server) src_obj (cap) 0x800000000000001d (Reply: PD=serial_server)
src_depth 64 src_depth 64
rights 15 rights 15
badge 1 badge 1
0x001c CNode - Mint - 0x8000000000000018 (CNode: PD=serial_server) REPEAT: count=2
0x002c CNode - Mint - 0x800000000000002f (CNode: PD=serial_server)
dest_index 3 dest_index 3
dest_depth 9 dest_depth 9
src_root (cap) 0x0000000000000060 (CNode: root) src_root (cap) 0x0000000000000060 (CNode: root)
src_obj (cap) 0x8000000000000012 (VSpace: PD=serial_server) src_obj (cap) 0x8000000000000022 (VSpace: PD=serial_server)
src_depth 64 src_depth 64
rights 15 rights 15
badge 0 badge 0
0x001d CNode - Mint - 0x8000000000000018 (CNode: PD=serial_server) REPEAT: count=2
0x002d CNode - Mint - 0x800000000000002f (CNode: PD=serial_server)
dest_index 139 dest_index 139
dest_depth 9 dest_depth 9
src_root (cap) 0x0000000000000060 (CNode: root) src_root (cap) 0x0000000000000060 (CNode: root)
src_obj (cap) 0x8000000000000019 (IRQ Handler: irq=33) src_obj (cap) 0x8000000000000031 (IRQ Handler: irq=33)
src_depth 64 src_depth 64
rights 15 rights 15
badge 0 badge 0
0x001e IRQ Handler - SetNotification - 0x8000000000000019 (IRQ Handler: irq=33) 0x002e CNode - Mint - 0x800000000000002f (CNode: PD=serial_server)
notification (cap) 0x8000000000000023 (Notification: PD=serial_server (badge=0x2)) dest_index 12
0x001f Page Table - Map - 0x8000000000000013 (PageTable: PD=serial_server VADDR=0x0) dest_depth 9
vspace (cap) 0x8000000000000012 (VSpace: PD=serial_server) src_root (cap) 0x0000000000000060 (CNode: root)
src_obj (cap) 0x8000000000000021 (Notification: PD=client)
src_depth 64
rights 15
badge 2
0x002f CNode - Mint - 0x8000000000000030 (CNode: PD=client)
dest_index 11
dest_depth 9
src_root (cap) 0x0000000000000060 (CNode: root)
src_obj (cap) 0x8000000000000020 (Notification: PD=serial_server)
src_depth 64
rights 15
badge 4
0x0030 IRQ Handler - SetNotification - 0x8000000000000031 (IRQ Handler: irq=33)
notification (cap) 0x8000000000000047 (Notification: PD=serial_server (badge=0x2))
0x0031 Page Table - Map - 0x8000000000000024 (PageTable: PD=serial_server VADDR=0x0)
vspace (cap) 0x8000000000000022 (VSpace: PD=serial_server)
vaddr 0x0 vaddr 0x0
attr 3 attr 3
0x0020 Page Table - Map - 0x8000000000000014 (PageTable: PD=serial_server VADDR=0xffc0000000) 0x0032 Page Table - Map - 0x8000000000000025 (PageTable: PD=serial_server VADDR=0xffc0000000)
vspace (cap) 0x8000000000000012 (VSpace: PD=serial_server) vspace (cap) 0x8000000000000022 (VSpace: PD=serial_server)
vaddr 0xffc0000000 vaddr 0xffc0000000
attr 3 attr 3
0x0021 Page Table - Map - 0x8000000000000015 (PageTable: PD=serial_server VADDR=0x200000) 0x0033 Page Table - Map - 0x8000000000000026 (PageTable: PD=client VADDR=0x0)
vspace (cap) 0x8000000000000012 (VSpace: PD=serial_server) vspace (cap) 0x8000000000000023 (VSpace: PD=client)
vaddr 0x0
attr 3
0x0034 Page Table - Map - 0x8000000000000027 (PageTable: PD=client VADDR=0xffc0000000)
vspace (cap) 0x8000000000000023 (VSpace: PD=client)
vaddr 0xffc0000000
attr 3
0x0035 Page Table - Map - 0x8000000000000028 (PageTable: PD=serial_server VADDR=0x200000)
vspace (cap) 0x8000000000000022 (VSpace: PD=serial_server)
vaddr 0x200000 vaddr 0x200000
attr 3 attr 3
0x0022 Page Table - Map - 0x8000000000000016 (PageTable: PD=serial_server VADDR=0x2000000) 0x0036 Page Table - Map - 0x8000000000000029 (PageTable: PD=serial_server VADDR=0x2000000)
vspace (cap) 0x8000000000000012 (VSpace: PD=serial_server) vspace (cap) 0x8000000000000022 (VSpace: PD=serial_server)
vaddr 0x2000000 vaddr 0x2000000
attr 3 attr 3
0x0023 Page Table - Map - 0x8000000000000017 (PageTable: PD=serial_server VADDR=0xffffe00000) 0x0037 Page Table - Map - 0x800000000000002a (PageTable: PD=serial_server VADDR=0x4000000)
vspace (cap) 0x8000000000000012 (VSpace: PD=serial_server) vspace (cap) 0x8000000000000022 (VSpace: PD=serial_server)
vaddr 0x4000000
attr 3
0x0038 Page Table - Map - 0x800000000000002b (PageTable: PD=serial_server VADDR=0xffffe00000)
vspace (cap) 0x8000000000000022 (VSpace: PD=serial_server)
vaddr 0xffffe00000 vaddr 0xffffe00000
attr 3 attr 3
0x0024 Page - Map - 0x800000000000001a (Page(4 KiB): MR=uart @ 9000000 (derived)) 0x0039 Page Table - Map - 0x800000000000002c (PageTable: PD=client VADDR=0x200000)
vspace (cap) 0x8000000000000012 (VSpace: PD=serial_server) vspace (cap) 0x8000000000000023 (VSpace: PD=client)
vaddr 0x200000
attr 3
0x003a Page Table - Map - 0x800000000000002d (PageTable: PD=client VADDR=0x4000000)
vspace (cap) 0x8000000000000023 (VSpace: PD=client)
vaddr 0x4000000
attr 3
0x003b Page Table - Map - 0x800000000000002e (PageTable: PD=client VADDR=0xffffe00000)
vspace (cap) 0x8000000000000023 (VSpace: PD=client)
vaddr 0xffffe00000
attr 3
0x003c Page - Map - 0x8000000000000032 (Page(4 KiB): MR=uart @ 9000000 (derived))
vspace (cap) 0x8000000000000022 (VSpace: PD=serial_server)
vaddr 0x2000000 vaddr 0x2000000
rights 3 rights 3
attr 6 attr 6
0x0025 Page - Map - 0x800000000000001b (Page(4 KiB): MR=ELF:serial_server-0 @ 60247000 (derived)) 0x003d Page - Map - 0x8000000000000033 (Page(4 KiB): MR=serial_to_client #0 (derived))
vspace (cap) 0x8000000000000012 (VSpace: PD=serial_server) vspace (cap) 0x8000000000000022 (VSpace: PD=serial_server)
vaddr 0x4000000
rights 3
attr 7
0x003e Page - Map - 0x8000000000000034 (Page(4 KiB): MR=client_to_serial #0 (derived))
vspace (cap) 0x8000000000000022 (VSpace: PD=serial_server)
vaddr 0x4001000
rights 2
attr 7
0x003f Page - Map - 0x8000000000000035 (Page(4 KiB): MR=ELF:serial_server-0 @ 60248000 (derived))
vspace (cap) 0x8000000000000022 (VSpace: PD=serial_server)
vaddr 0x200000 vaddr 0x200000
rights 2 rights 2
attr 3 attr 3
REPEAT: count=6 REPEAT: count=6
0x0026 Page - Map - 0x8000000000000021 (Page(4 KiB): MR=ELF:serial_server-1 @ 6024d000 (derived)) 0x0040 Page - Map - 0x800000000000003b (Page(4 KiB): MR=ELF:serial_server-1 @ 6024e000 (derived))
vspace (cap) 0x8000000000000012 (VSpace: PD=serial_server) vspace (cap) 0x8000000000000022 (VSpace: PD=serial_server)
vaddr 0x206000 vaddr 0x206000
rights 3 rights 3
attr 7 attr 7
0x0027 Page - Map - 0x8000000000000022 (Page(4 KiB): MR=STACK:serial_server #0 (derived)) 0x0041 Page - Map - 0x800000000000003c (Page(4 KiB): MR=STACK:serial_server #0 (derived))
vspace (cap) 0x8000000000000012 (VSpace: PD=serial_server) vspace (cap) 0x8000000000000022 (VSpace: PD=serial_server)
vaddr 0xfffffff000 vaddr 0xfffffff000
rights 3 rights 3
attr 7 attr 7
0x0028 Page - Map - 0x8000000000000002 (Page(4 KiB): IPC Buffer PD=serial_server) 0x0042 Page - Map - 0x800000000000003d (Page(4 KiB): MR=serial_to_client #0 (derived))
vspace (cap) 0x8000000000000012 (VSpace: PD=serial_server) vspace (cap) 0x8000000000000023 (VSpace: PD=client)
vaddr 0x4000000
rights 2
attr 7
0x0043 Page - Map - 0x800000000000003e (Page(4 KiB): MR=client_to_serial #0 (derived))
vspace (cap) 0x8000000000000023 (VSpace: PD=client)
vaddr 0x4001000
rights 3
attr 7
0x0044 Page - Map - 0x800000000000003f (Page(4 KiB): MR=ELF:client-0 @ 6024f000 (derived))
vspace (cap) 0x8000000000000023 (VSpace: PD=client)
vaddr 0x200000
rights 2
attr 3
REPEAT: count=6
0x0045 Page - Map - 0x8000000000000045 (Page(4 KiB): MR=ELF:client-1 @ 60255000 (derived))
vspace (cap) 0x8000000000000023 (VSpace: PD=client)
vaddr 0x206000
rights 3
attr 7
0x0046 Page - Map - 0x8000000000000046 (Page(4 KiB): MR=STACK:client #0 (derived))
vspace (cap) 0x8000000000000023 (VSpace: PD=client)
vaddr 0xfffffff000
rights 3
attr 7
0x0047 Page - Map - 0x8000000000000003 (Page(4 KiB): IPC Buffer PD=serial_server)
vspace (cap) 0x8000000000000022 (VSpace: PD=serial_server)
vaddr 0x207000 vaddr 0x207000
rights 3 rights 3
attr 7 attr 7
0x0029 SchedControl - ConfigureFlags - 0x0000000000000012 (None) 0x0048 Page - Map - 0x8000000000000004 (Page(4 KiB): IPC Buffer PD=client)
schedcontext (cap) 0x800000000000000d (SchedContext: PD=serial_server) vspace (cap) 0x8000000000000023 (VSpace: PD=client)
vaddr 0x207000
rights 3
attr 7
0x0049 SchedControl - ConfigureFlags - 0x0000000000000012 (None)
schedcontext (cap) 0x800000000000001a (SchedContext: PD=serial_server)
budget 1000 budget 1000
period 1000 period 1000
extra_refills 0 extra_refills 0
badge 256 badge 256
flags 0 flags 0
0x002a TCB - SetSchedParams - 0x800000000000000c (TCB: PD=serial_server) 0x004a SchedControl - ConfigureFlags - 0x0000000000000012 (None)
schedcontext (cap) 0x800000000000001b (SchedContext: PD=client)
budget 1000
period 1000
extra_refills 0
badge 257
flags 0
0x004b TCB - SetSchedParams - 0x8000000000000018 (TCB: PD=serial_server)
authority (cap) 0x0000000000000001 (TCB: init) authority (cap) 0x0000000000000001 (TCB: init)
mcp 254 mcp 254
priority 254 priority 254
sched_context (cap) 0x800000000000000d (SchedContext: PD=serial_server) sched_context (cap) 0x800000000000001a (SchedContext: PD=serial_server)
fault_ep (cap) 0x8000000000000010 (EP: Monitor Fault) fault_ep (cap) 0x800000000000001f (EP: Monitor Fault)
0x002b TCB - SetSpace - 0x800000000000000c (TCB: PD=serial_server) 0x004c TCB - SetSchedParams - 0x8000000000000019 (TCB: PD=client)
fault_ep (cap) 0x8000000000000024 (None) authority (cap) 0x0000000000000001 (TCB: init)
cspace_root (cap) 0x8000000000000018 (CNode: PD=serial_server) mcp 253
priority 253
sched_context (cap) 0x800000000000001b (SchedContext: PD=client)
fault_ep (cap) 0x800000000000001f (EP: Monitor Fault)
0x004d TCB - SetSpace - 0x8000000000000018 (TCB: PD=serial_server)
fault_ep (cap) 0x8000000000000048 (None)
cspace_root (cap) 0x800000000000002f (CNode: PD=serial_server)
cspace_root_data 55 cspace_root_data 55
vspace_root (cap) 0x8000000000000012 (VSpace: PD=serial_server) vspace_root (cap) 0x8000000000000022 (VSpace: PD=serial_server)
vspace_root_data 0 vspace_root_data 0
0x002c TCB - SetIPCBuffer - 0x800000000000000c (TCB: PD=serial_server) REPEAT: count=2
0x004e TCB - SetIPCBuffer - 0x8000000000000018 (TCB: PD=serial_server)
buffer 0x207000 buffer 0x207000
buffer_frame (cap) 0x8000000000000002 (Page(4 KiB): IPC Buffer PD=serial_server) buffer_frame (cap) 0x8000000000000003 (Page(4 KiB): IPC Buffer PD=serial_server)
0x002d TCB - WriteRegisters - 0x800000000000000c (TCB: PD=serial_server) 0x004f TCB - SetIPCBuffer - 0x8000000000000019 (TCB: PD=client)
buffer 0x207000
buffer_frame (cap) 0x8000000000000004 (Page(4 KiB): IPC Buffer PD=client)
0x0050 TCB - WriteRegisters - 0x8000000000000018 (TCB: PD=serial_server)
resume false resume false
arch_flags 0 arch_flags 0
regs pc: 0x0000000000200000 regs pc: 0x0000000000200000
@ -465,7 +721,48 @@
x28: 0x0000000000000000 x28: 0x0000000000000000
tpidr_el0: 0x0000000000000000 tpidr_el0: 0x0000000000000000
tpidrro_el0: 0x0000000000000000 tpidrro_el0: 0x0000000000000000
0x002e TCB - BindNotification - 0x800000000000000c (TCB: PD=serial_server) 0x0051 TCB - WriteRegisters - 0x8000000000000019 (TCB: PD=client)
notification (cap) 0x8000000000000011 (Notification: PD=serial_server) resume false
0x002f TCB - Resume - 0x800000000000000c (TCB: PD=serial_server) arch_flags 0
regs pc: 0x0000000000200000
sp: 0x0000010000000000
spsr: 0x0000000000000000
x0: 0x0000000000000000
x1: 0x0000000000000000
x2: 0x0000000000000000
x3: 0x0000000000000000
x4: 0x0000000000000000
x5: 0x0000000000000000
x6: 0x0000000000000000
x7: 0x0000000000000000
x8: 0x0000000000000000
x16: 0x0000000000000000
x17: 0x0000000000000000
x18: 0x0000000000000000
x29: 0x0000000000000000
x30: 0x0000000000000000
x9: 0x0000000000000000
x10: 0x0000000000000000
x11: 0x0000000000000000
x12: 0x0000000000000000
x13: 0x0000000000000000
x14: 0x0000000000000000
x15: 0x0000000000000000
x19: 0x0000000000000000
x20: 0x0000000000000000
x21: 0x0000000000000000
x22: 0x0000000000000000
x23: 0x0000000000000000
x24: 0x0000000000000000
x25: 0x0000000000000000
x26: 0x0000000000000000
x27: 0x0000000000000000
x28: 0x0000000000000000
tpidr_el0: 0x0000000000000000
tpidrro_el0: 0x0000000000000000
0x0052 TCB - BindNotification - 0x8000000000000018 (TCB: PD=serial_server)
notification (cap) 0x8000000000000020 (Notification: PD=serial_server)
REPEAT: count=2
0x0053 TCB - Resume - 0x8000000000000018 (TCB: PD=serial_server)
REPEAT: count=2

View File

@ -4,8 +4,12 @@
#include "printf.h" #include "printf.h"
#include "wordle.h" #include "wordle.h"
uintptr_t serial_to_client_vaddr;
uintptr_t client_to_serial_vaddr;
#define MOVE_CURSOR_UP "\033[5A" #define MOVE_CURSOR_UP "\033[5A"
#define CLEAR_TERMINAL_BELOW_CURSOR "\033[0J" #define CLEAR_TERMINAL_BELOW_CURSOR "\033[0J"
#define SERIAL_SERVER_CHANNEL_ID 1
#define INVALID_CHAR (-1) #define INVALID_CHAR (-1)
@ -30,6 +34,13 @@ void wordle_server_send() {
void serial_send(char *str) { void serial_send(char *str) {
// Implement this function to get the serial server to print the string. // Implement this function to get the serial server to print the string.
int i = 0;
while (str[i] != '\0') {
((char *)client_to_serial_vaddr)[i] = str[i];
i++;
}
((char *)client_to_serial_vaddr)[i] = '\0';
microkit_notify(SERIAL_SERVER_CHANNEL_ID);
} }
// This function prints a CLI Wordle using pretty colours for what characters // This function prints a CLI Wordle using pretty colours for what characters
@ -121,4 +132,13 @@ void init(void) {
print_table(false); print_table(false);
} }
void notified(microkit_channel channel) {} void notified(microkit_channel channel) {
switch (channel) {
case SERIAL_SERVER_CHANNEL_ID:{
char ch = ((char *)serial_to_client_vaddr)[0];
add_char_to_table(ch);
print_table(true);
}
}
}

View File

@ -4,6 +4,8 @@
// This variable will have the address of the UART device // This variable will have the address of the UART device
uintptr_t uart_base_vaddr; uintptr_t uart_base_vaddr;
uintptr_t serial_to_client_vaddr;
uintptr_t client_to_serial_vaddr;
#define RHR_MASK 0b111111111 #define RHR_MASK 0b111111111
#define UARTDR 0x000 #define UARTDR 0x000
@ -12,9 +14,13 @@ uintptr_t uart_base_vaddr;
#define UARTICR 0x044 #define UARTICR 0x044
#define PL011_UARTFR_TXFF (1 << 5) #define PL011_UARTFR_TXFF (1 << 5)
#define PL011_UARTFR_RXFE (1 << 4) #define PL011_UARTFR_RXFE (1 << 4)
#define CLIENT_CHANNEL_ID 2
#define SERIAL_SERVER_CHANNEL_ID 1
#define NEWLINE 0x0a
#define REG_PTR(base, offset) ((volatile uint32_t *)((base) + (offset))) #define REG_PTR(base, offset) ((volatile uint32_t *)((base) + (offset)))
void uart_init() { void uart_init() {
*REG_PTR(uart_base_vaddr, UARTIMSC) = 0x50; *REG_PTR(uart_base_vaddr, UARTIMSC) = 0x50;
} }
@ -57,11 +63,22 @@ void init(void) {
// After initialising the UART, print a message to the terminal // After initialising the UART, print a message to the terminal
// saying that the serial server has started. // saying that the serial server has started.
uart_put_str("SERIAL SERVER: starting\n"); uart_put_str("SERIAL SERVER: starting\n");
//send a messageto teh receiver
microkit_notify(CLIENT_CHANNEL_ID);
} }
void notified(microkit_channel channel) { void notified(microkit_channel channel) {
int character = uart_get_char(); switch (channel) {
uart_put_char(character); case SERIAL_SERVER_CHANNEL_ID: {
((char *)serial_to_client_vaddr)[0] = uart_get_char();
uart_handle_irq(); uart_handle_irq();
microkit_irq_ack(1); microkit_irq_ack(channel);
microkit_notify(CLIENT_CHANNEL_ID);
break;
}
case CLIENT_CHANNEL_ID:
uart_put_str((char *)client_to_serial_vaddr);
break;
}
} }

View File

@ -1,10 +1,26 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<system> <system>
<memory_region name="uart" phys_addr="0x9_000_000" size="0x1000" /> <memory_region name="uart" phys_addr="0x9_000_000" size="0x1000" />
<memory_region name="serial_to_client" size="0x1000" />
<memory_region name="client_to_serial" size="0x1000" />
<protection_domain name="serial_server" priority="254" > <protection_domain name="serial_server" priority="254" >
<program_image path="serial_server.elf" /> <program_image path="serial_server.elf" />
<irq irq="33" id="1" /> <irq irq="33" id="1" />
<map mr="uart" vaddr="0x2_000_000" perms="rw" cached="false" setvar_vaddr="uart_base_vaddr" /> <map mr="uart" vaddr="0x2_000_000" perms="rw" cached="false" setvar_vaddr="uart_base_vaddr" />
<map mr="serial_to_client" vaddr="0x4_000_000" perms="rw" setvar_vaddr="serial_to_client_vaddr" />
<map mr="client_to_serial" vaddr="0x4_001_000" perms="r" setvar_vaddr="client_to_serial_vaddr" />
</protection_domain> </protection_domain>
<protection_domain name="client" priority="253">
<program_image path="client.elf" />
<map mr="serial_to_client" vaddr="0x4_000_000" perms="r" setvar_vaddr="serial_to_client_vaddr" />
<map mr="client_to_serial" vaddr="0x4_001_000" perms="rw" setvar_vaddr="client_to_serial_vaddr" />
</protection_domain>
<channel>
<end pd="serial_server" id="2" />
<end pd="client" id="1" />
</channel>
</system> </system>