xref: /openbmc/linux/lib/test_debug_virtual.c (revision e4dace3615526fd66c86dd535ee4bc9e8c706e37)
1*e4dace36SFlorian Fainelli #include <linux/kernel.h>
2*e4dace36SFlorian Fainelli #include <linux/module.h>
3*e4dace36SFlorian Fainelli #include <linux/export.h>
4*e4dace36SFlorian Fainelli #include <linux/mm.h>
5*e4dace36SFlorian Fainelli #include <linux/vmalloc.h>
6*e4dace36SFlorian Fainelli #include <linux/slab.h>
7*e4dace36SFlorian Fainelli #include <linux/sizes.h>
8*e4dace36SFlorian Fainelli 
9*e4dace36SFlorian Fainelli #include <asm/page.h>
10*e4dace36SFlorian Fainelli #ifdef CONFIG_MIPS
11*e4dace36SFlorian Fainelli #include <asm/bootinfo.h>
12*e4dace36SFlorian Fainelli #endif
13*e4dace36SFlorian Fainelli 
14*e4dace36SFlorian Fainelli struct foo {
15*e4dace36SFlorian Fainelli 	unsigned int bar;
16*e4dace36SFlorian Fainelli };
17*e4dace36SFlorian Fainelli 
18*e4dace36SFlorian Fainelli struct foo *foo;
19*e4dace36SFlorian Fainelli 
20*e4dace36SFlorian Fainelli static int __init test_debug_virtual_init(void)
21*e4dace36SFlorian Fainelli {
22*e4dace36SFlorian Fainelli 	phys_addr_t pa;
23*e4dace36SFlorian Fainelli 	void *va;
24*e4dace36SFlorian Fainelli 
25*e4dace36SFlorian Fainelli 	va = (void *)VMALLOC_START;
26*e4dace36SFlorian Fainelli 	pa = virt_to_phys(va);
27*e4dace36SFlorian Fainelli 
28*e4dace36SFlorian Fainelli 	pr_info("PA: %pa for VA: 0x%lx\n", &pa, (unsigned long)va);
29*e4dace36SFlorian Fainelli 
30*e4dace36SFlorian Fainelli 	foo = kzalloc(sizeof(*foo), GFP_KERNEL);
31*e4dace36SFlorian Fainelli 	if (!foo)
32*e4dace36SFlorian Fainelli 		return -ENOMEM;
33*e4dace36SFlorian Fainelli 
34*e4dace36SFlorian Fainelli 	pa = virt_to_phys(foo);
35*e4dace36SFlorian Fainelli 	va = foo;
36*e4dace36SFlorian Fainelli 	pr_info("PA: %pa for VA: 0x%lx\n", &pa, (unsigned long)va);
37*e4dace36SFlorian Fainelli 
38*e4dace36SFlorian Fainelli 	return 0;
39*e4dace36SFlorian Fainelli }
40*e4dace36SFlorian Fainelli module_init(test_debug_virtual_init);
41*e4dace36SFlorian Fainelli 
42*e4dace36SFlorian Fainelli static void __exit test_debug_virtual_exit(void)
43*e4dace36SFlorian Fainelli {
44*e4dace36SFlorian Fainelli 	kfree(foo);
45*e4dace36SFlorian Fainelli }
46*e4dace36SFlorian Fainelli module_exit(test_debug_virtual_exit);
47*e4dace36SFlorian Fainelli 
48*e4dace36SFlorian Fainelli MODULE_LICENSE("GPL");
49*e4dace36SFlorian Fainelli MODULE_DESCRIPTION("Test module for CONFIG_DEBUG_VIRTUAL");
50