mirror of
https://github.com/brain-hackers/u-boot-brain
synced 2024-10-01 00:50:43 +09:00
riscv: bootm: Support to boot riscv-linux
riscv-linux should use BBL (Berkeley bootloader) for loading the Linux kernel. U-Boot can play as FSBL(first stage bootloader) to boot BBL and riscv-linux. In BBL's init_first_hart(), it will pass dtb with a1. So implement bootm to pass arguments to BBL correctly. Signed-off-by: Rick Chen <rick@andestech.com> Signed-off-by: Rick Chen <rickchen36@gmail.com>
This commit is contained in:
parent
22e8c0f02b
commit
0462358b62
@ -46,7 +46,7 @@ int do_bootm_linux(int flag, int argc, char *argv[], bootm_headers_t *images)
|
||||
bd_t *bd = gd->bd;
|
||||
char *s;
|
||||
int machid = bd->bi_arch_number;
|
||||
void (*theKernel)(int zero, int arch, uint params);
|
||||
void (*theKernel)(int arch, uint params);
|
||||
|
||||
#ifdef CONFIG_CMDLINE_TAG
|
||||
char *commandline = env_get("bootargs");
|
||||
@ -61,7 +61,7 @@ int do_bootm_linux(int flag, int argc, char *argv[], bootm_headers_t *images)
|
||||
if ((flag != 0) && (flag != BOOTM_STATE_OS_GO))
|
||||
return 1;
|
||||
|
||||
theKernel = (void (*)(int, int, uint))images->ep;
|
||||
theKernel = (void (*)(int, uint))images->ep;
|
||||
|
||||
s = env_get("machid");
|
||||
if (s) {
|
||||
@ -120,9 +120,9 @@ int do_bootm_linux(int flag, int argc, char *argv[], bootm_headers_t *images)
|
||||
}
|
||||
cleanup_before_linux();
|
||||
if (IMAGE_ENABLE_OF_LIBFDT && images->ft_len)
|
||||
theKernel(0, machid, (unsigned long)images->ft_addr);
|
||||
theKernel(machid, (unsigned long)images->ft_addr);
|
||||
else
|
||||
theKernel(0, machid, bd->bi_boot_params);
|
||||
theKernel(machid, bd->bi_boot_params);
|
||||
/* does not return */
|
||||
|
||||
return 1;
|
||||
|
Loading…
Reference in New Issue
Block a user