官方的u-boot似乎开启了LCD和LCD Console。我看到有log: set up a 480x272 LCD console. 然而我自己编的u-boot啥都没有。
请问需要打开那些开关和设置?
我试了下CONFIG_VIDEO_SUNXI 不过没有起作用
离线
f1c100s ? licheepi 官方的 u-boot 默认就开了 lcd, 如果不亮检查硬件配置。
离线
在线
鱼与熊掌 wrote:
f1c100s ? licheepi 官方的 u-boot 默认就开了 lcd, 如果不亮检查硬件配置。
我用的是uboot-2018那个分支,没改什么东西,以前的uboot有这句话:set up a 480x272 LCD console
现在没有了,我感觉还是哪个地方没开
离线
离线
准备试试打开这几个
CONFIG_VIDEO
CONFIG_VIDEO_SUNXI
CONFIG_VIDEO_LOGO
CONFIG_VIDEO_BMP_LOGO
此外还有几个相关config有点晕。。
CONFIG_LCD
CONFIG_XXXX_LCD
CONFIG_SPLASH_SCREEN
离线
请问把config定义到头文件和定义到deconfig有什么区别?
make deconfig和make menuconfig似乎都是把config设置到.config文件
那么头文件里有重复定义的config会被覆盖吗?
离线
达克罗德 wrote:
请问把config定义到头文件和定义到deconfig有什么区别?
make deconfig和make menuconfig似乎都是把config设置到.config文件
那么头文件里有重复定义的config会被覆盖吗?
定义到 deconfig, 而不定义到头文件,主要目的是去耦吧。
我觉得头文件会覆盖 .config 的配置, 代码的编译优先级更改吧。
所以如果有重复定义的宏, gcc 编译会有警告。
在线
晕哥 wrote:
定义到 deconfig, 而不定义到头文件,主要目的是去耦吧。
我觉得头文件会覆盖 .config 的配置, 代码的编译优先级更改吧。
所以如果有重复定义的宏, gcc 编译会有警告。
看到nano-lcd800480以及全志很多地方在头文件里定义config,感觉非常晕。。。
看来大家在改uboot的时候并不是按照官方架构去走,导致我学习uboot的时候感觉非常不清晰。
XBOOT其实架构一致性非常好,我没有任何文档,基本看了几天代码就搞得比较清楚了。
离线
增加了这几个后,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的配置。。。
离线
达克罗德 wrote:
增加了这几个后,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的驱动才能编译通过。改完之后就能用了。
离线
uboot也遇到了背光不亮的问题,用手电照看到屏幕有显示。期待楼主的好消息
离线
gui401 wrote:
uboot也遇到了背光不亮的问题,用手电照看到屏幕有显示。期待楼主的好消息
手电筒,这操作66666
离线
metro wrote:
我遇到过这个问题,发现是因为默认开启了DM_GPIO,在这种情况下会从设备树中搜索指定名称的引脚,所以会返回-EINVAL。
一个解决方案是关闭DM_GPIO,不过ARCH_SUNXI默认select了DM_GPIO,所以需要改一下Kconfig,我记得还要改SPI的驱动才能编译通过。改完之后就能用了。
太好了,你也遇到过,求教怎么关掉DM_GPIO, deconfig里设置不起作用,menuconfig也关不掉
另外,改SPI的驱动是怎么回事?只是改编译错误对吧,我没有用SPI应该不用改吧
离线
达克罗德 wrote:
太好了,你也遇到过,求教怎么关掉DM_GPIO, deconfig里设置不起作用,menuconfig也关不掉
另外,改SPI的驱动是怎么回事?只是改编译错误对吧,我没有用SPI应该不用改吧
晚些时候我给个patch吧。关不掉是因为Kconfig有依赖关系,不过我测试之后发现对于GPIO不开DM似乎可以正常用。
SPI是因为调用了GPIO的功能,不过几个用到DM_GPIO的地方其实都是打印debug信息,所以直接关掉不会有影响,至少SPI Flash可以正常使用。
离线
config ARCH_SUNXI
bool "Support sunxi (Allwinner) SoCs"
。。。
select DM_GPIO
感觉是这个依赖导致的,回家试试
离线
贴一下patch内容。其实很简单,就是把ARCH_SUNXI的select DM_GPIO去掉,顺便修一下相关的编译错误。
另外理论上应该可以保留DM_GPIO,用设备树的方式配置,有兴趣的同学可以试一下 ![]()
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;离线
metro wrote:
贴一下patch内容。其实很简单,就是把ARCH_SUNXI的select DM_GPIO去掉,顺便修一下相关的编译错误。
另外理论上应该可以保留DM_GPIO,用设备树的方式配置,有兴趣的同学可以试一下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;
非常感谢!先用你的方式实现。设备树方式应该最好,不过我不会写。。。
离线
达克罗德 wrote:
非常感谢!先用你的方式实现。设备树方式应该最好,不过我不会写。。。
不客气,我也不会,所以就当抛砖引玉了 ![]()
最近编辑记录 metro (2019-11-27 15:27:50)
离线
感谢楼上几位,成功!就是按照metro的方式关掉DM_GPIO
所有改动见:
https://github.com/nanfang2000/u-boot/commit/1869e2054b5de67112c534becc20de6eac06504e

离线
后面的错应该是我除了uboot,其它比如zImage和rootfs都没有,分区也没有,所以报错
离线
晕哥 wrote:
是 tiky 1508吗?初始化如何做的,电阻跳线,还是时序?
用的专门的gpio做的软spi,应该也可以用硬件spi实现。这几个gpio,据tiky说,甚至可以用LCD的数据线复用
离线
达克罗德 wrote:
用的专门的gpio做的软spi,应该也可以用硬件spi实现。这几个gpio,据tiky说,甚至可以用LCD的数据线复用
3线spi 与 lcd 线复用? 这是什么骚操作, 我怎么还没有学会?
离线
并夕夕 wrote:
3线spi 与 lcd 线复用? 这是什么骚操作, 我怎么还没有学会?
不清楚,我也是听tiky说的,不过我觉得cs脚起码得独立io吧,要不会干扰到spi
离线
晕哥 wrote:
对,cs脚肯定要单独控制。
tiky这个屏是竖屏吗?怎么旋转90度?
你看我初始化代码里有个旋转的宏。其实就是配置一下刷屏的读指针顺序和范围
离线
达克罗德 wrote:
你看我初始化代码里有个旋转的宏。其实就是配置一下刷屏的读指针顺序和范围
请问一下,您上面显示屏上面的log信息怎么取消掉?
离线
达克罗德 wrote:
感谢楼上几位,成功!就是按照metro的方式关掉DM_GPIO
所有改动见:
https://github.com/nanfang2000/u-boot/commit/1869e2054b5de67112c534becc20de6eac06504e
这个屏上面的uboot的启动log
离线
USB 键盘做输入,LCD用作控制台,发现屏幕下方还有内容还没显示出来,例如键盘输入ls,要再输入十多个回车,屏幕才会ls和ls后出现的目录文件,配置是用
ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- make LicheePi_Zero_800x480LCD_defconfig (群主网店5寸屏),各位大佬这怎么回事啊?谢谢
离线
跟核有关系吗?核是5.2. y
离线
@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/
离线
thanks for the informations
最近编辑记录 neotendo (2022-08-22 18:55:43)
离线