[U-Boot] [PATCH v6 4/6] arm, da850evm: Add an SPL for SPI boot

Christian Riesch christian.riesch at omicron.at
Wed Dec 14 22:49:01 CET 2011


Hi Tom,
thanks for your reply.

On Wed, Dec 14, 2011 at 8:15 PM, Tom Rini <trini at ti.com> wrote:
> On 12/14/2011 12:09 PM, Christian Riesch wrote:
>> I applied the changes that I did in include/configs/da850evm.h before to
>> da850_am18xxevm.h as well. I expected this to work on my board since the
>> board I used to test the SPI flash SPL patchset for the da850evm was
>> actually an AM1808 experimenter's kit.
>>
>> Now my SPL reports:
>>
>> SF: Unsupported manufacturer 20
>> failed.
>>
>> Manufacturer 0x20 seems to be ST and the main difference between
>> da850evm.h and da850_am18xxevm.h is the missing #define
>> CONFIG_SPI_FLASH_STMICRO in da850_am18xxevm.h.
>>
>> So my question is: Which boards are supported by da850_am18xxevm.h? I
>> thought that I probably have an old revision of the board, but I
>> couldn't find anything regarding SPI flash in LogicPD's PCNs.
>
> So, the da850evm is for the OMAP-L138 and da850_am18xxevm is for the
> AM18xx EVM.  However, the config split was done, I believe, but folks on
> the L138 side and might not have been tried fully on the am1808.  So
> since you've got the AM1808 and can test it there, lets add the missing
> SPI_FLASH define too.  I think my coworker that did a quick non-SPL
> check of the code the other week also noted SPI wasn't supported.

Ok, I can do that.

But then I wonder why a separate .h file for the AM18xx EVM was introduced.
My AM18xx EVM works just fine with the da850evm.h configuration that's
currently in mainline u-boot.

I did a diff between the two:

> --- da850evm.h
> +++ da850_am18xxevm.h
> @@ -1,5 +1,5 @@
>  /*
> - * Copyright (C) 2010 Texas Instruments Incorporated - http://www.ti.com/
> + * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/
>   *
>   * Based on davinci_dvevm.h. Original Copyrights follow:
>   *
> @@ -44,10 +44,7 @@
>  #define CONFIG_SYS_HZ                  1000
>  #define CONFIG_SKIP_LOWLEVEL_INIT
>  #define CONFIG_SYS_TEXT_BASE           0xc1080000
> -#define CONFIG_SYS_ICACHE_OFF
> -#define CONFIG_SYS_DCACHE_OFF
> -#define CONFIG_SYS_L2CACHE_OFF

Pointless because of
http://thread.gmane.org/gmane.comp.boot-loaders.u-boot/116671/focus=118643
So it could be removed.

> -
> +#define CONFIG_DA850_AM18X_EVM

Afaik this is used to pass the information whether this is AM1808 or
OMAP-L138 to the Linux kernel.

>  /*
>   * Memory Info
>   */
> @@ -60,7 +57,7 @@
>  #define CONFIG_SYS_MEMTEST_START       (PHYS_SDRAM_1 + 0x2000000)
>
>  /* memtest will be run on 16MB */
> -#define CONFIG_SYS_MEMTEST_END         (PHYS_SDRAM_1 + 0x2000000 +
16*1024*1024)
> +#define CONFIG_SYS_MEMTEST_END (PHYS_SDRAM_1 + 0x2000000 + 16*1024*1024)

formatting only...

>  #define CONFIG_NR_DRAM_BANKS   1 /* we have 1 bank of DRAM */
>  #define CONFIG_STACKSIZE       (256*1024) /* regular stack */
> @@ -79,7 +76,6 @@
>
>  #define CONFIG_SPI
>  #define CONFIG_SPI_FLASH
> -#define CONFIG_SPI_FLASH_STMICRO

I'll add this line back because my AM1808 experimenter's kit has an ST
flash.

>  #define CONFIG_SPI_FLASH_WINBOND
>  #define CONFIG_DAVINCI_SPI
>  #define CONFIG_SYS_SPI_BASE            DAVINCI_SPI1_BASE
> @@ -122,12 +118,14 @@
>   * Network & Ethernet Configuration
>   */
>  #ifdef CONFIG_DRIVER_TI_EMAC
> +#define CONFIG_EMAC_MDIO_PHY_NUM       0
>  #define CONFIG_MII
>  #define CONFIG_BOOTP_DEFAULT
>  #define CONFIG_BOOTP_DNS
>  #define CONFIG_BOOTP_DNS2
>  #define CONFIG_BOOTP_SEND_HOSTNAME
>  #define CONFIG_NET_RETRY_COUNT 10
> +#define CONFIG_NET_MULTI

I don't know why these two additional lines are needed. Network works fine
with the da850evm.h config on my AM1808 experimenter's kit. Any ideas? Can
we remove these?

>  #endif
>
>  #ifdef CONFIG_USE_NOR
> @@ -160,7 +158,6 @@
>   * U-Boot general configuration
>   */
>  #define CONFIG_MISC_INIT_R
> -#define CONFIG_BOARD_EARLY_INIT_F

I have a patch in my queue that adds this line also to da850_am1808evm.h to
allow booting without the UBL (similar to commit
ae5c77dd908edaf55025fa3f41095bfb9cb1b973).

>  #define CONFIG_BOOTFILE                "uImage" /* Boot file name */
>  #define CONFIG_SYS_PROMPT      "U-Boot > " /* Command Prompt */
>  #define CONFIG_SYS_CBSIZE      1024 /* Console I/O Buffer Size */
> @@ -244,6 +241,6 @@
>
>  /* additions for new relocation code, must added to all boards */
>  #define CONFIG_SYS_SDRAM_BASE          0xc0000000
> -#define CONFIG_SYS_INIT_SP_ADDR                (CONFIG_SYS_SDRAM_BASE +
0x1000 - /* Fix this */ \
> -                                       GENERATED_GBL_DATA_SIZE)
> +#define CONFIG_SYS_INIT_SP_ADDR                (CONFIG_SYS_SDRAM_BASE +
0x1000 - \
> +                                       /* Fix this */
GENERATED_GBL_DATA_SIZE)

Again formatting change only.

>  #endif /* __CONFIG_H */

So from my point of view it looks like we could remove the entire
da850_am18xxevm.h and just find a different way to pass the
AM1808-or-OMAP-L138 information to Linux.

Regards, Christian


More information about the U-Boot mailing list