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