[U-Boot] OMAP3630 Falcon Mode Questions

Adam Ford aford173 at gmail.com
Tue Nov 1 00:40:25 CET 2016


On Mon, Oct 31, 2016 at 6:57 AM, Tom Rini <trini at konsulko.com> wrote:
> 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.

I can load the uImage and the created spl-os back and it boots fine. I
enabled DEBUG, but I had to make a tweak to the printf statement to
get the name of Linux to display correctly.

Here is my dump:

U-Boot SPL 2016.11-rc3-00009-g050adda-dirty (Oct 31 2016 - 18:29:40)
Trying to boot from NAND
spl: nand - using hw ecc
spl: payload image: Linux-4.9.0-rc2-00040-g9fe68ca-d load addr: 0x80007fc0 si
ze: 3869936
Jumping to Linux


In order to get to "Jumping to Linux"  I removed some of the default
memory overrides:

>From 050addab9986c35822bbe8f677fb8e7b2c4cb2f6 Mon Sep 17 00:00:00 2001
From: Adam Ford <aford173 at gmail.com>
Date: Mon, 31 Oct 2016 18:19:39 -0500
Subject: [PATCH] OMAP3: omap3_logic_defconfig

Use the SPL info inherited from the common TI files.

diff --git a/include/configs/omap3_logic.h b/include/configs/omap3_logic.h
index 2dcc729..0bff817 100644
--- a/include/configs/omap3_logic.h
+++ b/include/configs/omap3_logic.h
@@ -19,14 +19,10 @@
  * 1MB into the SDRAM to allow for SPL's bss at the beginning of SDRAM
  * 64 bytes before this address should be set aside for u-boot.img's
  * header. That is 0x800FFFC0--0x80100000 should not be used for any
- * other needs.  We use this rather than the inherited defines from
- * ti_armv7_common.h for backwards compatibility.
+ * other needs.
  */
-#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
+/* #define CONFIG_SYS_TEXT_BASE                0x80100000 */
+

 #include <configs/ti_omap3_common.h>

-- 
2.7.4

~

Unfortunately, it still doesn't work, but it gets further along than it used to.

I know I have to be close.  Thanks for all your help.

adam
> --
> Tom


More information about the U-Boot mailing list