blob: 88bcce59beeb89e527d3064ac6f9595d03c17483 [file] [log] [blame]
Thomas Gleixnerd2912cb2019-06-04 10:11:33 +02001// SPDX-License-Identifier: GPL-2.0-only
John Crispin7a1a44c2013-05-21 15:50:31 +02002/*
John Crispin7a1a44c2013-05-21 15:50:31 +02003 *
John Crispin97b92102016-05-05 09:57:56 +02004 * Copyright (C) 2013 John Crispin <john@phrozen.org>
John Crispin7a1a44c2013-05-21 15:50:31 +02005 */
6
7#include <linux/debugfs.h>
8#include <linux/seq_file.h>
9
10#define BOOTROM_OFFSET 0x10118000
11#define BOOTROM_SIZE 0x8000
12
13static void __iomem *membase = (void __iomem *) KSEG1ADDR(BOOTROM_OFFSET);
14
15static int bootrom_show(struct seq_file *s, void *unused)
16{
17 seq_write(s, membase, BOOTROM_SIZE);
18
19 return 0;
20}
21
22static int bootrom_open(struct inode *inode, struct file *file)
23{
24 return single_open(file, bootrom_show, NULL);
25}
26
27static 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
34static int bootrom_setup(void)
35{
Greg Kroah-Hartman4c90de42019-01-22 15:57:39 +010036 debugfs_create_file("bootrom", 0444, NULL, NULL, &bootrom_file_ops);
John Crispin7a1a44c2013-05-21 15:50:31 +020037 return 0;
38}
39
40postcore_initcall(bootrom_setup);