Rex-BC Chen | db8442b | 2022-07-01 17:37:37 +0800 | [diff] [blame] | 1 | # Firmware Layout Description for Chrome OS. |
| 2 | # |
| 3 | # The size and address of every section must be aligned to at least 4K, except: |
| 4 | # RO_FRID, RW_FWID*, GBB, or any unused / padding / CBFS type sections. |
| 5 | # |
| 6 | # 'FMAP' may be found by binary search so its starting address should be better |
| 7 | # aligned to larger values. |
| 8 | # |
| 9 | # For sections to be preserved on update, add (PRESERVE) to individual sections |
| 10 | # instead of a group section; otherwise the preserved data may be wrong if you |
| 11 | # resize or reorder sections inside a group. |
| 12 | |
| 13 | FLASH@0x0 8M { |
| 14 | WP_RO@0x0 4M { |
| 15 | RO_SECTION { |
| 16 | BOOTBLOCK 128K |
| 17 | FMAP 4K |
| 18 | COREBOOT(CBFS) |
| 19 | GBB 0x2f00 |
| 20 | RO_FRID 0x100 |
| 21 | } |
| 22 | RO_GSCVD 8K |
| 23 | RO_VPD(PRESERVE) 32K # At least 16K. |
| 24 | } |
| 25 | RW_SECTION_A 1500K { |
| 26 | VBLOCK_A 8K |
| 27 | FW_MAIN_A(CBFS) |
| 28 | RW_FWID_A 0x100 |
| 29 | } |
| 30 | RW_MISC 36K { |
| 31 | RW_VPD(PRESERVE) 16K # At least 8K. |
| 32 | RW_NVRAM(PRESERVE) 8K |
| 33 | RW_MRC_CACHE(PRESERVE) 8K |
| 34 | RW_ELOG(PRESERVE) 4K # ELOG driver hard-coded size in 4K. |
| 35 | } |
| 36 | RW_SECTION_B 1500K { |
| 37 | VBLOCK_B 8K |
| 38 | FW_MAIN_B(CBFS) |
| 39 | RW_FWID_B 0x100 |
| 40 | } |
| 41 | RW_SHARED 36K { # Will be force updated on recovery. |
| 42 | SHARED_DATA 4K # 4K or less for netboot params. |
| 43 | RW_UNUSED |
| 44 | } |
| 45 | RW_LEGACY(CBFS) 1M # Minimal 1M. |
| 46 | } |