您尚未登录。

楼主 #1 2021-03-11 08:55:12

cloudxxcloud
会员
注册时间: 2021-02-20
已发帖子: 39
积分: 26.5

小智x3 开发板 有从spi flash启动成功的吗?

小智x3 开发板 有从spi flash启动成功的吗?  想从spi flash启动整个系统

离线

楼主 #7 2021-03-13 08:44:05

cloudxxcloud
会员
注册时间: 2021-02-20
已发帖子: 39
积分: 26.5

Re: 小智x3 开发板 有从spi flash启动成功的吗?

cube 说:

这是我们公司做的TF卡烧SPI NOR的量产固件: smallwit_x3_tfcard_自动烧录spinor.tgz

你可以烧到TF卡启动试一试。

一开始是在小智开发板做的,现在都是公司自己做板子了,参考了小智X3的原理图。

你们是自己 移植的spi flash 固件?能提供一些思路吗?

离线

楼主 #8 2021-03-19 08:48:45

cloudxxcloud
会员
注册时间: 2021-02-20
已发帖子: 39
积分: 26.5

Re: 小智x3 开发板 有从spi flash启动成功的吗?

小boot可以正常启动了, uboot 读写spi flash 还有问题

离线

楼主 #9 2021-03-19 16:46:58

cloudxxcloud
会员
注册时间: 2021-02-20
已发帖子: 39
积分: 26.5

Re: 小智x3 开发板 有从spi flash启动成功的吗?

对于 x3

设备树 这样写 有问题吗?

 spi0: spi@01c68000 {
                        compatible = "allwinner,sun8i-h3-spi";
                        reg = <0x01c68000 0x1000>;
                        interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&ccu CLK_BUS_SPI0>, <&ccu CLK_SPI0>;
                        clock-names = "ahb", "mod";
                        pinctrl-names = "default";
                        pinctrl-0 = <&spi0_pins>;
                        resets = <&ccu RST_BUS_SPI0>;
                        status = "disabled";
                        #address-cells = <1>;
                        #size-cells = <0>;
                };

离线

楼主 #10 2021-03-20 13:43:58

cloudxxcloud
会员
注册时间: 2021-02-20
已发帖子: 39
积分: 26.5

Re: 小智x3 开发板 有从spi flash启动成功的吗?

fdtdec_get_config_int: load-environment
uclass_find_device_by_seq: 0 0
   - 0 -1 'spi@1c68000'
   - not found
uclass_find_device_by_seq: 1 0
   - 0 -1 'spi@1c68000'
   - found
uclass_find_device_by_seq: 0 0
   - 0 -1 'spi@1c68000'
   - not found
fdtdec_get_int: spi-activate_delay: (not found)
fdtdec_get_int: spi-deactivate-delay: (not found)
sunxi_spi_ofdata_to_platdata: regs=00000000, activate-delay=0, deactivate-delay=0
sunxi_spi_probe: probe
ofnode_read_u32: spi-max-frequency: (not found)
Invalid chip select 0:0 (err=-19)
*** Warning - spi_flash_probe() failed, using default environment

离线

楼主 #11 2021-03-28 12:49:24

cloudxxcloud
会员
注册时间: 2021-02-20
已发帖子: 39
积分: 26.5

Re: 小智x3 开发板 有从spi flash启动成功的吗?

可以到 uboot了


U-Boot 2017.11-dirty (Mar 27 2021 - 21:06:17 +0800) Allwinner Technology

CPU:   Allwinner A33 (SUN8I 1667)
Model: Sinlinx SinA33
DRAM:  128 MiB
MMC:   SUNXI SD/MMC: 0, SUNXI SD/MMC: 1
sunxi_spi_xfer: taotao.
sunxi_spi_xfer: taotao.
SF: Detected w25q128bv with page size 256 Bytes, erase size 4 KiB, total 16 MiB
sunxi_spi_xfer: taotao.
sunxi_spi_xfer: taotao.
*** Warning - bad CRC, using default environment

Setting up a 1024x600 lcd console (overscan 0x0)
In:    serial
Out:   vga
Err:   vga
Allwinner mUSB OTG (Peripheral)
Net:
Warning: usb_ether using MAC address from ROM
eth0: usb_ether
starting USB...
USB0:   USB EHCI 1.00
USB1:   USB OHCI 1.0
scanning bus 0 for devices... 2 USB Device(s) found
       scanning usb for storage devices... 0 Storage Device(s) found
Hit any key to stop autoboot:  0
sunxi_spi_xfer: taotao.
sunxi_spi_xfer: taotao.
SF: Detected w25q128bv with page size 256 Bytes, erase size 4 KiB, total 16 MiB
device 0 offset 0x100000, size 0x10000
sunxi_spi_xfer: taotao.
sunxi_spi_xfer: taotao.
SF: 65536 bytes @ 0x100000 Read: OK
device 0 offset 0x110000, size 0x400000
sunxi_spi_xfer: taotao.
sunxi_spi_xfer: taotao.
SF: 4194304 bytes @ 0x110000 Read: OK
## Flattened Device Tree blob at 41800000
   Booting using the fdt blob at 0x41800000
   Loading Device Tree to 42f49000, end 42f52086 ... OK
Cannot setup simplefb: node not found

Starting kernel ...

离线

楼主 #12 2021-03-28 12:50:30

cloudxxcloud
会员
注册时间: 2021-02-20
已发帖子: 39
积分: 26.5

Re: 小智x3 开发板 有从spi flash启动成功的吗?

目前卡在 Starting kernel ...,努力解决bug

离线

楼主 #13 2021-03-28 20:20:12

cloudxxcloud
会员
注册时间: 2021-02-20
已发帖子: 39
积分: 26.5

Re: 小智x3 开发板 有从spi flash启动成功的吗?

环境变量是否有错误:

=> print
arch=arm
baudrate=115200
board=sunxi
board_name=sunxi
boot_a_script=load ${devtype} ${devnum}:${distro_bootpart} ${scriptaddr} ${prefix}${script}; source ${scriptaddr}
boot_efi_binary=if fdt addr ${fdt_addr_r}; then bootefi bootmgr ${fdt_addr_r};else bootefi bootmgr ${fdtcontroladdr};fi;load ${devtype} ${devnum}:${distro_bootpart} ${kernel_addr_r} efi/boot/bootarm.efi; if fdt addr ${fdt_addr_r}; then bootefi ${kernel_addr_r} ${fdt_addr_r};else bootefi ${kernel_addr_r} ${fdtcontroladdr};fi
boot_extlinux=sysboot ${devtype} ${devnum}:${distro_bootpart} any ${scriptaddr} ${prefix}extlinux/extlinux.conf
boot_net_usb_start=usb start
boot_prefixes=/ /boot/
boot_script_dhcp=boot.scr.uimg
boot_scripts=boot.scr.uimg boot.scr
boot_targets=fel mmc_auto usb0 pxe dhcp
bootcmd=sf probe 0; sf read 0x41800000 0x100000 0x10000; sf read 0x41000000 0x110000 0x400000; bootz 0x41000000 - 0x41800000
bootcmd_dhcp=run boot_net_usb_start; if dhcp ${scriptaddr} ${boot_script_dhcp}; then source ${scriptaddr}; fi;setenv efi_fdtfile ${fdtfile}; if test -z "${fdtfile}" -a -n "${soc}"; then setenv efi_fdtfile ${soc}-${board}${boardver}.dtb; fi; setenv efi_old_vci ${bootp_vci};setenv efi_old_arch ${bootp_arch};setenv bootp_vci PXEClient:Arch:00010:UNDI:003000;setenv bootp_arch 0xa;if dhcp ${kernel_addr_r}; then tftpboot ${fdt_addr_r} dtb/${efi_fdtfile};if fdt addr ${fdt_addr_r}; then bootefi ${kernel_addr_r} ${fdt_addr_r}; else bootefi ${kernel_addr_r} ${fdtcontroladdr};fi;fi;setenv bootp_vci ${efi_old_vci};setenv bootp_arch ${efi_old_arch};setenv efi_fdtfile;setenv efi_old_arch;setenv efi_old_vci;
bootcmd_fel=if test -n ${fel_booted} && test -n ${fel_scriptaddr}; then echo '(FEL boot)'; source ${fel_scriptaddr}; fi
bootcmd_mmc0=setenv devnum 0; run mmc_boot
bootcmd_mmc1=setenv devnum 1; run mmc_boot
bootcmd_mmc_auto=if test ${mmc_bootdev} -eq 1; then run bootcmd_mmc1; run bootcmd_mmc0; elif test ${mmc_bootdev} -eq 0; then run bootcmd_mmc0; run bootcmd_mmc1; fi
bootcmd_pxe=run boot_net_usb_start; dhcp; if pxe get; then pxe boot; fi
bootcmd_usb0=setenv devnum 0; run usb_boot
bootdelay=2
bootm_size=0x8000000
console=ttyS0,115200
cpu=armv7
dfu_alt_info_ram=kernel ram 0x42000000 0x1000000;fdt ram 0x43000000 0x100000;ramdisk ram 0x43300000 0x4000000
distro_bootcmd=for target in ${boot_targets}; do run bootcmd_${target}; done
efi_dtb_prefixes=/ /dtb/ /dtb/current/
ethaddr=de:ad:be:ef:00:01
fdt_addr_r=0x43000000
fdtcontroladdr=42f53828
fdtfile=sun8i-x3-smallwit-card-taurus.dtb
kernel_addr_r=0x42000000
load_efi_dtb=load ${devtype} ${devnum}:${distro_bootpart} ${fdt_addr_r} ${prefix}${efi_fdtfile}
mmc_boot=if mmc dev ${devnum}; then setenv devtype mmc; run scan_dev_for_boot_part; fi
preboot=usb start
pxefile_addr_r=0x43200000
ramdisk_addr_r=0x43300000
scan_dev_for_boot=echo Scanning ${devtype} ${devnum}:${distro_bootpart}...; for prefix in ${boot_prefixes}; do run scan_dev_for_extlinux; run scan_dev_for_scripts; done;run scan_dev_for_efi;
scan_dev_for_boot_part=part list ${devtype} ${devnum} -bootable devplist; env exists devplist || setenv devplist 1; for distro_bootpart in ${devplist}; do if fstype ${devtype} ${devnum}:${distro_bootpart} bootfstype; then run scan_dev_for_boot; fi; done
scan_dev_for_efi=setenv efi_fdtfile ${fdtfile}; if test -z "${fdtfile}" -a -n "${soc}"; then setenv efi_fdtfile ${soc}-${board}${boardver}.dtb; fi; for prefix in ${efi_dtb_prefixes}; do if test -e ${devtype} ${devnum}:${distro_bootpart} ${prefix}${efi_fdtfile}; then run load_efi_dtb; fi;done;if test -e ${devtype} ${devnum}:${distro_bootpart} efi/boot/bootarm.efi; then echo Found EFI removable media binary efi/boot/bootarm.efi; run boot_efi_binary; echo EFI LOAD FAILED: continuing...; fi; setenv efi_fdtfile
scan_dev_for_extlinux=if test -e ${devtype} ${devnum}:${distro_bootpart} ${prefix}extlinux/extlinux.conf; then echo Found ${prefix}extlinux/extlinux.conf; run boot_extlinux; echo SCRIPT FAILED: continuing...; fi
scan_dev_for_scripts=for script in ${boot_scripts}; do if test -e ${devtype} ${devnum}:${distro_bootpart} ${prefix}${script}; then echo Found U-Boot script ${prefix}${script}; run boot_a_script; echo SCRIPT FAILED: continuing...; fi; done
scriptaddr=0x43100000
serial#=165541530700780d
soc=sunxi
stderr=serial,vga
stdin=serial,usbkbd
stdout=serial,vga
usb_boot=usb start; if usb dev ${devnum}; then setenv devtype usb; run scan_dev_for_boot_part; fi
usbnet_devaddr=de:ad:be:ef:00:01

Environment size: 4514/32764 bytes

离线

页脚

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

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