summaryrefslogtreecommitdiffstats
path: root/arch/x86/lib/tables.c
diff options
context:
space:
mode:
authorBin Meng <bmeng.cn@gmail.com>2015-06-23 12:18:51 +0800
committerSimon Glass <sjg@chromium.org>2015-07-14 18:03:17 -0600
commit7f5df8d42d8eb0fbdb6bf168fd530aa0f01b99c7 (patch)
treeba09958ef378fedf42f24b29017512d1f1992c88 /arch/x86/lib/tables.c
parenta2d73fdba638233253c14b31f3befb9099d76774 (diff)
downloadtalos-obmc-uboot-7f5df8d42d8eb0fbdb6bf168fd530aa0f01b99c7.tar.gz
talos-obmc-uboot-7f5df8d42d8eb0fbdb6bf168fd530aa0f01b99c7.zip
x86: Add MultiProcessor (MP) table APIs
The MP table provides a way for the operating system to support for symmetric multiprocessing as well as symmetric I/O interrupt handling with the local APIC and I/O APIC. We provide a bunch of APIs for U-Boot to write the floating table, configuration table header as well as base and extended table entries. Signed-off-by: Bin Meng <bmeng.cn@gmail.com> Acked-by: Simon Glass <sjg@chromium.org>
Diffstat (limited to 'arch/x86/lib/tables.c')
-rw-r--r--arch/x86/lib/tables.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/arch/x86/lib/tables.c b/arch/x86/lib/tables.c
index 8031201a49..41c50bc876 100644
--- a/arch/x86/lib/tables.c
+++ b/arch/x86/lib/tables.c
@@ -20,6 +20,20 @@ u8 table_compute_checksum(void *v, int len)
return checksum;
}
+void table_fill_string(char *dest, const char *src, size_t n, char pad)
+{
+ int start, len;
+ int i;
+
+ strncpy(dest, src, n);
+
+ /* Fill the remaining bytes with pad */
+ len = strlen(src);
+ start = len < n ? len : n;
+ for (i = start; i < n; i++)
+ dest[i] = pad;
+}
+
void write_tables(void)
{
u32 __maybe_unused rom_table_end = ROM_TABLE_ADDR;
OpenPOWER on IntegriCloud