1 // SPDX-License-Identifier: GPL-2.0-only
2 /*
3  *
4  * Copyright (C) 2013 John Crispin <john@phrozen.org>
5  */
6 
7 #include <linux/debugfs.h>
8 #include <linux/seq_file.h>
9 
10 #define BOOTROM_OFFSET	0x10118000
11 #define BOOTROM_SIZE	0x8000
12 
13 static void __iomem *membase = (void __iomem *) KSEG1ADDR(BOOTROM_OFFSET);
14 
bootrom_show(struct seq_file * s,void * unused)15 static int bootrom_show(struct seq_file *s, void *unused)
16 {
17 	seq_write(s, membase, BOOTROM_SIZE);
18 
19 	return 0;
20 }
21 
bootrom_open(struct inode * inode,struct file * file)22 static int bootrom_open(struct inode *inode, struct file *file)
23 {
24 	return single_open(file, bootrom_show, NULL);
25 }
26 
27 static const struct file_operations bootrom_file_ops = {
28 	.open		= bootrom_open,
29 	.read		= seq_read,
30 	.llseek		= seq_lseek,
31 	.release	= single_release,
32 };
33 
bootrom_setup(void)34 static int __init bootrom_setup(void)
35 {
36 	debugfs_create_file("bootrom", 0444, NULL, NULL, &bootrom_file_ops);
37 	return 0;
38 }
39 
40 postcore_initcall(bootrom_setup);
41