x86: Notify the FSP of the 'end firmware' event
Send this notification when U-Boot is about to boot into Linux, as requested by the FSP. Currently this causes a crash with the APL FSP, so leave it disabled for now. Signed-off-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
		
							parent
							
								
									f31b02c84e
								
							
						
					
					
						commit
						7c73cea442
					
				|  | @ -189,6 +189,14 @@ __weak void board_final_init(void) | |||
| { | ||||
| } | ||||
| 
 | ||||
| /*
 | ||||
|  * Implement a weak default function for boards that need to do some final | ||||
|  * processing before booting the OS. | ||||
|  */ | ||||
| __weak void board_final_cleanup(void) | ||||
| { | ||||
| } | ||||
| 
 | ||||
| int last_stage_init(void) | ||||
| { | ||||
| 	struct acpi_fadt __maybe_unused *fadt; | ||||
|  | @ -218,6 +226,13 @@ int last_stage_init(void) | |||
| 		} | ||||
| 	} | ||||
| 
 | ||||
| 	/*
 | ||||
| 	 * TODO(sjg@chromium.org): Move this to bootm_announce_and_cleanup() | ||||
| 	 * once APL FSP-S at 0x200000 does not overlap with the bzimage at | ||||
| 	 * 0x100000. | ||||
| 	 */ | ||||
| 	board_final_cleanup(); | ||||
| 
 | ||||
| 	return 0; | ||||
| } | ||||
| #endif | ||||
|  |  | |||
|  | @ -60,6 +60,22 @@ void board_final_init(void) | |||
| 		debug("OK\n"); | ||||
| } | ||||
| 
 | ||||
| void board_final_cleanup(void) | ||||
| { | ||||
| 	u32 status; | ||||
| 
 | ||||
| 	/* TODO(sjg@chromium.org): This causes Linux to crash */ | ||||
| 	return; | ||||
| 
 | ||||
| 	/* call into FspNotify */ | ||||
| 	debug("Calling into FSP (notify phase INIT_PHASE_END_FIRMWARE): "); | ||||
| 	status = fsp_notify(NULL, INIT_PHASE_END_FIRMWARE); | ||||
| 	if (status) | ||||
| 		debug("fail, error code %x\n", status); | ||||
| 	else | ||||
| 		debug("OK\n"); | ||||
| } | ||||
| 
 | ||||
| int fsp_save_s3_stack(void) | ||||
| { | ||||
| 	struct udevice *dev; | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue