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 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 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 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