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