Lines Matching refs:base

73 	vaddr_t base;  member
82 static uint32_t tzc_read_build_config(vaddr_t base) in tzc_read_build_config() argument
84 return io_read32(base + BUILD_CONFIG_OFF); in tzc_read_build_config()
87 static uint32_t tzc_read_gate_keeper(vaddr_t base) in tzc_read_gate_keeper() argument
89 return io_read32(base + GATE_KEEPER_OFF); in tzc_read_gate_keeper()
92 static void tzc_write_gate_keeper(vaddr_t base, uint32_t val) in tzc_write_gate_keeper() argument
94 io_write32(base + GATE_KEEPER_OFF, val); in tzc_write_gate_keeper()
97 static void tzc_write_action(vaddr_t base, enum tzc_action action) in tzc_write_action() argument
99 io_write32(base + ACTION_OFF, action); in tzc_write_action()
102 static uint32_t tzc_read_region_base_low(vaddr_t base, uint32_t region) in tzc_read_region_base_low() argument
104 return io_read32(base + REGION_BASE_LOW_OFF + REGION_NUM_OFF(region)); in tzc_read_region_base_low()
107 static void tzc_write_region_base_low(vaddr_t base, uint32_t region, in tzc_write_region_base_low() argument
110 io_write32(base + REGION_BASE_LOW_OFF + REGION_NUM_OFF(region), val); in tzc_write_region_base_low()
113 static uint32_t tzc_read_region_base_high(vaddr_t base, uint32_t region) in tzc_read_region_base_high() argument
115 return io_read32(base + REGION_BASE_HIGH_OFF + REGION_NUM_OFF(region)); in tzc_read_region_base_high()
118 static void tzc_write_region_base_high(vaddr_t base, uint32_t region, in tzc_write_region_base_high() argument
121 io_write32(base + REGION_BASE_HIGH_OFF + REGION_NUM_OFF(region), val); in tzc_write_region_base_high()
124 static uint32_t tzc_read_region_top_low(vaddr_t base, uint32_t region) in tzc_read_region_top_low() argument
126 return io_read32(base + REGION_TOP_LOW_OFF + REGION_NUM_OFF(region)); in tzc_read_region_top_low()
129 static void tzc_write_region_top_low(vaddr_t base, uint32_t region, in tzc_write_region_top_low() argument
132 io_write32(base + REGION_TOP_LOW_OFF + REGION_NUM_OFF(region), val); in tzc_write_region_top_low()
135 static uint32_t tzc_read_region_top_high(vaddr_t base, uint32_t region) in tzc_read_region_top_high() argument
137 return io_read32(base + REGION_TOP_HIGH_OFF + REGION_NUM_OFF(region)); in tzc_read_region_top_high()
140 static void tzc_write_region_top_high(vaddr_t base, uint32_t region, in tzc_write_region_top_high() argument
143 io_write32(base + REGION_TOP_HIGH_OFF + REGION_NUM_OFF(region), val); in tzc_write_region_top_high()
146 static uint32_t tzc_read_region_attributes(vaddr_t base, uint32_t region) in tzc_read_region_attributes() argument
148 return io_read32(base + REGION_ATTRIBUTES_OFF + REGION_NUM_OFF(region)); in tzc_read_region_attributes()
151 static void tzc_write_region_attributes(vaddr_t base, uint32_t region, in tzc_write_region_attributes() argument
154 io_write32(base + REGION_ATTRIBUTES_OFF + REGION_NUM_OFF(region), val); in tzc_write_region_attributes()
157 static uint32_t tzc_read_region_id_access(vaddr_t base, uint32_t region) in tzc_read_region_id_access() argument
159 return io_read32(base + REGION_ID_ACCESS_OFF + REGION_NUM_OFF(region)); in tzc_read_region_id_access()
162 static void tzc_write_region_id_access(vaddr_t base, uint32_t region, in tzc_write_region_id_access() argument
165 io_write32(base + REGION_ID_ACCESS_OFF + REGION_NUM_OFF(region), val); in tzc_write_region_id_access()
168 static uint32_t tzc_read_component_id(vaddr_t base) in tzc_read_component_id() argument
172 id = io_read8(base + CID0_OFF); in tzc_read_component_id()
173 id |= SHIFT_U32(io_read8(base + CID1_OFF), 8); in tzc_read_component_id()
174 id |= SHIFT_U32(io_read8(base + CID2_OFF), 16); in tzc_read_component_id()
175 id |= SHIFT_U32(io_read8(base + CID3_OFF), 24); in tzc_read_component_id()
180 static uint32_t tzc_get_gate_keeper(vaddr_t base, uint8_t filter) in tzc_get_gate_keeper() argument
184 tmp = (tzc_read_gate_keeper(base) >> GATE_KEEPER_OS_SHIFT) & in tzc_get_gate_keeper()
191 static void tzc_set_gate_keeper(vaddr_t base, uint8_t filter, uint32_t val) in tzc_set_gate_keeper() argument
196 tmp = (tzc_read_gate_keeper(base) >> GATE_KEEPER_OS_SHIFT) & in tzc_set_gate_keeper()
204 tzc_write_gate_keeper(base, (tmp & GATE_KEEPER_OR_MASK) << in tzc_set_gate_keeper()
208 while (((tzc_read_gate_keeper(base) >> GATE_KEEPER_OS_SHIFT) & in tzc_set_gate_keeper()
214 void tzc_init(vaddr_t base) in tzc_init() argument
218 assert(base); in tzc_init()
219 tzc.base = base; in tzc_init()
225 tzc_id = tzc_read_component_id(tzc.base); in tzc_init()
232 tzc_build = tzc_read_build_config(tzc.base); in tzc_init()
267 assert(tzc.base && cfg); in tzc_configure_region()
279 (cfg->base < cfg->top))); in tzc_configure_region()
282 assert(((cfg->base | (cfg->top + 1)) & (4096 - 1)) == 0); in tzc_configure_region()
291 tzc_write_region_base_low(tzc.base, region, addr_low(cfg->base)); in tzc_configure_region()
292 tzc_write_region_base_high(tzc.base, region, addr_high(cfg->base)); in tzc_configure_region()
294 tzc_write_region_top_low(tzc.base, region, addr_low(cfg->top)); in tzc_configure_region()
295 tzc_write_region_top_high(tzc.base, region, addr_high(cfg->top)); in tzc_configure_region()
298 tzc_write_region_attributes(tzc.base, region, in tzc_configure_region()
306 tzc_write_region_id_access(tzc.base, region, cfg->ns_device_access); in tzc_configure_region()
316 cfg->base = reg_pair_to_64(tzc_read_region_base_high(tzc.base, region), in tzc_get_region_config()
317 tzc_read_region_base_low(tzc.base, region)); in tzc_get_region_config()
318 cfg->top = reg_pair_to_64(tzc_read_region_top_high(tzc.base, region), in tzc_get_region_config()
319 tzc_read_region_top_low(tzc.base, region)); in tzc_get_region_config()
321 cfg->ns_device_access = tzc_read_region_id_access(tzc.base, region); in tzc_get_region_config()
323 val32 = tzc_read_region_attributes(tzc.base, region); in tzc_get_region_config()
332 assert(tzc.base); in tzc_set_action()
339 tzc_write_action(tzc.base, action); in tzc_set_action()
348 assert(tzc.base); in tzc_enable_filters()
351 state = tzc_get_gate_keeper(tzc.base, filter); in tzc_enable_filters()
366 tzc_set_gate_keeper(tzc.base, filter, 1); in tzc_enable_filters()
375 assert(tzc.base); in tzc_disable_filters()
382 tzc_set_gate_keeper(tzc.base, filter, 0); in tzc_disable_filters()
387 return io_read32(tzc.base + FAIL_CONTROL(filter)) & in write_not_read()
393 return io_read32(tzc.base + FAIL_CONTROL(filter)) & in nonsecure_not_secure()
399 return io_read32(tzc.base + FAIL_CONTROL(filter)) & in priv_not_unpriv()
406 uint32_t status = io_read32(tzc.base + INT_STATUS); in dump_fail_filter()
422 addr = reg_pair_to_64(io_read32(tzc.base + FAIL_ADDRESS_HIGH(filter)), in dump_fail_filter()
423 io_read32(tzc.base + FAIL_ADDRESS_LOW(filter))); in dump_fail_filter()
430 io_read32(tzc.base + FAIL_ID(filter))); in dump_fail_filter()
447 assert(tzc.base); in tzc_int_clear()
449 io_setbits32(tzc.base + INT_CLEAR, GENMASK_32(tzc.num_filters - 1, 0)); in tzc_int_clear()
469 temp_32reg = tzc_read_region_attributes(tzc.base, n); in tzc_dump_state()
474 temp_32reg = tzc_read_region_base_low(tzc.base, n); in tzc_dump_state()
475 temp_32reg_h = tzc_read_region_base_high(tzc.base, n); in tzc_dump_state()
477 temp_32reg = tzc_read_region_top_low(tzc.base, n); in tzc_dump_state()
478 temp_32reg_h = tzc_read_region_top_high(tzc.base, n); in tzc_dump_state()
480 temp_32reg = tzc_read_region_attributes(tzc.base, n); in tzc_dump_state()