]> git.sur5r.net Git - u-boot/blobdiff - arch/x86/lib/tables.c
Merge branch 'master' of git://git.denx.de/u-boot
[u-boot] / arch / x86 / lib / tables.c
index 8031201a49c2ce2db0b7a8a65cd1a7365d4f21f2..75ffbc1b220456bd6fbc6f2a266a94129963a01b 100644 (file)
@@ -6,6 +6,7 @@
 
 #include <common.h>
 #include <asm/sfi.h>
+#include <asm/mpspec.h>
 #include <asm/tables.h>
 
 u8 table_compute_checksum(void *v, int len)
@@ -20,6 +21,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;
@@ -32,4 +47,8 @@ void write_tables(void)
        rom_table_end = write_sfi_table(rom_table_end);
        rom_table_end = ALIGN(rom_table_end, 1024);
 #endif
+#ifdef CONFIG_GENERATE_MP_TABLE
+       rom_table_end = write_mp_table(rom_table_end);
+       rom_table_end = ALIGN(rom_table_end, 1024);
+#endif
 }