VisionFive2 Linux kernel

StarFive Tech Linux Kernel for VisionFive (JH7110) boards (mirror)

More than 9999 Commits   32 Branches   54 Tags
09c434b8a0047 (Thomas Gleixner  2019-05-19 13:08:20 +0100  1) // SPDX-License-Identifier: GPL-2.0-only
e4dace3615526 (Florian Fainelli 2017-09-08 16:15:31 -0700  2) #include <linux/kernel.h>
e4dace3615526 (Florian Fainelli 2017-09-08 16:15:31 -0700  3) #include <linux/module.h>
e4dace3615526 (Florian Fainelli 2017-09-08 16:15:31 -0700  4) #include <linux/export.h>
e4dace3615526 (Florian Fainelli 2017-09-08 16:15:31 -0700  5) #include <linux/mm.h>
e4dace3615526 (Florian Fainelli 2017-09-08 16:15:31 -0700  6) #include <linux/vmalloc.h>
e4dace3615526 (Florian Fainelli 2017-09-08 16:15:31 -0700  7) #include <linux/slab.h>
e4dace3615526 (Florian Fainelli 2017-09-08 16:15:31 -0700  8) #include <linux/sizes.h>
10fdf838e5f54 (Christophe Leroy 2018-12-10 08:08:28 +0000  9) #include <linux/io.h>
e4dace3615526 (Florian Fainelli 2017-09-08 16:15:31 -0700 10) 
e4dace3615526 (Florian Fainelli 2017-09-08 16:15:31 -0700 11) #include <asm/page.h>
e4dace3615526 (Florian Fainelli 2017-09-08 16:15:31 -0700 12) #ifdef CONFIG_MIPS
e4dace3615526 (Florian Fainelli 2017-09-08 16:15:31 -0700 13) #include <asm/bootinfo.h>
e4dace3615526 (Florian Fainelli 2017-09-08 16:15:31 -0700 14) #endif
e4dace3615526 (Florian Fainelli 2017-09-08 16:15:31 -0700 15) 
e4dace3615526 (Florian Fainelli 2017-09-08 16:15:31 -0700 16) struct foo {
e4dace3615526 (Florian Fainelli 2017-09-08 16:15:31 -0700 17) 	unsigned int bar;
e4dace3615526 (Florian Fainelli 2017-09-08 16:15:31 -0700 18) };
e4dace3615526 (Florian Fainelli 2017-09-08 16:15:31 -0700 19) 
b15f5f1ae18a7 (Colin Ian King   2018-08-21 21:57:07 -0700 20) static struct foo *foo;
e4dace3615526 (Florian Fainelli 2017-09-08 16:15:31 -0700 21) 
e4dace3615526 (Florian Fainelli 2017-09-08 16:15:31 -0700 22) static int __init test_debug_virtual_init(void)
e4dace3615526 (Florian Fainelli 2017-09-08 16:15:31 -0700 23) {
e4dace3615526 (Florian Fainelli 2017-09-08 16:15:31 -0700 24) 	phys_addr_t pa;
e4dace3615526 (Florian Fainelli 2017-09-08 16:15:31 -0700 25) 	void *va;
e4dace3615526 (Florian Fainelli 2017-09-08 16:15:31 -0700 26) 
e4dace3615526 (Florian Fainelli 2017-09-08 16:15:31 -0700 27) 	va = (void *)VMALLOC_START;
e4dace3615526 (Florian Fainelli 2017-09-08 16:15:31 -0700 28) 	pa = virt_to_phys(va);
e4dace3615526 (Florian Fainelli 2017-09-08 16:15:31 -0700 29) 
e4dace3615526 (Florian Fainelli 2017-09-08 16:15:31 -0700 30) 	pr_info("PA: %pa for VA: 0x%lx\n", &pa, (unsigned long)va);
e4dace3615526 (Florian Fainelli 2017-09-08 16:15:31 -0700 31) 
e4dace3615526 (Florian Fainelli 2017-09-08 16:15:31 -0700 32) 	foo = kzalloc(sizeof(*foo), GFP_KERNEL);
e4dace3615526 (Florian Fainelli 2017-09-08 16:15:31 -0700 33) 	if (!foo)
e4dace3615526 (Florian Fainelli 2017-09-08 16:15:31 -0700 34) 		return -ENOMEM;
e4dace3615526 (Florian Fainelli 2017-09-08 16:15:31 -0700 35) 
e4dace3615526 (Florian Fainelli 2017-09-08 16:15:31 -0700 36) 	pa = virt_to_phys(foo);
e4dace3615526 (Florian Fainelli 2017-09-08 16:15:31 -0700 37) 	va = foo;
e4dace3615526 (Florian Fainelli 2017-09-08 16:15:31 -0700 38) 	pr_info("PA: %pa for VA: 0x%lx\n", &pa, (unsigned long)va);
e4dace3615526 (Florian Fainelli 2017-09-08 16:15:31 -0700 39) 
e4dace3615526 (Florian Fainelli 2017-09-08 16:15:31 -0700 40) 	return 0;
e4dace3615526 (Florian Fainelli 2017-09-08 16:15:31 -0700 41) }
e4dace3615526 (Florian Fainelli 2017-09-08 16:15:31 -0700 42) module_init(test_debug_virtual_init);
e4dace3615526 (Florian Fainelli 2017-09-08 16:15:31 -0700 43) 
e4dace3615526 (Florian Fainelli 2017-09-08 16:15:31 -0700 44) static void __exit test_debug_virtual_exit(void)
e4dace3615526 (Florian Fainelli 2017-09-08 16:15:31 -0700 45) {
e4dace3615526 (Florian Fainelli 2017-09-08 16:15:31 -0700 46) 	kfree(foo);
e4dace3615526 (Florian Fainelli 2017-09-08 16:15:31 -0700 47) }
e4dace3615526 (Florian Fainelli 2017-09-08 16:15:31 -0700 48) module_exit(test_debug_virtual_exit);
e4dace3615526 (Florian Fainelli 2017-09-08 16:15:31 -0700 49) 
e4dace3615526 (Florian Fainelli 2017-09-08 16:15:31 -0700 50) MODULE_LICENSE("GPL");
e4dace3615526 (Florian Fainelli 2017-09-08 16:15:31 -0700 51) MODULE_DESCRIPTION("Test module for CONFIG_DEBUG_VIRTUAL");