
On Sat, Oct 29, 2016 at 12:53:27PM -0500, Adam Ford wrote:
I am trying to utilize Falcon mode on an OMAP3630 (DM3730), but it just hangs, and I was hoping someone might find something obvious that I missed. I am able to boot from NAND through U-boot, so I know my kernel and device tree are OK as are the boot parameters, MLO and U-boot.
I have read through the ./doc/README.falcon, and I read through some of the am33 docs regarding this, and I think I'm doing it right, but I'm obviously missing something.
I have reset my partition structure to: device nand0 <omap2-nand.0>, # parts = 6 #: name size offset mask_flags 0: MLO 0x00080000 0x00000000 0 1: u-boot 0x001c0000 0x00080000 0 2: spl-os 0x00020000 0x00240000 0 3: u-boot-env 0x00020000 0x00260000 0 4: kernel 0x00800000 0x00280000 0 5: fs 0x1f580000 0x00a80000 0
My defines in the header file are set as follows:
#define CONFIG_CMD_SPL_NAND_OFS 0x240000 (matches spl-os offset)
#define CONFIG_SYS_NAND_SPL_KERNEL_OFFS 0x280000 (matches kernel offset)
#define CONFIG_CMD_SPL_WRITE_SIZE 0x2000
#define CONFIG_SYS_TEXT_BASE 0x80100000 #define CONFIG_SPL_BSS_START_ADDR 0x80000000 #define CONFIG_SPL_BSS_MAX_SIZE (512 << 10) /* 512 KB */ #define CONFIG_SYS_SPL_MALLOC_START 0x80208000 #define CONFIG_SYS_SPL_MALLOC_SIZE 0x100000
I build my uImage with LOADADDR=0x80008000
My bootargs are as follows: console=ttyO0,115200n8 ignore_loglevel early_printk no_console_suspend root=ubi0:rootfs rw ubi.mtd=fs noinitrd rootfstype=ubifs rootwait display=15 ignore_loglevel early_printk no_console_suspend mtdparts=omap2-nand.0:512k(MLO),1792k(u-boot),128k(spl-os),128k(u-boot-env),8m(kernel),-(fs)
I can load uImage and fdtimage, then with the bootargs set, I run
spl export fdt $loadaddr - $fdtaddr
## Booting kernel from Legacy Image at 81000000 ... Image Name: Linux-4.9.0-rc2-00040-g9fe68ca-d Image Type: ARM Linux Kernel Image (uncompressed) Data Size: 3869952 Bytes = 3.7 MiB Load Address: 80008000 Entry Point: 80008000 Verifying Checksum ... OK ## Flattened Device Tree blob at 86000000 Booting using the fdt blob at 0x86000000 Loading Kernel Image ... OK Loading Device Tree to 8df1f000, end 8df33114 ... OK subcommand not supported subcommand not supported Loading Device Tree to 8df07000, end 8df1e114 ... OK Argument image is now in RAM: 0x8df07000
I then write this blob to my spl-os partition with the following:
nand write 0x8df07000 spl-os 0x20000
When I eject the SD card and I boot from NAND (attempting) with Falcon it just hangs:
U-Boot SPL 2016.11-rc2-00164-g7904673-dirty (Oct 29 2016 - 10:28:32) Trying to boot from NAND
Does anyone know if I missed a step somewhere, or do I have something configured incorrectly?
OK, just to be clear, did you test reading the uImage and spl-os back in U-Boot and booting those? If so and it works, try enabling DEBUG for SPL and seeing if you get more output.