forked from Mirrors/opensbi
		
	lib: utils/serial: add semihosting support
We add RISC-V semihosting based serial console for JTAG based early debugging. The RISC-V semihosting specification is available at: https://github.com/riscv/riscv-semihosting-spec/blob/main/riscv-semihosting-spec.adoc Signed-off-by: Anup Patel <apatel@ventanamicro.com> Signed-off-by: Kautuk Consul <kconsul@ventanamicro.com> Reviewed-by: Anup Patel <anup@brainfault.org>
This commit is contained in:
		
				
					committed by
					
						
						Anup Patel
					
				
			
			
				
	
			
			
			
						parent
						
							49372f2691
						
					
				
				
					commit
					7f09fba86e
				
			@@ -28,3 +28,4 @@ CONFIG_FDT_SERIAL_UART8250=y
 | 
			
		||||
CONFIG_FDT_SERIAL_XILINX_UARTLITE=y
 | 
			
		||||
CONFIG_FDT_TIMER=y
 | 
			
		||||
CONFIG_FDT_TIMER_MTIMER=y
 | 
			
		||||
CONFIG_SERIAL_SEMIHOSTING=y
 | 
			
		||||
 
 | 
			
		||||
@@ -23,6 +23,7 @@
 | 
			
		||||
#include <sbi_utils/timer/fdt_timer.h>
 | 
			
		||||
#include <sbi_utils/ipi/fdt_ipi.h>
 | 
			
		||||
#include <sbi_utils/reset/fdt_reset.h>
 | 
			
		||||
#include <sbi_utils/serial/semihosting.h>
 | 
			
		||||
 | 
			
		||||
/* List of platform override modules generated at compile time */
 | 
			
		||||
extern const struct platform_override *platform_override_modules[];
 | 
			
		||||
@@ -242,6 +243,14 @@ static uint64_t generic_pmu_xlate_to_mhpmevent(uint32_t event_idx,
 | 
			
		||||
	return evt_val;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static int generic_console_init(void)
 | 
			
		||||
{
 | 
			
		||||
	if (semihosting_enabled())
 | 
			
		||||
		return semihosting_init();
 | 
			
		||||
	else
 | 
			
		||||
		return fdt_serial_init();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
const struct sbi_platform_operations platform_ops = {
 | 
			
		||||
	.nascent_init		= generic_nascent_init,
 | 
			
		||||
	.early_init		= generic_early_init,
 | 
			
		||||
@@ -249,7 +258,7 @@ const struct sbi_platform_operations platform_ops = {
 | 
			
		||||
	.early_exit		= generic_early_exit,
 | 
			
		||||
	.final_exit		= generic_final_exit,
 | 
			
		||||
	.domains_init		= generic_domains_init,
 | 
			
		||||
	.console_init		= fdt_serial_init,
 | 
			
		||||
	.console_init		= generic_console_init,
 | 
			
		||||
	.irqchip_init		= fdt_irqchip_init,
 | 
			
		||||
	.irqchip_exit		= fdt_irqchip_exit,
 | 
			
		||||
	.ipi_init		= fdt_ipi_init,
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user