/* SPDX-License-Identifier: GPL-2.0-only */ #include #include #include #include #include #include #include /* * Systems without a native coreboot cache-as-ram teardown may implement * this to use an alternate method. */ __weak void late_car_teardown(void) { /* do nothing */ } void main(void) { late_car_teardown(); console_init(); /* * CBMEM needs to be recovered because timestamps rely on * the cbmem infrastructure being around. Explicitly recover it. * * On some platforms CBMEM needs to be initialized earlier. * Use cbmem_online() to avoid init CBMEM twice. */ if (!cbmem_online()) cbmem_initialize(); timestamp_add_now(TS_START_POSTCAR); display_mtrrs(); /* Load and run ramstage. */ run_ramstage(); }