WhyCan Forum(哇酷论坛)

人过留名,雁过留声,感谢各位朋友不离不弃地支持。 QQ: 516333132, 微信: whycan_cn (哇酷网/挖坑网/填坑网) admin@whycan.cn

您尚未登录。

#1 2020-01-30 17:53:03

达克罗德
会员
注册时间: 2018-04-10
累计积分: 735

求助:A33主线uboot跑起来了,但是无法从emmc启动

A33开发板买的这一家: https://item.taobao.com/item.htm?spm=a1z09.2.0.0.16a02e8dC4lcxZ&id=589094110822&_u=uc9cub3400
是4GB eMMC, 512MB内存的配置。

uboot直接用的主线最新2020.1版本,defconfig用的是Sinlinx_SinA33_defconfig

生成的u-boot-sunxi-with-spl.bin用sunxi-fel的uboot命令可以跑起来:

sunxi-fel uboot u-boot-sunxi-with-spl.bin

主线uboot驱动很完善,LCD console直接跑起来,而且支持USB Mass Storage 和Gadget等

->mmc list
   mmc@01c0f000: 0 (SD)
   mmc@01c11000: 1 (eMMC)

然后敲入ums命令【需在menuconfig中选上UMS命令】

ums 2 mmc 1

即可把 eMMC 设置成 USB Mass Storage设备(PC上识别为/dev/sdb)

但是接下来把uboot烧到8k地址不起作用,不能启动。我的命令是:

sudo dd if=u-boot-sunxi-with-spl.bin of=/dev/sdb bs=1024 seek=8

没有串口打印,但屏幕也无显示,不过背光能亮起来,感觉还是有什么程序跑起来的样子,只是中断了

参考文档:
https://www.olimex.com/wiki/ArmbianHowTo#Update_SD.2FeMMC_card

离线

#2 2020-01-30 18:14:49

smartcar
会员
注册时间: 2018-02-19
累计积分: 515

Re: 求助:A33主线uboot跑起来了,但是无法从emmc启动

这个的默认串口是哪一组,骚到zksw的板子不知道能不能跑,他用的是 spi nor flash

离线

#3 2020-01-30 18:45:15

sea18c
会员
注册时间: 2019-08-05
累计积分: 61

Re: 求助:A33主线uboot跑起来了,但是无法从emmc启动

又准备开车

离线

#4 2020-01-30 18:46:56

达克罗德
会员
注册时间: 2018-04-10
累计积分: 735

Re: 求助:A33主线uboot跑起来了,但是无法从emmc启动

smartcar 说:

这个的默认串口是哪一组,骚到zksw的板子不知道能不能跑,他用的是 spi nor flash

这个默认用的PB2那个串口,我也是搞了好久才搞清楚,在我板子上是uart2
而且spl用的是PF的那个串口0,和uboot不一样。
你的板子得自己试一下了

离线

#5 2020-01-30 20:34:38

颜水花生
会员
注册时间: 2019-11-20
累计积分: 43

Re: 求助:A33主线uboot跑起来了,但是无法从emmc启动

楼主加油,观望中,今年还打算设计个A33demo板玩玩的,A33性价比太高

离线

#6 2020-02-01 13:46:46

流氓兔
会员
注册时间: 2020-02-01
累计积分: 34

Re: 求助:A33主线uboot跑起来了,但是无法从emmc启动

#git clone https://github.com/linux-sunxi/sunxi-tools

#make

#./sunxi-fel -p spiflash-info
SPI support not implemented yet for 1667 (A33)!


居然不支持 A33 spiflash 命令, 失望中.

离线

#7 2020-02-01 14:55:17

流氓兔
会员
注册时间: 2020-02-01
累计积分: 34

Re: 求助:A33主线uboot跑起来了,但是无法从emmc启动

ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- make Sinlinx_SinA33_defconfig

ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- make

/opt/a33/sunxi-tools/sunxi-fel uboot u-boot-sunxi-with-spl.bin

UART2 串口输出 :

U-Boot SPL 2017.01-rc1-00065-g53e8ca2253 (Feb 01 2020 - 14:45:47)
DRAM: 256 MiB

然后就没然后了, 请问楼主, 这是什么原因呢?我用的是 中科世为的A33板子:
https://item.taobao.com/item.htm?id=606632960791

离线

#8 2020-02-01 17:58:37

达克罗德
会员
注册时间: 2018-04-10
累计积分: 735

Re: 求助:A33主线uboot跑起来了,但是无法从emmc启动

流氓兔 说:

UART2 串口输出 :


然后就没然后了, 请问楼主, 这是什么原因呢?我用的是 中科世为的A33板子:
https://item.taobao.com/item.htm?id=606632960791

SPL用的串口和uboot用得不一样。
uboot的dts可以看到:

	uart0_pins_b: uart0@1 {
		pins = "PB0", "PB1";
		function = "uart0";
	};

所以你要查查这个串口
而且uboot里有个选项,可以选TF卡上的那个uart0,你可以试一下

离线

#9 2020-02-01 18:42:21

流氓兔
会员
注册时间: 2020-02-01
累计积分: 34

Re: 求助:A33主线uboot跑起来了,但是无法从emmc启动

arch/arm/dts/sun8i-a33.dtsi

&pio {
        compatible = "allwinner,sun8i-a33-pinctrl";
        interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>,
                     <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>;

        uart0_pins_b: uart0@1 {
                allwinner,pins = "PB0", "PB1";
                allwinner,function = "uart0";
                allwinner,drive = <SUN4I_PINCTRL_10_MA>;
                allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
        };

};

arch/arm/dts/sun8i-a33-sinlinx-sina33.dts

&uart0 {
        pinctrl-names = "default";
        pinctrl-0 = <&uart0_pins_b>;
        status = "okay";
};

感谢楼上兄弟回复, 看起来确实是 uart0, 我试一试看会不会改吧.

离线

#10 2020-02-01 19:09:13

流氓兔
会员
注册时间: 2020-02-01
累计积分: 34

Re: 求助:A33主线uboot跑起来了,但是无法从emmc启动

刚刚核对了 SV50PC核心板硬件使用说明.pdf 手册, 发现我接的就是 PB0/PB1,

这个配置也是uart0:
include/configs/sunxi-common.h

#define CONFIG_CONS_INDEX              1       /* UART0 */




然后我烧到tf卡跑, 也是一模一样问题:
QQ图片20200201191426.png



那为什么运行不正常呢?会不会和dram 配置有关系?

离线

#11 2020-02-01 19:34:11

流氓兔
会员
注册时间: 2020-02-01
累计积分: 34

Re: 求助:A33主线uboot跑起来了,但是无法从emmc启动

找到SINA33 SDK包了: https://yun.baidu.com/s/1i37T6vz

离线

#12 2020-02-01 22:20:40

shaoxi2010
会员
注册时间: 2019-06-13
累计积分: 51

Re: 求助:A33主线uboot跑起来了,但是无法从emmc启动

这个我知道,你得先去把emmc的boot0下的spl清空,除非你换个新片子,当时浪费了好多时间。(手动滑稽)
还有emmc和nand都可以正常启动的

离线

#13 2020-02-02 02:38:29

达克罗德
会员
注册时间: 2018-04-10
累计积分: 735

Re: 求助:A33主线uboot跑起来了,但是无法从emmc启动

shaoxi2010 说:

这个我知道,你得先去把emmc的boot0下的spl清空,除非你换个新片子,当时浪费了好多时间。(手动滑稽)
还有emmc和nand都可以正常启动的

太谢谢了,emmc确实原来烧过全志的SDK镜像。但我把emmc作为USB Mass Storage Gadget连到PC然后重新分区了,为什么还会有这个现象?这个boot0的SPL在什么位置?

离线

#14 2020-02-02 02:46:28

达克罗德
会员
注册时间: 2018-04-10
累计积分: 735

Re: 求助:A33主线uboot跑起来了,但是无法从emmc启动

查了一下,boot0似乎就是8KB位置,我的u-boot-sunxi-with-spl也是写的这个位置,难道不会覆盖吗?
https://blog.csdn.net/weixin_43094346/article/details/82563873

一. Boot0 固件更新:(通常boot0 不需要更新)
命令:dd if=boot0_sdcard.fex of=/dev/block/mmcblk0 bs=512 count=S1 seek=S2
备注1: boot0_sdcard.fex 是boot0_sdcard_sun8iw5p1.bin 在pack 命令之后产生
备注2: S1=32K/512 S2= BOOT0_SDMMC_START_ADDR

离线

#15 2020-02-02 16:47:52

达克罗德
会员
注册时间: 2018-04-10
累计积分: 735

Re: 求助:A33主线uboot跑起来了,但是无法从emmc启动

神奇的发现,无论我覆盖写多少次,甚至重新分区,原来的BSP Linux的boot0,uboot甚至Linux都还在
emmc分区后确实起效了,重启也识别分区正常。但是原来的BSP boot0和uboot为什么还能正常工作呢,太奇怪了

离线

#16 2020-02-02 20:32:31

ippen
会员
注册时间: 2018-07-22
累计积分: 291

Re: 求助:A33主线uboot跑起来了,但是无法从emmc启动

emmc重新分区不会覆盖8K位置的数据,试一下用0将emmc前10M清零,dd if=/dev/zero of=/dev/mmcblk0 bs=1M count=10

离线

#17 2020-02-02 21:05:43

流氓兔
会员
注册时间: 2020-02-01
累计积分: 34

Re: 求助:A33主线uboot跑起来了,但是无法从emmc启动

流氓兔 说:

然后我烧到tf卡跑, 也是一模一样问题:
QQ图片20200201191426.png
那为什么运行不正常呢?会不会和dram 配置有关系?

问题解决了,把DRAM和CPU频率都降下来:

CONFIG_DRAM_CLK=133
CONFIG_SYS_CLK_FREQ=600000000

现在正常启动了:

U-Boot SPL 2017.01-rc1-00065-g53e8ca2253 (Feb 02 2020 - 15:08:02)
DRAM: 256 MiB
Trying to boot from FEL

U-Boot 2017.01-rc1-00065-g53e8ca2253 (Feb 02 2020 - 15:08:02 +0800) Allwinner Technology

CPU:   Allwinner A33 (SUN8I 1667)
Model: Sinlinx SinA33
DRAM:  256 MiB
MMC:   SUNXI SD/MMC: 0, SUNXI SD/MMC: 1
MMC: no card present
*** Warning - MMC init failed, using default environment

Setting up a 1024x600 lcd console (overscan 0x0)
In:    serial
Out:   vga
Err:   vga
Net:   No ethernet found.
starting USB...
USB0:   USB EHCI 1.00
USB1:   USB OHCI 1.0
scanning bus 0 for devices... 1 USB Device(s) found
Hit any key to stop autoboot:  2  1  0 
MMC: no card present
Card did not respond to voltage select!

USB device 0: unknown device
No ethernet found.
missing environment variable: pxeuuid
missing environment variable: bootfile
Retrieving file: pxelinux.cfg/00000000
No ethernet found.
missing environment variable: bootfile
Retrieving file: pxelinux.cfg/0000000
No ethernet found.
missing environment variable: bootfile
Retrieving file: pxelinux.cfg/000000
No ethernet found.
missing environment variable: bootfile
Retrieving file: pxelinux.cfg/00000
No ethernet found.
missing environment variable: bootfile
Retrieving file: pxelinux.cfg/0000
No ethernet found.
missing environment variable: bootfile
Retrieving file: pxelinux.cfg/000
No ethernet found.
missing environment variable: bootfile
Retrieving file: pxelinux.cfg/00
No ethernet found.
missing environment variable: bootfile
Retrieving file: pxelinux.cfg/0
No ethernet found.
missing environment variable: bootfile
Retrieving file: pxelinux.cfg/default-arm-sunxi
No ethernet found.
missing environment variable: bootfile
Retrieving file: pxelinux.cfg/default-arm
No ethernet found.
missing environment variable: bootfile
Retrieving file: pxelinux.cfg/default
No ethernet found.
Config file not found
No ethernet found.
No ethernet found.
=> 

离线

#18 2020-02-03 01:30:12

达克罗德
会员
注册时间: 2018-04-10
累计积分: 735

Re: 求助:A33主线uboot跑起来了,但是无法从emmc启动

谢谢晕哥以及楼上几位,我终于搞明白了。原来emmc有芯片级的boot,RPMB,GPP,UDA等分区,是正常情况下不可见的(或者选择其中一个)。我们平常访问和创建文件系统的是UDA分区。我板子上默认使能的是boot0分区启动,所以我无论怎么烧写uboot,其实都是烧到UDA分区,下次上电还是从boot0分区启动老的uboot。
参考:
https://www.cnblogs.com/helloworldtoyou/p/6053460.html?utm_source=itdadao&utm_medium=referral
https://www.cnblogs.com/arnoldlu/p/10762009.html

解决方法:
打开uboot的CONFIG_SUPPORT_EMMC_BOOT
在uboot设置从UDA(7)启动

mmc partconf 1 0 7 0

现在终于可以正常从emmc启动uboot了

U-Boot SPL 2020.01-dirty (Feb 03 2020 - 00:42:31 +0800)
DRAM: 512 MiB
Trying to boot from MMC2


U-Boot 2020.01-dirty (Feb 03 2020 - 00:42:31 +0800) Allwinner Technology

CPU:   Allwinner A33 (SUN8I 1667)
Model: Sinlinx SinA33
DRAM:  512 MiB
MMC:   mmc@1c0f000: 0, mmc@1c11000: 1
Loading Environment from FAT... OK
Setting up a 1024x600 lcd console (overscan 0x0)
In:    serial
Out:   vga
Err:   vga
Allwinner mUSB OTG (Peripheral)
Net:   eth0: usb_ether
Hit any key to stop autoboot:  0 

离线

#19 2020-02-03 14:07:24

shaoxi2010
会员
注册时间: 2019-06-13
累计积分: 51

Re: 求助:A33主线uboot跑起来了,但是无法从emmc启动

哈哈哈哈,说完了我才想起全志的鬼引导也叫boot0,是要去清掉emmc的boot0分区下的spl,目前我只发现A33在这么用,A64等并没有。

离线

页脚