xref: /openbmc/linux/lib/check_signature.c (revision 3a35093a)
1 // SPDX-License-Identifier: GPL-2.0
2 #include <linux/io.h>
3 #include <linux/export.h>
4 
5 /**
6  *	check_signature		-	find BIOS signatures
7  *	@io_addr: mmio address to check
8  *	@signature:  signature block
9  *	@length: length of signature
10  *
11  *	Perform a signature comparison with the mmio address io_addr. This
12  *	address should have been obtained by ioremap.
13  *	Returns 1 on a match.
14  */
15 
16 int check_signature(const volatile void __iomem *io_addr,
17 			const unsigned char *signature, int length)
18 {
19 	while (length--) {
20 		if (readb(io_addr) != *signature)
21 			return 0;
22 		io_addr++;
23 		signature++;
24 	}
25 	return 1;
26 }
27 EXPORT_SYMBOL(check_signature);
28