patch 9.1.0873: filetype: Vivado files are not recognized

Problem:  filetype: Vivado files are not recognized
Solution: detect '*.mss' files as 'mss' filetype
          (Wu, Zhenyu)

references:
https://docs.amd.com/r/2020.2-English/ug1400-vitis-embedded/Microprocessor-Software-Specification-MSS

closes: #15907

Signed-off-by: Wu, Zhenyu <wuzhenyu@ustc.edu>
Signed-off-by: Christian Brabandt <cb@256bit.org>
diff --git a/.github/MAINTAINERS b/.github/MAINTAINERS
index b3822c2..68ef76e 100644
--- a/.github/MAINTAINERS
+++ b/.github/MAINTAINERS
@@ -217,6 +217,7 @@
 runtime/ftplugin/modula2.vim		@dkearns
 runtime/ftplugin/modula3.vim		@dkearns
 runtime/ftplugin/mojo.vim		@ribru17
+runtime/ftplugin/mss.vim		@Freed-Wu
 runtime/ftplugin/nginx.vim		@chr4
 runtime/ftplugin/nim.vim		@ribru17
 runtime/ftplugin/nroff.vim		@a-vrma
@@ -516,6 +517,7 @@
 runtime/syntax/modula2/opt/pim.vim	@trijezdci
 runtime/syntax/modula2/opt/r10.vim	@trijezdci
 runtime/syntax/modula3.vim		@dkearns
+runtime/syntax/mss.vim		@Freed-Wu
 runtime/syntax/n1ql.vim			@pr3d4t0r
 runtime/syntax/nginx.vim		@chr4
 runtime/syntax/ninja.vim		@nico
diff --git a/runtime/filetype.vim b/runtime/filetype.vim
index 3ac1b62..02313fe 100644
--- a/runtime/filetype.vim
+++ b/runtime/filetype.vim
@@ -2840,6 +2840,7 @@
 " Xilinx Vivado/Vitis project files and block design files
 au BufNewFile,BufRead *.xpr,*.xpfm,*.spfm,*.bxml,*.mmi		setf xml
 au BufNewFile,BufRead *.bd,*.bda,*.xci				setf json
+au BufNewFile,BufRead *.mss					setf mss
 
 " XS Perl extension interface language
 au BufNewFile,BufRead *.xs			setf xs
diff --git a/runtime/ftplugin/mss.vim b/runtime/ftplugin/mss.vim
new file mode 100644
index 0000000..de2f879
--- /dev/null
+++ b/runtime/ftplugin/mss.vim
@@ -0,0 +1,16 @@
+" Vim filetype plugin file
+" Language:	Vivado mss file
+" Last Change:	2024 Oct 22
+" Document:	https://docs.amd.com/r/2020.2-English/ug1400-vitis-embedded/Microprocessor-Software-Specification-MSS
+" Maintainer:	Wu, Zhenyu <wuzhenyu@ustc.edu>
+
+if exists("b:did_ftplugin")
+  finish
+endif
+let b:did_ftplugin = 1
+
+setlocal comments=b:#,fb:-
+setlocal commentstring=#\ %s
+
+let b:match_words = '\<BEGIN\>:\<END\>'
+let b:undo_ftplugin = "setl com< cms< | unlet b:match_words"
diff --git a/runtime/syntax/mss.vim b/runtime/syntax/mss.vim
new file mode 100644
index 0000000..de95d1d
--- /dev/null
+++ b/runtime/syntax/mss.vim
@@ -0,0 +1,23 @@
+" Vim syntax file
+" Language:	Vivado mss file
+" Maintainer:	The Vim Project <https://github.com/vim/vim>
+" Last Change:	2024 Oct 22
+" Document:	https://docs.amd.com/r/2020.2-English/ug1400-vitis-embedded/Microprocessor-Software-Specification-MSS
+" Maintainer:	Wu, Zhenyu <wuzhenyu@ustc.edu>
+
+if exists("b:current_syntax")
+  finish
+endif
+
+syn case ignore
+syn match	mssComment	"#.*$" contains=@Spell
+syn keyword	mssKeyword	BEGIN END PARAMETER
+syn keyword	mssType		OS PROCESSOR DRIVER LIBRARY
+syn keyword	mssConstant	VERSION PROC_INSTANCE HW_INSTANCE OS_NAME OS_VER DRIVER_NAME DRIVER_VER LIBRARY_NAME LIBRARY_VER STDIN STDOUT XMDSTUB_PERIPHERAL ARCHIVER COMPILER COMPILER_FLAGS EXTRA_COMPILER_FLAGS
+
+hi def link mssComment		Comment
+hi def link mssKeyword		Keyword
+hi def link mssType		Type
+hi def link mssConstant		Constant
+
+let b:current_syntax = "mss"
diff --git a/src/testdir/test_filetype.vim b/src/testdir/test_filetype.vim
index 215d750..c8b914b 100644
--- a/src/testdir/test_filetype.vim
+++ b/src/testdir/test_filetype.vim
@@ -507,6 +507,7 @@
     mplayerconf: ['mplayer.conf', '/.mplayer/config', 'any/.mplayer/config'],
     mrxvtrc: ['mrxvtrc', '.mrxvtrc'],
     msidl: ['file.odl', 'file.mof'],
+    mss: ['file.mss'],
     msql: ['file.msql'],
     mojo: ['file.mojo', 'file.🔥'],
     msmtp: ['.msmtprc'],
diff --git a/src/version.c b/src/version.c
index 3eb9769..51276a9 100644
--- a/src/version.c
+++ b/src/version.c
@@ -705,6 +705,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    873,
+/**/
     872,
 /**/
     871,