<feed xmlns='http://www.w3.org/2005/Atom'>
<title>bcm63xx/u-boot/arch/arm/mach-tegra, branch master</title>
<subtitle>Broadcom-s U-Boot</subtitle>
<id>https://git.openwrt.org/project/bcm63xx/u-boot/atom?h=master</id>
<link rel='self' href='https://git.openwrt.org/project/bcm63xx/u-boot/atom?h=master'/>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/bcm63xx/u-boot/'/>
<updated>2019-06-05T16:16:35Z</updated>
<entry>
<title>ARM: tegra: Enable position independent build for 64-bit</title>
<updated>2019-06-05T16:16:35Z</updated>
<author>
<name>Thierry Reding</name>
</author>
<published>2019-04-15T09:32:32Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/bcm63xx/u-boot/commit/?id=74a50ac2a4b9a1906fa3787a4bcd5b079e97d3f8'/>
<id>urn:sha1:74a50ac2a4b9a1906fa3787a4bcd5b079e97d3f8</id>
<content type='text'>
Note that U-Boot is always chainloaded from cboot starting with L4T
release 28. cboot always loads U-Boot to a fixed address, so making
the builds position independent isn't strictly necessary. However,
position independent builds can be convenient because if U-Boot is
ever loaded to an address different from its link address, it will
still be able to boot.

Signed-off-by: Thierry Reding &lt;treding@nvidia.com&gt;
Signed-off-by: Tom Warren &lt;twarren@nvidia.com&gt;
</content>
</entry>
<entry>
<title>ARM: tegra: Import cbootargs value from cboot DTB</title>
<updated>2019-06-05T16:16:34Z</updated>
<author>
<name>Thierry Reding</name>
</author>
<published>2019-04-15T09:32:31Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/bcm63xx/u-boot/commit/?id=b571766453c83aadfd44f6c4adbb0130bbfa50e3'/>
<id>urn:sha1:b571766453c83aadfd44f6c4adbb0130bbfa50e3</id>
<content type='text'>
Read the boot arguments passed by cboot via the /chosen/bootargs
property and store it in the cbootargs environment variable.

Signed-off-by: Thierry Reding &lt;treding@nvidia.com&gt;
Signed-off-by: Tom Warren &lt;twarren@nvidia.com&gt;
</content>
</entry>
<entry>
<title>ARM: tegra: Implement cboot_get_ethaddr()</title>
<updated>2019-06-05T16:16:34Z</updated>
<author>
<name>Thierry Reding</name>
</author>
<published>2019-04-15T09:32:30Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/bcm63xx/u-boot/commit/?id=34e12e03c7f4cbd96e584a590d6e091c48ab8e3d'/>
<id>urn:sha1:34e12e03c7f4cbd96e584a590d6e091c48ab8e3d</id>
<content type='text'>
This function will attempt to look up an Ethernet address in the DTB
that was passed in from cboot. It does so by first trying to locate the
default Ethernet device for the board (identified by the "ethernet"
alias) and if found, reads the "local-mac-address" property. If the
"ethernet" alias does not exist, or if it points to a device tree node
that doesn't exist, or if the device tree node that it points to does
not have a "local-mac-address" property or if the value is invalid, it
will fall back to the legacy mechanism of looking for the MAC address
stored in the "nvidia,ethernet-mac" or "nvidia,ether-mac" properties of
the "/chosen" node.

The MAC address is then written to the default Ethernet device for the
board (again identified by the "ethernet" alias) in U-Boot's control
DTB. This allows the device driver for that device to read the MAC
address from the standard location in device tree.

Signed-off-by: Thierry Reding &lt;treding@nvidia.com&gt;
Signed-off-by: Tom Warren &lt;twarren@nvidia.com&gt;
</content>
</entry>
<entry>
<title>ARM: tegra: Implement cboot_save_boot_params() in C</title>
<updated>2019-06-05T16:16:34Z</updated>
<author>
<name>Thierry Reding</name>
</author>
<published>2019-04-15T09:32:29Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/bcm63xx/u-boot/commit/?id=ce353babdbc478c40f884555b754c533ab8f8af5'/>
<id>urn:sha1:ce353babdbc478c40f884555b754c533ab8f8af5</id>
<content type='text'>
This is easier to deal with and works just as well for this simple
function.

Signed-off-by: Thierry Reding &lt;treding@nvidia.com&gt;
Signed-off-by: Tom Warren &lt;twarren@nvidia.com&gt;
</content>
</entry>
<entry>
<title>ARM: tegra: Unify Tegra186 builds</title>
<updated>2019-06-05T16:16:34Z</updated>
<author>
<name>Thierry Reding</name>
</author>
<published>2019-04-15T09:32:28Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/bcm63xx/u-boot/commit/?id=a0dbc1314c3275c3af3591fc6f4762ff3367a4fd'/>
<id>urn:sha1:a0dbc1314c3275c3af3591fc6f4762ff3367a4fd</id>
<content type='text'>
Tegra186 build are currently dealt with in very special ways, which is
because Tegra186 is fundamentally different in many respects. It is no
longer necessary to do many of the low-level programming because early
boot firmware will already have taken care of it.

Unfortunately, separating Tegra186 builds from the rest in this way
makes it difficult to share code with prior generations of Tegra. With
all of the low-level programming code behind Kconfig guards, the build
for Tegra186 can again be unified.

As a side-effect, and partial reason for this change, other Tegra SoC
generations can now make use of the code that deals with taking over a
boot from earlier bootloaders. This used to be nvtboot, but has been
replaced by cboot nowadays. Rename the files and functions related to
this to avoid confusion. The implemented protocols are unchanged.

Signed-off-by: Thierry Reding &lt;treding@nvidia.com&gt;
Signed-off-by: Tom Warren &lt;twarren@nvidia.com&gt;
</content>
</entry>
<entry>
<title>ARM: tegra: Workaround UDC boot issues only if necessary</title>
<updated>2019-06-05T16:16:34Z</updated>
<author>
<name>Thierry Reding</name>
</author>
<published>2019-04-15T09:32:26Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/bcm63xx/u-boot/commit/?id=836a56e729a082639d26499c8eb2d409308542a4'/>
<id>urn:sha1:836a56e729a082639d26499c8eb2d409308542a4</id>
<content type='text'>
Resetting the USB device controller on boot is only necessary if the SoC
actually has a UDC controller and U-Boot enables support for it. All the
Tegra boards support UDC via the ChipIdea UDC driver, so make the UDC on
boot workaround depend on the ChipIdea UDC driver.

This prevents a crash on Tegra186 which does not have the ChipIdea UDC.

Signed-off-by: Thierry Reding &lt;treding@nvidia.com&gt;
Signed-off-by: Tom Warren &lt;twarren@nvidia.com&gt;
</content>
</entry>
<entry>
<title>ARM: tegra: Support TZ-only access to PMC</title>
<updated>2019-06-05T16:16:34Z</updated>
<author>
<name>Thierry Reding</name>
</author>
<published>2019-04-15T09:32:25Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/bcm63xx/u-boot/commit/?id=f9ec2ec8504aa5d94d5be7f43c743040e549b157'/>
<id>urn:sha1:f9ec2ec8504aa5d94d5be7f43c743040e549b157</id>
<content type='text'>
Some devices may restrict access to the PMC to TrustZone software only.
Non-TZ software can detect this and use SMC calls to the firmware that
runs in the TrustZone to perform accesses to PMC registers.

Note that this also fixes reset_cpu() and the enterrcm command on
Tegra186 where they were previously trying to access the PMC at a wrong
physical address.

Based on work by Kalyani Chidambaram &lt;kalyanic@nvidia.com&gt; and Tom
Warren &lt;twarren@nvidia.com&gt;.

Signed-off-by: Thierry Reding &lt;treding@nvidia.com&gt;
Signed-off-by: Tom Warren &lt;twarren@nvidia.com&gt;
</content>
</entry>
<entry>
<title>ARM: tegra: Fix save_boot_params() prototype</title>
<updated>2019-06-05T16:16:33Z</updated>
<author>
<name>Thierry Reding</name>
</author>
<published>2019-04-15T09:32:23Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/bcm63xx/u-boot/commit/?id=8f60d18f9406c38a90972798290aa3ce3de92ecb'/>
<id>urn:sha1:8f60d18f9406c38a90972798290aa3ce3de92ecb</id>
<content type='text'>
The save_boot_params() function takes as its first four arguments the
first four registers. On 32-bit ARM these are r0, r1, r2 and r3, all of
which are 32 bits wide. However, on 64-bit ARM thene registers are x0,
x1, x2 and x3, all of which are 64 bits wide. In order to allow reusing
the save_boot_params() implementation on 64-bit ARM, change it to take
unsigned long parameters rather than the fixed size 32-bit integers.
This ensures that the correct values are passed.

Signed-off-by: Thierry Reding &lt;treding@nvidia.com&gt;
Signed-off-by: Tom Warren &lt;twarren@nvidia.com&gt;
</content>
</entry>
<entry>
<title>ARM: tegra: Guard powergate code with a Kconfig symbol</title>
<updated>2019-06-05T16:16:33Z</updated>
<author>
<name>Thierry Reding</name>
</author>
<published>2019-04-15T09:32:22Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/bcm63xx/u-boot/commit/?id=e19143b5eb22fd440de8bf42709347fd524897c0'/>
<id>urn:sha1:e19143b5eb22fd440de8bf42709347fd524897c0</id>
<content type='text'>
Powergate code is not relevant on all Tegra SoC generations, so guard it
with a Kconfig symbol that can be selected by the generations that need
it.

This is in preparation for unifying Tegra186 code with the code used on
older generations.

Signed-off-by: Thierry Reding &lt;treding@nvidia.com&gt;
Signed-off-by: Tom Warren &lt;twarren@nvidia.com&gt;
</content>
</entry>
<entry>
<title>ARM: tegra: Guard pin controller code with a Kconfig symbol</title>
<updated>2019-06-05T16:16:33Z</updated>
<author>
<name>Thierry Reding</name>
</author>
<published>2019-04-15T09:32:21Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/bcm63xx/u-boot/commit/?id=07ea02bc2dd17a75ec04c5f4ba10b0088f1596d5'/>
<id>urn:sha1:07ea02bc2dd17a75ec04c5f4ba10b0088f1596d5</id>
<content type='text'>
Pin controller code is not relevant on all Tegra SoC generations, so
guard it with a Kconfig symbol that can be selected by the generations
that need it.

This is in preparation for unifying Tegra186 code with the code used on
older generations.

Signed-off-by: Thierry Reding &lt;treding@nvidia.com&gt;
Signed-off-by: Tom Warren &lt;twarren@nvidia.com&gt;
</content>
</entry>
</feed>
