diff --git a/target/linux/ar71xx/files/arch/mips/ath79/mach-rbspi.c b/target/linux/ar71xx/files/arch/mips/ath79/mach-rbspi.c
index b26b1ae46eb7c3fcf94863249608b9f379c4189c..3f68b94bcdf0f7bdd7ada6071ae1faa76a74172e 100644
--- a/target/linux/ar71xx/files/arch/mips/ath79/mach-rbspi.c
+++ b/target/linux/ar71xx/files/arch/mips/ath79/mach-rbspi.c
@@ -437,20 +437,32 @@ void __init rbspi_wlan_init(u16 id, int wmac_offset)
 	kfree(art_buf);
 }
 
+#define RBSPI_MACH_BUFLEN	64
 /* 
  * Common platform init routine for all SPI NOR devices.
  */
 static int __init rbspi_platform_setup(void)
 {
 	const struct rb_info *info;
-	char buf[64];
+	char buf[RBSPI_MACH_BUFLEN] = "MikroTik ";
+	char *str;
+	int len = RBSPI_MACH_BUFLEN - strlen(buf) - 1;
 
 	info = rb_init_info((void *)(KSEG1ADDR(AR71XX_SPI_BASE)), 0x20000);
 	if (!info)
 		return -ENODEV;
 
-	scnprintf(buf, sizeof(buf), "MikroTik %s",
-		(info->board_name) ? info->board_name : "");
+	if (info->board_name) {
+		str = "RouterBOARD ";
+		if (strncmp(info->board_name, str, strlen(str))) {
+			strncat(buf, str, len);
+			len -= strlen(str);
+		}
+		strncat(buf, info->board_name, len);
+	}
+	else
+		strncat(buf, "UNKNOWN", len);
+
 	mips_set_machine_name(buf);
 
 	/* fix partitions based on flash parsing */