diff options
author | Pavel Pisa <ppisa@pikron.com> | 2016-05-21 03:10:06 +0200 |
---|---|---|
committer | Pavel Pisa <ppisa@pikron.com> | 2016-05-31 10:33:42 +0200 |
commit | 4c59eebfbf6037a6e1362a0c1c9904829be1762a (patch) | |
tree | 18cb669657b120785fd40686d5854237f620e3e7 | |
parent | libchip: Remove dwmac network interface driver (diff) | |
download | rtems-4c59eebfbf6037a6e1362a0c1c9904829be1762a.tar.bz2 |
arm/raspberrypi: cmdline enhancement and early access workaround.
cmdline argument is returned without option name.
The calls to command line parsing can be called earlier before
BSS is cleaned out.
-rw-r--r-- | c/src/lib/libbsp/arm/raspberrypi/startup/cmdline.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/c/src/lib/libbsp/arm/raspberrypi/startup/cmdline.c b/c/src/lib/libbsp/arm/raspberrypi/startup/cmdline.c index f8a7182c65..d585e311d8 100644 --- a/c/src/lib/libbsp/arm/raspberrypi/startup/cmdline.c +++ b/c/src/lib/libbsp/arm/raspberrypi/startup/cmdline.c @@ -19,8 +19,8 @@ #include <bsp/vc.h> #define MAX_CMDLINE_LENGTH 1024 -static int rpi_cmdline_ready; -static char rpi_cmdline_cached[MAX_CMDLINE_LENGTH]; +static int rpi_cmdline_ready = -1; +static char rpi_cmdline_cached[MAX_CMDLINE_LENGTH] = "force .data placement"; static bcm2835_get_cmdline_entries rpi_cmdline_entries; const char *rpi_cmdline_get_raw(void) @@ -32,7 +32,7 @@ const char *rpi_cmdline_get_raw(void) const char *rpi_cmdline_get_cached(void) { - if (!rpi_cmdline_ready) { + if (rpi_cmdline_ready <= 0) { const char *line = rpi_cmdline_get_raw(); strncpy(rpi_cmdline_cached, line, MAX_CMDLINE_LENGTH - 1); rpi_cmdline_cached[MAX_CMDLINE_LENGTH - 1] = 0; @@ -43,5 +43,9 @@ const char *rpi_cmdline_get_cached(void) const char *rpi_cmdline_get_arg(const char* arg) { - return strstr (rpi_cmdline_get_cached(), arg); + const char *opt_data; + opt_data = strstr(rpi_cmdline_get_cached(), arg); + if (opt_data) + opt_data += strlen(arg); + return opt_data; } |