diff options
Diffstat (limited to 'arch/microblaze/kernel/setup.c')
-rw-r--r-- | arch/microblaze/kernel/setup.c | 24 |
1 files changed, 23 insertions, 1 deletions
diff --git a/arch/microblaze/kernel/setup.c b/arch/microblaze/kernel/setup.c index 7a9f39efbf3..71af974aa24 100644 --- a/arch/microblaze/kernel/setup.c +++ b/arch/microblaze/kernel/setup.c | |||
@@ -94,8 +94,11 @@ inline unsigned get_romfs_len(unsigned *addr) | |||
94 | } | 94 | } |
95 | #endif /* CONFIG_MTD_UCLINUX_EBSS */ | 95 | #endif /* CONFIG_MTD_UCLINUX_EBSS */ |
96 | 96 | ||
97 | unsigned long kernel_tlb; | ||
98 | |||
97 | void __init machine_early_init(const char *cmdline, unsigned int ram, | 99 | void __init machine_early_init(const char *cmdline, unsigned int ram, |
98 | unsigned int fdt, unsigned int msr) | 100 | unsigned int fdt, unsigned int msr, unsigned int tlb0, |
101 | unsigned int tlb1) | ||
99 | { | 102 | { |
100 | unsigned long *src, *dst; | 103 | unsigned long *src, *dst; |
101 | unsigned int offset = 0; | 104 | unsigned int offset = 0; |
@@ -142,6 +145,12 @@ void __init machine_early_init(const char *cmdline, unsigned int ram, | |||
142 | setup_early_printk(NULL); | 145 | setup_early_printk(NULL); |
143 | #endif | 146 | #endif |
144 | 147 | ||
148 | /* setup kernel_tlb after BSS cleaning | ||
149 | * Maybe worth to move to asm code */ | ||
150 | kernel_tlb = tlb0 + tlb1; | ||
151 | /* printk("TLB1 0x%08x, TLB0 0x%08x, tlb 0x%x\n", tlb0, | ||
152 | tlb1, kernel_tlb); */ | ||
153 | |||
145 | printk("Ramdisk addr 0x%08x, ", ram); | 154 | printk("Ramdisk addr 0x%08x, ", ram); |
146 | if (fdt) | 155 | if (fdt) |
147 | printk("FDT at 0x%08x\n", fdt); | 156 | printk("FDT at 0x%08x\n", fdt); |
@@ -196,6 +205,19 @@ static int microblaze_debugfs_init(void) | |||
196 | return of_debugfs_root == NULL; | 205 | return of_debugfs_root == NULL; |
197 | } | 206 | } |
198 | arch_initcall(microblaze_debugfs_init); | 207 | arch_initcall(microblaze_debugfs_init); |
208 | |||
209 | static int __init debugfs_tlb(void) | ||
210 | { | ||
211 | struct dentry *d; | ||
212 | |||
213 | if (!of_debugfs_root) | ||
214 | return -ENODEV; | ||
215 | |||
216 | d = debugfs_create_u32("tlb_skip", S_IRUGO, of_debugfs_root, &tlb_skip); | ||
217 | if (!d) | ||
218 | return -ENOMEM; | ||
219 | } | ||
220 | device_initcall(debugfs_tlb); | ||
199 | #endif | 221 | #endif |
200 | 222 | ||
201 | static int dflt_bus_notify(struct notifier_block *nb, | 223 | static int dflt_bus_notify(struct notifier_block *nb, |