162306a36Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0-only 262306a36Sopenharmony_ci/* 362306a36Sopenharmony_ci * init/noinitramfs.c 462306a36Sopenharmony_ci * 562306a36Sopenharmony_ci * Copyright (C) 2006, NXP Semiconductors, All Rights Reserved 662306a36Sopenharmony_ci * Author: Jean-Paul Saman <jean-paul.saman@nxp.com> 762306a36Sopenharmony_ci */ 862306a36Sopenharmony_ci#include <linux/init.h> 962306a36Sopenharmony_ci#include <linux/stat.h> 1062306a36Sopenharmony_ci#include <linux/kdev_t.h> 1162306a36Sopenharmony_ci#include <linux/syscalls.h> 1262306a36Sopenharmony_ci#include <linux/init_syscalls.h> 1362306a36Sopenharmony_ci#include <linux/umh.h> 1462306a36Sopenharmony_ci 1562306a36Sopenharmony_ci/* 1662306a36Sopenharmony_ci * Create a simple rootfs that is similar to the default initramfs 1762306a36Sopenharmony_ci */ 1862306a36Sopenharmony_cistatic int __init default_rootfs(void) 1962306a36Sopenharmony_ci{ 2062306a36Sopenharmony_ci int err; 2162306a36Sopenharmony_ci 2262306a36Sopenharmony_ci usermodehelper_enable(); 2362306a36Sopenharmony_ci err = init_mkdir("/dev", 0755); 2462306a36Sopenharmony_ci if (err < 0) 2562306a36Sopenharmony_ci goto out; 2662306a36Sopenharmony_ci 2762306a36Sopenharmony_ci err = init_mknod("/dev/console", S_IFCHR | S_IRUSR | S_IWUSR, 2862306a36Sopenharmony_ci new_encode_dev(MKDEV(5, 1))); 2962306a36Sopenharmony_ci if (err < 0) 3062306a36Sopenharmony_ci goto out; 3162306a36Sopenharmony_ci 3262306a36Sopenharmony_ci err = init_mkdir("/root", 0700); 3362306a36Sopenharmony_ci if (err < 0) 3462306a36Sopenharmony_ci goto out; 3562306a36Sopenharmony_ci 3662306a36Sopenharmony_ci return 0; 3762306a36Sopenharmony_ci 3862306a36Sopenharmony_ciout: 3962306a36Sopenharmony_ci printk(KERN_WARNING "Failed to create a rootfs\n"); 4062306a36Sopenharmony_ci return err; 4162306a36Sopenharmony_ci} 4262306a36Sopenharmony_cirootfs_initcall(default_rootfs); 43