summaryrefslogtreecommitdiff
path: root/cleopatre/devkit/plcdrv/src/boot_params.c
diff options
context:
space:
mode:
Diffstat (limited to 'cleopatre/devkit/plcdrv/src/boot_params.c')
-rw-r--r--cleopatre/devkit/plcdrv/src/boot_params.c32
1 files changed, 23 insertions, 9 deletions
diff --git a/cleopatre/devkit/plcdrv/src/boot_params.c b/cleopatre/devkit/plcdrv/src/boot_params.c
index 3a2978b51c..1e6d9587da 100644
--- a/cleopatre/devkit/plcdrv/src/boot_params.c
+++ b/cleopatre/devkit/plcdrv/src/boot_params.c
@@ -31,9 +31,10 @@
* len(size_str) + len("k"|"M") + '\0' */
#define BOOT_PARAMS_MEM_VAL_STR_SIZE (20 + 1 + 1)
-/** Size of the string representing the value of the "sysclk_mhz" boot parameter.
+/** Size of the string representing the value of a clock frequency boot
+ * parameter.
* len(size_str) + '\0' */
-#define BOOT_PARAMS_SYSCLK_MHZ_VAL_STR_SIZE (3 + 1)
+#define BOOT_PARAMS_CLK_MHZ_VAL_STR_SIZE (3 + 1)
char custom_boot_params[BOOT_PARAMS_STR_SIZE] = "";
@@ -127,17 +128,17 @@ static int plcdrv_mem_to_str(char *str, size_t size, uint32_t mem)
}
/**
- * Convert a numeric sysclk_mhz size value to a string representation.
+ * Convert a numeric clk_mhz size value to a string representation.
*
* \param str destination string.
* \param size size of the string.
- * \param sysclock the system clock.
+ * \param sysclock the clock frequency.
* \return 0, on success. -1, on error.
*/
-static int plcdrv_sysclk_to_str(char *str, size_t size, uint32_t sysclk_mhz)
+static int plcdrv_clk_to_str(char *str, size_t size, uint32_t clk_mhz)
{
int ret;
- ret = snprintf(str, size, "%u", sysclk_mhz);
+ ret = snprintf(str, size, "%u", clk_mhz);
if ((ret <= -1) || (ret >= size))
{
return -1;
@@ -168,16 +169,29 @@ static int plcdrv_add_default_boot_params(char *params_str)
//"sysclk_mhz"
{
//Value of the "sysclk_mhz" parameter as a string.
- char sysclk_val_str[BOOT_PARAMS_SYSCLK_MHZ_VAL_STR_SIZE] = "";
+ char sysclk_val_str[BOOT_PARAMS_CLK_MHZ_VAL_STR_SIZE] = "";
- if (plcdrv_sysclk_to_str(sysclk_val_str, sizeof(sysclk_val_str),
- PLC_SYSCLOCK_MHZ) != 0)
+ if (plcdrv_clk_to_str(sysclk_val_str, sizeof(sysclk_val_str),
+ PLC_SYSCLOCK_MHZ) != 0)
return -1;
if (plcdrv_add_boot_param(params_str, "sysclk_mhz", sysclk_val_str)
!= 0)
return -1;
}
+ //"uartclk_mhz"
+ {
+ //Value of the "uartclk_mhz" parameter as a string.
+ char uartclk_val_str[BOOT_PARAMS_CLK_MHZ_VAL_STR_SIZE] = "";
+
+ if (plcdrv_clk_to_str(uartclk_val_str, sizeof(uartclk_val_str),
+ PLC_UARTCLOCK_MHZ) != 0)
+ return -1;
+
+ if (plcdrv_add_boot_param(params_str, "uartclk_mhz", uartclk_val_str)
+ != 0)
+ return -1;
+ }
return 0;