mbox

[U-Boot] pull request for u-boot-tegra/master

Message ID CA+m5__+QLHKw+9wu0FSVTeNt0q2GvKoC8gBCJDPUcw7C1xXO=Q@mail.gmail.com
State Accepted
Delegated to: Albert ARIBAUD
Headers show

Pull-request

git://git.denx.de/u-boot-tegra master

Message

Tom Warren May 31, 2012, 4:47 p.m. UTC
Albert,

Please pull u-boot-tegra/master into ARM master. Thanks!

The following changes since commit 2ca4a209a5b961ad1be8782c68dabe326d77dfaf:
  SRICHARAN R (1):
        OMAP4/5: Change omap4_sdp, omap4_panda, omap5_evm maintainer

are available in the git repository at:

  git://git.denx.de/u-boot-tegra master

Lucas Stach (2):
      tegra: sync SDIO1 pingroup enum name with TRM
      tegra: add SDIO1 funcmux entry for UARTA

Simon Glass (1):
      tegra: Correct PLL access in ap20.c and clock.c

Stephen Warren (22):
      tegra: paz00: fix typo in SD slot CD detect GPIO
      tegra: add alternate UART1 funcmux entry
      tegra: Whistler board support
      tegra: remove some cruft from CONFIG_EXTRA_ENV_SETTINGS
      tegra: flesh out bootcmd
      tegra: whistler: reduce and comment network cfg options
      tegra: seaboard: add support for USB networking
      tegra: add UART1 on GPU funcmux entry
      tegra: add SDMMC1 on SDIO1 funcmux entry
      tegra: Compulab TrimSlice board support
      tegra: harmony: add device tree support
      tegra: paz00: add device tree support
      tegra: remove CONFIG_USB_ETHER_SMSC95XX from boards without it
      tegra: ventana: add own device tree, enable USB
      env_mmc: align buffers using ALLOC_CACHE_ALIGN_BUFFER
      sf: winbond: Add support for the Winbond W25Q80BL
      tegra: ventana: store environment in eMMC
      tegra: whistler: store environment in eMMC
      tegra: trimslice: store environment in SPI flash
      tegra: paz00: store environment in eMMC
      tegra: seaboard: disable SPI, move environment to eMMC
      tegra: trimslice: fix a couple typos

Tom Warren (6):
      spi: Tegra2: Seaboard: fix UART corruption during SPI transactions
      spi: Tegra2: Seaboard: enable SPI/UART corruption fix
      spi: tegra2: rename tegra2_spi.* to tegra_spi.*
      mmc: tegra2: rename tegra2_mmc.* to tegra_mmc.*
      gpio: tegra2: rename tegra2_gpio.* to tegra_gpio.*
      arm: Tegra: Use ODMDATA from BCT in IRAM

amartin@nvidia.com (1):
      tegra: override compiler flags for low level init code

 MAINTAINERS                                        |    2 +
 arch/arm/cpu/armv7/tegra2/ap20.c                   |   28 ++++-
 arch/arm/cpu/armv7/tegra2/board.c                  |   18 +++-
 arch/arm/cpu/armv7/tegra2/clock.c                  |    4 +-
 arch/arm/cpu/armv7/tegra2/config.mk                |    7 +-
 arch/arm/cpu/armv7/tegra2/funcmux.c                |   30 +++++-
 arch/arm/include/asm/arch-tegra2/clock.h           |    5 +-
 arch/arm/include/asm/arch-tegra2/funcmux.h         |    4 +
 arch/arm/include/asm/arch-tegra2/gpio.h            |    7 +-
 arch/arm/include/asm/arch-tegra2/pinmux.h          |    2 +-
 arch/arm/include/asm/arch-tegra2/tegra2.h          |    4 +
 .../asm/arch-tegra2/{tegra2_spi.h => tegra_spi.h}  |    9 +-
 arch/arm/include/asm/arch-tegra2/uart-spi-switch.h |    4 +-
 board/compal/dts/tegra2-paz00.dts                  |   57 ++++++++++
 board/compal/paz00/paz00.c                         |   12 +-
 board/compulab/dts/tegra2-trimslice.dts            |   57 ++++++++++
 board/compulab/trimslice/Makefile                  |   49 ++++++++
 board/compulab/trimslice/trimslice.c               |   73 ++++++++++++
 board/nvidia/common/uart-spi-switch.c              |   29 ++----
 board/nvidia/dts/tegra2-harmony.dts                |   57 ++++++++++
 board/nvidia/dts/tegra2-ventana.dts                |   57 ++++++++++
 board/nvidia/dts/tegra2-whistler.dts               |   67 +++++++++++
 board/nvidia/harmony/harmony.c                     |    4 +-
 board/nvidia/seaboard/seaboard.c                   |    4 +-
 board/nvidia/whistler/Makefile                     |   48 ++++++++
 board/nvidia/whistler/whistler.c                   |  116 +++++++++++++++++++
 boards.cfg                                         |    2 +
 common/env_mmc.c                                   |   10 +-
 drivers/gpio/Makefile                              |    2 +-
 drivers/gpio/{tegra2_gpio.c => tegra_gpio.c}       |    2 +-
 drivers/mmc/Makefile                               |    2 +-
 drivers/mmc/{tegra2_mmc.c => tegra_mmc.c}          |    4 +-
 drivers/mmc/{tegra2_mmc.h => tegra_mmc.h}          |    8 +-
 drivers/mtd/spi/winbond.c                          |    8 ++
 drivers/spi/Makefile                               |    2 +-
 drivers/spi/{tegra2_spi.c => tegra_spi.c}          |   17 +++-
 include/configs/harmony.h                          |   29 ++++-
 include/configs/medcom.h                           |    6 +-
 include/configs/paz00.h                            |   34 +++++-
 include/configs/plutux.h                           |    6 +-
 include/configs/seaboard.h                         |   35 +++---
 include/configs/tegra2-common-post.h               |  117 ++++++++++++++++++++
 include/configs/tegra2-common.h                    |   10 +--
 include/configs/trimslice.h                        |   99 +++++++++++++++++
 include/configs/ventana.h                          |   29 ++++-
 include/configs/whistler.h                         |   94 ++++++++++++++++
 46 files changed, 1150 insertions(+), 120 deletions(-)
 rename arch/arm/include/asm/arch-tegra2/{tegra2_spi.h => tegra_spi.h} (95%)
 create mode 100644 board/compal/dts/tegra2-paz00.dts
 create mode 100644 board/compulab/dts/tegra2-trimslice.dts
 create mode 100644 board/compulab/trimslice/Makefile
 create mode 100644 board/compulab/trimslice/trimslice.c
 create mode 100644 board/nvidia/dts/tegra2-harmony.dts
 create mode 100644 board/nvidia/dts/tegra2-ventana.dts
 create mode 100644 board/nvidia/dts/tegra2-whistler.dts
 create mode 100644 board/nvidia/whistler/Makefile
 create mode 100644 board/nvidia/whistler/whistler.c
 rename drivers/gpio/{tegra2_gpio.c => tegra_gpio.c} (99%)
 rename drivers/mmc/{tegra2_mmc.c => tegra_mmc.c} (99%)
 rename drivers/mmc/{tegra2_mmc.h => tegra_mmc.h} (97%)
 rename drivers/spi/{tegra2_spi.c => tegra_spi.c} (95%)
 create mode 100644 include/configs/tegra2-common-post.h
 create mode 100644 include/configs/trimslice.h
 create mode 100644 include/configs/whistler.h

Comments

Tom Warren June 7, 2012, 4:02 p.m. UTC | #1
Albert,

On Thu, May 31, 2012 at 9:47 AM, Tom Warren <twarren.nvidia@gmail.com> wrote:
> Albert,
>
> Please pull u-boot-tegra/master into ARM master. Thanks!
Haven't seen a reply, so repinging you.

Thanks,

Tom
>
> The following changes since commit 2ca4a209a5b961ad1be8782c68dabe326d77dfaf:
>  SRICHARAN R (1):
>        OMAP4/5: Change omap4_sdp, omap4_panda, omap5_evm maintainer
>
> are available in the git repository at:
>
>  git://git.denx.de/u-boot-tegra master
>
> Lucas Stach (2):
>      tegra: sync SDIO1 pingroup enum name with TRM
>      tegra: add SDIO1 funcmux entry for UARTA
>
> Simon Glass (1):
>      tegra: Correct PLL access in ap20.c and clock.c
>
> Stephen Warren (22):
>      tegra: paz00: fix typo in SD slot CD detect GPIO
>      tegra: add alternate UART1 funcmux entry
>      tegra: Whistler board support
>      tegra: remove some cruft from CONFIG_EXTRA_ENV_SETTINGS
>      tegra: flesh out bootcmd
>      tegra: whistler: reduce and comment network cfg options
>      tegra: seaboard: add support for USB networking
>      tegra: add UART1 on GPU funcmux entry
>      tegra: add SDMMC1 on SDIO1 funcmux entry
>      tegra: Compulab TrimSlice board support
>      tegra: harmony: add device tree support
>      tegra: paz00: add device tree support
>      tegra: remove CONFIG_USB_ETHER_SMSC95XX from boards without it
>      tegra: ventana: add own device tree, enable USB
>      env_mmc: align buffers using ALLOC_CACHE_ALIGN_BUFFER
>      sf: winbond: Add support for the Winbond W25Q80BL
>      tegra: ventana: store environment in eMMC
>      tegra: whistler: store environment in eMMC
>      tegra: trimslice: store environment in SPI flash
>      tegra: paz00: store environment in eMMC
>      tegra: seaboard: disable SPI, move environment to eMMC
>      tegra: trimslice: fix a couple typos
>
> Tom Warren (6):
>      spi: Tegra2: Seaboard: fix UART corruption during SPI transactions
>      spi: Tegra2: Seaboard: enable SPI/UART corruption fix
>      spi: tegra2: rename tegra2_spi.* to tegra_spi.*
>      mmc: tegra2: rename tegra2_mmc.* to tegra_mmc.*
>      gpio: tegra2: rename tegra2_gpio.* to tegra_gpio.*
>      arm: Tegra: Use ODMDATA from BCT in IRAM
>
> amartin@nvidia.com (1):
>      tegra: override compiler flags for low level init code
>
>  MAINTAINERS                                        |    2 +
>  arch/arm/cpu/armv7/tegra2/ap20.c                   |   28 ++++-
>  arch/arm/cpu/armv7/tegra2/board.c                  |   18 +++-
>  arch/arm/cpu/armv7/tegra2/clock.c                  |    4 +-
>  arch/arm/cpu/armv7/tegra2/config.mk                |    7 +-
>  arch/arm/cpu/armv7/tegra2/funcmux.c                |   30 +++++-
>  arch/arm/include/asm/arch-tegra2/clock.h           |    5 +-
>  arch/arm/include/asm/arch-tegra2/funcmux.h         |    4 +
>  arch/arm/include/asm/arch-tegra2/gpio.h            |    7 +-
>  arch/arm/include/asm/arch-tegra2/pinmux.h          |    2 +-
>  arch/arm/include/asm/arch-tegra2/tegra2.h          |    4 +
>  .../asm/arch-tegra2/{tegra2_spi.h => tegra_spi.h}  |    9 +-
>  arch/arm/include/asm/arch-tegra2/uart-spi-switch.h |    4 +-
>  board/compal/dts/tegra2-paz00.dts                  |   57 ++++++++++
>  board/compal/paz00/paz00.c                         |   12 +-
>  board/compulab/dts/tegra2-trimslice.dts            |   57 ++++++++++
>  board/compulab/trimslice/Makefile                  |   49 ++++++++
>  board/compulab/trimslice/trimslice.c               |   73 ++++++++++++
>  board/nvidia/common/uart-spi-switch.c              |   29 ++----
>  board/nvidia/dts/tegra2-harmony.dts                |   57 ++++++++++
>  board/nvidia/dts/tegra2-ventana.dts                |   57 ++++++++++
>  board/nvidia/dts/tegra2-whistler.dts               |   67 +++++++++++
>  board/nvidia/harmony/harmony.c                     |    4 +-
>  board/nvidia/seaboard/seaboard.c                   |    4 +-
>  board/nvidia/whistler/Makefile                     |   48 ++++++++
>  board/nvidia/whistler/whistler.c                   |  116 +++++++++++++++++++
>  boards.cfg                                         |    2 +
>  common/env_mmc.c                                   |   10 +-
>  drivers/gpio/Makefile                              |    2 +-
>  drivers/gpio/{tegra2_gpio.c => tegra_gpio.c}       |    2 +-
>  drivers/mmc/Makefile                               |    2 +-
>  drivers/mmc/{tegra2_mmc.c => tegra_mmc.c}          |    4 +-
>  drivers/mmc/{tegra2_mmc.h => tegra_mmc.h}          |    8 +-
>  drivers/mtd/spi/winbond.c                          |    8 ++
>  drivers/spi/Makefile                               |    2 +-
>  drivers/spi/{tegra2_spi.c => tegra_spi.c}          |   17 +++-
>  include/configs/harmony.h                          |   29 ++++-
>  include/configs/medcom.h                           |    6 +-
>  include/configs/paz00.h                            |   34 +++++-
>  include/configs/plutux.h                           |    6 +-
>  include/configs/seaboard.h                         |   35 +++---
>  include/configs/tegra2-common-post.h               |  117 ++++++++++++++++++++
>  include/configs/tegra2-common.h                    |   10 +--
>  include/configs/trimslice.h                        |   99 +++++++++++++++++
>  include/configs/ventana.h                          |   29 ++++-
>  include/configs/whistler.h                         |   94 ++++++++++++++++
>  46 files changed, 1150 insertions(+), 120 deletions(-)
>  rename arch/arm/include/asm/arch-tegra2/{tegra2_spi.h => tegra_spi.h} (95%)
>  create mode 100644 board/compal/dts/tegra2-paz00.dts
>  create mode 100644 board/compulab/dts/tegra2-trimslice.dts
>  create mode 100644 board/compulab/trimslice/Makefile
>  create mode 100644 board/compulab/trimslice/trimslice.c
>  create mode 100644 board/nvidia/dts/tegra2-harmony.dts
>  create mode 100644 board/nvidia/dts/tegra2-ventana.dts
>  create mode 100644 board/nvidia/dts/tegra2-whistler.dts
>  create mode 100644 board/nvidia/whistler/Makefile
>  create mode 100644 board/nvidia/whistler/whistler.c
>  rename drivers/gpio/{tegra2_gpio.c => tegra_gpio.c} (99%)
>  rename drivers/mmc/{tegra2_mmc.c => tegra_mmc.c} (99%)
>  rename drivers/mmc/{tegra2_mmc.h => tegra_mmc.h} (97%)
>  rename drivers/spi/{tegra2_spi.c => tegra_spi.c} (95%)
>  create mode 100644 include/configs/tegra2-common-post.h
>  create mode 100644 include/configs/trimslice.h
>  create mode 100644 include/configs/whistler.h
Albert ARIBAUD June 8, 2012, 7:36 p.m. UTC | #2
Le 07/06/2012 18:02, Tom Warren a écrit :
> Albert,
>
> On Thu, May 31, 2012 at 9:47 AM, Tom Warren<twarren.nvidia@gmail.com>  wrote:
>> Albert,
>>
>> Please pull u-boot-tegra/master into ARM master. Thanks!
> Haven't seen a reply, so repinging you.

Hi Tom,

Sorry for taking so long. Testing the branch right now.

> Thanks,
>
> Tom

Amicalement,
Albert ARIBAUD June 8, 2012, 7:41 p.m. UTC | #3
Hi Tom,

Le 31/05/2012 18:47, Tom Warren a écrit :
> Albert,
>
> Please pull u-boot-tegra/master into ARM master. Thanks!
>
> The following changes since commit 2ca4a209a5b961ad1be8782c68dabe326d77dfaf:
>    SRICHARAN R (1):
>          OMAP4/5: Change omap4_sdp, omap4_panda, omap5_evm maintainer
>
> are available in the git repository at:
>
>    git://git.denx.de/u-boot-tegra master

...

> Lucas Stach (2):

> Simon Glass (1):

> Stephen Warren (22):

> Tom Warren (6):

> amartin@nvidia.com (1):

Usually contributors provide some name and an address, not just an 
address. Is this addres-only contributor name intended?

Amicalement,
Albert ARIBAUD June 8, 2012, 9:44 p.m. UTC | #4
Hi Tom,

Le 31/05/2012 18:47, Tom Warren a écrit :
> Albert,
>
> Please pull u-boot-tegra/master into ARM master. Thanks!
>
> The following changes since commit 2ca4a209a5b961ad1be8782c68dabe326d77dfaf:
>    SRICHARAN R (1):
>          OMAP4/5: Change omap4_sdp, omap4_panda, omap5_evm maintainer
>
> are available in the git repository at:
>
>    git://git.denx.de/u-boot-tegra master

Trying trimslice with the stock Linaro toolchain from Xubuntu:

uboot@lilith:~/src/u-boot-arm$ LC_ALL=C ./MAKEALL trimslice
Configuring for trimslice board...
    text	   data	    bss	    dec	    hex	filename
  234794	   4716	 276460	 515970	  7df82	./u-boot
/bin/sh: line 1: exit: too many arguments
make[1]: *** [dt.dtb] Error 1
make: *** [u-boot.dtb] Error 2

Are there special needs for building trimslice?

Amicalement,
Stephen Warren June 8, 2012, 10 p.m. UTC | #5
On 06/08/2012 03:44 PM, Albert ARIBAUD wrote:
> Hi Tom,
> 
> Le 31/05/2012 18:47, Tom Warren a écrit :
>> Albert,
>>
>> Please pull u-boot-tegra/master into ARM master. Thanks!
>>
>> The following changes since commit
>> 2ca4a209a5b961ad1be8782c68dabe326d77dfaf:
>>    SRICHARAN R (1):
>>          OMAP4/5: Change omap4_sdp, omap4_panda, omap5_evm maintainer
>>
>> are available in the git repository at:
>>
>>    git://git.denx.de/u-boot-tegra master
> 
> Trying trimslice with the stock Linaro toolchain from Xubuntu:
> 
> uboot@lilith:~/src/u-boot-arm$ LC_ALL=C ./MAKEALL trimslice
> Configuring for trimslice board...
>    text       data        bss        dec        hex    filename
>  234794       4716     276460     515970      7df82    ./u-boot
> /bin/sh: line 1: exit: too many arguments
> make[1]: *** [dt.dtb] Error 1
> make: *** [u-boot.dtb] Error 2
> 
> Are there special needs for building trimslice?

There should be nothing special about TrimSlice vs. any other Tegra board.

This is somehow related to the dtc (device tree compiler) version that's
picked up by the build process. I can reproduce it by placing Ubuntu
Lucid's dtc in my PATH, but not with another version of dtc I had in my
path (require to build our downstream U-Boot device trees).

I'll investigate, unless anyone else wants to.
Stephen Warren June 8, 2012, 10:36 p.m. UTC | #6
On 06/08/2012 04:00 PM, Stephen Warren wrote:
> On 06/08/2012 03:44 PM, Albert ARIBAUD wrote:
>> Hi Tom,
>>
>> Le 31/05/2012 18:47, Tom Warren a écrit :
>>> Albert,
>>>
>>> Please pull u-boot-tegra/master into ARM master. Thanks!
>>>
>>> The following changes since commit
>>> 2ca4a209a5b961ad1be8782c68dabe326d77dfaf:
>>>    SRICHARAN R (1):
>>>          OMAP4/5: Change omap4_sdp, omap4_panda, omap5_evm maintainer
>>>
>>> are available in the git repository at:
>>>
>>>    git://git.denx.de/u-boot-tegra master
>>
>> Trying trimslice with the stock Linaro toolchain from Xubuntu:
>>
>> uboot@lilith:~/src/u-boot-arm$ LC_ALL=C ./MAKEALL trimslice
>> Configuring for trimslice board...
>>    text       data        bss        dec        hex    filename
>>  234794       4716     276460     515970      7df82    ./u-boot
>> /bin/sh: line 1: exit: too many arguments
>> make[1]: *** [dt.dtb] Error 1
>> make: *** [u-boot.dtb] Error 2
>>
>> Are there special needs for building trimslice?
> 
> There should be nothing special about TrimSlice vs. any other Tegra board.
> 
> This is somehow related to the dtc (device tree compiler) version that's
> picked up by the build process. I can reproduce it by placing Ubuntu
> Lucid's dtc in my PATH, but not with another version of dtc I had in my
> path (require to build our downstream U-Boot device trees).
> 
> I'll investigate, unless anyone else wants to.

In order to see the real problem with dtc, you will need:

http://lists.denx.de/pipermail/u-boot/2012-June/125967.html

The problem is as follows:

> /home/swarren/shared/git_wa/u-boot/arch/arm/dts/tegra20.dtsi:3 syntax error
> FATAL ERROR: Couldn't read input tree
> make[1]: *** [dt.dtb] Error 1

This is because tegra-trimslice.dts contains:

> /include/ ARCH_CPU_DTS

which is run through cpp to substitute the correct absolute path:

> /include/ "/home/swarren/shared/git_wa/u-boot/arch/arm/dts/tegra20.dtsi"

However, some versions of dtc appear to have a problem parsing this
path; perhaps it's the leading /?

So, the quick solution here is to upgrade your dtc to a version which
isn't broken.

However, the whole reason this complicated cpp mess is being used in the
first place is because older versions of dtc had no -I (include path)
directive, and the tegra20.dtsi file is in a different directory to
tegra-trimslice.dts. Two solutions were possible:

a) Force everyone to use a newer dtc. Wolfgang rejected this.

b) Do the cpp hack. U-Boot went with this option.

c) Check a copy of dtc (source) into the U-boot source. The kernel went
with this option.

Evidently (b) causes problems with some older versions of dtc too, so
isn't a complete solution:-(

Perhaps the solution is to remove this cpp hack, and check in a symlink
in each directory containing *.dts that need to include others. That
way, we could get rid of the absolute paths that some versions of dtc
doesn't appear to like. I will give that a shot.
Stephen Warren June 8, 2012, 10:52 p.m. UTC | #7
On 06/08/2012 04:36 PM, Stephen Warren wrote:
> On 06/08/2012 04:00 PM, Stephen Warren wrote:
>> On 06/08/2012 03:44 PM, Albert ARIBAUD wrote:
>>> Hi Tom,
>>>
>>> Le 31/05/2012 18:47, Tom Warren a écrit :
>>>> Albert,
>>>>
>>>> Please pull u-boot-tegra/master into ARM master. Thanks!
>>>>
>>>> The following changes since commit
>>>> 2ca4a209a5b961ad1be8782c68dabe326d77dfaf:
>>>>    SRICHARAN R (1):
>>>>          OMAP4/5: Change omap4_sdp, omap4_panda, omap5_evm maintainer
>>>>
>>>> are available in the git repository at:
>>>>
>>>>    git://git.denx.de/u-boot-tegra master
>>>
>>> Trying trimslice with the stock Linaro toolchain from Xubuntu:
>>>
>>> uboot@lilith:~/src/u-boot-arm$ LC_ALL=C ./MAKEALL trimslice
>>> Configuring for trimslice board...
>>>    text       data        bss        dec        hex    filename
>>>  234794       4716     276460     515970      7df82    ./u-boot
>>> /bin/sh: line 1: exit: too many arguments
>>> make[1]: *** [dt.dtb] Error 1
>>> make: *** [u-boot.dtb] Error 2
>>>
>>> Are there special needs for building trimslice?
>>
>> There should be nothing special about TrimSlice vs. any other Tegra board.
>>
>> This is somehow related to the dtc (device tree compiler) version that's
>> picked up by the build process. I can reproduce it by placing Ubuntu
>> Lucid's dtc in my PATH, but not with another version of dtc I had in my
>> path (require to build our downstream U-Boot device trees).
>>
>> I'll investigate, unless anyone else wants to.
> 
> In order to see the real problem with dtc, you will need:
> 
> http://lists.denx.de/pipermail/u-boot/2012-June/125967.html
> 
> The problem is as follows:
> 
>> /home/swarren/shared/git_wa/u-boot/arch/arm/dts/tegra20.dtsi:3 syntax error
>> FATAL ERROR: Couldn't read input tree
>> make[1]: *** [dt.dtb] Error 1
> 
> This is because tegra-trimslice.dts contains:
> 
>> /include/ ARCH_CPU_DTS
> 
> which is run through cpp to substitute the correct absolute path:
> 
>> /include/ "/home/swarren/shared/git_wa/u-boot/arch/arm/dts/tegra20.dtsi"
> 
> However, some versions of dtc appear to have a problem parsing this
> path; perhaps it's the leading /?

Uggh. The problem is that older versions of dtc would only accept a
single definition of the root node; they don't allow another copy to be
specified, which "overlays" or is "merged with" it. Put another way, dtc
can't compile a simple:

> /dts-v1/;
> 
> / {
>     foo = "bar";
> };
> 
> / {
>     foo = "bar";
> };

That means we can't separate the device tree source into separate
skeleton.dtsi, tegra20.dtsi, and tegra2-$board.dts.

So, we have basically no choice but to require people to upgrade to a
recent dtc. If we do that, we can also get rid of the cpp hacks, since
the latest dtc has a -i option that can be used to set an include path.
Simon Glass June 9, 2012, 1:53 a.m. UTC | #8
Hi Stephen,

On Fri, Jun 8, 2012 at 3:52 PM, Stephen Warren <swarren@wwwdotorg.org>wrote:

> On 06/08/2012 04:36 PM, Stephen Warren wrote:
> > On 06/08/2012 04:00 PM, Stephen Warren wrote:
> >> On 06/08/2012 03:44 PM, Albert ARIBAUD wrote:
> >>> Hi Tom,
> >>>
> >>> Le 31/05/2012 18:47, Tom Warren a écrit :
> >>>> Albert,
> >>>>
> >>>> Please pull u-boot-tegra/master into ARM master. Thanks!
> >>>>
> >>>> The following changes since commit
> >>>> 2ca4a209a5b961ad1be8782c68dabe326d77dfaf:
> >>>>    SRICHARAN R (1):
> >>>>          OMAP4/5: Change omap4_sdp, omap4_panda, omap5_evm maintainer
> >>>>
> >>>> are available in the git repository at:
> >>>>
> >>>>    git://git.denx.de/u-boot-tegra master
> >>>
> >>> Trying trimslice with the stock Linaro toolchain from Xubuntu:
> >>>
> >>> uboot@lilith:~/src/u-boot-arm$ LC_ALL=C ./MAKEALL trimslice
> >>> Configuring for trimslice board...
> >>>    text       data        bss        dec        hex    filename
> >>>  234794       4716     276460     515970      7df82    ./u-boot
> >>> /bin/sh: line 1: exit: too many arguments
> >>> make[1]: *** [dt.dtb] Error 1
> >>> make: *** [u-boot.dtb] Error 2
> >>>
> >>> Are there special needs for building trimslice?
> >>
> >> There should be nothing special about TrimSlice vs. any other Tegra
> board.
> >>
> >> This is somehow related to the dtc (device tree compiler) version that's
> >> picked up by the build process. I can reproduce it by placing Ubuntu
> >> Lucid's dtc in my PATH, but not with another version of dtc I had in my
> >> path (require to build our downstream U-Boot device trees).
> >>
> >> I'll investigate, unless anyone else wants to.
> >
> > In order to see the real problem with dtc, you will need:
> >
> > http://lists.denx.de/pipermail/u-boot/2012-June/125967.html
> >
> > The problem is as follows:
> >
> >> /home/swarren/shared/git_wa/u-boot/arch/arm/dts/tegra20.dtsi:3 syntax
> error
> >> FATAL ERROR: Couldn't read input tree
> >> make[1]: *** [dt.dtb] Error 1
> >
> > This is because tegra-trimslice.dts contains:
> >
> >> /include/ ARCH_CPU_DTS
> >
> > which is run through cpp to substitute the correct absolute path:
> >
> >> /include/ "/home/swarren/shared/git_wa/u-boot/arch/arm/dts/tegra20.dtsi"
> >
> > However, some versions of dtc appear to have a problem parsing this
> > path; perhaps it's the leading /?
>
> Uggh. The problem is that older versions of dtc would only accept a
> single definition of the root node; they don't allow another copy to be
> specified, which "overlays" or is "merged with" it. Put another way, dtc
> can't compile a simple:
>
> > /dts-v1/;
> >
> > / {
> >     foo = "bar";
> > };
> >
> > / {
> >     foo = "bar";
> > };
>
> That means we can't separate the device tree source into separate
> skeleton.dtsi, tegra20.dtsi, and tegra2-$board.dts.
>
> So, we have basically no choice but to require people to upgrade to a
> recent dtc. If we do that, we can also get rid of the cpp hacks, since
> the latest dtc has a -i option that can be used to set an include path.
>

Oh dear, it's worse than I thought. Perhaps the first step would be to ask
the device-tree people to issue a new release (1.4?), if they have not
already.

Regards,
Simon
Albert ARIBAUD June 10, 2012, 8:22 a.m. UTC | #9
Hi Tom,

Le 31/05/2012 18:47, Tom Warren a écrit :
> Albert,
>
> Please pull u-boot-tegra/master into ARM master. Thanks!
>
> The following changes since commit 2ca4a209a5b961ad1be8782c68dabe326d77dfaf:
>    SRICHARAN R (1):
>          OMAP4/5: Change omap4_sdp, omap4_panda, omap5_evm maintainer
>
> are available in the git repository at:
>
>    git://git.denx.de/u-boot-tegra master

Applied to u-boot-arm/master, thanks!

Amicalement,
Stephen Warren June 11, 2012, 9:59 p.m. UTC | #10
On 06/08/2012 07:53 PM, Simon Glass wrote:
> Hi Stephen,
> 
> On Fri, Jun 8, 2012 at 3:52 PM, Stephen Warren <swarren@wwwdotorg.org
> <mailto:swarren@wwwdotorg.org>> wrote:
...
>     Uggh. The problem is that older versions of dtc would only accept a
>     single definition of the root node; they don't allow another copy to be
>     specified, which "overlays" or is "merged with" it. Put another way, dtc
>     can't compile a simple:
> 
>     > /dts-v1/;
>     >
>     > / {
>     >     foo = "bar";
>     > };
>     >
>     > / {
>     >     foo = "bar";
>     > };
> 
>     That means we can't separate the device tree source into separate
>     skeleton.dtsi, tegra20.dtsi, and tegra2-$board.dts.
> 
>     So, we have basically no choice but to require people to upgrade to a
>     recent dtc. If we do that, we can also get rid of the cpp hacks, since
>     the latest dtc has a -i option that can be used to set an include path.
> 
> 
> Oh dear, it's worse than I thought. Perhaps the first step would be to
> ask the device-tree people to issue a new release (1.4?), if they have
> not already.

At this point, given how rapidly device tree in general (and hence dtc)
is evolving, the simplest solution seems to be just to add a copy of the
dtc source into U-Boot itself. This is the approach that the kernel has
taken and ensures that everybody is working from the "same page" w.r.t. dtc.

Wolfgang, can we add the dtc source into the U-Boot source tree in order
to avoid these problems? The only alternative would be for everyone to
manually install a recent version themselves, since the version of dtc
packaged by commonly-used distros is far too old to be useful.

For reference, my copy of the U-Boot source is about 81M in >7500 files.
Adding dtc would add roughly 364K and 34 files (at least, that's the
size of the copy of dtc in the kernel, which omits the tests etc.). That
seems pretty small.