
    ;)di                         d dl Z d dlZddlmZ ddlmZmZ ddlmZ ddl	m
Z
  G d d	e          Z G d
 dee          Zee_        dS )    N   )
ESP32C3ROM   )	ESPLoader	StubMixin)log)
FatalErrorc            	       d   e Zd ZU dZdZdZdZdZdZdZ	e	dz   Z
e	dz   Ze	d	z   Zd
Ze	d	z   ZdZe	d	z   ZdZe	d	z   ZdZe	dz   Ze	d	z   ZdZdddddZg dg dg dg dg dg dg dg dgZdZedz   Zedz   Zedz   Zd Zd!Zi Ze e!e"f         e#d"<   d# Z$d$ Z%d% Z&d& Z'd' Z(d( Z)d) Z*d* Z+d+ Z,d, Z-	 d- Z.d. Z/d/S )0
ESP32C2ROMESP32-C2      B  @B   <  @<i  `@   0   i    i   i   `         r   r   r   )60m30m20m15m)r   i   PADDING)r   r   DROM)i  ?i  ?DRAM)i ?i  ?BYTE_ACCESSIBLE)i  ?i  ?	DROM_MASK)i   @i  	@	IROM_MASK)r   r   IROM)i 7@i  <@IRAMi  `         i:Pi҈+KEY_PURPOSESc                 R    d}|                      | j        d|z  z             dz	  dz  S )Nr            read_regEFUSE_BLOCK2_ADDRselfnum_words     ^/var/www/menimich/repos/protonApp/venv/lib/python3.11/site-packages/esptool/targets/esp32c2.pyget_pkg_versionzESP32C2ROM.get_pkg_versionI   s0    d4HEFF"LPTTT    c                     ddd                     |                                 d          }|                                 }|                                 }| d| d| dS )Nr   )r   r   zUnknown ESP32-C2z (revision v.))getr2   get_major_chip_versionget_minor_chip_version)r/   	chip_name	major_rev	minor_revs       r1   get_chip_descriptionzESP32C2ROM.get_chip_descriptionM   sx    
 
 #d""$$&8
9
9 	 //11	//11	AAAAYAAAAr3   c                 
    g dS )N)zWi-Fiz	BT 5 (LE)zSingle Core120MHz r/   s    r1   get_chip_featureszESP32C2ROM.get_chip_featuresV   s    >>>>r3   c                 R    d}|                      | j        d|z  z             dz	  dz  S )Nr   r(      r   r+   r.   s     r1   r9   z!ESP32C2ROM.get_minor_chip_versionY   0    d4HEFF"LPSSSr3   c                 R    d}|                      | j        d|z  z             dz	  dz  S )Nr   r(      r   r+   r.   s     r1   r8   z!ESP32C2ROM.get_major_chip_version]   rE   r3   c                     dS )Nr   r@   rA   s    r1   get_flash_capzESP32C2ROM.get_flash_capa   s	     qr3   c                     dS )N r@   rA   s    r1   get_flash_vendorzESP32C2ROM.get_flash_vendorf   s	     rr3   c                 *    t          j        |           S )N)r   get_crystal_freqrA   s    r1   rN   zESP32C2ROM.get_crystal_freqk   s    )$///r3   c                    | j          o|                                 dk    }|r|dz  dz  }t          j        d| d           |                     | j        d         t          j        d|d                     t          j        d           |                     |           t          j
        d	           |                                  d S t          j        | |           d S )
N   (   zChanging baud rate to z...CHANGE_BAUDRATEz<IIr   zChanged.g?)IS_STUBrN   r   printcommandESP_CMDSstructpack_set_port_baudratetimesleepflush_inputr   change_baud)r/   baudrom_with_26M_XTALfalse_rom_bauds       r1   r]   zESP32C2ROM.change_baudo   s     $,N1F1F1H1HB1N 	. "BY"_NI8t888999LL/0E>155   Ij!!!##D)))Jt!$-----r3   c                 h    | j         s(|                                 dk    rd| _        d| _        d S d S d S )Nr   TF)secure_download_modeget_chip_revisionstub_is_disabledrS   rA   s    r1   _post_connectzESP32C2ROM._post_connect   sF    ( 	!T-C-C-E-E-J-J$(D! DLLL	! 	!-J-Jr3   c                 p   |                      | j                  | j        z  }|                      | j                  | j        z  }|r|dk    n|dk    }|rdS |rdgdz  ndgdz  }t          t          |                    D ]4}|                      | j        |dz  z             ||<   ||         dk    r dS 5dS )Nr   r   Tr   r*   r(   F)r,   EFUSE_XTS_KEY_LENGTH_256_REGEFUSE_XTS_KEY_LENGTH_256EFUSE_RD_DIS_REGEFUSE_RD_DISrangelenEFUSE_BLOCK_KEY0_REG)r/   key_len_256word0
rd_disablekey_wordis         r1   is_flash_encryption_key_validz(ESP32C2ROM.is_flash_encryption_key_valid   s    MM$;<<+, 	
 d344t7HH#.>UaZZEQJ
  	4 #.:sQwwA37H3x==))    "mmD,EA,MNNA;!##44 $5r3   c                     t          |                              t          t          dd                              st          d          d S )Nr      z*SPI Pin numbers must be in the range 0-20.)setissubsetrk   r	   )r/   spi_connections     r1   check_spi_connectionzESP32C2ROM.check_spi_connection   sL    >""++Ca,=,=>> 	KIJJJ	K 	Kr3   N)0__name__
__module____qualname__	CHIP_NAMEIMAGE_CHIP_IDIROM_MAP_STARTIROM_MAP_ENDDROM_MAP_STARTDROM_MAP_END
EFUSE_BASEr-   MAC_EFUSE_REGEFUSE_SECURE_BOOT_EN_REGEFUSE_SECURE_BOOT_EN_MASKEFUSE_SPI_BOOT_CRYPT_CNT_REGEFUSE_SPI_BOOT_CRYPT_CNT_MASK%EFUSE_DIS_DOWNLOAD_MANUAL_ENCRYPT_REG!EFUSE_DIS_DOWNLOAD_MANUAL_ENCRYPTrg   rh   rm   ri   rj   FLASH_FREQUENCY
MEMORY_MAPRTCCNTL_BASE_REGRTC_CNTL_WDTCONFIG0_REGRTC_CNTL_WDTCONFIG1_REGRTC_CNTL_WDTWPROTECT_REGRTC_CNTL_WDT_WKEYUF2_FAMILY_IDr&   dictintstr__annotations__r2   r=   rB   r9   r8   rI   rL   rN   r]   re   rs   ry   r@   r3   r1   r   r      s/        IMNLNLJ"U*&M)D0 '#-#4 $-!,6,=)(.%#-#4 &%,!D(L 	 O 	,++((((((333------((((((	J ".7.7/&8"M#%L$sCx.%%%U U UB B B? ? ?T T TT T T  
  
0 0 0. . ..! ! ! B  4K K K K Kr3   r   c                       e Zd ZdZdS )ESP32C2StubLoaderz-Stub loader for ESP32-C2, runs on top of ROM.N)rz   r{   r|   __doc__r@   r3   r1   r   r      s        77Dr3   r   )rW   rZ   esp32c3r   loaderr   r   loggerr   utilr	   r   r   
STUB_CLASSr@   r3   r1   <module>r      s            ) ) ) ) ) ) ) )            [K [K [K [K [K [K [K [K|	 	 	 	 		: 	 	 	 *
   r3   