From fd1c2463f313ba45d26759ccbda8917be347426a Mon Sep 17 00:00:00 2001 From: Ilikara <3435193369@qq.com> Date: Tue, 29 Apr 2025 23:48:14 +0800 Subject: [PATCH] feat: support ctci 99pi wifi --- arch/loongarch/dts/ls2k300_99pi_wifi.dts | 138 +++++++++++++++++++ arch/loongarch/mach-loongson/Kconfig | 6 + configs/loongson_2k300_99pi_wifi | 168 +++++++++++++++++++++++ 3 files changed, 312 insertions(+) create mode 100644 arch/loongarch/dts/ls2k300_99pi_wifi.dts create mode 100644 configs/loongson_2k300_99pi_wifi diff --git a/arch/loongarch/dts/ls2k300_99pi_wifi.dts b/arch/loongarch/dts/ls2k300_99pi_wifi.dts new file mode 100644 index 00000000..0de3a471 --- /dev/null +++ b/arch/loongarch/dts/ls2k300_99pi_wifi.dts @@ -0,0 +1,138 @@ +#include "ls2k300.dtsi" +#include "ls2k300_ddr_samsung_512m.dtsi" +#include +#include + +/ { + model = "loongson-2k300"; + + chosen { + stdout-path = "serial0:115200n8"; + bootargs = "earlycon"; + }; + + reserved-memory { + #address-cells = <2>; + #size-cells = <2>; + ranges; + + bootparam: bootparam_region { + reg = <0x90000000 0x0f000000 0x0 0x1000000>; + no-map; + }; + }; + + sysinfo-smbios { + compatible = "u-boot,sysinfo-smbios"; + u-boot,dm-pre-reloc; + + smbios { + system { + manufacturer = "Loongson"; + product = "LS2K300"; + }; + + baseboard { + manufacturer = "Loongson"; + product = "LS2K300-99PI-WIFI"; + }; + + chassis { + manufacturer = "Loongson"; + product = "LS2K300-99PI-WIFI"; + }; + }; + }; + + panel_rgb: panel-rgb { + compatible = "simple-panel"; + backlight = <&panel_bkl>; + + display-timings { +#if 0 // 4.3' LCD + native-mode = <&atk_md0430r>; + + atk_md0430r: 800x480 { + clock-frequency = <27000000>; + hactive = <800>; + vactive = <480>; + hsync-len = <40>; + hfront-porch = <48>; + hback-porch = <40>; + vfront-porch = <13>; + vback-porch = <32>; + vsync-len = <0>; + de-active = <1>; + hsync-active = <0>; + vsync-active = <0>; + pixelclk-active = <0>; + }; +#else // 7' LCD + native-mode = <&atk_md0700r>; + + atk_md0700r: 1024x600 { + clock-frequency = <51200000>; + hactive = <1024>; + vactive = <600>; + hsync-len = <20>; + hfront-porch = <160>; + hback-porch = <140>; + vfront-porch = <12>; + vback-porch = <20>; + vsync-len = <3>; + de-active = <1>; + hsync-active = <0>; + vsync-active = <0>; + pixelclk-active = <0>; + }; +#endif + }; + }; + + panel_bkl: backlight { + compatible = "gpio-backlight"; + gpios = <&gpio0 86 GPIO_ACTIVE_HIGH>; + // default-on; + }; +}; + +&dvo0 { + status = "okay"; + connector-type = "panel"; // panel, vga, hdmi + connector = <&panel_rgb>; + pix-fmt = "rgb888"; +}; + +&gmac0 { + status = "okay"; + phy-mode = "rgmii-txid"; + // max-speed = <100>; + phy-handle = <ð_phy0>; + mdio0: mdio@0 { + #address-cells = <1>; + #size-cells = <0>; + compatible = "snps,dwmac-mdio"; + + eth_phy0: ethernet-phy@0 { + reg = <0>; + }; + }; +}; + +&emmc0 { + status = "okay"; +}; + +&spi0 { + status = "okay"; + + spi-flash@0 { + compatible = "jedec,spi-nor"; + spi-max-frequency = <25000000>; /* input clock */ + reg = <0>; /* CS0 */ + }; +}; + +&otg { + status = "okay"; +}; diff --git a/arch/loongarch/mach-loongson/Kconfig b/arch/loongarch/mach-loongson/Kconfig index 40e5c5f5..e9211c67 100644 --- a/arch/loongarch/mach-loongson/Kconfig +++ b/arch/loongarch/mach-loongson/Kconfig @@ -189,6 +189,12 @@ config TARGET_LS2K300_GBKPRZ help This supports Loongson 2K300 Customer GBKPRZ board. +config TARGET_LS2K300_99PI_WIFI + bool "LS2K300 99PI WIFI Board" + depends on SOC_LS2K300 + help + This supports Loongson 2K300 Customer 99PI WIFI board. + endchoice config SYS_CPU diff --git a/configs/loongson_2k300_99pi_wifi b/configs/loongson_2k300_99pi_wifi new file mode 100644 index 00000000..6e6ded98 --- /dev/null +++ b/configs/loongson_2k300_99pi_wifi @@ -0,0 +1,168 @@ +CONFIG_LOONGARCH=y +CONFIG_SYS_TEXT_BASE=0x900000000ec00000 +CONFIG_SYS_MALLOC_LEN=0x1000000 +CONFIG_SYS_MALLOC_F_LEN=0x4000 +CONFIG_SPL_LIBCOMMON_SUPPORT=y +CONFIG_SPL_LIBGENERIC_SUPPORT=y +CONFIG_NR_DRAM_BANKS=2 +CONFIG_ENV_SIZE=0x4000 +CONFIG_ENV_OFFSET=0xe7000 +CONFIG_ENV_SECT_SIZE=0x1000 +CONFIG_DM_GPIO=y +CONFIG_SPL_DM_SPI=y +CONFIG_DEFAULT_DEVICE_TREE="ls2k300_99pi_wifi" +CONFIG_SPL_TEXT_BASE=0x9000000090000000 +CONFIG_SPL_SERIAL=y +CONFIG_SPL_STACK_R_ADDR=0x9000000002000000 +CONFIG_SPL_SYS_MALLOC_F_LEN=0x8000 +CONFIG_SPL_SIZE_LIMIT=0x40000 +CONFIG_SPL_SIZE_LIMIT_PROVIDE_STACK=0x100 +CONFIG_SPL=y +CONFIG_SPL_SPI_FLASH_SUPPORT=y +CONFIG_SPL_SPI=y +CONFIG_ARCH_LA_LOONGSON=y +CONFIG_SOC_LS2K300=y +CONFIG_CPU_1000MHZ=y +CONFIG_TARGET_LS2K300_99PI_WIFI=y +CONFIG_LOONGSON_RECOVER=y +CONFIG_LOONGSON_GENERAL_LOAD=y +CONFIG_LOONGSON_BOARD_MMC_FS=y +CONFIG_LOONGSON_MMC_HIGH_PERFORMANCE=y +CONFIG_SPL_PAYLOAD="u-boot.img" +CONFIG_PHYS_64BIT=y +CONFIG_SYS_LOAD_ADDR=0x9000000003000000 +CONFIG_STACK_SIZE=0x200000 +CONFIG_BOOTDELAY=0 +CONFIG_AUTOBOOT_KEYED=y +CONFIG_AUTOBOOT_DELAY_STR="m" +CONFIG_AUTOBOOT_STOP_STR="c" +CONFIG_USE_BOOTARGS=y +CONFIG_BOOTARGS="console=ttyS0,115200 rw noinitrd init=/sbin/init rootfstype=ext4 rootwait" +CONFIG_USE_BOOTCOMMAND=y +CONFIG_BOOTCOMMAND="setenv bootargs ${bootargs} root=/dev/mmcblk0p${syspart} mtdparts=${mtdparts} fbcon=rotate:${rotate} panel=${panel};sf probe;sf read ${fdt_addr} dtb;ext4load mmc 0:${syspart} ${loadaddr} /boot/uImage;bootm" +CONFIG_LOGLEVEL=7 +CONFIG_SYS_CONSOLE_OVERWRITE_ROUTINE=y +# CONFIG_SYS_DEVICE_NULLDEV is not set +CONFIG_DISPLAY_BOARDINFO=y +CONFIG_BOARD_EARLY_INIT_F=y +CONFIG_BOARD_EARLY_INIT_R=y +CONFIG_BOARD_LATE_INIT=y +CONFIG_MISC_INIT_R=y +CONFIG_SPL_SIZE_LIMIT_SUBTRACT_GD=y +CONFIG_SPL_SIZE_LIMIT_SUBTRACT_MALLOC=y +CONFIG_SPL_SHOW_ERRORS=y +CONFIG_SPL_SYS_MALLOC_SIMPLE=y +CONFIG_SPL_STACK_R=y +# CONFIG_SPL_BANNER_PRINT is not set +CONFIG_SPL_DISPLAY_PRINT=y +CONFIG_SPL_MTD_SUPPORT=y +CONFIG_SPL_DM_SPI_FLASH=y +CONFIG_SPL_SPI_FLASH_MTD=y +CONFIG_SPL_SPI_LOAD=y +# CONFIG_BOOTM_PLAN9 is not set +CONFIG_CMD_BOOTMENU=y +# CONFIG_CMD_XIMG is not set +# CONFIG_CMD_RANDOM is not set +CONFIG_CMD_MEMTEST=y +CONFIG_CMD_GPT=y +# CONFIG_RANDOM_UUID is not set +CONFIG_CMD_GPT_RENAME=y +CONFIG_CMD_MMC=y +CONFIG_CMD_MTD=y +CONFIG_CMD_POWEROFF=y +CONFIG_CMD_SF_TEST=y +CONFIG_CMD_USB=y +# CONFIG_CMD_ITEST is not set +CONFIG_CMD_DHCP=y +CONFIG_CMD_MII=y +CONFIG_CMD_PING=y +CONFIG_CMD_BMP=y +CONFIG_CMD_TIME=y +CONFIG_CMD_EXT2=y +CONFIG_CMD_EXT4=y +CONFIG_CMD_EXT4_WRITE=y +CONFIG_CMD_FAT=y +CONFIG_CMD_FS_GENERIC=y +CONFIG_CMD_MTDPARTS=y +CONFIG_MTDIDS_DEFAULT="nor0=spi0.0" +CONFIG_MTDPARTS_DEFAULT="spi0.0:924k(uboot),32k(uboot_env),4k(bdinfo),52k(dtb),4k(bdinfo_e),8k(ddr_context)" +CONFIG_ISO_PARTITION=y +# CONFIG_SPL_EFI_PARTITION is not set +CONFIG_OF_LIVE=y +CONFIG_OF_BOARD=y +CONFIG_OF_SPL_REMOVE_PROPS="interrupt-parent interrupts" +CONFIG_ENV_OVERWRITE=y +CONFIG_ENV_IS_IN_SPI_FLASH=y +CONFIG_ENV_SECT_SIZE_AUTO=y +CONFIG_ENV_SPI_MAX_HZ=30000000 +CONFIG_SYS_RELOC_GD_ENV_ADDR=y +CONFIG_VERSION_VARIABLE=y +CONFIG_NET_RANDOM_ETHADDR=y +CONFIG_BOOTP_SERVERIP=y +CONFIG_SPL_DM=y +CONFIG_SPL_OF_TRANSLATE=y +CONFIG_LOONGSON_GPIO=y +# CONFIG_I2C is not set +CONFIG_MMC=y +CONFIG_MMC_IO_VOLTAGE=y +CONFIG_MMC_UHS_SUPPORT=y +CONFIG_MMC_LOONGSON=y +CONFIG_MTD=y +CONFIG_DM_MTD=y +CONFIG_DM_SPI_FLASH=y +CONFIG_SF_DEFAULT_SPEED=25000000 +CONFIG_SPI_FLASH_EON=y +CONFIG_SPI_FLASH_GIGADEVICE=y +CONFIG_SPI_FLASH_WINBOND=y +CONFIG_SPI_FLASH_XTX=y +CONFIG_SPI_FLASH_MTD=y +CONFIG_DM_ETH=y +CONFIG_DM_MDIO=y +CONFIG_DM_ETH_PHY=y +CONFIG_ETH_DESIGNWARE=y +CONFIG_RGMII=y +CONFIG_MII=y +CONFIG_PHY=y +CONFIG_PHY_LS2K_USB=y +CONFIG_PINCTRL=y +CONFIG_PINCTRL_SINGLE=y +CONFIG_RAM=y +CONFIG_SPL_RAM=y +CONFIG_LOONGSON_DDR4=y +CONFIG_SERIAL_RX_BUFFER=y +CONFIG_SYS_NS16550=y +CONFIG_SPI=y +CONFIG_DM_SPI=y +CONFIG_LOONGSON_SPI=y +CONFIG_SYSINFO=y +CONFIG_SYSINFO_SMBIOS=y +CONFIG_USB=y +CONFIG_USB_EHCI_HCD=y +CONFIG_USB_EHCI_GENERIC=y +CONFIG_USB_OHCI_HCD=y +CONFIG_USB_OHCI_GENERIC=y +CONFIG_USB_DWC2=y +CONFIG_USB_STORAGE=y +CONFIG_USB_KEYBOARD=y +CONFIG_USB_KEYBOARD_FN_KEYS=y +CONFIG_SYS_USB_EVENT_POLL_VIA_CONTROL_EP=y +CONFIG_DM_VIDEO=y +CONFIG_VIDEO_LOGO=y +CONFIG_BACKLIGHT_GPIO=y +CONFIG_SYS_WHITE_ON_BLACK=y +CONFIG_VIDCONSOLE_AS_LCD=y +CONFIG_VIDEO_LOONGSON=y +CONFIG_SPLASH_SCREEN=y +CONFIG_SPLASHIMAGE_GUARD=y +CONFIG_SPLASH_SCREEN_ALIGN=y +CONFIG_BMP_16BPP=y +CONFIG_BMP_24BPP=y +CONFIG_BMP_32BPP=y +# CONFIG_WATCHDOG is not set +# CONFIG_WATCHDOG_AUTOSTART is not set +CONFIG_WDT=y +CONFIG_WDT_LS2X=y +CONFIG_FAT_WRITE=y +CONFIG_BCH=y +CONFIG_PANIC_HANG=y +CONFIG_LMB=y