Skip to content

Bake TLV ่ง„่Œƒ v0.2

็ƒ˜็„™็ฅž็ปๅฝขๆ€ไธชๆ€ง็š„ไบŒ่ฟ›ๅˆถๆ ผๅผ


๐Ÿ“ ไธ€่ˆฌ่ง„ๅˆ™

่ง„ๅˆ™ ๆ่ฟฐ
Endianness Little-endian
TLV Padding 0, value ๅฏน้ฝๅˆฐ 4 ๅญ—่Š‚่พน็•Œ
CRC32 IEEE (zlib/crc32) ไปŽ offset 0 ๅˆฐ TLV_CRC32 ๅผ€ๅง‹็š„ๆ‰€ๆœ‰ๅญ—่Š‚

๐Ÿ“‹ Header (28 ๅญ—่Š‚)

BakeBlobHeader

Offset ๅญ—ๆฎต ็ฑปๅž‹ ๅ€ผ
0 magic char[4] "D8BK"
4 ver_major u16 2
6 ver_minor u16 0
8 flags u32 BAKE_FLAG_DOUBLE_STRAIT (bit0)
12 total_len u32 ๅฎŒๆ•ด blob ๅคงๅฐ
16 bake_id u32 ็ƒ˜็„™ ID
20 profile_id u32 ้…็ฝฎๆ–‡ไปถ ID
24 reserved0 u32 0
ๆฏ”็‰น ๆ ‡ๅฟ— ๆ่ฟฐ
bit0 BAKE_FLAG_DOUBLE_STRAIT Conductor ๅฏนๆฏไธช่พ“ๅ…ฅๅ’Œๅผฆ่ฟ›่กŒๅŒ้‡ๆณจๅ…ฅ

๐Ÿงฉ TLV Header (8 ๅญ—่Š‚)

Offset ๅญ—ๆฎต ็ฑปๅž‹
0 type u16
2 tflags u16
4 len u32

๐Ÿ“ฆ TLV ็ฑปๅž‹ๆ˜ ๅฐ„ v0.2

TLV ็ฑปๅž‹ ID ๅฟ…้œ€ ๆ่ฟฐ
TLV_TOPOLOGY 0x0100 โœ… ้˜ตๅˆ—ๆ‹“ๆ‰‘
TLV_TILE_PARAMS_V2 0x0121 โœ… ๅ›พๅ—ๅ‚ๆ•ฐ (13 ๅญ—่Š‚/ๅ›พๅ—)
TLV_TILE_ROUTING_FLAGS16 0x0131 โœ… ่ทฏ็”ฑๆ ‡ๅฟ—
TLV_READOUT_POLICY 0x0140 โœ… ่ฏปๅ‡บ็ญ–็•ฅ
TLV_RESET_ON_FIRE_MASK16 0x0150 โœ… ่งฆๅ‘ๆ—ถ่‡ชๅŠจ้‡็ฝฎ
TLV_TILE_WEIGHTS_PACKED 0x0160 โœ… ๆƒ้‡ 8ร—8
TLV_TILE_FIELD_LIMIT 0x0170 โŒ ๅ›พๅ—้™ๅˆถ
TLV_CRC32 0xFFFE โœ… ๆ ก้ชŒๅ’Œ (ๆœ€ๅŽ)

โœ… ๅŠ ่ฝฝๆ—ถ้ชŒ่ฏ

Bake ๅŠ ่ฝฝๅ™จๅฟ…้กป้ชŒ่ฏ๏ผš

  1. Header: magic/ver/total_len
  2. TLV ๅญ˜ๅœจ: ๆ‰€ๆœ‰ๅฟ…้œ€ TLV
  3. ไธฅๆ ผ้•ฟๅบฆ:
  4. TILE_PARAMS_V2: tile_count ร— 13
  5. TILE_ROUTING_FLAGS16: tile_count ร— 2
  6. TILE_WEIGHTS_PACKED: tile_count ร— 40
  7. RESET_ON_FIRE_MASK16: tile_count ร— 2
  8. CRC32: "TLV_CRC32 ไน‹ๅ‰"็š„่ง„ๅˆ™
  9. Reserved ๅญ—ๆฎต: = 0
  10. ไธๅ˜้‡: thr_lo16 <= thr_hi6, tile_count == tile_w ร— tile_h

Bake the Future. Build the Substrate. ๐Ÿ› ๏ธโšก๏ธ