Files
Custom-Operating-System/utils/compilers/DevTreeCompiler/ABI/Structs.py

40 lines
995 B
Python

from construct import *
DEVTREE_HEADER_SIGNATURE = "odtr3"
DEVTREE_HEADER = Struct(
"signature" / PaddedString(8, "ascii"),
"revision" / Int32ul,
"flags" / Int32ul,
"entries_count" / Int32ul,
"name_list_offset" / Int32ul
)
DEVTREE_ENTRY_FLAGS_MMIO = (1 << 0)
DEVTREE_ENTRY_TYPE_IO = 0
DEVTREE_ENTRY_TYPE_FB = 1
DEVTREE_ENTRY_TYPE_UART = 2
DEVTREE_ENTRY_TYPE_RAM = 3
DEVTREE_ENTRY_TYPE_STORAGE = 4
DEVTREE_ENTRY_TYPE_BUS_CONTROLLER = 5
DEVTREE_ENTRY_TYPE_RTC = 6
# Currently flags maps to irq_flags_t in the kernel.
# Later we might need to enhance irq_flags_from_devtree() to use as translator.
DEVTREE_IRQ_FLAGS_EDGE_TRIGGER = (1 << 0)
DEVTREE_ENTRY = Struct(
"type" / Int32ul,
"flags" / Int32ul,
"region_base" / Int64ul,
"region_size" / Int64ul,
"irq_lane" / Int32ul,
"irq_flags" / Int32ul,
"irq_priority" / Int32ul,
"rel_name_offset" / Int32ul,
"aux1" / Int64ul,
"aux2" / Int64ul,
"aux3" / Int64ul,
"aux4" / Int64ul,
)