100 abs_mmio_write32(addr, value);
101 uint32_t masked_value = value ^ kSecMmioMaskVal;
102 barrier32(masked_value);
103 upsert_register(addr, masked_value);
111 abs_mmio_write32(addr, value);
112 abs_mmio_write32(addr, value);
113 uint32_t masked_value = value ^ kSecMmioMaskVal;
114 barrier32(masked_value);
115 upsert_register(addr, masked_value);
145 uint32_t offset = ((uint64_t)rnd_offset * (uint64_t)last_index) >> 32;
147 uint32_t i = 0, r = last_index - 1;
150 HARDENED_CHECK_NE(otp_base & 0xFFFF0000, 0);
151 for (; launder32(i) < last_index && launder32(r) < last_index; ++i, --r) {
154 if ((address & 0xFFFF0000) != otp_base) {
155 uint32_t read_value = abs_mmio_read32(launder32(address));
162 if (offset >= last_index) {
163 offset -= last_index;