diff --git a/arch/loongarch/dts/ls2k300.dtsi b/arch/loongarch/dts/ls2k300.dtsi index f8e6c1b0..ca61f5f8 100644 --- a/arch/loongarch/dts/ls2k300.dtsi +++ b/arch/loongarch/dts/ls2k300.dtsi @@ -99,13 +99,19 @@ 0x4 0x00ffffff 0x00ffffff>; }; //gmac - gmac0_pins: pinmux_G16_G47_as_gmac { + gmac0_pins: pinmux_G16_G39_as_gmac { pinctrl-single,bits = <0x4 0xff000000 0xff000000 0x8 0x0000ffff 0x0000ffff>; }; - gmac1_pins: pinmux_G40_G55_as_gmac { - pinctrl-single,bits = <0x8 0xaaaa0000 0xffff0000 - 0xc 0x0000aaaa 0x0000ffff>; + uart0_pins: pinmux_G40_G41_as_uart { + pinctrl-single,bits = <0x8 0x000f0000 0x000f0000>; + }; + gmac1_pins: pinmux_G42_G55_as_gmac { + pinctrl-single,bits = <0x8 0x55500000 0xfff00000 + 0xc 0x00005555 0x0000ffff>; + }; + i2c3_as_gpio: pinmux_G54_G55_as_gpio { + pinctrl-single,bits = <0xc 0x00000000 0x0000f000>; }; //sdio sdio0_pins: pinmux_G90_G99_as_sdio { diff --git a/arch/loongarch/dts/ls2k300_g2k03z2_core.dtsi b/arch/loongarch/dts/ls2k300_g2k03z2_core.dtsi new file mode 100644 index 00000000..fa2ce549 --- /dev/null +++ b/arch/loongarch/dts/ls2k300_g2k03z2_core.dtsi @@ -0,0 +1,46 @@ +#include "ls2k300.dtsi" + +#if defined(CONFIG_LOONGSON_DDR4_ISOCOM_2G) +#include "ls2k300_ddr_isocom_2g.dtsi" +#elif defined(CONFIG_LOONGSON_DDR4_ISOCOM_1G) +#include "ls2k300_ddr_isocom_1g.dtsi" +#elif defined(CONFIG_LOONGSON_DDR4_SINKER_1G) +#include "ls2k300_ddr_sinker_1g.dtsi" +#else +#include "ls2k300_ddr_samsung_512m.dtsi" +#endif + +/ { + 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; + }; + }; +}; + +&spi0 { + status = "okay"; + + spi-flash@0 { + compatible = "jedec,spi-nor"; + spi-max-frequency = <25000000>; /* input clock */ + reg = <0>; /* CS0 */ + }; +}; + +&emmc0 { + status = "okay"; +}; + diff --git a/arch/loongarch/dts/ls2k300_gongkong_gbkpgk0.dts b/arch/loongarch/dts/ls2k300_gongkong_gbkpgk0.dts new file mode 100644 index 00000000..05990d53 --- /dev/null +++ b/arch/loongarch/dts/ls2k300_gongkong_gbkpgk0.dts @@ -0,0 +1,59 @@ +#include "ls2k300_g2k03z2_core.dtsi" + +/ { + sysinfo-smbios { + compatible = "u-boot,sysinfo-smbios"; + u-boot,dm-pre-reloc; + + smbios { + system { + manufacturer = "Loongson"; + product = "LS2K300"; + }; + + baseboard { + manufacturer = "Loongson"; + product = "LS2K300-GONGKONG-GBKPGK0"; + }; + + chassis { + manufacturer = "Loongson"; + product = "LS2K300-GONGKONG-GBKPGK0"; + }; + }; + }; +}; + +&gmac0 { + status = "okay"; + phy-mode = "rgmii-txid"; + phy-handle = <ð_phy0>; + mdio0: mdio@0 { + #address-cells = <1>; + #size-cells = <0>; + compatible = "snps,dwmac-mdio"; + + eth_phy0: ethernet-phy@0 { + reg = <0>; + }; + }; +}; + +&gmac1 { + status = "okay"; + phy-mode = "rgmii-txid"; + phy-handle = <ð_phy1>; + mdio1: mdio@1 { + #address-cells = <1>; + #size-cells = <0>; + compatible = "snps,dwmac-mdio"; + + eth_phy1: ethernet-phy@1 { + reg = <0>; + }; + }; +}; + +&otg { + status = "okay"; +}; diff --git a/arch/loongarch/dts/ls2p500_g2p05z0_v10.dtsi b/arch/loongarch/dts/ls2p500_g2p05z0_v10.dtsi new file mode 100644 index 00000000..4373d3cf --- /dev/null +++ b/arch/loongarch/dts/ls2p500_g2p05z0_v10.dtsi @@ -0,0 +1,78 @@ +#include "ls2p500.dtsi" + +/ { + model = "loongson-2p500"; + + chosen { + stdout-path = "serial0:115200n8"; + bootargs = "earlycon"; + }; + + memory { + name = "memory"; + device_type = "memory"; + reg = <0x90000000 0x00000000 0 0x10000000 + 0x90000000 0x90000000 0 0x30000000>; + u-boot,dm-pre-reloc; + }; + + reserved-memory { + #address-cells = <2>; + #size-cells = <2>; + ranges; + + bootparam: bootparam_region { + reg = <0x90000000 0x0f000000 0x0 0x1000000>; + no-map; + }; + }; + + mc0: ram@0 { + compatible = "loongson,ls2p500-ddr"; + u-boot,dm-pre-reloc; + + soc-config-reg = <0x14000100>; + mc-disable-offs = <0>; + mc-default-offs = <1>; + + sdram-type = "ddr3"; // ddr2/ddr3 + dimm-type = "udimm"; // rdimm/udimm/sodimm + + cs-map = <0x1>; // bit map: bit0 -- cs0 + // bit1 -- cs1 + // bit2 -- cs2 + // bit3 -- cs3 + + data-width = <32>; // 16/32/64 + sdram-width = <16>; // 8/16 + sdram-banks = <8>; // 2/4/8 + sdram-rows = <15>; + sdram-cols = <10>; + + clk-latency = <0x30>; + rd-latency = <0x9>; + wr-latency = <0x4>; + cmd-timing-mode = <1>; // 0: 1T mode; 1(default): 2T mode; 2: 3T mode. + + // To enable the feature below, uncomment it. + // ecc-enable; + /* addr-mirror; */ + /* multi-channel; */ + /* reset-revert; */ + }; + +}; + +&spi0 { + status = "okay"; + + spi-flash@0 { + compatible = "jedec,spi-nor"; + spi-max-frequency = <25000000>; /* input clock */ + reg = <0>; /* CS0 */ + }; +}; + +&emmc0 { + status = "okay"; +}; diff --git a/arch/loongarch/lib/bootm.c b/arch/loongarch/lib/bootm.c index 50236efd..a0efda3f 100644 --- a/arch/loongarch/lib/bootm.c +++ b/arch/loongarch/lib/bootm.c @@ -271,7 +271,7 @@ static int judge_boot_param_type(bootm_headers_t *images) char* kernel_type; kernel_type = image_get_name(images->legacy_hdr_os); - if (!strncmp(kernel_type, "Linux-5", 7)) + if (!strncmp(kernel_type, "Linux-5.10.0", 12)) return 0; else if (!strncmp(kernel_type, "Linux-4", 7)) return 0; @@ -397,3 +397,4 @@ int do_bootm_linux(int flag, int argc, char *const argv[], /* does not return */ return 1; } + diff --git a/arch/loongarch/mach-loongson/Kconfig b/arch/loongarch/mach-loongson/Kconfig index 962467c3..40e5c5f5 100644 --- a/arch/loongarch/mach-loongson/Kconfig +++ b/arch/loongarch/mach-loongson/Kconfig @@ -59,6 +59,8 @@ choice prompt "Board select" default TARGET_LS2K500_GENERIC if SOC_LS2K500 default TARGET_LS2K1000_GENERIC if SOC_LS2K1000 + default TARGET_LS2P500_GENERIC if SOC_LS2P500 + default TARGET_LS2K300_GENERIC if SOC_LS2K300 config TARGET_LS2K500_GENERIC @@ -133,6 +135,12 @@ config TARGET_LS2K1000_GBKPDM0_V10 help This supports Loongson GD 2k1000 GBKPDM0 V10 board. +config TARGET_LS2P500_GENERIC + bool "Generic LS2P500 SoC Board" + depends on SOC_LS2P500 + help + This supports Loongson Generic 2P500 SoC family board. + config TARGET_LS2P500_EVB bool "LS2P500 EVB Board" depends on SOC_LS2P500 @@ -145,12 +153,42 @@ config TARGET_LS2P500_RSJ help This supports Loongson 2P500 RSJ board. +config TARGET_LS2P500_GBKPJM + bool "LS2P500 GBKPJM Board" + depends on SOC_LS2P500 + help + This supports Loongson 2P500 GBKPJM board. + +config TARGET_LS2K300_GENERIC + bool "Generic LS2K300 SoC Board" + depends on SOC_LS2K300 + help + This supports Loongson Generic 2K300 SoC family board. + config TARGET_LS2K300_MINI_DP bool "LS2K300 MINI_DP Board" depends on SOC_LS2K300 help This supports Loongson 2K300 MINI_DP board. +config TARGET_LS2K300_PAI + bool "LS2K300 PAI Board" + depends on SOC_LS2K300 + help + This supports Loongson 2K300 PAI board. + +config TARGET_LS2K300_TEWEI + bool "LS2K300 TEWEI Board" + depends on SOC_LS2K300 + help + This supports Loongson 2K300 Customer TEWEI board. + +config TARGET_LS2K300_GBKPRZ + bool "LS2K300 GBKPRZ Board" + depends on SOC_LS2K300 + help + This supports Loongson 2K300 Customer GBKPRZ board. + endchoice config SYS_CPU @@ -177,7 +215,7 @@ source "board/loongson/Kconfig" choice prompt "DDR4 SDRAM Select" - depends on TARGET_LS2K300_MINI_DP + depends on SOC_LS2K300 default LOONGSON_DDR4_DEFAULT config LOONGSON_DDR4_DEFAULT diff --git a/arch/loongarch/mach-loongson/ls2k300/spl.c b/arch/loongarch/mach-loongson/ls2k300/spl.c index c89fad8f..6ab2c74b 100644 --- a/arch/loongarch/mach-loongson/ls2k300/spl.c +++ b/arch/loongarch/mach-loongson/ls2k300/spl.c @@ -4,6 +4,24 @@ #include #include #include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include void spl_mach_init(void) { @@ -26,6 +44,10 @@ void spl_board_init_late(void) { if (!strcmp(CONFIG_DEFAULT_DEVICE_TREE, "ls2k300_pai")) setup_gpio_value(75, 1); + else if (!strcmp(CONFIG_DEFAULT_DEVICE_TREE, "ls2k300_atk_dl2k0300b_v01")) { + setup_gpio_value(72, 1); //phy0 output high + setup_gpio_value(73, 1); //phy1 output high + } } void spl_mach_init_late(void) @@ -39,6 +61,10 @@ void spl_mach_init_late(void) writeq(0x0, LS_SCACHE_LOCK_WIN0_BASE); writeq(0x0, LS_SCACHE_LOCK_WIN0_MASK); + if (!strcmp(CONFIG_DEFAULT_DEVICE_TREE, "ls2k300_atk_dl2k0300b_v01")) { + iowrite32(0xD1034E4E, (void __iomem *)LS_GENERAL_CFG14); + } + /* flush scache using hit-invalidate */ for (int i = 0; i < LOCK_CACHE_SIZE; i += 0x40) { asm( diff --git a/board/loongson/common/Kconfig b/board/loongson/common/Kconfig index 192646a7..890691a9 100644 --- a/board/loongson/common/Kconfig +++ b/board/loongson/common/Kconfig @@ -64,4 +64,8 @@ config LOONGSON_MMC_HIGH_PERFORMANCE bool "Change MMC-PAD to 0x7, will support HS200 mode" default n +config LOONGSON_USB_LOW_PAD + bool "Change USB-PAD to 0x1, Some Board USB is better" + default n + endmenu diff --git a/board/loongson/common/bdinfo/bdinfo.c b/board/loongson/common/bdinfo/bdinfo.c index 690eeab5..8e19ead9 100644 --- a/board/loongson/common/bdinfo/bdinfo.c +++ b/board/loongson/common/bdinfo/bdinfo.c @@ -61,6 +61,17 @@ static struct ls_bdinfo bdinfo = { .loc = BDI_LOC_UNKNOWN, }; +static int ishex(char c) +{ + if (c >= '0' && c <='9') + return 1; + if (c >= 'a' && c <='f') + return 1; + if (c >= 'A' && c <='F') + return 1; + return 0; +} + int bdi_validate(enum bdi_id id, char *data) { char *p = NULL; @@ -83,8 +94,8 @@ int bdi_validate(enum bdi_id id, char *data) return -EINVAL; for (i = 0; i < 6; i++) { - if (!isdigit(data[i*3]) - || !isdigit(data[i*3+1])) + if (!ishex(data[i*3]) + || !ishex(data[i*3+1])) return -EINVAL; if (i > 0 && (data[i*3-1] != ':')) diff --git a/board/loongson/common/loongson_boot.c b/board/loongson/common/loongson_boot.c index 6eb87c9f..518264d1 100644 --- a/board/loongson/common/loongson_boot.c +++ b/board/loongson/common/loongson_boot.c @@ -116,7 +116,7 @@ static int do_loongson_factory_boot(struct cmd_tbl *cmdtp, int flag, int argc, c //ret = run_command("loongson_update dhcp uboot", 0); - ret = run_command("general_load --if net --sym rootfs.ext4.gz --decompress", 0); + ret = run_command("general_load --if net:192.168.1.2 --fmt dhcp --sym rootfs.img --decompress", 0); if (ret) return ret; diff --git a/board/loongson/common/loongson_env_trigger.c b/board/loongson/common/loongson_env_trigger.c index 57bfbf13..5877f81a 100644 --- a/board/loongson/common/loongson_env_trigger.c +++ b/board/loongson/common/loongson_env_trigger.c @@ -5,6 +5,7 @@ #include #include "loongson_boot_syspart_manager.h" #include "loongson_wdt_setup.h" +#include "bdinfo/bdinfo.h" /* * 这是一个模拟uboot启动的时候的会自动复位的触发器逻辑 @@ -41,12 +42,16 @@ static void loongson_tip_update_uboot_change(void); static int loongson_handle_ab_sys_status_change(int index); static void loongson_tip_ab_sys_status_change(void); +static int loongson_handle_mac_sync(int index); +static void loongson_tip_mac_sync(void); + static char* trigger_name_list[] = { "ls_trigger_boot", "ls_trigger_u_kernel", "ls_trigger_u_rootfs", "ls_trigger_u_uboot", "ls_trigger_ab_sys_status", + "ls_trigger_mac_sync", NULL, }; static loongson_trigger_handle_func trigger_handle_func_list[] = { @@ -55,6 +60,7 @@ static loongson_trigger_handle_func trigger_handle_func_list[] = { loongson_handle_update_rootfs_change, loongson_handle_update_uboot_change, loongson_handle_ab_sys_status_change, + loongson_handle_mac_sync, NULL }; static loongson_trigger_tip_func trigger_tip_func_list[] = { @@ -63,9 +69,10 @@ static loongson_trigger_tip_func trigger_tip_func_list[] = { loongson_tip_update_rootfs_change, loongson_tip_update_uboot_change, loongson_tip_ab_sys_status_change, + loongson_tip_mac_sync, NULL }; -static char* trigger_default_value_list[] = {"0", "0", "0", "0", "0", NULL}; +static char* trigger_default_value_list[] = {"0", "0", "0", "0", "0", "0", NULL}; static int trigger_first_check(int index, char* env_value_bak, int buffer_len) { @@ -226,8 +233,28 @@ static int loongson_handle_update_rootfs_change(int index) } else if (!strcmp(env_value, "ssdtftp")) { printf("update rootfs which in sata by tftp .....\r\n"); ret = run_command("recover tftp", 0); - } - else + } else if (!strcmp(env_value, "ssddhcp")) { + printf("update rootfs which in sata by dhcp .....\r\n"); + ret = run_command("recover dhcp 1 scsi", 0); + } else if (!strcmp(env_value, "mmctftp")) { + printf("update rootfs which in mmc by tftp .....\r\n"); + ret = run_command("recover tftp 1 mmc", 0); + } else if (!strcmp(env_value, "mmcdhcp")) { + printf("update rootfs which in mmc by dhcp .....\r\n"); + ret = run_command("recover dhcp 1 mmc", 0); + } else if (!strcmp(env_value, "imgusb")) { + printf("update rootfs.img by usb .....\r\n"); + ret = run_command("general_load --if usb --sym rootfs.img --decompress", 0); + } else if (!strcmp(env_value, "imgtftp")) { + printf("update rootfs.img by tftp .....\r\n"); + ret = run_command("general_load --if net --sym rootfs.img --decompress", 0); + } else if (!strcmp(env_value, "imgmmc")) { + printf("update rootfs.img by mmc .....\r\n"); + ret = run_command("general_load --if mmc1 --sym rootfs.img --decompress", 0); + } else if (!strcmp(env_value, "imgdhcp")) { + printf("update rootfs.img by dhcp.....\r\n"); + ret = run_command("general_load --if net --fmt dhcp --sym rootfs.img --decompress", 0); + } else return -1; return ret; @@ -325,6 +352,40 @@ static void loongson_tip_ab_sys_status_change(void) printf("\n"); } +static int loongson_handle_mac_sync(int index) +{ + int ret; + char env_value[32]; + char* env_val; // uboot_env value + + ret = trigger_first_check(index, env_value, 32); + if (ret == -1) + return -1; + else if (ret == 1) + return 0; + + ret = 0; + if (!strcmp(env_value, "1")) { + printf("sync mac to nvmem ...\n"); + env_val = env_get("ethaddr"); + bdinfo_set(BDI_ID_MAC0, env_val); + env_val = env_get("eth1addr"); + bdinfo_set(BDI_ID_MAC1, env_val); + bdinfo_save(); + } else + return -1; + + return ret; +} + +static void loongson_tip_mac_sync(void) +{ + printf("\tvalue:\n"); + printf("\t\t0 : no handle\n"); + printf("\t\t1 : sync uboot_env mac to bdinfo\n"); + printf("\n"); +} + ////////////////////////////////////////////////////////////////////////// ////////////////////////////////底层逻辑实现//////////////////////////////// ////////////////////////////////////////////////////////////////////////// diff --git a/board/loongson/common/loongson_update.c b/board/loongson/common/loongson_update.c index 45ba273f..3a6bed67 100644 --- a/board/loongson/common/loongson_update.c +++ b/board/loongson/common/loongson_update.c @@ -248,8 +248,8 @@ static int update_uboot(int dev) if (run_command("sf probe", 0) == 0) { char buf[128] = {0}; - snprintf(buf, sizeof(buf), "mtd erase dtb"); - ret = run_command(buf, 0); + // snprintf(buf, sizeof(buf), "mtd erase dtb"); + // ret = run_command(buf, 0); snprintf(buf, sizeof(buf), "sf erase 0 0x%x;sf update ${loadaddr} 0 ${filesize}", CONFIG_ENV_OFFSET); ret = run_command(buf, 0); } else { diff --git a/board/loongson/common/platform.c b/board/loongson/common/platform.c index a03b3071..5f8aeb6b 100644 --- a/board/loongson/common/platform.c +++ b/board/loongson/common/platform.c @@ -20,6 +20,7 @@ #include #include #include +#include #include "loongson_stdout_operation.h" #include "loongson_board_info.h" @@ -196,9 +197,12 @@ static void ethaddr_setup(void) uchar env_ethaddr[ARP_HLEN]; char *bdi_ethaddr_str; int id; + char* env_val; + int need_update_bdinfo; for (id = 0; id < 2; ++id) { if (!eth_env_get_enetaddr_by_index("eth", id, env_ethaddr)) { + need_update_bdinfo = 0; if (id == 0) bdi_ethaddr_str = bdinfo_get(BDI_ID_MAC0); else @@ -208,11 +212,22 @@ static void ethaddr_setup(void) if (is_valid_ethaddr(bdi_ethaddr)) { memcpy(env_ethaddr, bdi_ethaddr, ARP_HLEN); } else { + need_update_bdinfo = 1; net_random_ethaddr(env_ethaddr); printf("\neth%d: using random MAC address - %pM\n", id, env_ethaddr); } eth_env_set_enetaddr_by_index("eth", id, env_ethaddr); + if (need_update_bdinfo) { + if (id == 0){ + env_val = env_get("ethaddr"); + bdinfo_set(BDI_ID_MAC0, env_val); + } else { + env_val = env_get("eth1addr"); + bdinfo_set(BDI_ID_MAC1, env_val); + } + bdinfo_save(); + } } } } @@ -307,6 +322,7 @@ static void loongson_env_trigger(void) run_command("loongson_env_trigger ls_trigger_u_uboot", 0); run_command("loongson_env_trigger ls_trigger_boot", 0); run_command("loongson_env_trigger ls_trigger_ab_sys_status", 0); + run_command("loongson_env_trigger ls_trigger_mac_sync", 0); } #ifdef CONFIG_BOARD_EARLY_INIT_F @@ -441,6 +457,8 @@ int last_stage_init(void) adjust_nand_pagesize(); #endif + env_set("ver", version_string); // save env 通过 loongson_env_trigger init 减少对spi的刷写 + loongson_env_trigger(); return 0; @@ -609,8 +627,6 @@ void abort_key_handle_custom(int abort) abort_key_try_update_uboot_then_install_system, }; - mdelay(2000); - if (abort < 0 || abort >= sizeof(func_set) / sizeof(abort_key_handle_func)) return; ret = func_set[abort](); diff --git a/board/loongson/common/recover.c b/board/loongson/common/recover.c index 7a466c97..5c64404d 100644 --- a/board/loongson/common/recover.c +++ b/board/loongson/common/recover.c @@ -328,7 +328,7 @@ static int do_recover_cmd(struct cmd_tbl *cmdtp, int flag, int argc, char * cons } install_target = 0; - if (!argv[3]) + if (argc != 3) install_target = 0; else { if (!strcmp(argv[3], "scsi")) diff --git a/board/loongson/ls2k300/ls2k300.c b/board/loongson/ls2k300/ls2k300.c index fa0769b8..209e109a 100644 --- a/board/loongson/ls2k300/ls2k300.c +++ b/board/loongson/ls2k300/ls2k300.c @@ -81,12 +81,21 @@ static void dev_fixup(void) //enhance the io driving force val = readl(LS_GENERAL_CFG4); + + val |= (0x3 << PAD_CTRL_DVO) | (0x3 << PAD_CTRL_GMAC); // MMC 高驱动力下可到 hs200 #ifdef CONFIG_LOONGSON_MMC_HIGH_PERFORMANCE - val |= (0x3 << PAD_CTRL_DVO) | (0x3 << PAD_CTRL_GMAC) | (0x3 << PAD_CTRL_USB) - | (0x7 << PAD_CTRL_EMMC) | (0x7 << PAD_CTRL_SDIO); + if (!strcmp(CONFIG_DEFAULT_DEVICE_TREE, "ls2k300_atk_dl2k0300b_v01")) { + val |= (0x2 << PAD_CTRL_EMMC) | (0x7 << PAD_CTRL_SDIO); + } else { + val |= (0x7 << PAD_CTRL_EMMC) | (0x7 << PAD_CTRL_SDIO); + } +#endif + +#ifdef CONFIG_LOONGSON_USB_LOW_PAD + val |= (0x1 << PAD_CTRL_USB); #else - val |= (0x3 << PAD_CTRL_DVO) | (0x3 << PAD_CTRL_GMAC) | (0x3 << PAD_CTRL_USB); + val |= (0x7 << PAD_CTRL_USB); #endif writel(val, LS_GENERAL_CFG4); @@ -153,6 +162,7 @@ int ls_board_early_init_r(void) #ifdef CONFIG_BOARD_LATE_INIT int ls_board_late_init(void) { + uclass_probe_all(UCLASS_MISC); if (IS_ENABLED(CONFIG_LED)) { led_default_state(); } diff --git a/configs/loongson_2k1000_dp_defconfig b/configs/loongson_2k1000_dp_defconfig index f61498ee..bbd2158c 100644 --- a/configs/loongson_2k1000_dp_defconfig +++ b/configs/loongson_2k1000_dp_defconfig @@ -38,7 +38,7 @@ CONFIG_AUTOBOOT_STOP_STR="c" CONFIG_USE_BOOTARGS=y CONFIG_BOOTARGS="console=ttyS0,115200 rootfstype=ext4 rw rootwait" CONFIG_USE_BOOTCOMMAND=y -CONFIG_BOOTCOMMAND="setenv bootargs ${bootargs} root=/dev/mmcblk0p${syspart} mtdparts=${mtdparts} fbcon=rotate:${rotate} panel=${panel};ext4load scsi 0:${syspart} ${loadaddr} /boot/uImage;bootm" +CONFIG_BOOTCOMMAND="setenv bootargs ${bootargs} root=/dev/sda${syspart} mtdparts=${mtdparts} fbcon=rotate:${rotate} panel=${panel};sf probe;sf read ${fdt_addr} dtb;scsi reset;ext4load scsi 0:${syspart} ${loadaddr} /boot/uImage;bootm" CONFIG_LOGLEVEL=7 CONFIG_SYS_CONSOLE_OVERWRITE_ROUTINE=y # CONFIG_SYS_DEVICE_NULLDEV is not set @@ -82,7 +82,7 @@ CONFIG_CMD_ISOFS=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),56k(dtb),8k(ddr_context)" +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 diff --git a/configs/loongson_2p500_evb_defconfig b/configs/loongson_2k300_gongkong_gbkpgk0_defconfig similarity index 71% rename from configs/loongson_2p500_evb_defconfig rename to configs/loongson_2k300_gongkong_gbkpgk0_defconfig index 5a5edc82..869dc813 100644 --- a/configs/loongson_2p500_evb_defconfig +++ b/configs/loongson_2k300_gongkong_gbkpgk0_defconfig @@ -10,17 +10,25 @@ CONFIG_ENV_OFFSET=0xe7000 CONFIG_ENV_SECT_SIZE=0x1000 CONFIG_DM_GPIO=y CONFIG_SPL_DM_SPI=y -CONFIG_DEFAULT_DEVICE_TREE="ls2p500_evb" +CONFIG_DEFAULT_DEVICE_TREE="ls2k300_gongkong_gbkpgk0" 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_LS2P500=y +CONFIG_SOC_LS2K300=y +CONFIG_CPU_1000MHZ=y +CONFIG_TARGET_LS2K300_MINI_DP=y +CONFIG_LOONGSON_RECOVER=y +CONFIG_LOONGSON_GENERAL_LOAD=y +CONFIG_LOONGSON_BOARD_MMC_FS=y +CONFIG_LOONGSON_MMC_HIGH_PERFORMANCE=y +CONFIG_LOONGSON_USB_LOW_PAD=y CONFIG_SPL_PAYLOAD="u-boot.img" CONFIG_PHYS_64BIT=y CONFIG_SYS_LOAD_ADDR=0x9000000003000000 @@ -30,9 +38,10 @@ CONFIG_AUTOBOOT_KEYED=y CONFIG_AUTOBOOT_DELAY_STR="m" CONFIG_AUTOBOOT_STOP_STR="c" CONFIG_USE_BOOTARGS=y -CONFIG_BOOTARGS="console=ttyS0,115200 root=/dev/mmcblk0p2 rw noinitrd init=/linuxrc rootfstype=ext4 rootwait" +CONFIG_BOOTARGS="console=ttyS0,115200 rw noinitrd init=/sbin/init rootfstype=ext4 rootwait" CONFIG_USE_BOOTCOMMAND=y -CONFIG_BOOTCOMMAND="setenv bootargs ${bootargs} mtdparts=${mtdparts};ext4load mmc 0:1 ${loadaddr} /uImage;bootm" +CONFIG_BOOTCOMMAND="setenv bootargs ${bootargs} root=/dev/mmcblk0p${syspart} mtdparts=${mtdparts} fbcon=rotate:${rotate} panel=${panel};sf probe;sf read ${fdt_addr} 0xF0000 ${fdt_size};ext4load mmc 0:${syspart} ${loadaddr} /boot/uImage;bootm" +# CONFIG_INIT_USB_INPUT_DEV_BOOT is not set CONFIG_LOGLEVEL=7 CONFIG_SYS_CONSOLE_OVERWRITE_ROUTINE=y # CONFIG_SYS_DEVICE_NULLDEV is not set @@ -52,34 +61,36 @@ 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_EEPROM=y -CONFIG_SYS_I2C_EEPROM_ADDR_LEN=2 -CONFIG_SYS_EEPROM_SIZE=4096 -CONFIG_SYS_EEPROM_PAGE_WRITE_BITS=4 -CONFIG_SYS_EEPROM_PAGE_WRITE_DELAY_MS=3 -CONFIG_CMD_MD5SUM=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_MBR=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="nand0=ls-nand,nor0=spi0.0" -CONFIG_MTDPARTS_DEFAULT="ls-nand:14m(kernel),-(root);spi0.0:924k(uboot),32k(uboot_env),4k(bdinfo),56k(dtb),8k(ddr_context)" +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 @@ -92,49 +103,35 @@ CONFIG_NET_RANDOM_ETHADDR=y CONFIG_BOOTP_SERVERIP=y CONFIG_SPL_DM=y CONFIG_SPL_OF_TRANSLATE=y -CONFIG_BUTTON=y -CONFIG_BUTTON_GPIO=y -CONFIG_DMA=y -CONFIG_LOONGSON_DMA=y -CONFIG_DM_PCA953X=y CONFIG_LOONGSON_GPIO=y -CONFIG_DM_I2C=y -CONFIG_SYS_I2C_OCORES=y +# CONFIG_I2C is not set CONFIG_LED=y -CONFIG_LED_BLINK=y CONFIG_LED_GPIO=y -CONFIG_MISC=y -CONFIG_I2C_EEPROM=y -CONFIG_SYS_I2C_EEPROM_ADDR=0x57 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_MTD_RAW_NAND=y -CONFIG_SYS_NAND_DRIVER_ECC_LAYOUT=y -CONFIG_NAND_LOONGSON=y -CONFIG_SYS_NAND_ONFI_DETECTION=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_MTD=y -CONFIG_PHY_MARVELL=y -CONFIG_PHY_REALTEK=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_DM_REGULATOR=y -CONFIG_DM_REGULATOR_GPIO=y CONFIG_RAM=y CONFIG_SPL_RAM=y -CONFIG_LOONGSON_DDR=y +CONFIG_LOONGSON_DDR4=y CONFIG_SERIAL_RX_BUFFER=y CONFIG_SYS_NS16550=y CONFIG_SPI=y @@ -147,6 +144,7 @@ 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 @@ -163,6 +161,10 @@ 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 diff --git a/configs/loongson_2k300_mini_dp_defconfig b/configs/loongson_2k300_mini_dp_defconfig index 515b9762..3af2d8f0 100644 --- a/configs/loongson_2k300_mini_dp_defconfig +++ b/configs/loongson_2k300_mini_dp_defconfig @@ -23,6 +23,7 @@ CONFIG_SPL_SPI=y CONFIG_ARCH_LA_LOONGSON=y CONFIG_SOC_LS2K300=y CONFIG_CPU_1000MHZ=y +CONFIG_TARGET_LS2K300_MINI_DP=y CONFIG_LOONGSON_RECOVER=y CONFIG_LOONGSON_GENERAL_LOAD=y CONFIG_LOONGSON_BOARD_MMC_FS=y @@ -84,7 +85,7 @@ 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),56k(dtb),8k(ddr_context)" +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 diff --git a/configs/loongson_2k300_pai_defconfig b/configs/loongson_2k300_pai_defconfig index c531ffb1..7d61d914 100644 --- a/configs/loongson_2k300_pai_defconfig +++ b/configs/loongson_2k300_pai_defconfig @@ -23,6 +23,7 @@ CONFIG_SPL_SPI=y CONFIG_ARCH_LA_LOONGSON=y CONFIG_SOC_LS2K300=y CONFIG_CPU_1000MHZ=y +CONFIG_TARGET_LS2K300_PAI=y CONFIG_LOONGSON_RECOVER=y CONFIG_LOONGSON_GENERAL_LOAD=y CONFIG_LOONGSON_BOARD_MMC_FS=y @@ -88,7 +89,7 @@ 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),56k(dtb),8k(ddr_context)" +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 diff --git a/configs/loongson_2k500_mini_dp_defconfig b/configs/loongson_2k500_mini_dp_defconfig index 7515c46e..c21f7c46 100644 --- a/configs/loongson_2k500_mini_dp_defconfig +++ b/configs/loongson_2k500_mini_dp_defconfig @@ -73,7 +73,7 @@ CONFIG_CMD_FAT=y CONFIG_CMD_FS_GENERIC=y CONFIG_CMD_MTDPARTS=y CONFIG_MTDIDS_DEFAULT="nand0=ls-nand,nor0=spi0.0" -CONFIG_MTDPARTS_DEFAULT="ls-nand:14m(kernel),-(root);spi0.0:924k(uboot),32k(uboot_env),4k(bdinfo),56k(dtb),8k(ddr_context)" +CONFIG_MTDPARTS_DEFAULT="ls-nand:14m(kernel),-(root);spi0.0:924k(uboot),32k(uboot_env),4k(bdinfo),52k(dtb),4k(bdinfo_e),8k(ddr_context)" CONFIG_ISO_PARTITION=y CONFIG_PARTITION_UUIDS=y CONFIG_OF_LIVE=y diff --git a/configs/loongson_2p500_gbkpjm0_defconfig b/configs/loongson_2p500_gbkpjm0_defconfig index e672efc1..ad8fd84c 100644 --- a/configs/loongson_2p500_gbkpjm0_defconfig +++ b/configs/loongson_2p500_gbkpjm0_defconfig @@ -22,9 +22,10 @@ CONFIG_SPL_SPI=y CONFIG_ARCH_LA_LOONGSON=y CONFIG_SOC_LS2P500=y CONFIG_CPU_600MHZ=y -CONFIG_TARGET_LS2P500_RSJ=y +CONFIG_TARGET_LS2P500_GBKPJM=y CONFIG_LOONGSON_RECOVER=y CONFIG_LOONGSON_GENERAL_LOAD=y +# CONFIG_LOONGSON_GENERAL_LOAD_FIX_FDISK is not set CONFIG_LOONGSON_BOARD_MMC_FS=y CONFIG_SPL_PAYLOAD="u-boot.img" CONFIG_PHYS_64BIT=y @@ -37,7 +38,7 @@ CONFIG_AUTOBOOT_STOP_STR="c" CONFIG_USE_BOOTARGS=y CONFIG_BOOTARGS="console=ttyS0,115200 rw noinitrd init=/linuxrc rootfstype=ext4 rootwait" CONFIG_USE_BOOTCOMMAND=y -CONFIG_BOOTCOMMAND="setenv bootargs ${bootargs} root=/dev/mmcblk0p${syspart} mtdparts=${mtdparts};ext4load mmc 0:${syspart} ${loadaddr} /boot/uImage;bootm" +CONFIG_BOOTCOMMAND="setenv bootargs ${bootargs} root=/dev/mmcblk0p${syspart} mtdparts=${mtdparts} fbcon=rotate:${rotate} panel=${panel};sf probe;sf read ${fdt_addr} 0xF0000 ${fdt_size};ext4load mmc 0:${syspart} ${loadaddr} /boot/uImage;bootm" # CONFIG_INIT_USB_INPUT_DEV_BOOT is not set CONFIG_LOGLEVEL=7 CONFIG_SYS_CONSOLE_OVERWRITE_ROUTINE=y @@ -84,7 +85,7 @@ 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),56k(dtb),8k(ddr_context)" +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