Lines Matching refs:self

19     def len_of_burn_unit(self):  argument
21 return self.len
23 def __init__(self, parent, param, skip_read=False): argument
29 super(EfuseBlock, self).__init__(parent, param, skip_read=skip_read)
31 def apply_coding_scheme(self): argument
32 data = self.get_raw(from_read=False)[::-1]
33 if self.get_coding_scheme() == self.parent.REGS.CODING_SCHEME_34:
72 self, argument
79 self.Blocks = EfuseDefineBlocks()
80 self.Fields = EfuseDefineFields(extend_efuse_table)
81 self.REGS = EfuseDefineRegisters
82 self.BURN_BLOCK_DATA_NAMES = self.Blocks.get_burn_block_data_names()
83 self.BLOCKS_FOR_KEYS = self.Blocks.get_blocks_for_keys()
84 self._esp = esp
85 self.debug = debug
86 self.do_not_confirm = do_not_confirm
92 self.blocks = [
93 EfuseBlock(self, self.Blocks.get(block), skip_read=skip_connect)
94 for block in self.Blocks.BLOCKS
97 self.get_coding_scheme_warnings()
98 self.efuses = [EfuseField.convert(self, efuse) for efuse in self.Fields.EFUSES]
100 self.efuses += [
101 EfuseField.convert(self, efuse) for efuse in self.Fields.KEYBLOCKS_256
103 self.efuses += [
104 EfuseField.convert(self, efuse) for efuse in self.Fields.CUSTOM_MAC
106 self.efuses += [
107 EfuseField.convert(self, efuse) for efuse in self.Fields.ADC_CALIBRATION
110 if self.coding_scheme == self.REGS.CODING_SCHEME_NONE:
111 self.efuses += [
112 EfuseField.convert(self, efuse)
113 for efuse in self.Fields.KEYBLOCKS_256
115 elif self.coding_scheme == self.REGS.CODING_SCHEME_34:
116 self.efuses += [
117 EfuseField.convert(self, efuse)
118 for efuse in self.Fields.KEYBLOCKS_192
122 "The coding scheme (%d) - is not supported" % self.coding_scheme
124 if self["MAC_VERSION"].get() == 1:
125 self.efuses += [
126 EfuseField.convert(self, efuse) for efuse in self.Fields.CUSTOM_MAC
128 if self["BLK3_PART_RESERVE"].get():
129 self.efuses += [
130 EfuseField.convert(self, efuse)
131 for efuse in self.Fields.ADC_CALIBRATION
133 self.efuses += [
134 EfuseField.convert(self, efuse) for efuse in self.Fields.CALC
137 def __getitem__(self, efuse_name): argument
139 for e in self.efuses:
143 for efuse in self.Fields.CUSTOM_MAC:
147 self.efuses += [
148 EfuseField.convert(self, efuse) for efuse in self.Fields.CUSTOM_MAC
151 for efuse in self.Fields.ADC_CALIBRATION:
155 self.efuses += [
156 EfuseField.convert(self, efuse)
157 for efuse in self.Fields.ADC_CALIBRATION
161 for e in self.efuses:
166 def read_coding_scheme(self): argument
168 self.read_efuse(self.REGS.EFUSE_CODING_SCHEME_WORD)
169 & self.REGS.EFUSE_CODING_SCHEME_MASK
171 if coding_scheme == self.REGS.CODING_SCHEME_NONE_RECOVERY:
172 self.coding_scheme = self.REGS.CODING_SCHEME_NONE
174 self.coding_scheme = coding_scheme
176 def print_status_regs(self): argument
180 "EFUSE_REG_DEC_STATUS", self.read_reg(self.REGS.EFUSE_REG_DEC_STATUS)
184 def write_efuses(self, block): argument
190 apb_freq = self.get_crystal_freq()
191 clk_sel0, clk_sel1, dac_clk_div = self.REGS.EFUSE_CLK_SETTINGS[apb_freq]
193 self.update_reg(
194 self.REGS.EFUSE_DAC_CONF_REG, self.REGS.EFUSE_DAC_CLK_DIV_MASK, dac_clk_div
196 self.update_reg(
197 self.REGS.EFUSE_CLK_REG, self.REGS.EFUSE_CLK_SEL0_MASK, clk_sel0
199 self.update_reg(
200 self.REGS.EFUSE_CLK_REG, self.REGS.EFUSE_CLK_SEL1_MASK, clk_sel1
203 self.write_reg(self.REGS.EFUSE_REG_CONF, self.REGS.EFUSE_CONF_WRITE)
204 self.write_reg(self.REGS.EFUSE_REG_CMD, self.REGS.EFUSE_CMD_WRITE)
206 self.efuse_read()
207 return self.get_coding_scheme_warnings(silent=True)
209 def wait_efuse_idle(self): argument
210 deadline = time.time() + self.REGS.EFUSE_BURN_TIMEOUT
212 if self.read_reg(self.REGS.EFUSE_REG_CMD) == 0:
218 def efuse_read(self): argument
219 self.wait_efuse_idle()
220 self.write_reg(self.REGS.EFUSE_REG_CONF, self.REGS.EFUSE_CONF_READ)
221 self.write_reg(self.REGS.EFUSE_REG_CMD, self.REGS.EFUSE_CMD_READ)
222 self.wait_efuse_idle()
224 def get_coding_scheme_warnings(self, silent=False): argument
229 self.read_reg(self.REGS.EFUSE_REG_DEC_STATUS)
230 & self.REGS.EFUSE_REG_DEC_STATUS_MASK
232 for block in self.blocks:
241 if (self.debug or err) and not silent:
242 self.print_status_regs()
245 def summary(self): argument
246 if self["XPD_SDIO_FORCE"].get() == 0:
248 elif self["XPD_SDIO_REG"].get() == 0:
250 elif self["XPD_SDIO_TIEH"].get() == 0:
276 def check_format(self, new_value_str): argument
329 def get(self, from_read=True): argument
330 if self.name == "CUSTOM_MAC":
331 mac = self.get_raw(from_read)[::-1]
332 stored_crc = self.parent["CUSTOM_MAC_CRC"].get(from_read)
334 mac = self.get_raw(from_read)
335 stored_crc = self.parent["MAC_CRC"].get(from_read)
338 def save(self, new_value): argument
346 if self.name == "CUSTOM_MAC":
351 mac_version = self.parent["MAC_VERSION"]
358 if not self.parent.force_write_always:
365 bitarray_mac = self.convert_to_bitstring(new_value)
366 print_field(self, bitarray_mac)
367 super(EfuseMacField, self).save(new_value)
369 crc_val = self.calc_crc(new_value)
370 crc_field = self.parent["CUSTOM_MAC_CRC"]
380 def get(self, from_read=True): argument
381 rev_bit0 = self.parent["CHIP_VER_REV1"].get(from_read)
382 assert self.parent["CHIP_VER_REV1"].bit_len == 1
383 rev_bit1 = self.parent["CHIP_VER_REV2"].get(from_read)
384 assert self.parent["CHIP_VER_REV2"].bit_len == 1
385 apb_ctl_date = self.parent.read_reg(self.parent.REGS.APB_CTL_DATE_ADDR)
387 apb_ctl_date >> self.parent.REGS.APB_CTL_DATE_S
388 ) & self.parent.REGS.APB_CTL_DATE_V
399 def save(self, new_value): argument
400 raise esptool.FatalError("Burning %s is not supported" % self.name)
404 def get(self, from_read=True): argument
405 lo_bits = self.parent["CHIP_PACKAGE"].get(from_read)
406 hi_bits = self.parent["CHIP_PACKAGE_4BIT"].get(from_read)
409 def save(self, new_value): argument
410 raise esptool.FatalError("Burning %s is not supported" % self.name)
414 def get(self, from_read=True): argument
415 val = self.get_raw(from_read)
420 def check_format(self, new_value_str): argument
447 def get(self, from_read=True): argument
448 val = self.get_raw(from_read)
450 if val & self.VREF_SIGN_BIT:
451 val = -(val & self.VREF_MAG_BITS)
453 val = val & self.VREF_MAG_BITS
454 val *= self.VREF_STEP_SIZE
455 return self.VREF_OFFSET + val
457 def save(self, new_value): argument
471 def get(self, from_read=True): argument
472 idx = 0 if self.name.endswith("LOW") else 1
473 sign_bit = self.SIGN_BIT[idx]
474 offset = self.TP_OFFSET[self.name]
475 raw = self.get_raw()
477 return offset + (delta * self.STEP_SIZE)