xref: /OK3568_Linux_fs/kernel/init/noinitramfs.c (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun // SPDX-License-Identifier: GPL-2.0-only
2*4882a593Smuzhiyun /*
3*4882a593Smuzhiyun  * init/noinitramfs.c
4*4882a593Smuzhiyun  *
5*4882a593Smuzhiyun  * Copyright (C) 2006, NXP Semiconductors, All Rights Reserved
6*4882a593Smuzhiyun  * Author: Jean-Paul Saman <jean-paul.saman@nxp.com>
7*4882a593Smuzhiyun  */
8*4882a593Smuzhiyun #include <linux/init.h>
9*4882a593Smuzhiyun #include <linux/stat.h>
10*4882a593Smuzhiyun #include <linux/kdev_t.h>
11*4882a593Smuzhiyun #include <linux/syscalls.h>
12*4882a593Smuzhiyun #include <linux/init_syscalls.h>
13*4882a593Smuzhiyun 
14*4882a593Smuzhiyun /*
15*4882a593Smuzhiyun  * Create a simple rootfs that is similar to the default initramfs
16*4882a593Smuzhiyun  */
default_rootfs(void)17*4882a593Smuzhiyun static int __init default_rootfs(void)
18*4882a593Smuzhiyun {
19*4882a593Smuzhiyun 	int err;
20*4882a593Smuzhiyun 
21*4882a593Smuzhiyun 	err = init_mkdir("/dev", 0755);
22*4882a593Smuzhiyun 	if (err < 0)
23*4882a593Smuzhiyun 		goto out;
24*4882a593Smuzhiyun 
25*4882a593Smuzhiyun 	err = init_mknod("/dev/console", S_IFCHR | S_IRUSR | S_IWUSR,
26*4882a593Smuzhiyun 			new_encode_dev(MKDEV(5, 1)));
27*4882a593Smuzhiyun 	if (err < 0)
28*4882a593Smuzhiyun 		goto out;
29*4882a593Smuzhiyun 
30*4882a593Smuzhiyun 	err = init_mkdir("/root", 0700);
31*4882a593Smuzhiyun 	if (err < 0)
32*4882a593Smuzhiyun 		goto out;
33*4882a593Smuzhiyun 
34*4882a593Smuzhiyun 	return 0;
35*4882a593Smuzhiyun 
36*4882a593Smuzhiyun out:
37*4882a593Smuzhiyun 	printk(KERN_WARNING "Failed to create a rootfs\n");
38*4882a593Smuzhiyun 	return err;
39*4882a593Smuzhiyun }
40*4882a593Smuzhiyun rootfs_initcall(default_rootfs);
41