Age | Commit message (Collapse) | Author |
|
Cache the fuse contents early in boot before DMA is active to ensure
exclusive access on that bus. This cache is exposed at
/sys/firmware/fuse/kfuse_raw and it can be read() or mmap()'d.
Bug 741232
Change-Id: I83bc991c89beb837ec22b2e03ceac11ab696cb6f
Reviewed-on: http://git-master/r/10482
Reviewed-by: Jonathan Mayo <jmayo@nvidia.com>
Tested-by: Jonathan Mayo <jmayo@nvidia.com>
Reviewed-by: Aleksandr Frid <afrid@nvidia.com>
Reviewed-by: Yu-Huan Hsu <yhsu@nvidia.com>
Reviewed-by: Varun Colbert <vcolbert@nvidia.com>
Tested-by: Varun Colbert <vcolbert@nvidia.com>
|
|
When user switches on wifi, wifi driver need to poweron wifi card and
ask sdhci stack to enumerate the card. Sdhci stack does not provide any
interface to achieve this. Major wifi vendors depend on platform to
provide wifi poweron/reset/carddetect abstraction function.
Bug ID 739374
Change-Id: I988393352ff6cb54be3d70a59c94f67eedff06fb
Reviewed-on: http://git-master/r/7097
Reviewed-by: Rakesh Kumar <krakesh@nvidia.com>
Tested-by: Rakesh Kumar <krakesh@nvidia.com>
Reviewed-by: Bharat Nihalani <bnihalani@nvidia.com>
|
|
Repartitioning so that core-specific, SOC-independent code is located
in cortex-a9.S, SOC-specific code is located in headsmp-t2.S, and
SOC-independent code is located in headsmp.S.
Change-Id: I445df2ef4296e9486ad0f86450f8e2dac06cae12
Reviewed-on: http://git-master/r/3840
Reviewed-by: Scott Williams <scwilliams@nvidia.com>
Tested-by: Scott Williams <scwilliams@nvidia.com>
Reviewed-by: Gary King <gking@nvidia.com>
|
|
Change-Id: I9e4cd3da4a4b2f124241fd5cc7d713f117d8ec7c
Reviewed-on: http://git-master/r/2831
Reviewed-by: Scott Williams <scwilliams@nvidia.com>
Tested-by: Scott Williams <scwilliams@nvidia.com>
Reviewed-by: Trivikram Kasivajhula <tkasivajhula@nvidia.com>
Reviewed-by: Gary King <gking@nvidia.com>
|
|
Change-Id: I9bb3607e9605eefd5c0eec07a8be3fafce9bae64
Reviewed-on: http://git-master/r/2528
Reviewed-by: Gary King <gking@nvidia.com>
Tested-by: Gary King <gking@nvidia.com>
|
|
more of the code in this file is tegra power-state specific than common
CPU save and restore routines, so rename it to reflect that it won't
run on non-Tegra SoCs
Change-Id: I22643da41309b48a7f85e62407ec8b7d9f75baff
Reviewed-on: http://git-master/r/2244
Reviewed-by: Gary King <gking@nvidia.com>
Tested-by: Gary King <gking@nvidia.com>
|
|
to restore from LP0, a large number of memory, arbitration and PLL
settings need to be preserved in scratch registers in the AO domain
for the boot ROM to reload them after exiting LP0.
Change-Id: Ic446ef47c3cba9b792dd7b86b176157757504bde
Reviewed-on: http://git-master/r/2154
Reviewed-by: Gary King <gking@nvidia.com>
Tested-by: Gary King <gking@nvidia.com>
|
|
MC error interrupts are useful debug features, so implement them
separately from the RM; also, enhance the printouts to include the
client name, so that cross-checking the status value against a separate
list isn't necessary
Change-Id: I9aa2857388bf252bbcd2f3048eae0fb63d90a011
Reviewed-on: http://git-master/r/2280
Tested-by: Gary King <gking@nvidia.com>
Reviewed-by: Scott Williams <scwilliams@nvidia.com>
Reviewed-by: Gary King <gking@nvidia.com>
|
|
Supports CBC & ECB encryption/decryption, AnsiX9.31 RNG, SSK/SBK/User Key,
fine-grain uid/gid access control and ability for privileged user to reset
the engine. A device node (/dev/nvaes) is provided to enable access from
user-land.
based on work done by David Le Tacon (dletacon@nvidia.com)
Change-Id: I1a9c29b964ca15e6fec70389c2000306ef604086
Reviewed-on: http://git-master/r/2216
Reviewed-by: David Le Tacon <dletacon@nvidia.com>
Reviewed-by: Gary King <gking@nvidia.com>
Tested-by: Gary King <gking@nvidia.com>
|
|
Change-Id: I82b4c5b61f6a52ae3ebc93a28219c15da446b040
Reviewed-on: http://git-master/r/1831
Reviewed-by: Gary King <gking@nvidia.com>
Tested-by: Gary King <gking@nvidia.com>
|
|
A fuse module is added to support programming and reading back
fuse values.
This module is built as part of kernel.
Bug 657504
Tested on: Whistler
Change-Id: I5663679c8d41834aa4077e9940a0595f6575af64
Reviewed-on: http://git-master/r/1259
Reviewed-by: Andy Carman <acarman@nvidia.com>
Tested-by: Andy Carman <acarman@nvidia.com>
Reviewed-by: Gary King <gking@nvidia.com>
|
|
tegra cpufreq uses the dynamic voltage and frequency scaling code
in the tegra RM to update the CPU and bus clocks on-the-fly, and
to dynamically add and remove CPUs from the SMP cluster. this code
runs in a background kernel task named cpufreq-dvfsd.
all of the resources needed for cpufreq are allocated during kernel
initialization; however, starting the DVFS thread is deferred until
tegra_start_dvfsd is called (triggered by a user-space action, such as
opening the RM device node, an ioctl on the RM device node, or writing
to a sysfs node), because running the DVFS daemon during kernel
init causes numerous problems
Change-Id: I113e6a71b2405e9f33b9ec4912ff40d229d96a02
|
|
Change-Id: I89e73a9247d48ddb808065f0f697b9fabcfc2901
|
|
Change-Id: I8471465a765f07b76cfb41e79a746d86145095c3
|
|
add a new board file for initialization of platform data and registration
of platform devices based on ODM-queried values, rather than compile-
time constants.
add debug console (UART) initialization to it.
Change-Id: I592cea3b714b03d3e122ad46d12305c43c9e382f
|
|
Change-Id: Ifa3a208a1c091b4d20a4895edd8b9e0e69340f5b
|
|
Change-Id: I5ba8e15ff8b4ad49909d61222be6df8eb66d8867
|
|
separate SoC from platform-specific initialization, so that common
code (MMIO resources, interrupts, etc.) can be shared across platforms
Change-Id: Ia29fb04d868d834e168c6739d996b9fc6cf4d11c
|
|
Change-Id: Id38598e0a63b3f723cc07933c54bf5a99781ad0a
|
|
when CONFIG_TEGRA_NVRM is selected, implement the clk_* functions using
the RM's clock control APIs
clock support currently limited to RTC, KBC and UART devices, and to querying
the pclk, hclk, sys, cpu and pll_p clocks.
Change-Id: Ibd0d7e67ac344594451db3964ec0dfba75c78779
|
|
add nvreftrack framework
Change-Id: Ie4e0e1605d30dce07cbef24585af4b0376c49ee8
|
|
add power rail support to GPIO driver
Change-Id: I45d4c1110a635047d68fb14f3e72a28f99acbe1b
|
|
integrate files from android-tegra-2.6.29 branch to build NvOs
changes from previous branch:
* nvos_ioctl.h moved to top-level include/ directory
* tegra ATAG value and structure declaration moved to nvos.c
* cache and memory fence calls updated to match new kernel APIs
* PhysicalMemMap and PhysicalMemUnmap just call ioremap, which handles
static vs dynamic remapping internally.
Change-Id: I13d7b7068c12d73a4cf3d810a0e3ea6b21e3805c
|
|
Change-Id: Ie59462e60b2f4c2f652a79d86fc106e915609600
Signed-off-by: Colin Cross <ccross@android.com>
|
|
ensure that the pad group containing a requested GPIO is not in tristate
before clients use it.
add a tegra 2-specific table to map from the GPIO number to the pad group
which contains it
Change-Id: Iab930ac0df27735190d5b1eca5becb5e584d99d6
|
|
the reset values for some pin groups in the tegra pin mux can result in
functional errors due to conflicting with actively-configured pin groups
muxing from the same controller. this change adds a known safe, non-
conflicting mux for every pin group, which can be used on platforms
where the pin group is not routed to any peripheral
also add each pin group's I/O voltage rail, to enable platform code to
map from the pin groups used by each interface to the regulators used
for dynamic voltage control
Change-Id: I66f061ab81d470f23ca71150397b4c5bbdbf8a21
|
|
Change-Id: Ib0350fdc71ceac5bc9a12acae3d7a89b896c4133
|
|
Change-Id: Ie7bfae5cc8a0d01f46556f1beebe3d00e4465dc5
|
|
supports clock-gated (LP3) SMP idle mode, and power-gated (LP2) idle
mode when all slave processors are off-line
latency for LP2 idle state is calculated as a 2-sample weighted moving
average, to allow for future variations due to (e.g.) CPU frequency
scaling.
when LP2 is an allowed state (i.e., slave CPUs have been taken off-line),
LP3 will perform an hrtimer peek-ahead; this avoids waiting for the
first processor tick following an LP2 in order to run expired hrtimers
(which was causing a 1 tick delay for most user-space sleeps)
LP2 wakeup time and latency uses a 2ms hard-coded offset to account for
the CPU powergood timeout; this is reasonable for Harmony but should be
un-hardcoded for other platforms.
Change-Id: Id0c8846d81b113086790961dd06c8dd182a8fc44
|
|
LP2 idle mode power-gates the main CPU complex, requiring a
full processor state save and restore from a reset vector
processor context area is allocated during platform initialization
from the kernel, and mapped into the hotplug page tables (which also
serve as the initial page tables for the LP2 main processor reset)
restoring the processor from LP2 requires calculation of a system-
and APB-clock-dependent CPU power good timer value. on Harmony,
2ms is a good baseline value for this, and the APB clock is running at
13.5MHz. these values need to be un-hardcoded for other platforms.
Change-Id: I70a18a1d995e1d34da64d60fbdcd4568ef442f0c
|
|
to save power, SMP tegra SoCs place non-boot CPUs in reset when they
are removed from the scheduling cluster using CPU hotplug.
slave CPUs save their contexts (incl. CP15 and VFP state) out to a
reserved memory region, cancel SMP operation, and write to the SoC
reset controller to disable themselves. this is done with caches and
MMU enabled, so care is taken to ensure that all the dirty context cache
lines are cleaned out to the PoC before shutting down.
when re-enabled, slave CPUs execute a hotplug boot routine which mirrors
the initial configuration performed by secondary_startup, but after
enabling the MMU "return" to __cortex_a9_restore which restores the
saved state from the context area, and returns to platform_cpu_die.
in pseudo-code, the hotplug startup routine is basically:
* invalidate i-cache, BTAC, TLB, exclusive monitor
* enable i-cache, branch prediction
* invalidate d-cache
* invalidate SCU tags
* enable SMP
* setup page tables to secondary_data.pgdir
* enable MMU & d-cache
* restore CP15 from context area
* change page table pointer to context from shutdown
* restore stack registers
* return to platform_cpu_die
Change-Id: Ic098d82772af9ab2c97f9030d7a993c6a876785d
|
|
Change-Id: I7550f2b937fbc5a0caab200cae585f193e7c175a
|
|
v2: Fixes from Mike Rapoport:
- move gpio-names.h to arch/arm/mach-tegra
v2: fixes from Russell King
- include linux/io.h and linux/gpio.h instead of asm/io.h
and asm/gpio.h
Signed-off-by: Erik Gilling <konkers@android.com>
Signed-off-by: Colin Cross <ccross@android.com>
Cc: Gary King <gking@nvidia.com>
|
|
v2: fixes from Russell King
- include linux/io.h instead of asm/io.h
Signed-off-by: Colin Cross <ccross@android.com>
Signed-off-by: Erik Gilling <konkers@android.com>
|
|
Change-Id: I630e65a8779c428a26b5575bf9cb9eb0d81aa588
Signed-off-by: Colin Cross <ccross@android.com>
Signed-off-by: Erik Gilling <konkers@android.com>
Conflicts:
arch/arm/Kconfig
|
|
v2: fixes from Russell King
- include linux/io.h instead of asm/io.h
- fix whitespace in Kconfig
- Use spin_lock_init to initialize lock
- Return -ENOSYS instead of BUG for unimplemented clock ops
- Use proper return values in tegra2 clock ops
Signed-off-by: Colin Cross <ccross@android.com>
Signed-off-by: Erik Gilling <konkers@android.com>
|
|
v2: fixes from Russell King
- include linux/io.h instead of asm/io.h and mach/io.h
Signed-off-by: Colin Cross <ccross@android.com>
Signed-off-by: Erik Gilling <konkers@android.com>
|
|
Change-Id: I70a48fdf4b3a9dead90cbb7fb914e4b52f0cdd40
v2: Fixes from Mike Rapoport
- remove unused header files (mach/dma.h and mach/nand.h)
- remove tegra 1 references from Makefile.boot
v2: fixes from Russell King
- remove mach/io.h include from mach/iomap.h
- fix whitespace in Kconfig
v2: from Colin Cross
- fix invalid immediate in debug-macro.S
Signed-off-by: Colin Cross <ccross@android.com>
Signed-off-by: Erik Gilling <konkers@android.com>
Conflicts:
arch/arm/Kconfig
arch/arm/mm/Kconfig
|