diff --git a/arch/loongarch/configs/loongson_2k300_defconfig b/arch/loongarch/configs/loongson_2k300_defconfig index e37a1c24d..ac0738bad 100644 --- a/arch/loongarch/configs/loongson_2k300_defconfig +++ b/arch/loongarch/configs/loongson_2k300_defconfig @@ -6,7 +6,6 @@ CONFIG_HIGH_RES_TIMERS=y CONFIG_BPF_SYSCALL=y CONFIG_BPF_JIT=y CONFIG_PREEMPT_RT=y -CONFIG_SCHED_CORE=y CONFIG_BSD_PROCESS_ACCT=y CONFIG_BSD_PROCESS_ACCT_V3=y CONFIG_TASKSTATS=y @@ -42,14 +41,17 @@ CONFIG_HZ_1000=y CONFIG_CMDLINE="fbcon=logo-pos:center fbcon=logo-count:1" CONFIG_CMDLINE_EXTEND=y CONFIG_BUILTIN_DTB=y +# CONFIG_SCHED_SMT is not set CONFIG_SMP=y -CONFIG_HIBERNATION=y +# CONFIG_SUSPEND is not set +CONFIG_PM=y # CONFIG_ACPI_AC is not set # CONFIG_ACPI_BATTERY is not set # CONFIG_ACPI_BUTTON is not set # CONFIG_ACPI_FAN is not set # CONFIG_ACPI_PROCESSOR is not set # CONFIG_ACPI_TABLE_UPGRADE is not set +CONFIG_JUMP_LABEL=y # CONFIG_RANDOMIZE_KSTACK_OFFSET is not set CONFIG_MODULES=y CONFIG_MODULE_FORCE_LOAD=y @@ -80,11 +82,13 @@ CONFIG_CMA_AREAS=20 CONFIG_USERFAULTFD=y CONFIG_NET=y CONFIG_PACKET=y +CONFIG_UNIX=y CONFIG_TLS=m CONFIG_TLS_DEVICE=y CONFIG_XFRM_USER=y CONFIG_NET_KEY=y CONFIG_XDP_SOCKETS=y +CONFIG_INET=y CONFIG_IP_MULTICAST=y CONFIG_IP_ADVANCED_ROUTER=y CONFIG_IP_MULTIPLE_TABLES=y @@ -112,11 +116,11 @@ CONFIG_TCP_CONG_ADVANCED=y CONFIG_TCP_CONG_BBR=m CONFIG_IPV6_ROUTER_PREF=y CONFIG_IPV6_ROUTE_INFO=y -CONFIG_INET6_AH=m -CONFIG_INET6_ESP=m -CONFIG_INET6_ESP_OFFLOAD=m +CONFIG_INET6_AH=y +CONFIG_INET6_ESP=y +CONFIG_INET6_ESP_OFFLOAD=y CONFIG_INET6_ESPINTCP=y -CONFIG_INET6_IPCOMP=m +CONFIG_INET6_IPCOMP=y CONFIG_IPV6_MULTIPLE_TABLES=y CONFIG_IPV6_MROUTE=y CONFIG_MPTCP=y @@ -333,12 +337,8 @@ CONFIG_CFG80211_WEXT=y CONFIG_MAC80211=m CONFIG_RFKILL=m CONFIG_RFKILL_INPUT=y -CONFIG_NET_9P=y -CONFIG_NET_9P_VIRTIO=y -# CONFIG_PCIEPORTBUS is not set # CONFIG_PCIEASPM is not set # CONFIG_VGA_ARB is not set -# CONFIG_HOTPLUG_PCI is not set CONFIG_PCI_HOST_GENERIC=y CONFIG_PCI_SW_SWITCHTEC=m CONFIG_UEVENT_HELPER=y @@ -350,38 +350,20 @@ CONFIG_EFI_ZBOOT=y CONFIG_EFI_BOOTLOADER_CONTROL=m CONFIG_EFI_CAPSULE_LOADER=m CONFIG_EFI_TEST=m -CONFIG_EFI_CUSTOM_SSDT_OVERLAYS=y # CONFIG_EFI_DISABLE_RUNTIME is not set CONFIG_MTD=y CONFIG_MTD_CMDLINE_PARTS=y CONFIG_MTD_BLOCK=y CONFIG_MTD_BLOCK2MTD=y CONFIG_MTD_SPI_NOR=y -CONFIG_MTD_UBI=y -CONFIG_MTD_UBI_BLOCK=y CONFIG_BLK_DEV_LOOP=y CONFIG_BLK_DEV_RAM=y CONFIG_BLK_DEV_RAM_SIZE=32768 CONFIG_VIRTIO_BLK=y CONFIG_EEPROM_AT24=m -# CONFIG_SCSI_PROC_FS is not set +CONFIG_SCSI=y CONFIG_BLK_DEV_SD=y -CONFIG_CHR_DEV_SG=y # CONFIG_BLK_DEV_BSG is not set -CONFIG_SCSI_CONSTANTS=y -CONFIG_SCSI_LOGGING=y -CONFIG_SCSI_SPI_ATTRS=m -CONFIG_SCSI_FC_ATTRS=m -CONFIG_SCSI_ISCSI_ATTRS=m -CONFIG_SCSI_SAS_LIBSAS=y -CONFIG_SCSI_SAS_ATA=y -# CONFIG_SCSI_LOWLEVEL is not set -CONFIG_ATA=y -CONFIG_SATA_AHCI=y -CONFIG_SATA_MOBILE_LPM_POLICY=0 -CONFIG_SATA_AHCI_PLATFORM=y -CONFIG_AHCI_DWC=y -CONFIG_PATA_ATIIXP=y CONFIG_NETDEVICES=y CONFIG_BONDING=m CONFIG_DUMMY=y @@ -402,36 +384,46 @@ CONFIG_VIRTIO_NET=m # CONFIG_NET_VENDOR_AMD is not set # CONFIG_NET_VENDOR_AQUANTIA is not set # CONFIG_NET_VENDOR_ARC is not set +# CONFIG_NET_VENDOR_ASIX is not set # CONFIG_NET_VENDOR_ATHEROS is not set -CONFIG_BNX2=y +# CONFIG_NET_VENDOR_BROADCOM is not set +# CONFIG_NET_VENDOR_CADENCE is not set # CONFIG_NET_VENDOR_CAVIUM is not set -CONFIG_CHELSIO_T1=m -CONFIG_CHELSIO_T1_1G=y -CONFIG_CHELSIO_T3=m -CONFIG_CHELSIO_T4=m +# CONFIG_NET_VENDOR_CHELSIO is not set # CONFIG_NET_VENDOR_CISCO is not set +# CONFIG_NET_VENDOR_CORTINA is not set +# CONFIG_NET_VENDOR_DAVICOM is not set # CONFIG_NET_VENDOR_DEC is not set # CONFIG_NET_VENDOR_DLINK is not set # CONFIG_NET_VENDOR_EMULEX is not set +# CONFIG_NET_VENDOR_ENGLEDER is not set # CONFIG_NET_VENDOR_EZCHIP is not set -# CONFIG_NET_VENDOR_I825XX is not set -CONFIG_E1000=y +# CONFIG_NET_VENDOR_FUNGIBLE is not set +# CONFIG_NET_VENDOR_GOOGLE is not set +# CONFIG_NET_VENDOR_HUAWEI is not set +# CONFIG_NET_VENDOR_INTEL is not set +# CONFIG_NET_VENDOR_ADI is not set +# CONFIG_NET_VENDOR_LITEX is not set # CONFIG_NET_VENDOR_MARVELL is not set # CONFIG_NET_VENDOR_MELLANOX is not set # CONFIG_NET_VENDOR_META is not set # CONFIG_NET_VENDOR_MICREL is not set +# CONFIG_NET_VENDOR_MICROCHIP is not set +# CONFIG_NET_VENDOR_MICROSEMI is not set +# CONFIG_NET_VENDOR_MICROSOFT is not set # CONFIG_NET_VENDOR_MYRI is not set +# CONFIG_NET_VENDOR_NI is not set # CONFIG_NET_VENDOR_NATSEMI is not set +# CONFIG_NET_VENDOR_NETERION is not set # CONFIG_NET_VENDOR_NETRONOME is not set # CONFIG_NET_VENDOR_NVIDIA is not set # CONFIG_NET_VENDOR_OKI is not set +# CONFIG_NET_VENDOR_PENSANDO is not set # CONFIG_NET_VENDOR_QLOGIC is not set # CONFIG_NET_VENDOR_BROCADE is not set # CONFIG_NET_VENDOR_QUALCOMM is not set # CONFIG_NET_VENDOR_RDC is not set -CONFIG_8139CP=m -CONFIG_8139TOO=m -CONFIG_R8169=y +# CONFIG_NET_VENDOR_REALTEK is not set # CONFIG_NET_VENDOR_RENESAS is not set # CONFIG_NET_VENDOR_ROCKER is not set # CONFIG_NET_VENDOR_SAMSUNG is not set @@ -440,15 +432,20 @@ CONFIG_R8169=y # CONFIG_NET_VENDOR_SIS is not set # CONFIG_NET_VENDOR_SOLARFLARE is not set # CONFIG_NET_VENDOR_SMSC is not set +# CONFIG_NET_VENDOR_SOCIONEXT is not set CONFIG_STMMAC_ETH=y +# CONFIG_DWMAC_LOONGSON is not set # CONFIG_NET_VENDOR_SUN is not set +# CONFIG_NET_VENDOR_SYNOPSYS is not set # CONFIG_NET_VENDOR_TEHUTI is not set # CONFIG_NET_VENDOR_TI is not set +# CONFIG_NET_VENDOR_VERTEXCOM is not set # CONFIG_NET_VENDOR_VIA is not set -CONFIG_NGBE=y +# CONFIG_NET_VENDOR_WANGXUN is not set # CONFIG_NET_VENDOR_WIZNET is not set # CONFIG_NET_VENDOR_XILINX is not set CONFIG_MOTORCOMM_PHY=y +CONFIG_REALTEK_PHY=m CONFIG_CAN_LSCANFD=y CONFIG_CAN_LSCANFD_PLATFORM=y CONFIG_PPP=m @@ -464,14 +461,21 @@ CONFIG_PPP_ASYNC=m CONFIG_PPP_SYNC_TTY=m CONFIG_USB_RTL8150=m CONFIG_USB_RTL8152=m -CONFIG_ATH9K=m -CONFIG_ATH9K_HTC=m -CONFIG_IWLWIFI=m -CONFIG_IWLDVM=m -CONFIG_IWLMVM=m -CONFIG_MT7601U=m +# CONFIG_WLAN_VENDOR_ADMTEK is not set +# CONFIG_WLAN_VENDOR_ATH is not set +# CONFIG_WLAN_VENDOR_ATMEL is not set +# CONFIG_WLAN_VENDOR_BROADCOM is not set +# CONFIG_WLAN_VENDOR_INTEL is not set +# CONFIG_WLAN_VENDOR_INTERSIL is not set +# CONFIG_WLAN_VENDOR_MARVELL is not set +# CONFIG_WLAN_VENDOR_MEDIATEK is not set +# CONFIG_WLAN_VENDOR_MICROCHIP is not set +# CONFIG_WLAN_VENDOR_PURELIFI is not set CONFIG_RT2X00=m CONFIG_RT2800USB=m +# CONFIG_RT2800USB_RT33XX is not set +# CONFIG_RT2800USB_RT35XX is not set +CONFIG_RTL8187=m CONFIG_RTL8192CE=m CONFIG_RTL8192SE=m CONFIG_RTL8192DE=m @@ -484,15 +488,16 @@ CONFIG_RTL8192CU=m # CONFIG_RTLWIFI_DEBUG is not set CONFIG_RTL8XXXU=m CONFIG_RTW88=m -CONFIG_RTW88_8822BE=m -CONFIG_RTW88_8822CE=m -CONFIG_RTW88_8723DE=m -CONFIG_RTW88_8821CE=m -CONFIG_RTW89=m -CONFIG_RTW89_8852AE=m -CONFIG_RTW89_8852CE=m -CONFIG_ZD1211RW=m -CONFIG_USB4_NET=m +CONFIG_RTW88_8822BU=m +CONFIG_RTW88_8822CU=m +CONFIG_RTW88_8723DU=m +CONFIG_RTW88_8821CU=m +# CONFIG_WLAN_VENDOR_RSI is not set +# CONFIG_WLAN_VENDOR_SILABS is not set +# CONFIG_WLAN_VENDOR_ST is not set +# CONFIG_WLAN_VENDOR_TI is not set +# CONFIG_WLAN_VENDOR_ZYDAS is not set +# CONFIG_WLAN_VENDOR_QUANTENNA is not set CONFIG_INPUT_SPARSEKMAP=y CONFIG_INPUT_MOUSEDEV=y CONFIG_INPUT_MOUSEDEV_PSAUX=y @@ -517,6 +522,7 @@ CONFIG_SERIAL_8250_EXTENDED=y CONFIG_SERIAL_8250_MANY_PORTS=y CONFIG_SERIAL_8250_SHARE_IRQ=y CONFIG_SERIAL_8250_RSA=y +# CONFIG_SERIAL_8250_PERICOM is not set CONFIG_SERIAL_OF_PLATFORM=y CONFIG_SERIAL_NONSTANDARD=y CONFIG_VIRTIO_CONSOLE=y @@ -525,13 +531,11 @@ CONFIG_IPMI_DEVICE_INTERFACE=m CONFIG_IPMI_SI=m CONFIG_HW_RANDOM=y CONFIG_HW_RANDOM_VIRTIO=m +# CONFIG_ACPI_I2C_OPREGION is not set CONFIG_I2C_CHARDEV=y -CONFIG_I2C_PIIX4=y CONFIG_I2C_GPIO=y CONFIG_I2C_LSFS=y CONFIG_SPI=y -CONFIG_SPI_LOONGSON_PCI=m -CONFIG_SPI_LOONGSON_PLATFORM=m CONFIG_SPI_LS=y CONFIG_SPI_LS_IO=y CONFIG_PINCTRL=y @@ -546,31 +550,16 @@ CONFIG_POWER_RESET_RESTART=y CONFIG_POWER_RESET_SYSCON=y CONFIG_POWER_RESET_SYSCON_POWEROFF=y CONFIG_SYSCON_REBOOT_MODE=y -CONFIG_SENSORS_LM75=m -CONFIG_SENSORS_LM93=m CONFIG_SENSORS_W83795=m CONFIG_SENSORS_W83627HF=m CONFIG_THERMAL=y CONFIG_LOONGSON2_THERMAL=y -CONFIG_RC_CORE=m -CONFIG_LIRC=y -CONFIG_RC_DECODERS=y -CONFIG_IR_IMON_DECODER=m -CONFIG_IR_JVC_DECODER=m -CONFIG_IR_MCE_KBD_DECODER=m -CONFIG_IR_NEC_DECODER=m -CONFIG_IR_RC5_DECODER=m -CONFIG_IR_RC6_DECODER=m -CONFIG_IR_SANYO_DECODER=m -CONFIG_IR_SHARP_DECODER=m -CONFIG_IR_SONY_DECODER=m -CONFIG_IR_XMP_DECODER=m +# CONFIG_MEDIA_CEC_SUPPORT is not set CONFIG_MEDIA_SUPPORT=y # CONFIG_DVB_CORE is not set CONFIG_MEDIA_USB_SUPPORT=y -CONFIG_USB_VIDEO_CLASS=m +CONFIG_USB_VIDEO_CLASS=y # CONFIG_RADIO_ADAPTERS is not set -# CONFIG_VIDEO_IR_I2C is not set # CONFIG_MEDIA_TUNER_E4000 is not set # CONFIG_MEDIA_TUNER_FC0011 is not set # CONFIG_MEDIA_TUNER_FC0012 is not set @@ -610,7 +599,6 @@ CONFIG_USB_VIDEO_CLASS=m # CONFIG_MEDIA_TUNER_XC5000 is not set CONFIG_DRM=y CONFIG_DRM_PANEL_LVDS=y -CONFIG_DRM_PANEL_SIMPLE=y CONFIG_DRM_DISPLAY_CONNECTOR=y CONFIG_DRM_SIMPLE_BRIDGE=y CONFIG_DRM_LOONGSON=y @@ -661,6 +649,7 @@ CONFIG_HID_MULTITOUCH=m CONFIG_HID_SUNPLUS=m CONFIG_USB_HIDDEV=y CONFIG_USB=y +# CONFIG_USB_PCI is not set CONFIG_USB_OTG=y CONFIG_USB_MON=y CONFIG_USB_EHCI_HCD=y @@ -668,11 +657,9 @@ CONFIG_USB_EHCI_ROOT_HUB_TT=y CONFIG_USB_EHCI_HCD_PLATFORM=y CONFIG_USB_OHCI_HCD=y CONFIG_USB_OHCI_HCD_PLATFORM=y -CONFIG_USB_UHCI_HCD=y CONFIG_USB_ACM=m CONFIG_USB_PRINTER=m CONFIG_USB_STORAGE=y -CONFIG_USB_STORAGE_DEBUG=y CONFIG_USB_UAS=y CONFIG_USB_DWC2=y CONFIG_USB_DWC2_HOST=y @@ -707,11 +694,11 @@ CONFIG_DMABUF_HEAPS_CMA=y CONFIG_UIO=y CONFIG_UIO_PDRV_GENIRQ=y CONFIG_UIO_DMEM_GENIRQ=y -CONFIG_UIO_PCI_GENERIC=y # CONFIG_VIRTIO_MENU is not set # CONFIG_VHOST_MENU is not set # CONFIG_LOONGARCH_PLATFORM_DEVICES is not set CONFIG_COMMON_CLK_LOONGSON2=y +CONFIG_IOMMU_DEBUGFS=y CONFIG_LOONGSON2_GUTS=y CONFIG_LOONGSON2_PM=y CONFIG_IIO=y @@ -719,8 +706,6 @@ CONFIG_LS_2K300_ADC=y CONFIG_PWM=y CONFIG_PWM_LOONGSON=y CONFIG_GENERIC_PHY=y -CONFIG_RAS=y -CONFIG_USB4=y CONFIG_EXT2_FS=y CONFIG_EXT2_FS_XATTR=y CONFIG_EXT2_FS_POSIX_ACL=y @@ -728,14 +713,7 @@ CONFIG_EXT2_FS_SECURITY=y CONFIG_EXT3_FS=y CONFIG_EXT3_FS_POSIX_ACL=y CONFIG_EXT3_FS_SECURITY=y -CONFIG_XFS_FS=y -CONFIG_XFS_QUOTA=y -CONFIG_XFS_POSIX_ACL=y -CONFIG_XFS_RT=y -CONFIG_XFS_ONLINE_SCRUB=y -CONFIG_XFS_ONLINE_REPAIR=y -CONFIG_XFS_DEBUG=y -CONFIG_XFS_DEBUG_EXPENSIVE=y +CONFIG_EXPORTFS_BLOCK_OPS=y CONFIG_FANOTIFY=y CONFIG_FANOTIFY_ACCESS_PERMISSIONS=y CONFIG_QUOTA=y @@ -744,12 +722,9 @@ CONFIG_OVERLAY_FS=y CONFIG_OVERLAY_FS_INDEX=y CONFIG_OVERLAY_FS_XINO_AUTO=y CONFIG_OVERLAY_FS_METACOPY=y -CONFIG_FSCACHE=y -CONFIG_CACHEFILES=y CONFIG_ISO9660_FS=y CONFIG_JOLIET=y CONFIG_ZISOFS=y -CONFIG_UDF_FS=y CONFIG_MSDOS_FS=y CONFIG_VFAT_FS=y CONFIG_FAT_DEFAULT_CODEPAGE=936 @@ -771,18 +746,6 @@ CONFIG_NFS_V4_1=y CONFIG_NFS_V4_2=y CONFIG_ROOT_NFS=y # CONFIG_NFS_DISABLE_UDP_SUPPORT is not set -CONFIG_NFSD=y -CONFIG_NFSD_V3_ACL=y -CONFIG_NFSD_V4=y -CONFIG_NFSD_BLOCKLAYOUT=y -CONFIG_CEPH_FS=m -CONFIG_CEPH_FSCACHE=y -CONFIG_CEPH_FS_POSIX_ACL=y -CONFIG_CEPH_FS_SECURITY_LABEL=y -CONFIG_CIFS=m -# CONFIG_CIFS_DEBUG is not set -CONFIG_9P_FS=y -CONFIG_NLS_CODEPAGE_437=y CONFIG_NLS_CODEPAGE_936=y CONFIG_NLS_ASCII=y CONFIG_NLS_UTF8=y @@ -807,11 +770,12 @@ CONFIG_CRYPTO_TEA=m CONFIG_CRYPTO_TWOFISH=m CONFIG_CRYPTO_CHACHA20POLY1305=m CONFIG_CRYPTO_ESSIV=m -CONFIG_CRYPTO_BLAKE2B=y +CONFIG_CRYPTO_BLAKE2B=m CONFIG_CRYPTO_VMAC=m CONFIG_CRYPTO_WP512=m CONFIG_CRYPTO_XXHASH=y CONFIG_CRYPTO_CRC32=m +CONFIG_CRYPTO_LZO=m CONFIG_CRYPTO_842=m CONFIG_CRYPTO_LZ4=m CONFIG_CRYPTO_LZ4HC=m @@ -820,13 +784,17 @@ CONFIG_CRYPTO_USER_API_SKCIPHER=m CONFIG_CRYPTO_USER_API_RNG=m CONFIG_CRYPTO_USER_API_AEAD=m CONFIG_CRYPTO_DEV_VIRTIO=m -CONFIG_XZ_DEC_MICROLZMA=y +CONFIG_CRC_ITU_T=m +# CONFIG_XZ_DEC_POWERPC is not set +# CONFIG_XZ_DEC_SPARC is not set CONFIG_DMA_CMA=y CONFIG_CMA_SIZE_MBYTES=0 CONFIG_IRQ_POLL=y CONFIG_PRINTK_TIME=y +CONFIG_DYNAMIC_DEBUG=y CONFIG_STRIP_ASM_SYMS=y CONFIG_MAGIC_SYSRQ=y +CONFIG_DEBUG_FS=y # CONFIG_SCHED_DEBUG is not set CONFIG_SCHEDSTATS=y # CONFIG_FTRACE is not set diff --git a/arch/loongarch/kernel/setup.c b/arch/loongarch/kernel/setup.c index 5e643a6b4..3c82fb978 100644 --- a/arch/loongarch/kernel/setup.c +++ b/arch/loongarch/kernel/setup.c @@ -293,65 +293,77 @@ static void __init arch_reserve_crashkernel(void) } #ifdef CONFIG_DTB_MATCH_BY_BOARD_NAME + +char *board_names[] = { +#ifdef CONFIG_LOONGSON_2K500 + "LS2K500-MINI-DP", + "LS2K500-DAYU400-MB", +#endif +#ifdef CONFIG_LOONGSON_2K1000 + "LS2K1000-DP", +#endif +#ifdef CONFIG_LOONGSON_2P500 + "LS2P500-GBKPJM0", +#endif +#ifdef CONFIG_LOONGSON_2K300 + "LS2K300-MINI-DP", + "LS2K300-PAI", + "LS2K300-GONGKONG-GBKPGK0", +#endif + NULL +}; + +void *fdts[] = { +#ifdef CONFIG_LOONGSON_2K500 + &__dtb_ls2k500_mini_dp_begin, + &__dtb_ls2k500_dayu400_mb_begin, +#endif +#ifdef CONFIG_LOONGSON_2K1000 + &__dtb_ls2k1000_dp_begin, +#endif +#ifdef CONFIG_LOONGSON_2P500 + &__dtb_ls2p500_gbkpjm0_v10_begin, +#endif +#ifdef CONFIG_LOONGSON_2K300 + &__dtb_ls2k300_mini_dp_begin, + &__dtb_ls2k300_vanguard_pi_begin, + &__dtb_ls2k300_gongkong_gbkpgk0_begin, +#endif + NULL +}; + + static void* __init get_fdt_by_board_name(void) { void *fdt = NULL; char *board_name = NULL; - char temp[128]; // 名字长度限定不超128 + char temp[128] = {0}; // 名字长度限定不超128 board_name = strstr(boot_command_line, board_name_desc); if (board_name) { - size_t max_len = sizeof(temp); - memset(temp, 0, max_len); - max_len -= 1; - board_name += strlen(board_name_desc); // 跳过 = 和前面的字段 size_t len = strcspn(board_name, " "); + size_t max_len = sizeof(temp) - 1; len = len > max_len ? max_len : len; memcpy(temp, board_name, len); temp[len] = '\0'; + board_name = temp; } if (board_name) { -#ifdef CONFIG_LOONGSON_2K500 - int i; - if (!strncmp(board_name, "LS2K500-MINI-DP", 15)) - fdt = &__dtb_ls2k500_mini_dp_begin; - else if (!strncmp(board_name, "LS2K500-DAYU400-MB", 17)) - fdt = &__dtb_ls2k500_dayu400_mb_begin; - else - fdt = &__dtb_ls2k500_mini_dp_begin; + bool is_found = false; + for (size_t i = 0; board_names[i]; i++) { + if (!strncmp(board_names[i], board_name, strlen(board_names[i]))) { + fdt = fdts[i]; + is_found = true; + // pr_info("======>board_name:%s i:%lu\n", board_name, i); + break; + } + } - // for (i = 0; i < NR_CPUS; ++i) - // if (check_cpu_full_name_invaild(i)) - // __cpu_full_name[i] = cpu_ls2k500_name; -#elif defined(CONFIG_LOONGSON_2K1000) - if (!strncmp(board_name, "LS2K1000-JL-MB", 14)) { - fdt = &__dtb_ls2k1000_jl_mb_begin; - } else if (!strncmp(board_name, "LS2K1000-DP", 11)) { - #ifdef CONFIG_SND_LS1X_SOC_I2S - fdt = &__dtb_ls2k1000_dp_i2s_begin; - #else - fdt = &__dtb_ls2k1000_dp_begin; - #endif - } else { - fdt = &__dtb_ls2k1000_dp_begin; + if (!is_found) { + fdt = board_names[0]; } -#elif defined(CONFIG_LOONGSON_2P500) - if (!strncmp(board_name, "LS2P500-GBKPJM0", 15)) - fdt = &__dtb_ls2p500_gbkpjm0_v10_begin; - else - fdt = &__dtb_ls2p500_gbkpjm0_v10_begin; -#elif defined(CONFIG_LOONGSON_2K300) - if (!strncmp(board_name, "LS2K300-MINI-DP", 15)) - fdt = &__dtb_ls2k300_mini_dp_begin; - else if (!strncmp(board_name, "LS2K300-PAI", 11)) - fdt = &__dtb_ls2k300_vanguard_pi_begin; - else if (!strncmp(board_name, "LS2K300-GONGKONG-GBKPGK0", 24)) - fdt = &__dtb_ls2k300_gongkong_gbkpgk0_begin; - else - fdt = &__dtb_ls2k300_mini_dp_begin; -#endif } return fdt; } @@ -842,15 +854,13 @@ static int __init bp_start_match(void) bp_start = 0; bp_start_value = strstr(boot_command_line, bp_start_desc); if (bp_start_value) { - size_t max_len = sizeof(temp); - memset(temp, 0, max_len); - max_len -= 1; - bp_start_value += strlen(bp_start_desc); // 跳过 = 和前面的字段 size_t len = strcspn(bp_start_value, " "); + size_t max_len = sizeof(temp) - 1; len = len > max_len ? max_len : len; memcpy(temp, bp_start_value, len); temp[len] = '\0'; + bp_start_value = temp; } else return 1; diff --git a/init/Makefile b/init/Makefile index 10b652d33..d1f88b56e 100644 --- a/init/Makefile +++ b/init/Makefile @@ -27,13 +27,14 @@ smp-flag-$(CONFIG_SMP) := SMP preempt-flag-$(CONFIG_PREEMPT_BUILD) := PREEMPT preempt-flag-$(CONFIG_PREEMPT_DYNAMIC) := PREEMPT_DYNAMIC preempt-flag-$(CONFIG_PREEMPT_RT) := PREEMPT_RT +kernel-git-info := $(shell git rev-parse --short HEAD || echo "unknown-ver") build-version = $(or $(KBUILD_BUILD_VERSION), $(build-version-auto)) build-timestamp = $(or $(KBUILD_BUILD_TIMESTAMP), $(build-timestamp-auto)) # Maximum length of UTS_VERSION is 64 chars filechk_uts_version = \ - utsver=$$(echo '$(pound)'"$(build-version)" $(smp-flag-y) $(preempt-flag-y) "$(build-timestamp)" | cut -b -64); \ + utsver=$$(echo '$(pound)'"$(build-version)" $(smp-flag-y) $(preempt-flag-y) $(kernel-git-info) "$(build-timestamp)" | cut -b -64); \ echo '$(pound)'define UTS_VERSION \""$${utsver}"\" #