Page MenuHomeFreeBSD

D25544.id74008.diff
No OneTemporary

D25544.id74008.diff

Index: sys/riscv/riscv/machdep.c
===================================================================
--- sys/riscv/riscv/machdep.c
+++ sys/riscv/riscv/machdep.c
@@ -40,6 +40,7 @@
#include <sys/param.h>
#include <sys/systm.h>
+#include <sys/boot.h>
#include <sys/buf.h>
#include <sys/bus.h>
#include <sys/cons.h>
@@ -800,6 +801,17 @@
rvbp->kern_phys, rvbp->kern_phys + (lastaddr - KERNBASE));
}
+static void
+parse_fdt_bootargs(void)
+{
+ char bootargs[512];
+
+ bootargs[sizeof(bootargs) - 1] = '\0';
+ if (fdt_get_chosen_bootargs(bootargs, sizeof(bootargs) - 1) == 0) {
+ boothowto |= boot_parse_cmdline(bootargs);
+ }
+}
+
static vm_offset_t
parse_metadata(void)
{
@@ -819,16 +831,18 @@
/* Read the boot metadata */
boothowto = MD_FETCH(kmdp, MODINFOMD_HOWTO, int);
lastaddr = MD_FETCH(kmdp, MODINFOMD_KERNEND, vm_offset_t);
+#ifdef FDT
+ try_load_dtb(kmdp);
+#endif
kern_envp = MD_FETCH(kmdp, MODINFOMD_ENVP, char *);
- if (kern_envp != NULL)
+ if (kern_envp != NULL) {
init_static_kenv(kern_envp, 0);
+ parse_fdt_bootargs();
+ }
#ifdef DDB
ksym_start = MD_FETCH(kmdp, MODINFOMD_SSYM, uintptr_t);
ksym_end = MD_FETCH(kmdp, MODINFOMD_ESYM, uintptr_t);
db_fetch_ksymtab(ksym_start, ksym_end);
-#endif
-#ifdef FDT
- try_load_dtb(kmdp);
#endif
return (lastaddr);
}

File Metadata

Mime Type
text/plain
Expires
Fri, Jan 2, 7:55 AM (2 h, 35 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
27453502
Default Alt Text
D25544.id74008.diff (1 KB)

Event Timeline