您尚未登录。

楼主 #1 2019-11-26 10:07:15

达克罗德
会员
注册时间: 2018-04-10
已发帖子: 1,138
积分: 1090.5

u-boot如何开启LCD 和 LOGO?

官方的u-boot似乎开启了LCD和LCD Console。我看到有log: set up a 480x272 LCD console. 然而我自己编的u-boot啥都没有。
请问需要打开那些开关和设置?
我试了下CONFIG_VIDEO_SUNXI 不过没有起作用

离线

#2 2019-11-26 10:13:48

鱼与熊掌
会员
注册时间: 2019-11-26
已发帖子: 5
积分: 5

Re: u-boot如何开启LCD 和 LOGO?

f1c100s ? licheepi 官方的 u-boot 默认就开了 lcd, 如果不亮检查硬件配置。

离线

#3 2019-11-26 10:30:35

晕哥
管理员
注册时间: 2017-09-06
已发帖子: 9,342
积分: 9202

离线

楼主 #4 2019-11-26 10:41:08

达克罗德
会员
注册时间: 2018-04-10
已发帖子: 1,138
积分: 1090.5

Re: u-boot如何开启LCD 和 LOGO?

鱼与熊掌 说:

f1c100s ? licheepi 官方的 u-boot 默认就开了 lcd, 如果不亮检查硬件配置。

我用的是uboot-2018那个分支,没改什么东西,以前的uboot有这句话:set up a 480x272 LCD console
现在没有了,我感觉还是哪个地方没开

离线

#5 2019-11-26 10:49:47

晕哥
管理员
注册时间: 2017-09-06
已发帖子: 9,342
积分: 9202

Re: u-boot如何开启LCD 和 LOGO?

烧这个固件可以亮吗: https://whycan.cn/t_2689.html





离线

楼主 #6 2019-11-26 10:53:57

达克罗德
会员
注册时间: 2018-04-10
已发帖子: 1,138
积分: 1090.5

离线

楼主 #7 2019-11-26 11:21:07

达克罗德
会员
注册时间: 2018-04-10
已发帖子: 1,138
积分: 1090.5

Re: u-boot如何开启LCD 和 LOGO?

准备试试打开这几个
CONFIG_VIDEO
CONFIG_VIDEO_SUNXI
CONFIG_VIDEO_LOGO
CONFIG_VIDEO_BMP_LOGO

此外还有几个相关config有点晕。。
CONFIG_LCD
CONFIG_XXXX_LCD
CONFIG_SPLASH_SCREEN

离线

楼主 #8 2019-11-26 11:31:42

达克罗德
会员
注册时间: 2018-04-10
已发帖子: 1,138
积分: 1090.5

Re: u-boot如何开启LCD 和 LOGO?

请问把config定义到头文件和定义到deconfig有什么区别?
make deconfig和make menuconfig似乎都是把config设置到.config文件
那么头文件里有重复定义的config会被覆盖吗?

离线

#9 2019-11-26 11:39:08

晕哥
管理员
注册时间: 2017-09-06
已发帖子: 9,342
积分: 9202

Re: u-boot如何开启LCD 和 LOGO?

达克罗德 说:

请问把config定义到头文件和定义到deconfig有什么区别?
make deconfig和make menuconfig似乎都是把config设置到.config文件
那么头文件里有重复定义的config会被覆盖吗?

定义到 deconfig, 而不定义到头文件,主要目的是去耦吧。

我觉得头文件会覆盖 .config 的配置, 代码的编译优先级更改吧。

所以如果有重复定义的宏, gcc 编译会有警告。





离线

楼主 #10 2019-11-26 11:44:37

达克罗德
会员
注册时间: 2018-04-10
已发帖子: 1,138
积分: 1090.5

Re: u-boot如何开启LCD 和 LOGO?

晕哥 说:

定义到 deconfig, 而不定义到头文件,主要目的是去耦吧。

我觉得头文件会覆盖 .config 的配置, 代码的编译优先级更改吧。

所以如果有重复定义的宏, gcc 编译会有警告。

看到nano-lcd800480以及全志很多地方在头文件里定义config,感觉非常晕。。。
看来大家在改uboot的时候并不是按照官方架构去走,导致我学习uboot的时候感觉非常不清晰。
XBOOT其实架构一致性非常好,我没有任何文档,基本看了几天代码就搞得比较清楚了。

离线

楼主 #11 2019-11-27 08:08:16

达克罗德
会员
注册时间: 2018-04-10
已发帖子: 1,138
积分: 1090.5

Re: u-boot如何开启LCD 和 LOGO?

增加了这几个后,log显示“Setting up a 800x480 lcd console (overscan 0x0)“,驱动加载成功
CONFIG_VIDEO_SUNXI=y
CONFIG_VIDEO=y
CONFIG_CFB_CONSOLE=y
CONFIG_VIDEO_LCD_MODE="x:800,y:480,depth:18,pclk_khz:33000,le:16,ri:209,up:22,lo:22,hs:30,vs:1,sync:0,vmode:0"
CONFIG_VIDEO_LCD_BL_PWM_ACTIVE_LOW=n
CONFIG_VIDEO_LCD_BL_PWM="PE6"

不过,背光和显示还是不工作,跟踪背光PIN的设置,发现找PE6的时候,没找到相应管脚,pin为-22,不是正值。。。
看来dts或什么地方还缺少GPIO的配置。。。

离线

#12 2019-11-27 09:10:50

metro
会员
注册时间: 2019-03-09
已发帖子: 445
积分: 489

Re: u-boot如何开启LCD 和 LOGO?

达克罗德 说:

增加了这几个后,log显示“Setting up a 800x480 lcd console (overscan 0x0)“,驱动加载成功
CONFIG_VIDEO_SUNXI=y
CONFIG_VIDEO=y
CONFIG_CFB_CONSOLE=y
CONFIG_VIDEO_LCD_MODE="x:800,y:480,depth:18,pclk_khz:33000,le:16,ri:209,up:22,lo:22,hs:30,vs:1,sync:0,vmode:0"
CONFIG_VIDEO_LCD_BL_PWM_ACTIVE_LOW=n
CONFIG_VIDEO_LCD_BL_PWM="PE6"

不过,背光和显示还是不工作,跟踪背光PIN的设置,发现找PE6的时候,没找到相应管脚,pin为-22,不是正值。。。
看来dts或什么地方还缺少GPIO的配置。。。

我遇到过这个问题,发现是因为默认开启了DM_GPIO,在这种情况下会从设备树中搜索指定名称的引脚,所以会返回-EINVAL。
一个解决方案是关闭DM_GPIO,不过ARCH_SUNXI默认select了DM_GPIO,所以需要改一下Kconfig,我记得还要改SPI的驱动才能编译通过。改完之后就能用了。

离线

#13 2019-11-27 10:20:04

gui401
会员
注册时间: 2019-10-25
已发帖子: 45
积分: 29.5

Re: u-boot如何开启LCD 和 LOGO?

uboot也遇到了背光不亮的问题,用手电照看到屏幕有显示。期待楼主的好消息

离线

#14 2019-11-27 10:25:22

jimmy
会员
注册时间: 2017-10-29
已发帖子: 316
积分: 315

Re: u-boot如何开启LCD 和 LOGO?

gui401 说:

uboot也遇到了背光不亮的问题,用手电照看到屏幕有显示。期待楼主的好消息

手电筒,这操作66666

离线

楼主 #15 2019-11-27 10:26:59

达克罗德
会员
注册时间: 2018-04-10
已发帖子: 1,138
积分: 1090.5

Re: u-boot如何开启LCD 和 LOGO?

metro 说:

我遇到过这个问题,发现是因为默认开启了DM_GPIO,在这种情况下会从设备树中搜索指定名称的引脚,所以会返回-EINVAL。
一个解决方案是关闭DM_GPIO,不过ARCH_SUNXI默认select了DM_GPIO,所以需要改一下Kconfig,我记得还要改SPI的驱动才能编译通过。改完之后就能用了。

太好了,你也遇到过,求教怎么关掉DM_GPIO, deconfig里设置不起作用,menuconfig也关不掉
另外,改SPI的驱动是怎么回事?只是改编译错误对吧,我没有用SPI应该不用改吧

离线

#16 2019-11-27 10:36:04

metro
会员
注册时间: 2019-03-09
已发帖子: 445
积分: 489

Re: u-boot如何开启LCD 和 LOGO?

达克罗德 说:

太好了,你也遇到过,求教怎么关掉DM_GPIO, deconfig里设置不起作用,menuconfig也关不掉
另外,改SPI的驱动是怎么回事?只是改编译错误对吧,我没有用SPI应该不用改吧

晚些时候我给个patch吧。关不掉是因为Kconfig有依赖关系,不过我测试之后发现对于GPIO不开DM似乎可以正常用。
SPI是因为调用了GPIO的功能,不过几个用到DM_GPIO的地方其实都是打印debug信息,所以直接关掉不会有影响,至少SPI Flash可以正常使用。

离线

楼主 #17 2019-11-27 10:44:33

达克罗德
会员
注册时间: 2018-04-10
已发帖子: 1,138
积分: 1090.5

Re: u-boot如何开启LCD 和 LOGO?

config ARCH_SUNXI
    bool "Support sunxi (Allwinner) SoCs"
。。。
    select DM_GPIO

感觉是这个依赖导致的,回家试试

离线

#18 2019-11-27 14:56:01

metro
会员
注册时间: 2019-03-09
已发帖子: 445
积分: 489

Re: u-boot如何开启LCD 和 LOGO?

贴一下patch内容。其实很简单,就是把ARCH_SUNXI的select DM_GPIO去掉,顺便修一下相关的编译错误。
另外理论上应该可以保留DM_GPIO,用设备树的方式配置,有兴趣的同学可以试一下 tongue

diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 918424a..8f68be1 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -697,7 +697,6 @@ config ARCH_SUNXI
        select CMD_USB if DISTRO_DEFAULTS
        select DM
        select DM_ETH
-       select DM_GPIO
        select DM_KEYBOARD
        select DM_SERIAL
        select DM_USB if DISTRO_DEFAULTS
diff --git a/drivers/spi/sun6i_spi.c b/drivers/spi/sun6i_spi.c
index 750c4d8..dabf661 100644
--- a/drivers/spi/sun6i_spi.c
+++ b/drivers/spi/sun6i_spi.c
@@ -10,9 +10,7 @@
  */

 #include <common.h>
-#ifdef CONFIG_DM_GPIO
 #include <asm/gpio.h>
-#endif
 #include <asm/io.h>
 #include <asm/arch/clock.h>
 #include <dm.h>
@@ -103,10 +101,10 @@ static int sunxi_spi_cs_activate(struct udevice *dev, unsigned cs)
        struct sunxi_spi_reg *spi = (struct sunxi_spi_reg *)plat->base;
        struct sunxi_spi_privdata *priv = dev_get_priv(bus);
        int ret = 0;
-
+#if 0
        debug("%s (%s): cs %d cs_gpios_num %d cs_gpios %p\n",
              dev->name, __func__, cs, plat->cs_gpios_num, plat->cs_gpios);
-
+#endif
        /* If it's too soon to do another transaction, wait... */
        if (plat->deactivate_delay_us && priv->last_transaction_us) {
                ulong delay_us;

离线

楼主 #19 2019-11-27 15:12:08

达克罗德
会员
注册时间: 2018-04-10
已发帖子: 1,138
积分: 1090.5

Re: u-boot如何开启LCD 和 LOGO?

metro 说:

贴一下patch内容。其实很简单,就是把ARCH_SUNXI的select DM_GPIO去掉,顺便修一下相关的编译错误。
另外理论上应该可以保留DM_GPIO,用设备树的方式配置,有兴趣的同学可以试一下 tongue

diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 918424a..8f68be1 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -697,7 +697,6 @@ config ARCH_SUNXI
        select CMD_USB if DISTRO_DEFAULTS
        select DM
        select DM_ETH
-       select DM_GPIO
        select DM_KEYBOARD
        select DM_SERIAL
        select DM_USB if DISTRO_DEFAULTS
diff --git a/drivers/spi/sun6i_spi.c b/drivers/spi/sun6i_spi.c
index 750c4d8..dabf661 100644
--- a/drivers/spi/sun6i_spi.c
+++ b/drivers/spi/sun6i_spi.c
@@ -10,9 +10,7 @@
  */

 #include <common.h>
-#ifdef CONFIG_DM_GPIO
 #include <asm/gpio.h>
-#endif
 #include <asm/io.h>
 #include <asm/arch/clock.h>
 #include <dm.h>
@@ -103,10 +101,10 @@ static int sunxi_spi_cs_activate(struct udevice *dev, unsigned cs)
        struct sunxi_spi_reg *spi = (struct sunxi_spi_reg *)plat->base;
        struct sunxi_spi_privdata *priv = dev_get_priv(bus);
        int ret = 0;
-
+#if 0
        debug("%s (%s): cs %d cs_gpios_num %d cs_gpios %p\n",
              dev->name, __func__, cs, plat->cs_gpios_num, plat->cs_gpios);
-
+#endif
        /* If it's too soon to do another transaction, wait... */
        if (plat->deactivate_delay_us && priv->last_transaction_us) {
                ulong delay_us;

非常感谢!先用你的方式实现。设备树方式应该最好,不过我不会写。。。

离线

#20 2019-11-27 15:27:35

metro
会员
注册时间: 2019-03-09
已发帖子: 445
积分: 489

Re: u-boot如何开启LCD 和 LOGO?

达克罗德 说:

非常感谢!先用你的方式实现。设备树方式应该最好,不过我不会写。。。

不客气,我也不会,所以就当抛砖引玉了 lol

最近编辑记录 metro (2019-11-27 15:27:50)

离线

楼主 #21 2019-11-27 23:08:48

达克罗德
会员
注册时间: 2018-04-10
已发帖子: 1,138
积分: 1090.5

Re: u-boot如何开启LCD 和 LOGO?

感谢楼上几位,成功!就是按照metro的方式关掉DM_GPIO
所有改动见:
https://github.com/nanfang2000/u-boot/commit/1869e2054b5de67112c534becc20de6eac06504e

WechatIMG606.jpeg

离线

楼主 #22 2019-11-27 23:10:05

达克罗德
会员
注册时间: 2018-04-10
已发帖子: 1,138
积分: 1090.5

Re: u-boot如何开启LCD 和 LOGO?

后面的错应该是我除了uboot,其它比如zImage和rootfs都没有,分区也没有,所以报错

离线

#23 2019-11-27 23:29:14

晕哥
管理员
注册时间: 2017-09-06
已发帖子: 9,342
积分: 9202

Re: u-boot如何开启LCD 和 LOGO?

是 tiky 1508吗?初始化如何做的,电阻跳线,还是时序?





离线

楼主 #24 2019-11-28 00:47:01

达克罗德
会员
注册时间: 2018-04-10
已发帖子: 1,138
积分: 1090.5

Re: u-boot如何开启LCD 和 LOGO?

晕哥 说:

是 tiky 1508吗?初始化如何做的,电阻跳线,还是时序?

用的专门的gpio做的软spi,应该也可以用硬件spi实现。这几个gpio,据tiky说,甚至可以用LCD的数据线复用

离线

#25 2019-11-28 07:40:03

并夕夕
会员
注册时间: 2019-11-24
已发帖子: 32
积分: 32

Re: u-boot如何开启LCD 和 LOGO?

达克罗德 说:

用的专门的gpio做的软spi,应该也可以用硬件spi实现。这几个gpio,据tiky说,甚至可以用LCD的数据线复用

3线spi 与 lcd 线复用? 这是什么骚操作, 我怎么还没有学会?

离线

楼主 #26 2019-11-28 09:33:28

达克罗德
会员
注册时间: 2018-04-10
已发帖子: 1,138
积分: 1090.5

Re: u-boot如何开启LCD 和 LOGO?

并夕夕 说:

3线spi 与 lcd 线复用? 这是什么骚操作, 我怎么还没有学会?

不清楚,我也是听tiky说的,不过我觉得cs脚起码得独立io吧,要不会干扰到spi

离线

#27 2019-11-28 09:41:57

晕哥
管理员
注册时间: 2017-09-06
已发帖子: 9,342
积分: 9202

Re: u-boot如何开启LCD 和 LOGO?

达克罗德 说:

不清楚,我也是听tiky说的,不过我觉得cs脚起码得独立io吧,要不会干扰到spi

对,cs脚肯定要单独控制。

tiky这个屏是竖屏吗?怎么旋转90度?





离线

楼主 #28 2019-11-28 13:20:20

达克罗德
会员
注册时间: 2018-04-10
已发帖子: 1,138
积分: 1090.5

Re: u-boot如何开启LCD 和 LOGO?

晕哥 说:

对,cs脚肯定要单独控制。

tiky这个屏是竖屏吗?怎么旋转90度?

你看我初始化代码里有个旋转的宏。其实就是配置一下刷屏的读指针顺序和范围

离线

#29 2020-08-12 13:59:49

jkl
会员
注册时间: 2019-11-18
已发帖子: 263
积分: 146.5

Re: u-boot如何开启LCD 和 LOGO?

达克罗德 说:

你看我初始化代码里有个旋转的宏。其实就是配置一下刷屏的读指针顺序和范围

请问一下,您上面显示屏上面的log信息怎么取消掉?

离线

#30 2020-08-12 14:00:16

jkl
会员
注册时间: 2019-11-18
已发帖子: 263
积分: 146.5

Re: u-boot如何开启LCD 和 LOGO?

达克罗德 说:

这个屏上面的uboot的启动log

离线

#31 2021-12-10 09:41:07

andrewchen175
会员
注册时间: 2020-04-26
已发帖子: 24
积分: 24

Re: u-boot如何开启LCD 和 LOGO?

USB 键盘做输入,LCD用作控制台,发现屏幕下方还有内容还没显示出来,例如键盘输入ls,要再输入十多个回车,屏幕才会ls和ls后出现的目录文件,配置是用
ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- make LicheePi_Zero_800x480LCD_defconfig (群主网店5寸屏),各位大佬这怎么回事啊?谢谢

离线

#32 2021-12-10 10:07:47

andrewchen175
会员
注册时间: 2020-04-26
已发帖子: 24
积分: 24

Re: u-boot如何开启LCD 和 LOGO?

跟核有关系吗?核是5.2. y

离线

#33 2022-08-15 14:34:25

qifengle
会员
注册时间: 2022-07-26
已发帖子: 1
积分: 1

Re: u-boot如何开启LCD 和 LOGO?

@metro
感谢提醒,在suniv-f1c100s-licheepi-nano.dts里面添加下面的设备节点就可是使用gpio_requist()了
pinctrl: pinctrl@1c20800 {
        compatible = "allwinner,sun4i-a10-pinctrl";
        reg = <0x01c20800 0x2c4>;
        #address-cells = <1>;
        #size-cells = <1>;
        pa: pa {
            gpio-controller;
            #gpio-cells = <2>;
        }; 
       
        pb: pb {
            gpio-controller;
            #gpio-cells = <2>;
        };
       
        pc: pc {
            gpio-controller;
            #gpio-cells = <2>;
        };
       
        pd: pd {
            gpio-controller;
            #gpio-cells = <2>;
        };
       
        pe: pe {
            gpio-controller;
            #gpio-cells = <2>;
        };
       
        pf: pf {
            gpio-controller;
            #gpio-cells = <2>;
        };
    };
引用:https://www.freesion.com/article/368464004/

离线

#34 2022-08-22 18:48:01

neotendo
会员
注册时间: 2022-08-19
已发帖子: 180
积分: 203

Re: u-boot如何开启LCD 和 LOGO?

thanks for the informations

最近编辑记录 neotendo (2022-08-22 18:55:43)

离线

页脚

工信部备案:粤ICP备20025096号 Powered by FluxBB

感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信(wechat): whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn