opensbi: weekly rls 2025.01.10
daa470, [fix](opensbi): add rls_info.txt b21a54, [test](opensbi): opensbi tailoring (time optimizing) 6ff231, [fix](str): fix riscv suspend section which do not use varivales and functions beyond syspend section. Change-Id: I8c6e7698b475b2d14c02308121f621dafe9b9e36
This commit is contained in:
@@ -225,7 +225,9 @@ static void __noreturn init_coldboot(struct sbi_scratch *scratch, u32 hartid)
|
||||
{
|
||||
int rc;
|
||||
unsigned long *init_count;
|
||||
#ifndef CONFIG_OPENSBI_FASTBOOT
|
||||
const struct sbi_platform *plat = sbi_platform_ptr(scratch);
|
||||
#endif
|
||||
|
||||
/* Note: This has to be first thing in coldboot init sequence */
|
||||
rc = sbi_scratch_init(scratch);
|
||||
@@ -246,20 +248,25 @@ static void __noreturn init_coldboot(struct sbi_scratch *scratch, u32 hartid)
|
||||
if (rc)
|
||||
sbi_hart_hang();
|
||||
|
||||
#ifndef CONFIG_OPENSBI_FASTBOOT
|
||||
rc = sbi_platform_early_init(plat, TRUE);
|
||||
if (rc)
|
||||
sbi_hart_hang();
|
||||
#endif
|
||||
|
||||
rc = sbi_hart_init(scratch, TRUE);
|
||||
if (rc)
|
||||
sbi_hart_hang();
|
||||
|
||||
#ifndef CONFIG_OPENSBI_FASTBOOT
|
||||
rc = sbi_console_init(scratch);
|
||||
if (rc)
|
||||
sbi_hart_hang();
|
||||
#endif
|
||||
|
||||
sbi_boot_print_banner(scratch);
|
||||
|
||||
#ifndef CONFIG_OPENSBI_FASTBOOT
|
||||
rc = sbi_platform_irqchip_init(plat, TRUE);
|
||||
if (rc) {
|
||||
sbi_printf("%s: platform irqchip init failed (error %d)\n",
|
||||
@@ -272,6 +279,7 @@ static void __noreturn init_coldboot(struct sbi_scratch *scratch, u32 hartid)
|
||||
sbi_printf("%s: ipi init failed (error %d)\n", __func__, rc);
|
||||
sbi_hart_hang();
|
||||
}
|
||||
#endif
|
||||
|
||||
rc = sbi_tlb_init(scratch, TRUE);
|
||||
if (rc) {
|
||||
@@ -319,12 +327,14 @@ static void __noreturn init_coldboot(struct sbi_scratch *scratch, u32 hartid)
|
||||
* Note: Platform final initialization should be last so that
|
||||
* it sees correct domain assignment and PMP configuration.
|
||||
*/
|
||||
#ifndef CONFIG_OPENSBI_FASTBOOT
|
||||
rc = sbi_platform_final_init(plat, TRUE);
|
||||
if (rc) {
|
||||
sbi_printf("%s: platform final init failed (error %d)\n",
|
||||
__func__, rc);
|
||||
sbi_hart_hang();
|
||||
}
|
||||
#endif
|
||||
|
||||
sbi_boot_print_hart(scratch, hartid);
|
||||
|
||||
|
||||
@@ -15,7 +15,9 @@
|
||||
#define CLINT_TIMER_MAX_NR 16
|
||||
|
||||
static unsigned long clint_timer_count = 0;
|
||||
static struct clint_data clint_timer[CLINT_TIMER_MAX_NR];
|
||||
static struct clint_data clint_timer[CLINT_TIMER_MAX_NR] = {
|
||||
{.addr = 0x74000000, .first_hartid = 0, .hart_count = 1, .has_64bit_mmio = 0, },
|
||||
};
|
||||
|
||||
static int timer_clint_cold_init(void *fdt, int nodeoff,
|
||||
const struct fdt_match *match)
|
||||
@@ -29,9 +31,11 @@ static int timer_clint_cold_init(void *fdt, int nodeoff,
|
||||
if (1 < clint_timer_count)
|
||||
ctmaster = &clint_timer[0];
|
||||
|
||||
rc = fdt_parse_clint_node(fdt, nodeoff, TRUE, ct);
|
||||
if (rc)
|
||||
return rc;
|
||||
if (clint_timer_count != 1) {
|
||||
rc = fdt_parse_clint_node(fdt, nodeoff, TRUE, ct);
|
||||
if (rc)
|
||||
return rc;
|
||||
}
|
||||
|
||||
return clint_cold_timer_init(ct, ctmaster);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user