mirror of
https://git.FreeBSD.org/src.git
synced 2025-01-09 13:42:56 +00:00
Convert BERI to use ofw_parse_bootargs()
Summary: ofw_parse_bootargs() was added in r306065 as an attempt to unify the various copies of the same code. This simply migrates BERI to use it. Reviewed By: brooks Differential Revision: https://reviews.freebsd.org/D12962
This commit is contained in:
parent
f8135d8282
commit
ce7fd13aff
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=325790
@ -59,6 +59,7 @@ __FBSDID("$FreeBSD$");
|
|||||||
#ifdef FDT
|
#ifdef FDT
|
||||||
#include <dev/fdt/fdt_common.h>
|
#include <dev/fdt/fdt_common.h>
|
||||||
#include <dev/ofw/openfirm.h>
|
#include <dev/ofw/openfirm.h>
|
||||||
|
#include <dev/ofw/ofw_subr.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include <vm/vm.h>
|
#include <vm/vm.h>
|
||||||
@ -161,46 +162,6 @@ platform_reset(void)
|
|||||||
__asm__ __volatile("wait");
|
__asm__ __volatile("wait");
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef FDT
|
|
||||||
/* Parse cmd line args as env - copied from xlp_machdep. */
|
|
||||||
/* XXX-BZ this should really be centrally provided for all (boot) code. */
|
|
||||||
static void
|
|
||||||
_parse_bootargs(char *cmdline)
|
|
||||||
{
|
|
||||||
char *n, *v;
|
|
||||||
|
|
||||||
while ((v = strsep(&cmdline, " \n")) != NULL) {
|
|
||||||
if (*v == '\0')
|
|
||||||
continue;
|
|
||||||
if (*v == '-') {
|
|
||||||
while (*v != '\0') {
|
|
||||||
v++;
|
|
||||||
switch (*v) {
|
|
||||||
case 'a': boothowto |= RB_ASKNAME; break;
|
|
||||||
/* Someone should simulate that ;-) */
|
|
||||||
case 'C': boothowto |= RB_CDROM; break;
|
|
||||||
case 'd': boothowto |= RB_KDB; break;
|
|
||||||
case 'D': boothowto |= RB_MULTIPLE; break;
|
|
||||||
case 'm': boothowto |= RB_MUTE; break;
|
|
||||||
case 'g': boothowto |= RB_GDB; break;
|
|
||||||
case 'h': boothowto |= RB_SERIAL; break;
|
|
||||||
case 'p': boothowto |= RB_PAUSE; break;
|
|
||||||
case 'r': boothowto |= RB_DFLTROOT; break;
|
|
||||||
case 's': boothowto |= RB_SINGLE; break;
|
|
||||||
case 'v': boothowto |= RB_VERBOSE; break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
n = strsep(&v, "=");
|
|
||||||
if (v == NULL)
|
|
||||||
kern_setenv(n, "1");
|
|
||||||
else
|
|
||||||
kern_setenv(n, v);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
void
|
void
|
||||||
platform_start(__register_t a0, __register_t a1, __register_t a2,
|
platform_start(__register_t a0, __register_t a1, __register_t a2,
|
||||||
__register_t a3)
|
__register_t a3)
|
||||||
@ -279,9 +240,7 @@ platform_start(__register_t a0, __register_t a1, __register_t a2,
|
|||||||
/*
|
/*
|
||||||
* Get bootargs from FDT if specified.
|
* Get bootargs from FDT if specified.
|
||||||
*/
|
*/
|
||||||
chosen = OF_finddevice("/chosen");
|
ofw_parse_bootargs();
|
||||||
if (OF_getprop(chosen, "bootargs", buf, sizeof(buf)) != -1)
|
|
||||||
_parse_bootargs(buf);
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
Loading…
Reference in New Issue
Block a user