On 08/03/2018 10:40 AM, Simon Goldschmidt wrote: > > > On 01.08.2018 09:34, Marek Vasut wrote: >> On 08/01/2018 09:29 AM, Goldschmidt Simon wrote: >>> >>> On 30.07.2018 16:04, Marek Vasut wrote: >>>> On 07/30/2018 04:03 PM, Simon Goldschmidt wrote: >>>>> >>>>> On 12.05.2018 22:28, Marek Vasut wrote: >>>>>> Pull the serial port configuration from DT and use DM serial instead >>>>>> of having the serial configuration in two places, DT and board >>>>>> config. >>>>>> >>>>>> Signed-off-by: Marek Vasut <ma...@denx.de> >>>>>> Cc: Chin Liang See <chin.liang....@intel.com> >>>>>> Cc: Dinh Nguyen <dingu...@kernel.org> >>>>>> --- >>>>>> arch/arm/Kconfig | 3 +++ >>>>>> arch/arm/dts/socfpga.dtsi | 2 ++ >>>>>> arch/arm/dts/socfpga_arria10_socdk_sdmmc.dts | 1 + >>>>>> include/configs/socfpga_common.h | 8 -------- >>>>>> 4 files changed, 6 insertions(+), 8 deletions(-) >>>>>> >>>>>> diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig >>>>>> index 532aa41a87..2012ac6410 100644 >>>>>> --- a/arch/arm/Kconfig >>>>>> +++ b/arch/arm/Kconfig >>>>>> @@ -737,6 +737,7 @@ config ARCH_SOCFPGA >>>>>> select ARCH_MISC_INIT >>>>>> select CPU_V7A >>>>>> select DM >>>>>> + select DM_SERIAL >>>>>> select ENABLE_ARM_SOC_BOOT0_HOOK >>>>>> select OF_CONTROL >>>>>> select SPL_LIBCOMMON_SUPPORT >>>>>> @@ -746,11 +747,13 @@ config ARCH_SOCFPGA >>>>>> select SPL_NAND_SUPPORT if SPL_NAND_DENALI >>>>>> select SPL_OF_CONTROL >>>>>> select SPL_SERIAL_SUPPORT >>>>>> + select SPL_DM_SERIAL >>>>>> select SPL_SPI_FLASH_SUPPORT if SPL_SPI_SUPPORT >>>>>> select SPL_SPI_SUPPORT if DM_SPI >>>>>> select SPL_WATCHDOG_SUPPORT >>>>>> select SUPPORT_SPL >>>>>> select SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION_TYPE >>>>>> + select SYS_NS16550 >>>>>> select SYS_THUMB_BUILD >>>>>> imply CMD_MTDPARTS >>>>>> imply CRC32_VERIFY >>>>>> diff --git a/arch/arm/dts/socfpga.dtsi b/arch/arm/dts/socfpga.dtsi >>>>>> index e64127fcb2..314449478d 100644 >>>>>> --- a/arch/arm/dts/socfpga.dtsi >>>>>> +++ b/arch/arm/dts/socfpga.dtsi >>>>>> @@ -737,6 +737,7 @@ >>>>>> reg-shift = <2>; >>>>>> reg-io-width = <4>; >>>>>> clocks = <&l4_sp_clk>; >>>>>> + clock-frequency = <100000000>; >>>>>> }; >>>>>> uart1: serial1@ffc03000 { >>>>>> @@ -746,6 +747,7 @@ >>>>>> reg-shift = <2>; >>>>>> reg-io-width = <4>; >>>>>> clocks = <&l4_sp_clk>; >>>>>> + clock-frequency = <100000000>; >>>>>> }; >>>>>> rst: rstmgr@ffd05000 { >>>>>> diff --git a/arch/arm/dts/socfpga_arria10_socdk_sdmmc.dts >>>>>> b/arch/arm/dts/socfpga_arria10_socdk_sdmmc.dts >>>>>> index b573d0e658..06b61cb0af 100644 >>>>>> --- a/arch/arm/dts/socfpga_arria10_socdk_sdmmc.dts >>>>>> +++ b/arch/arm/dts/socfpga_arria10_socdk_sdmmc.dts >>>>>> @@ -24,6 +24,7 @@ >>>>>> }; >>>>>> &uart1 { >>>>>> + clock-frequency = <50000000>; >>>>>> u-boot,dm-pre-reloc; >>>>>> status = "okay"; >>>>>> }; >>>>>> diff --git a/include/configs/socfpga_common.h >>>>>> b/include/configs/socfpga_common.h >>>>>> index 54b9edc97c..a60da85499 100644 >>>>>> --- a/include/configs/socfpga_common.h >>>>>> +++ b/include/configs/socfpga_common.h >>>>>> @@ -173,14 +173,6 @@ unsigned int >>>>>> cm_get_qspi_controller_clk_hz(void); >>>>>> * Serial Driver >>>>>> */ >>>>>> #define CONFIG_SYS_NS16550_SERIAL >>>>>> -#define CONFIG_SYS_NS16550_REG_SIZE -4 >>>>>> -#if defined(CONFIG_TARGET_SOCFPGA_GEN5) >>>>>> -#define CONFIG_SYS_NS16550_COM1 SOCFPGA_UART0_ADDRESS >>>>>> -#define CONFIG_SYS_NS16550_CLK 100000000 >>>>>> -#elif defined(CONFIG_TARGET_SOCFPGA_ARRIA10) >>>>>> -#define CONFIG_SYS_NS16550_COM1 SOCFPGA_UART1_ADDRESS >>>>>> -#define CONFIG_SYS_NS16550_CLK 50000000 >>>>>> -#endif >>>>>> /* >>>>>> * USB >>>>>> >>>>> Unfortunately I saw this just now, but it seems this breaks GEN5 >>>>> SPL? At >>>>> least git-bisect told me that 73172753f4f3351ed1c9d2f6586fc599ce4e728c >>>>> is the first bad commit. >>>>> >>>>> I tested socfpga_socrates_defconfig on my socrates board. >>>>> >>>>> Any idea what's wrong there? >>>> Nope, this should work fine. Can you investigate ? >>> >>> Ok, so after adding "u-boot,dm-pre-reloc" to uart0 in >>> socfpga_cyclone5_socrates.dts, U-Boot works (combined with an old SPL). >> >> Good! >> >>> SPL still does not work. Any idea? How does SPL get the uart? >>> >>> Thanks for any pointers. >> >> Dig around the NS16550 driver . > OK, so my DS-5 debugger shows me it's not the driver that fails but > "malloc_simple()" returns 0x0 when being called from > uclass_get_device_by_seq(). Which is strange because gd->malloc_base is > 0xffffe000.
malloc() returns NULL because it ran out of space ? > Also, gd->fdt_blob is not initialized at the time serial_init() is > called from SPL. Should it be? Because that way, we don't seem to have > dts control over which uart is used as console? > > Simon > -- Best regards, Marek Vasut _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot