esp-open-rtos/binary_sdk/libmain/spi_flash.S

539 lines
35 KiB
ArmAsm
Raw Normal View History

.section .text, "ax", @progbits
.literal_position # 0: ff9f6ffe
# 4: 00020060
# 8: 00200000
# c: 00000000
# 10: 00020060
# 14: 00200001
# 18: 00201000
# 1c: 00208000
# 20: 00600000
# 24: 00000000
# 28: 00000000
# Function @ .text+0x2c
# Local variables/stack:
# (local0): word @ -0x10
# (local1): word[3] @ -0xc
.global sdk_SPIReadModeCnfig
.type sdk_SPIReadModeCnfig, @function
sdk_SPIReadModeCnfig:
addi sp, sp, -16 /* (local0) */ # 2c: 12c1f0
s32i a0, sp, 0 /* a0 -> [(local0)] */ # 2f: 0901
s32i a12, sp, 4 /* a12 -> [(local1)] */ # 31: c911
movi a4, 0xfe6f9fff # 33: 41f3ff
movi a3, 0x60000200 # 36: 31f3ff
memw # 39: c02000
l32i a0, a3, 8 /* [0x60000208] */ # 3c: 0823
and a0, a0, a4 # 3e: 400010
memw # 41: c02000
s32i a0, a3, 8 /* a0 -> [0x60000208] */ # 44: 0923
movi a0, sdk_flashchip # 46: 01f1ff
beqz a2, .Lbr004 # 49: 166204
beqi a2, 1, .Lbr005 # 4c: 261249
beqi a2, 2, .Lbr006 # 4f: 26224c
beqi a2, 3, .Lbr007 # 52: 26324f
addi a6, a2, -4 /* arg0-0x4 */ # 55: 62c2fc
movi a5, 0x00002000 # 58: 51ecff
movi a12, 0 /* 0x00000000 */ # 5b: 0c0c
moveqz a12, a5, a6 # 5d: 60c583
.Lbr001: beqz a2, .Lbr003 # 60: ac42
beqi a2, 1, .Lbr003 # 62: 261222
mov a2, a0 /* sdk_flashchip */ # 65: 2d00
call0 Disable_QMode # 67: 01efffc0
# 6b: 0000
.Lbr002: memw # 6d: c02000
movi a8, 0x60000200 # 70: 81e8ff
l32i a7, a8, 8 /* [0x60000208] */ # 73: 7828
or a7, a7, a12 # 75: c07720
memw # 78: c02000
s32i a7, a8, 8 /* a7 -> [0x60000208] */ # 7b: 7928
movi a2, 0 /* 0x00000000 */ # 7d: 0c02
l32i a12, sp, 4 /* [(local1)] */ # 7f: c811
l32i a0, sp, 0 /* [(local0)] */ # 81: 0801
addi sp, sp, 16 /* (top of frame) */ # 83: 12c110
ret /* 0x00000000 */ # 86: 0df0
.Lbr003: mov a2, a0 /* sdk_flashchip */ # 88: 2d00
call0 Enable_QMode # 8a: 01e7ffc0
# 8e: 0000
j .Lbr002 # 90: 46f6ff
.Lbr004: movi a12, 0x01002000 # 93: c1e0ff
j .Lbr001 # 96: 86f1ff
.Lbr005: movi a12, 0x00102000 # 99: c1dfff
j .Lbr001 # 9c: 06f0ff
.Lbr006: movi a12, 0x00802000 # 9f: c1dfff
j .Lbr001 # a2: 86eeff
.Lbr007: movi a12, 0x00006000 # a5: c1deff
j .Lbr001 # a8: 06edff
.literal_position # ac: 00000000
# b0: 00000000
# b4: 00000000
# b8: 00000000
# bc: 00000000
# c0: 00000000
# c4: 00000000
# c8: 00000000
# cc: 00000000
# d0: 00000000
# d4: 00000000
# Function @ .text+0xd8
# Local variables/stack:
# (local0): word @ -0x30
# (local1): word @ -0x2c
# (local2): word @ -0x28
# (local3): word @ -0x24
# (local4): word @ -0x20
# (local5): word @ -0x1c
# (local6): word @ -0x18
# (local7): word @ -0x14
# (local8): word @ -0x10
# (local9): word[3] @ -0xc
.global sdk_SPIWrite
.type sdk_SPIWrite, @function
sdk_SPIWrite:
mov a5, a4 /* arg2 */ # d8: 5d04
addi sp, sp, -48 /* (local0) */ # da: 12c1d0
s32i a12, sp, 16 /* a12 -> [(local4)] */ # dd: c941
s32i a14, sp, 24 /* a14 -> [(local6)] */ # df: e961
s32i a3, sp, 36 /* arg1 -> [(local9)] */ # e1: 3991
s32i a0, sp, 12 /* a0 -> [(local3)] */ # e3: 0931
movi a4, sdk_flashchip # e5: 41f1ff
s32i a15, sp, 28 /* a15 -> [(local7)] */ # e8: f971
s32i a13, sp, 20 /* a13 -> [(local5)] */ # ea: d951
mov a15, a3 /* arg1 */ # ec: fd03
mov a13, a2 /* arg0 */ # ee: dd02
l32i a0, a4, 4 /* [.Ldata001] */ # f0: 0814
add a2, a5, a2 # f2: 2a25
bltu a0, a2, .Lbr008 # f4: 273002
j .Lbr014 # f7: 462000
.Lbr008: movi a2, 1 /* 0x00000001 */ # fa: 0c12
j .Lbr013 # fc: 461b00
.Lbr009: movi a2, sdk_flashchip # ff: 21ecff
mov a3, a13 /* arg0 */ # 102: 3d0d
mov a4, a15 /* arg1 */ # 104: 4d0f
mov a5, a12 # 106: 5d0c
call0 SPI_page_program # 108: 01eeffc0
# 10c: 0000
bnez a2, .Lbr008 # 10e: 5682fe
l32i a2, sp, 8 /* [(local2)] */ # 111: 2821
mov a3, a14 /* [.Ldata003] */ # 113: 3d0e
sub a2, a2, a12 # 115: c022c0
s32i a2, sp, 0 /* a2 -> [(local0)] */ # 118: 2901
call0 __udivsi3 # 11a: 01eaffc0
# 11e: 0000
s32i a2, sp, 4 /* a2 -> [(local1)] */ # 120: 2911
beqz a2, .Lbr011 # 122: acf2
movi a3, 0 /* 0x00000000 */ # 124: 0c03
s32i a3, sp, 32 /* 0x00000000 -> [(local8)] */ # 126: 3981
.Lbr010: movi a2, sdk_flashchip # 128: 21e3ff
add a3, a13, a12 # 12b: ca3d
mov a5, a14 /* [.Ldata003] */ # 12d: 5d0e
srli a4, a12, 2 # 12f: c04241
addx4 a4, a4, a15 # 132: f044a0
call0 SPI_page_program # 135: 01e4ffc0
# 139: 0000
bnez a2, .Lbr008 # 13b: 56b2fb
add a12, a14, a12 # 13e: cace
l32i a6, sp, 32 /* [(local8)] */ # 140: 6881
l32i a5, sp, 4 /* [(local1)] */ # 142: 5811
addi a7, a6, 1 /* [(local8)]+0x1 */ # 144: 1b76
extui a6, a7, 0, 8 # 146: 706074
s32i a6, sp, 32 /* a6 -> [(local8)] */ # 149: 6981
bne a5, a6, .Lbr010 # 14b: 6795d9
l32i a8, sp, 8 /* [(local2)] */ # 14e: 8821
sub a8, a8, a12 # 150: c088c0
s32i a8, sp, 0 /* a8 -> [(local0)] */ # 153: 8901
.Lbr011: add a3, a13, a12 # 155: ca3d
movi a2, sdk_flashchip # 157: 21d8ff
l32i a5, sp, 0 /* [(local0)] */ # 15a: 5801
srli a4, a12, 2 # 15c: c04241
addx4 a4, a4, a15 # 15f: f044a0
call0 SPI_page_program # 162: 01daffc0
# 166: 0000
bnez a2, .Lbr008 # 168: 56e2f8
.Lbr012: movi a2, 0 /* 0x00000000 */ # 16b: 0c02
.Lbr013: l32i a12, sp, 16 /* [(local4)] */ # 16d: c841
l32i a13, sp, 20 /* [(local5)] */ # 16f: d851
l32i a14, sp, 24 /* [(local6)] */ # 171: e861
l32i a15, sp, 28 /* [(local7)] */ # 173: f871
l32i a0, sp, 12 /* [(local3)] */ # 175: 0831
addi sp, sp, 48 /* (top of frame) */ # 177: 12c130
ret # 17a: 0df0
.Lbr014: mov a2, a13 /* arg0 */ # 17c: 2d0d
l32i a14, a4, 16 /* [.Ldata003] */ # 17e: e844
s32i a5, sp, 8 /* arg2 -> [(local2)] */ # 180: 5921
mov a3, a14 /* [.Ldata003] */ # 182: 3d0e
call0 __umodsi3 # 184: 01d3ffc0
# 188: 0000
l32i a5, sp, 8 /* [(local2)] */ # 18a: 5821
sub a12, a14, a2 # 18c: 20cec0
bltu a5, a12, .Lbr015 # 18f: c73502
j .Lbr009 # 192: 46daff
.Lbr015: mov a4, a15 /* arg1 */ # 195: 4d0f
mov a3, a13 /* arg0 */ # 197: 3d0d
movi a2, sdk_flashchip # 199: 21c8ff
call0 SPI_page_program # 19c: 01ceffc0
# 1a0: 0000
bnez a2, .Lbr008 # 1a2: 5642f5
j .Lbr012 # 1a5: 86f0ff
.literal_position # 1a8: 00000000
# 1ac: 00000000
# Function @ .text+0x1b0
# Local variables/stack:
# (local0): word[4] @ -0x10
.global sdk_SPIRead
.type sdk_SPIRead, @function
sdk_SPIRead:
mov a5, a4 /* arg2 */ # 1b0: 5d04
mov a7, a3 /* arg1 */ # 1b2: 7d03
addi sp, sp, -16 /* (local0) */ # 1b4: 12c1f0
s32i a0, sp, 0 /* a0 -> [(local0)] */ # 1b7: 0901
mov a3, a2 /* arg0 */ # 1b9: 3d02
mov a4, a7 /* arg1 */ # 1bb: 4d07
movi a2, sdk_flashchip # 1bd: 21faff
call0 SPI_read_data # 1c0: 01fbffc0
# 1c4: 0000
movi a4, 0 /* 0x00000000 */ # 1c6: 0c04
l32i a3, sp, 0 /* [(local0)] */ # 1c8: 3801
movi a0, 1 /* 0x00000001 */ # 1ca: 0c10
addi sp, sp, 16 /* (top of frame) */ # 1cc: 12c110
moveqz a0, a4, a2 # 1cf: 200483
mov a2, a0 # 1d2: 2d00
mov a0, a3 /* [(local0)] */ # 1d4: 0d03
ret # 1d6: 0df0
.literal_position # 1d8: 00000000
# 1dc: 00000000
# 1e0: 00000000
# 1e4: 00000000
# 1e8: 00000000
# 1ec: 00000000
# Function @ .text+0x1f0
# Local variables/stack:
# (local0): word @ -0x10
# (local1): word[3] @ -0xc
.global sdk_SPIEraseSector
.type sdk_SPIEraseSector, @function
sdk_SPIEraseSector:
addi sp, sp, -16 /* (local0) */ # 1f0: 12c1f0
movi a3, sdk_flashchip # 1f3: 31f9ff
s32i a12, sp, 4 /* a12 -> [(local1)] */ # 1f6: c911
mov a12, a2 /* arg0 */ # 1f8: cd02
s32i a0, sp, 0 /* a0 -> [(local0)] */ # 1fa: 0901
l32i a2, a3, 4 /* [.Ldata001] */ # 1fc: 2813
l32i a3, a3, 12 /* [.Ldata002] */ # 1fe: 3833
call0 __udivsi3 # 200: 01f9ffc0
# 204: 0000
bgeu a12, a2, .Lbr016 # 206: 27bc1f
movi a2, sdk_flashchip # 209: 21f4ff
call0 SPI_write_enable # 20c: 01f7ffc0
# 210: 0000
bnez a2, .Lbr016 # 212: dc32
movi a2, sdk_flashchip # 214: 21f3ff
l32i a3, a2, 12 /* [.Ldata002] */ # 217: 3832
mull a3, a3, a12 # 219: c03382
call0 SPI_sector_erase # 21c: 01f4ffc0
# 220: 0000
bnez a2, .Lbr016 # 222: cc32
movi a2, 0 /* 0x00000000 */ # 224: 0c02
j .Lbr017 # 226: 460000
.Lbr016: movi a2, 1 /* 0x00000001 */ # 229: 0c12
.Lbr017: l32i a12, sp, 4 /* [(local1)] */ # 22b: c811
l32i a0, sp, 0 /* [(local0)] */ # 22d: 0801
addi sp, sp, 16 /* (top of frame) */ # 22f: 12c110
ret # 232: 0df0
.literal_position # 234: 00000000
# 238: 00020060
# 23c: 00000010
# 240: ffffff00
# 244: 00000000
# 248: 00000000
# 24c: 00000000
# 250: 00000000
# 254: 00000000
# Function @ .text+0x258
# Local variables/stack:
# (local0): word @ -0x10
# (local1): word[3] @ -0xc
.global sdk_spi_flash_get_id
.type sdk_spi_flash_get_id, @function
sdk_spi_flash_get_id:
addi sp, sp, -16 /* (local0) */ # 258: 12c1f0
s32i a0, sp, 4 /* a0 -> [(local1)] */ # 25b: 0911
call0 vPortEnterCritical # 25d: 01f9ffc0
# 261: 0000
call0 Cache_Read_Disable # 263: 01f9ffc0
# 267: 0000
movi a2, sdk_flashchip # 269: 21f2ff
call0 Wait_SPI_Idle # 26c: 01f8ffc0
# 270: 0000
movi a4, 0 /* 0x00000000 */ # 272: 0c04
movi a0, 0x60000200 # 274: 01f1ff
memw # 277: c02000
s32i a4, a0, 64 /* 0x00000000 -> [0x60000240] */ # 27a: 426010
movi a3, 0x10000000 # 27d: 31efff
memw # 280: c02000
s32i a3, a0, 0 /* 0x10000000 -> [0x60000200] */ # 283: 3900
memw # 285: c02000
l32i a2, a0, 0 /* [0x60000200] */ # 288: 2800
beqz a2, .Lbr019 # 28a: 8c62
.Lbr018: memw # 28c: c02000
l32i a5, a0, 0 /* [0x60000200] */ # 28f: 5800
bnez a5, .Lbr018 # 291: 5675ff
.Lbr019: movi a7, 0x00ffffff # 294: 71ebff
memw # 297: c02000
movi a2, 0 /* 0x00000000 */ # 29a: 0c02
movi a3, 0 /* 0x00000000 */ # 29c: 0c03
l32i a6, a0, 64 /* [0x60000240] */ # 29e: 622010
movi a4, 1 /* 0x00000001 */ # 2a1: 0c14
and a6, a6, a7 # 2a3: 706610
s32i a6, sp, 0 /* a6 -> [(local0)] */ # 2a6: 6901
call0 Cache_Read_Enable # 2a8: 01eaffc0
# 2ac: 0000
call0 vPortExitCritical # 2ae: 01e9ffc0
# 2b2: 0000
l32i a8, sp, 4 /* [(local1)] */ # 2b4: 8811
l32i a2, sp, 0 /* [(local0)] */ # 2b6: 2801
mov a0, a8 /* [(local1)] */ # 2b8: 0d08
addi sp, sp, 16 /* (top of frame) */ # 2ba: 12c110
ret /* [(local0)] */ # 2bd: 0df0
.literal_position # 2c0: 00000000
# 2c4: 00000000
# 2c8: 00000000
# 2cc: 00000000
# 2d0: 00000000
# 2d4: 00000000
# Function @ .text+0x2d8
# Local variables/stack:
# (local0): word @ -0x10
# (local1): word @ -0xc
# (local2): word[2] @ -0x8
.global sdk_spi_flash_read_status
.type sdk_spi_flash_read_status, @function
sdk_spi_flash_read_status:
addi sp, sp, -16 /* (local0) */ # 2d8: 12c1f0
s32i a2, sp, 0 /* arg0 -> [(local0)] */ # 2db: 2901
s32i a0, sp, 8 /* a0 -> [(local2)] */ # 2dd: 0921
call0 vPortEnterCritical # 2df: 01f9ffc0
# 2e3: 0000
call0 Cache_Read_Disable # 2e5: 01f8ffc0
# 2e9: 0000
movi a2, sdk_flashchip # 2eb: 21f5ff
l32i a3, sp, 0 /* [(local0)] */ # 2ee: 3801
call0 SPI_read_status # 2f0: 01f7ffc0
# 2f4: 0000
movi a3, 0 /* 0x00000000 */ # 2f6: 0c03
s32i a2, sp, 4 /* a2 -> [(local1)] */ # 2f8: 2911
movi a4, 1 /* 0x00000001 */ # 2fa: 0c14
movi a2, 0 /* 0x00000000 */ # 2fc: 0c02
call0 Cache_Read_Enable # 2fe: 01f4ffc0
# 302: 0000
call0 vPortExitCritical # 304: 01f4ffc0
# 308: 0000
l32i a3, sp, 8 /* [(local2)] */ # 30a: 3821
l32i a2, sp, 4 /* [(local1)] */ # 30c: 2811
mov a0, a3 /* [(local2)] */ # 30e: 0d03
addi sp, sp, 16 /* (top of frame) */ # 310: 12c110
ret /* [(local1)] */ # 313: 0df0
.literal_position # 318: 00000000
# 31c: 00000000
# 320: 00000000
# 324: 00000000
# 328: 00000000
# 32c: 00000000
# Function @ .text+0x330
# Local variables/stack:
# (local0): word @ -0x10
# (local1): word @ -0xc
# (local2): word[2] @ -0x8
.global sdk_spi_flash_write_status
.type sdk_spi_flash_write_status, @function
sdk_spi_flash_write_status:
addi sp, sp, -16 /* (local0) */ # 330: 12c1f0
s32i a2, sp, 0 /* arg0 -> [(local0)] */ # 333: 2901
s32i a0, sp, 8 /* a0 -> [(local2)] */ # 335: 0921
call0 vPortEnterCritical # 337: 01f9ffc0
# 33b: 0000
call0 Cache_Read_Disable # 33d: 01f8ffc0
# 341: 0000
movi a2, sdk_flashchip # 343: 21f5ff
l32i a3, sp, 0 /* [(local0)] */ # 346: 3801
call0 SPI_write_status # 348: 01f7ffc0
# 34c: 0000
movi a3, 0 /* 0x00000000 */ # 34e: 0c03
s32i a2, sp, 4 /* a2 -> [(local1)] */ # 350: 2911
movi a4, 1 /* 0x00000001 */ # 352: 0c14
movi a2, 0 /* 0x00000000 */ # 354: 0c02
call0 Cache_Read_Enable # 356: 01f4ffc0
# 35a: 0000
call0 vPortExitCritical # 35c: 01f4ffc0
# 360: 0000
l32i a3, sp, 8 /* [(local2)] */ # 362: 3821
l32i a2, sp, 4 /* [(local1)] */ # 364: 2811
mov a0, a3 /* [(local2)] */ # 366: 0d03
addi sp, sp, 16 /* (top of frame) */ # 368: 12c110
ret /* [(local1)] */ # 36b: 0df0
.literal_position # 370: 00000000
# 374: 00000000
# 378: 00000000
# 37c: 00000000
# Function @ .text+0x380
# Local variables/stack:
# (local0): word @ -0x10
# (local1): word @ -0xc
# (local2): word[2] @ -0x8
.global sdk_spi_flash_erase_sector
.type sdk_spi_flash_erase_sector, @function
sdk_spi_flash_erase_sector:
addi sp, sp, -16 /* (local0) */ # 380: 12c1f0
s32i a2, sp, 0 /* arg0 -> [(local0)] */ # 383: 2901
s32i a0, sp, 8 /* a0 -> [(local2)] */ # 385: 0921
call0 vPortEnterCritical # 387: 01faffc0
# 38b: 0000
call0 Cache_Read_Disable # 38d: 01f9ffc0
# 391: 0000
l32i a2, sp, 0 /* [(local0)] */ # 393: 2801
call0 sdk_SPIEraseSector # 395: 050000
movi a3, 0 /* 0x00000000 */ # 398: 0c03
s32i a2, sp, 4 /* a2 -> [(local1)] */ # 39a: 2911
movi a4, 1 /* 0x00000001 */ # 39c: 0c14
movi a2, 0 /* 0x00000000 */ # 39e: 0c02
call0 Cache_Read_Enable # 3a0: 01f6ffc0
# 3a4: 0000
call0 vPortExitCritical # 3a6: 01f5ffc0
# 3aa: 0000
l32i a3, sp, 8 /* [(local2)] */ # 3ac: 3821
l32i a2, sp, 4 /* [(local1)] */ # 3ae: 2811
mov a0, a3 /* [(local2)] */ # 3b0: 0d03
addi sp, sp, 16 /* (top of frame) */ # 3b2: 12c110
ret /* [(local1)] */ # 3b5: 0df0
.literal_position # 3b8: 00000000
# 3bc: 00000000
# 3c0: 00000000
# 3c4: 00000000
# Function @ .text+0x3c8
# Local variables/stack:
# (local0): word @ -0x10
# (local1): word @ -0xc
# (local2): word @ -0x8
# (local3): word @ -0x4
.global sdk_spi_flash_write
.type sdk_spi_flash_write, @function
sdk_spi_flash_write:
addi sp, sp, -16 /* (local0) */ # 3c8: 12c1f0
s32i a0, sp, 4 /* a0 -> [(local1)] */ # 3cb: 0911
s32i a13, sp, 12 /* a13 -> [(local3)] */ # 3cd: d931
s32i a12, sp, 8 /* a12 -> [(local2)] */ # 3cf: c921
mov a13, a3 /* arg1 */ # 3d1: dd03
mov a12, a4 /* arg2 */ # 3d3: cd04
bnez a3, .Lbr020 # 3d5: cc33
movi a2, 1 /* 0x00000001 */ # 3d7: 0c12
j .Lbr022 # 3d9: 460e00
.Lbr020: s32i a2, sp, 0 /* arg0 -> [(local0)] */ # 3dc: 2901
movi a0, 3 /* 0x00000003 */ # 3de: 0c30
bnone a0, a4, .Lbr021 # 3e0: 470007
movi a0, 4 /* 0x00000004 */ # 3e3: 0c40
srli a12, a4, 2 # 3e5: 40c241
addx4 a12, a12, a0 # 3e8: 00cca0
.Lbr021: call0 vPortEnterCritical # 3eb: 01f3ffc0
# 3ef: 0000
call0 Cache_Read_Disable # 3f1: 01f2ffc0
# 3f5: 0000
mov a4, a12 # 3f7: 4d0c
mov a3, a13 /* arg1 */ # 3f9: 3d0d
l32i a2, sp, 0 /* [(local0)] */ # 3fb: 2801
call0 sdk_SPIWrite # 3fd: 050000
movi a3, 0 /* 0x00000000 */ # 400: 0c03
mov a12, a2 # 402: cd02
movi a4, 1 /* 0x00000001 */ # 404: 0c14
movi a2, 0 /* 0x00000000 */ # 406: 0c02
call0 Cache_Read_Enable # 408: 01eeffc0
# 40c: 0000
call0 vPortExitCritical # 40e: 01edffc0
# 412: 0000
mov a2, a12 # 414: 2d0c
.Lbr022: l32i a12, sp, 8 /* [(local2)] */ # 416: c821
l32i a13, sp, 12 /* [(local3)] */ # 418: d831
l32i a0, sp, 4 /* [(local1)] */ # 41a: 0811
addi sp, sp, 16 /* (top of frame) */ # 41c: 12c110
ret # 41f: 0df0
.literal_position # 424: 00000000
# 428: 00000000
# 42c: 00000000
# 430: 00000000
# Function @ .text+0x434
# Local variables/stack:
# (local0): word @ -0x10
# (local1): word @ -0xc
# (local2): word @ -0x8
# (local3): word @ -0x4
.global sdk_spi_flash_read
.type sdk_spi_flash_read, @function
sdk_spi_flash_read:
addi sp, sp, -16 /* (local0) */ # 434: 12c1f0
s32i a0, sp, 8 /* a0 -> [(local2)] */ # 437: 0921
s32i a4, sp, 0 /* arg2 -> [(local0)] */ # 439: 4901
s32i a12, sp, 12 /* a12 -> [(local3)] */ # 43b: c931
s32i a2, sp, 4 /* arg0 -> [(local1)] */ # 43d: 2911
mov a12, a3 /* arg1 */ # 43f: cd03
bnez a3, .Lbr023 # 441: cc33
movi a2, 1 /* 0x00000001 */ # 443: 0c12
j .Lbr024 # 445: 860a00
.Lbr023: call0 vPortEnterCritical # 448: 01f7ffc0
# 44c: 0000
call0 Cache_Read_Disable # 44e: 01f6ffc0
# 452: 0000
mov a3, a12 /* arg1 */ # 454: 3d0c
l32i a2, sp, 4 /* [(local1)] */ # 456: 2811
l32i a4, sp, 0 /* [(local0)] */ # 458: 4801
call0 sdk_SPIRead # 45a: 050000
movi a3, 0 /* 0x00000000 */ # 45d: 0c03
mov a12, a2 # 45f: cd02
movi a4, 1 /* 0x00000001 */ # 461: 0c14
movi a2, 0 /* 0x00000000 */ # 463: 0c02
call0 Cache_Read_Enable # 465: 01f1ffc0
# 469: 0000
call0 vPortExitCritical # 46b: 01f1ffc0
# 46f: 0000
mov a2, a12 # 471: 2d0c
.Lbr024: l32i a12, sp, 12 /* [(local3)] */ # 473: c831
l32i a0, sp, 8 /* [(local2)] */ # 475: 0821
addi sp, sp, 16 /* (top of frame) */ # 477: 12c110
ret # 47a: 0df0
.section .data, "aw", @progbits
.global sdk_flashchip
.type sdk_flashchip, @object
sdk_flashchip:
.word 0x001640ef # 0: ef401600
.Ldata001: .word 0x00400000 # 4: 00004000
# NOTE: The following is apparently unreferenced code/data
.word 0x00010000 # 8: 00000100
.Ldata002: .word 0x00001000 # c: 00100000
.Ldata003: .word 0x00000100 # 10: 00010000
# NOTE: The following is apparently unreferenced code/data
.word 0x0000ffff # 14: ffff0000