Thanks Weijie, I made the changes You suggested. I have also seen You sent a new version of Your patches. Since mine are based on yours I *think* I should suspend sending my VoCore2 patches till Yours are fixed and integrated into master.
@Stefan Roese: is this the right course of action? I am happy what I have (pending further test, of course!), but I want this integrated in upstream master, if possible, so I'm prepared to rebase my patches after Weijie ones are in. Any comment welcome. Side Question: Stefan wrote: > Most of this can be done by using the > RAM version now (again). There is no additional RAM booting target now > any more. You can use the normal U-Boot image for this now. Please note > the changes TEXT_BASE here. Its now 0x80200000. This actually seems to work right if I start from my original u-boot (1.1.3, flashed at start of SPI NOR), but it fails if I start from a flashed (at the same location) u-boot-mtmips.bin I *think* this happens because unpacking actually writes u-boot at 0x80200000 and runs it from there, so "load usb 0:1 80200000 u-boot.bin" (or equivalent) will overwrite the running u-boot and the following "go ${fileaddr}" fails: ## Starting application at 0x80200000 ... <DEAD> Note that if I load the same version flashed it works ok (presumably because I'm overwriting with the same content, so no harm done). How can I load in RAM end test a new version once I flash new-style u-boot? I am thinking about relinking at a different address, but I'm unsure. TiA! Regards Mauro Condarelli On 1/21/20 4:11 AM, Weijie Gao wrote: > On Tue, 2020-01-21 at 00:55 +0100, Mauro Condarelli wrote: >> Hi Weijie, >> I attach my, apparently working, port to VoCore2 SoM. >> >> These patchsets are on top of Your 21 patch rewrite of MT7628 board, >> >> While the first patchset is relatively straightforward, but does not include >> MMC handling, to enable it I had to backport from Linux Kernel several >> pieces, essentially clock and interrupt handling. > You are using a superseded patch series (v1) I submitted several months > ago. These patches have already been replaced by v3 and merged into the > mainline. > > * "mtmips-clk-gate" from v1 is replaced by "mediatek,mt7628-clk" and the > function of "mediatek,mt7628-clk" is a superset of "mtmips-clk-gate". > * The node "intc" has no use at all. U-Boot for mips use no interrupts. > * mmc property "hclk" is the gating clock of the SD controller module. > Using <&clk48m> in the v1 patches was a bad idea. I changed it to > <&clkctrl CLK_SDXC> in v3 to make sure its clock will be always > enabled. > * Please move pinctrl properties to your board's dts file. > * pinctrl name "state_uhs" is not used by mtk-sd in U-Boot. MT7628 does > not support UHS. You should remove it. > * vmmc-supply and vqmmc-supply are not used by mtk-sd in U-Boot because > UHS support is not added to the driver. Besides you have assigned > wrong values to them. You should remove it. > >> Those drivers appear written by You. >> I am unsure if this is really needed or if there is some other (perhaps >> cleaner) >> way to enable MMC. >> >> As said this seems to work for me, but I would like to contribute this >> board upstream, in the best possible way. >> >> Please let me know how I should proceed. > I don't have a board with the "sd_iot_mode" pinmux for SDXC, so I can't > tell you why you can't use it with my v3 patches. But I have tested v3 > patches on boards using "sd_router_mode" pinmux and they do work well. > >> Best Regards and Thanks in Advance >> >>
>From 4f09ebe1843b5ccdf9b0edb79be6a5110425df04 Mon Sep 17 00:00:00 2001 From: Mauro Condarelli <mc5...@mclink.it> Date: Tue, 21 Jan 2020 00:37:43 +0100 Subject: [PATCH] mips: mtmips: vocore2: add support for MMC/SD Signed-off-by: Mauro Condarelli <mc5...@mclink.it> --- arch/mips/dts/mt7628a.dtsi | 18 ++++++++++++++++++ arch/mips/dts/vocore_vocore2.dts | 4 ++++ configs/vocore2_defconfig | 10 +++++++++- drivers/phy/Kconfig | 2 ++ include/configs/vocore2.h | 22 +++++++++++----------- 5 files changed, 44 insertions(+), 12 deletions(-) diff --git a/arch/mips/dts/mt7628a.dtsi b/arch/mips/dts/mt7628a.dtsi index f265cb6ad9..5e396e15f4 100644 --- a/arch/mips/dts/mt7628a.dtsi +++ b/arch/mips/dts/mt7628a.dtsi @@ -7,6 +7,18 @@ #size-cells = <1>; compatible = "ralink,mt7628a-soc"; + resetc: reset-controller { + compatible = "ralink,rt2880-reset"; + #reset-cells = <1>; + }; + + cpuintc: interrupt-controller { + #address-cells = <0>; + #interrupt-cells = <1>; + interrupt-controller; + compatible = "mti,cpu-interrupt-controller"; + }; + clk48m: clk48m@0 { compatible = "fixed-clock"; @@ -41,6 +53,12 @@ u-boot,dm-pre-reloc; }; + clkgate: clkgate@0x30 { + reg = <0x30 0x4>; + compatible = "mediatek,mediatek,mt7628-clk"; + #clock-cells = <1>; + }; + rstctrl: rstctrl@0x34 { reg = <0x34 0x4>; compatible = "mediatek,mtmips-reset"; diff --git a/arch/mips/dts/vocore_vocore2.dts b/arch/mips/dts/vocore_vocore2.dts index ec9df70f55..f7450a9687 100644 --- a/arch/mips/dts/vocore_vocore2.dts +++ b/arch/mips/dts/vocore_vocore2.dts @@ -61,4 +61,8 @@ &mmc { status = "okay"; + + pinctrl-names = "default"; + pinctrl-0 = <&sd_iot_mode>; + pinctrl-1 = <&sd_iot_mode>; }; diff --git a/configs/vocore2_defconfig b/configs/vocore2_defconfig index 6cc85ae64a..9758038dd7 100644 --- a/configs/vocore2_defconfig +++ b/configs/vocore2_defconfig @@ -28,10 +28,12 @@ CONFIG_CMD_LICENSE=y CONFIG_CMD_MEMINFO=y CONFIG_CMD_GPIO=y # CONFIG_CMD_LOADS is not set +CONFIG_CMD_MMC=y CONFIG_CMD_MTD=y CONFIG_CMD_PART=y CONFIG_CMD_SPI=y CONFIG_CMD_USB=y +CONFIG_CMD_WDT=y CONFIG_CMD_FAT=y CONFIG_CMD_FS_GENERIC=y CONFIG_CMD_MTDPARTS=y @@ -43,10 +45,13 @@ CONFIG_SYS_RELOC_GD_ENV_ADDR=y # CONFIG_NET is not set CONFIG_SPL_DM=y # CONFIG_DM_DEVICE_REMOVE is not set -CONFIG_BLK=y CONFIG_LED=y CONFIG_LED_BLINK=y CONFIG_LED_GPIO=y +CONFIG_MMC=y +CONFIG_DM_MMC=y +# CONFIG_MMC_HW_PARTITIONING is not set +CONFIG_MMC_MTK=y CONFIG_MTD=y CONFIG_SPI_FLASH_GIGADEVICE=y CONFIG_SPI_FLASH_MACRONIX=y @@ -57,6 +62,7 @@ CONFIG_SPI_FLASH_MTD=y # CONFIG_DM_ETH is not set CONFIG_PHY=y CONFIG_MT76X8_USB_PHY=y +# CONFIG_RAM_ROCKCHIP_DEBUG is not set CONFIG_SPI=y CONFIG_MT7621_SPI=y CONFIG_USB=y @@ -64,6 +70,8 @@ CONFIG_DM_USB=y CONFIG_USB_EHCI_HCD=y CONFIG_USB_EHCI_GENERIC=y CONFIG_USB_STORAGE=y +CONFIG_WDT=y +CONFIG_WDT_MT7621=y CONFIG_FS_EXT4=y CONFIG_LZMA=y CONFIG_LZO=y diff --git a/drivers/phy/Kconfig b/drivers/phy/Kconfig index a72f34f0d4..d9acda2c6a 100644 --- a/drivers/phy/Kconfig +++ b/drivers/phy/Kconfig @@ -201,6 +201,8 @@ config MT76X8_USB_PHY bool "MediaTek MT76x8 (7628/88) USB PHY support" depends on PHY depends on SOC_MT7628 + select CLK + select DM_RESET help Support the USB PHY in MT76x8 SoCs diff --git a/include/configs/vocore2.h b/include/configs/vocore2.h index e90c3c2d74..8006cf8804 100644 --- a/include/configs/vocore2.h +++ b/include/configs/vocore2.h @@ -7,14 +7,14 @@ #define __VOCORE2_CONFIG_H__ /* CPU */ -#define CONFIG_SYS_MIPS_TIMER_FREQ 290000000 +#define CONFIG_SYS_MIPS_TIMER_FREQ 290000000 /* RAM */ -#define CONFIG_SYS_SDRAM_BASE 0x80000000 +#define CONFIG_SYS_SDRAM_BASE 0x80000000 -#define CONFIG_SYS_LOAD_ADDR CONFIG_SYS_SDRAM_BASE + 0x100000 +#define CONFIG_SYS_LOAD_ADDR (CONFIG_SYS_SDRAM_BASE + 0x200000) -#define CONFIG_SYS_INIT_SP_OFFSET 0x400000 +#define CONFIG_SYS_INIT_SP_OFFSET 0x400000 /* SPL */ #if defined(CONFIG_SPL) && !defined(CONFIG_SPL_BUILD) @@ -42,17 +42,17 @@ 230400, 460800, 921600 } /* RAM */ -#define CONFIG_SYS_MEMTEST_START 0x80100000 -#define CONFIG_SYS_MEMTEST_END 0x80400000 +#define CONFIG_SYS_MEMTEST_START 0x80100000 +#define CONFIG_SYS_MEMTEST_END 0x80400000 /* Memory usage */ -#define CONFIG_SYS_MAXARGS 64 -#define CONFIG_SYS_MALLOC_LEN (1024 * 1024) -#define CONFIG_SYS_BOOTPARAMS_LEN (128 * 1024) -#define CONFIG_SYS_CBSIZE 512 +#define CONFIG_SYS_MAXARGS 64 +#define CONFIG_SYS_MALLOC_LEN (1024 * 1024) +#define CONFIG_SYS_BOOTPARAMS_LEN (128 * 1024) +#define CONFIG_SYS_CBSIZE 512 /* U-Boot */ -#define CONFIG_SYS_MONITOR_BASE CONFIG_SYS_TEXT_BASE +#define CONFIG_SYS_MONITOR_BASE CONFIG_SYS_TEXT_BASE /* Environment settings */ #if defined(CONFIG_MTDIDS_DEFAULT) && defined(CONFIG_MTDPARTS_DEFAULT) -- 2.25.0