blob: 88bcce59beeb89e527d3064ac6f9595d03c17483 [file] [log] [blame]
David Brazdil0f672f62019-12-10 10:32:29 +00001// SPDX-License-Identifier: GPL-2.0-only
Andrew Scullb4b6d4a2019-01-02 15:54:55 +00002/*
Andrew Scullb4b6d4a2019-01-02 15:54:55 +00003 *
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
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{
David Brazdil0f672f62019-12-10 10:32:29 +000036 debugfs_create_file("bootrom", 0444, NULL, NULL, &bootrom_file_ops);
Andrew Scullb4b6d4a2019-01-02 15:54:55 +000037 return 0;
38}
39
40postcore_initcall(bootrom_setup);