arch/riscv: Add OPENSBI_FW_DYNAMIC_BOOT_HART option
This adds another option to tell OpenSBI which hart to use for booting. Test: Start hifive-unmatched board and see that Hart 1 (instead of 0) is used for running OpenSBI. Signed-off-by: Maximilian Brune <maximilian.brune@9elements.com> Change-Id: Id58bd6ae3b55a5ef3f1a5c97dfa07c79aa4c78d0 Reviewed-on: https://review.coreboot.org/c/coreboot/+/79948 Reviewed-by: Philipp Hug <philipp@hug.cx> Reviewed-by: Felix Held <felix-coreboot@felixheld.de> Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Arthur Heymans <arthur@aheymans.xyz>
This commit is contained in:
		
				
					committed by
					
						 Felix Held
						Felix Held
					
				
			
			
				
	
			
			
			
						parent
						
							f6a7809de8
						
					
				
				
					commit
					a122041be1
				
			| @@ -66,6 +66,16 @@ config OPENSBI_TEXT_START | ||||
| 	help | ||||
| 	  The linking address used to build opensbi. | ||||
|  | ||||
| config OPENSBI_FW_DYNAMIC_BOOT_HART | ||||
| 	int | ||||
| 	default RISCV_WORKING_HARTID | ||||
| 	help | ||||
| 	  This specifies the hart that OpenSBI will use to boot the payload. If set to | ||||
| 	  value -1, OpenSBI will use a 'lottery' scheme to figure it out itself. | ||||
| 	  This hart must be able to execute in the Supervisor priviledged mode, since | ||||
| 	  that is the mode usually used for the payload. If the hart does not support | ||||
| 	  Supervisor mode OpenSBI will again look for a hart that does support it. | ||||
|  | ||||
| config ARCH_RISCV_U | ||||
| 	# U (user) mode is for programs. | ||||
| 	bool | ||||
|   | ||||
| @@ -20,6 +20,8 @@ void run_opensbi(const int hart_id, | ||||
| 		.version = FW_DYNAMIC_INFO_VERSION_MAX, | ||||
| 		.next_mode = payload_mode, | ||||
| 		.next_addr = (uintptr_t)payload, | ||||
| 		.options = 0, | ||||
| 		.boot_hart = CONFIG_OPENSBI_FW_DYNAMIC_BOOT_HART, | ||||
| 	}; | ||||
|  | ||||
| 	csr_write(mepc, opensbi); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user