// SPDX-License-Identifier: GPL-2.0 #include <linux/kobject.h> #include <boot_param.h> static ssize_t boardinfo_show(struct kobject *kobj, struct kobj_attribute *attr, char *buf) { char board_manufacturer[64] = {0}; char *tmp_board_manufacturer = board_manufacturer; char bios_vendor[64] = {0}; char *tmp_bios_vendor = bios_vendor; strcpy(board_manufacturer, eboard->name); strcpy(bios_vendor, einter->description); return sprintf(buf, "Board Info\n" "Manufacturer\t\t: %s\n" "Board Name\t\t: %s\n" "Family\t\t\t: LOONGSON3\n\n" "BIOS Info\n" "Vendor\t\t\t: %s\n" "Version\t\t\t: %s\n" "ROM Size\t\t: %d KB\n" "Release Date\t\t: %s\n", strsep(&tmp_board_manufacturer, "-"), eboard->name, strsep(&tmp_bios_vendor, "-"), einter->description, einter->size, especial->special_name); } static struct kobj_attribute boardinfo_attr = __ATTR(boardinfo, 0444, boardinfo_show, NULL); static int __init boardinfo_init(void) { struct kobject *lefi_kobj; lefi_kobj = kobject_create_and_add("lefi", firmware_kobj); if (!lefi_kobj) { pr_err("lefi: Firmware registration failed.\n"); return -ENOMEM; } return sysfs_create_file(lefi_kobj, &boardinfo_attr.attr); } late_initcall(boardinfo_init);