Other Parts Discussed in Thread: TPS65218, AM4372, TPS62362, SEGGER,
Hi,
My objective is boot from SPI Flash, however I am getting this error -->>
=> sf probe
Invalid bus 0 (err=-19)
Failed to initialize SPI flash at 0:0 (error -19)
=>
SPI Flash: AT45DB161E
Not able to find drivers in the code, can you please provide the drivers too for AT45DB161E chip.
Please help me resolve this, I am new to this development. The board boots successfully from SD Card.
I am trying to follow this link- 3.1. U-Boot — Processor SDK Linux Documentation for SPI Boot. Are there any other prerequisites before starting with this link. Buildroot is used as base code.
Thx,
Kiran.
U-Boot SPL 2017.01 (Dec 30 2021 - 11:21:36) Trying to boot from MMC1 SPL: Please implement spl_start_uboot() for your board SPL: Direct Linux boot not active! reading u-boot.img reading u-boot.img reading u-boot.img No matching DT out of these options: tco_am437x_pascal U-Boot 2017.01 (Dec 30 2021 - 11:21:36 +0530) CPU : AM437X-GP rev 1.2 Model: TI AM437x GP EVM DRAM: 512 MiB PMIC: TPS65218 MMC: OMAP SD/MMC: 0, OMAP SD/MMC: 1 reading uboot.env ** Unable to read "uboot.env" from mmc0:1 ** Using default environment Net: <ethaddr> not set. Validating first E-fuse MAC Could not get PHY for cpsw: addr 0 cpsw, usb_ether Hit any key to stop autoboot: 0 0 => => => => => => => => dm tree Class Probed Name ---------------------------------------- root [ + ] root_driver simple_bus [ + ] `-- ocp simple_bus [ ] |-- l4_wkup@44c00000 simple_bus [ ] | `-- scm@210000 serial [ + ] |-- serial@44e09000 serial [ ] |-- serial@481a8000 timer [ + ] |-- timer@48040000 gpio [ + ] |-- gpio@44e07000 gpio [ + ] |-- gpio@4804c000 gpio [ + ] |-- gpio@481ae000 gpio [ + ] |-- gpio@48320000 gpio [ + ] |-- gpio@48322000 i2c [ + ] `-- i2c@44e0b000 i2c_generic [ + ] `-- generic_24 => Class Probed Name ---------------------------------------- root [ + ] root_driver simple_bus [ + ] `-- ocp simple_bus [ ] |-- l4_wkup@44c00000 simple_bus [ ] | `-- scm@210000 serial [ + ] |-- serial@44e09000 serial [ ] |-- serial@481a8000 timer [ + ] |-- timer@48040000 gpio [ + ] |-- gpio@44e07000 gpio [ + ] |-- gpio@4804c000 gpio [ + ] |-- gpio@481ae000 gpio [ + ] |-- gpio@48320000 gpio [ + ] |-- gpio@48322000 i2c [ + ] `-- i2c@44e0b000 i2c_generic [ + ] `-- generic_24 => sf probe Invalid bus 0 (err=-19) Failed to initialize SPI flash at 0:0 (error -19) => => mmc rescan => => mmc part Partition Map for MMC device 0 -- Partition Type: DOS Part Start Sector Num Sectors UUID Type 1 2048 102400 2c09d3d2-01 0e Boot 2 104448 1024000 2c09d3d2-02 83 3 1128448 204800 2c09d3d2-03 83 4 1333248 6072320 2c09d3d2-04 0c => Partition Map for MMC device 0 -- Partition Type: DOS Part Start Sector Num Sectors UUID Type 1 2048 102400 2c09d3d2-01 0e Boot 2 104448 1024000 2c09d3d2-02 83 3 1128448 204800 2c09d3d2-03 83 4 1333248 6072320 2c09d3d2-04 0c => sf probe 0:0 Invalid bus 0 (err=-19) Failed to initialize SPI flash at 0:0 (error -19) => Invalid bus 0 (err=-19) Failed to initialize SPI flash at 0:0 (error -19) => U-Boot SPL 2017.01 (Dec 30 2021 - 11:21:36) Trying to boot from MMC1 SPL: Please implement spl_start_uboot() for your board SPL: Direct Linux boot not active! reading u-boot.img reading u-boot.img reading u-boot.img No matching DT out of these options: tco_am437x_pascal U-Boot 2017.01 (Dec 30 2021 - 11:21:36 +0530) CPU : AM437X-GP rev 1.2 Model: TI AM437x GP EVM DRAM: 512 MiB PMIC: TPS65218 MMC: OMAP SD/MMC: 0, OMAP SD/MMC: 1 reading uboot.env ** Unable to read "uboot.env" from mmc0:1 ** Using default environment #
dts snap:
&spi0 {
pinctrl-names = "default";
pinctrl-0 = <&spi0_pins>;
status = "okay";
ti,spi-num-cs = <3>;
/* D0 for MOSI, D1 for MISO */
ti,pindir-d0-out-d1-in = <1>;
/* 2MiB flash. Contains U-boot. */
at45db161e@0 {
compatible = "atmel,at45", "atmel,dataflash";
reg = <0>;
/* Max speed of OMAP SPI controller is 48MHz. The flash can handle 70MHz. */
spi-max-frequency = <1000000>;
partitions {
compatible = "fixed-partitions";
#address-cells = <1>;
#size-cells = <1>;
spl {
reg = <0x0 0x020000>; //128KiB
read-only;
};
uboot {
reg = <0x020000 0x080000>; //512KiB
read-only;
};
env {
reg = <0x0A0000 0x02000>; //8KiB
};
extra {
reg = <0x0A2000 0x15e000>; //1400KiB
};
};
};
};
dtsi snap:
target-module@30000 { /* 0x48030000, ap 65 08.0 */
compatible = "ti,sysc-omap2", "ti,sysc";
ti,hwmods = "spi0";
reg = <0x30000 0x4>,
<0x30110 0x4>,
<0x30114 0x4>;
reg-names = "rev", "sysc", "syss";
ti,sysc-mask = <(SYSC_OMAP2_CLOCKACTIVITY |
SYSC_OMAP2_SOFTRESET |
SYSC_OMAP2_AUTOIDLE)>;
ti,sysc-sidle = <SYSC_IDLE_FORCE>,
<SYSC_IDLE_NO>,
<SYSC_IDLE_SMART>;
ti,syss-mask = <1>;
/* Domains (P, C): per_pwrdm, l4ls_clkdm */
clocks = <&l4ls_clkctrl AM4_L4LS_SPI0_CLKCTRL 0>;
clock-names = "fck";
#address-cells = <1>;
#size-cells = <1>;
ranges = <0x0 0x30000 0x1000>;
spi0: spi@0 {
compatible = "ti,am4372-mcspi","ti,omap4-mcspi";
reg = <0x0 0x400>;
interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>;
#address-cells = <1>;
#size-cells = <0>;
status = "disabled";
};
};