[U-Boot] [PATCH v3 0/23] tegra: warmboot (suspend / resume) support
Simon Glass
sjg at chromium.org
Tue Apr 3 01:18:40 CEST 2012
This series adds support for warm boot, allowing the device to suspend
and resume. U-Boot sets up some 'warm boot' code in a special area such
that the SOC can find it on a resume. This code is responsible for
setting up memory and clocked and then allowing the OS to continue
where it left off.
Also included here is support for the EMC, which allows setting the memory
timings correctly in U-Boot for maximum speed operation.
Note: sign-offs are needed from Jimmy Zhang, Wei Ni and Yen Lin.
Changes in v2:
- Add check of undocumented values in hidrev register
- Add debug() output to EMC
- Add new fdtdec_locate_array() function
- Add patch to find DVC bus number
- Check error return from pmu_set_nominal() in debug mode
- Move EMC tables to device tree
- Move structs shared between A9 and AVP into warmboot.h header file
- New patch to add low-level clock functions
- Rely on compiler to optimise out debug_print_vector()
- Remove unused crypto code
- Remove unused crypto code from crypto.c
- Removed check for nominal voltage (not needed as it is done just before)
- Split PMU code into separate TPS6586X driver
- Tidy SDRAM range check in warmboot_prepare_code()
- Tidy whitespace problems
- Use const for sbox arrays
- Use low-level clock functions in warmboot code instead of register access
Changes in v3:
- Add apb_misc.h header file in new patch
- Add better error reporting when EMC setup fails
- Add new fdtdec_next_compatible_subnode() patch
- Add new patch to put abs() in common.h
- Fix CONFIG_TEGRA_I2C define
- Move abs() macro into common.h
- Support nvidia,use-ram-code binding option for EMC
- Try to return a useful error code when EMC config fails
Jimmy Zhang (3):
tegra: Add EMC support for optimal memory timings
tegra: Add PMU to manage power supplies
tegra: Add EMC settings for Seaboard
Simon Glass (14):
fdt: Add function to locate an array in the device tree
fdt: Add function to return next compatible subnode
Add abs() macro to return absolute value
i2c: Add TPS6586X driver
tegra: Move ap20.h header into arch location
tegra: Add functions to access low-level Osc/PLL details
tegra: Add tegra_get_chip_type() to detect SKU
tegra: Add header file for APB_MISC register
tegra: Set up PMU for Nvidia boards
tegra: Set up warmboot code on Nvidia boards
fdt: tegra: Add EMC node to device tree
tegra: i2c: Add function to find DVC bus
tegra: fdt: Add EMC data for Tegra2 Seaboard
tegra: Enable LP0 on Seaboard
Wei Ni (1):
tegra: Turn off power detect in board init
Yen Lin (5):
Add AES crypto library
tegra: Add crypto library for warmboot code
tegra: Add flow, gp_padctl, fuse, sdram headers
tegra: Add warmboot implementation
tegra: Setup PMC scratch info from ap20 setup
arch/arm/cpu/armv7/tegra2/Makefile | 4 +
arch/arm/cpu/armv7/tegra2/ap20.c | 44 ++-
arch/arm/cpu/armv7/tegra2/board.c | 4 +-
arch/arm/cpu/armv7/tegra2/clock.c | 32 +
arch/arm/cpu/armv7/tegra2/crypto.c | 230 ++++++++
arch/arm/cpu/armv7/tegra2/crypto.h | 36 ++
arch/arm/cpu/armv7/tegra2/emc.c | 286 ++++++++++
arch/arm/cpu/armv7/tegra2/pmu.c | 70 +++
arch/arm/cpu/armv7/tegra2/warmboot.c | 382 +++++++++++++
arch/arm/cpu/armv7/tegra2/warmboot_avp.c | 250 ++++++++
arch/arm/cpu/armv7/tegra2/warmboot_avp.h | 81 +++
arch/arm/dts/tegra20.dtsi | 7 +
.../tegra2 => include/asm/arch-tegra2}/ap20.h | 7 +
arch/arm/include/asm/arch-tegra2/apb_misc.h | 36 ++
arch/arm/include/asm/arch-tegra2/clk_rst.h | 3 +
arch/arm/include/asm/arch-tegra2/clock.h | 22 +
arch/arm/include/asm/arch-tegra2/emc.h | 113 ++++
arch/arm/include/asm/arch-tegra2/flow.h | 36 ++
arch/arm/include/asm/arch-tegra2/fuse.h | 39 ++
arch/arm/include/asm/arch-tegra2/gp_padctrl.h | 73 +++
arch/arm/include/asm/arch-tegra2/pmu.h | 30 +
arch/arm/include/asm/arch-tegra2/sdram_param.h | 148 +++++
arch/arm/include/asm/arch-tegra2/tegra2.h | 25 +
arch/arm/include/asm/arch-tegra2/tegra_i2c.h | 7 +
arch/arm/include/asm/arch-tegra2/warmboot.h | 150 +++++
board/nvidia/common/Makefile | 1 +
board/nvidia/common/board.c | 41 ++-
board/nvidia/common/emc.c | 53 ++
board/nvidia/common/emc.h | 29 +
board/nvidia/dts/tegra2-seaboard.dts | 72 +++
drivers/i2c/tegra_i2c.c | 14 +
drivers/power/Makefile | 1 +
drivers/power/tps6586x.c | 280 +++++++++
include/aes.h | 70 +++
include/common.h | 13 +
include/configs/seaboard.h | 8 +
include/configs/tegra2-common.h | 17 +
include/fdtdec.h | 38 ++
include/tps6586x.h | 68 +++
lib/Makefile | 1 +
lib/aes.c | 598 ++++++++++++++++++++
lib/fdtdec.c | 28 +
42 files changed, 3443 insertions(+), 4 deletions(-)
create mode 100644 arch/arm/cpu/armv7/tegra2/crypto.c
create mode 100644 arch/arm/cpu/armv7/tegra2/crypto.h
create mode 100644 arch/arm/cpu/armv7/tegra2/emc.c
create mode 100644 arch/arm/cpu/armv7/tegra2/pmu.c
create mode 100644 arch/arm/cpu/armv7/tegra2/warmboot.c
create mode 100644 arch/arm/cpu/armv7/tegra2/warmboot_avp.c
create mode 100644 arch/arm/cpu/armv7/tegra2/warmboot_avp.h
rename arch/arm/{cpu/armv7/tegra2 => include/asm/arch-tegra2}/ap20.h (96%)
create mode 100644 arch/arm/include/asm/arch-tegra2/apb_misc.h
create mode 100644 arch/arm/include/asm/arch-tegra2/emc.h
create mode 100644 arch/arm/include/asm/arch-tegra2/flow.h
create mode 100644 arch/arm/include/asm/arch-tegra2/fuse.h
create mode 100644 arch/arm/include/asm/arch-tegra2/gp_padctrl.h
create mode 100644 arch/arm/include/asm/arch-tegra2/pmu.h
create mode 100644 arch/arm/include/asm/arch-tegra2/sdram_param.h
create mode 100644 arch/arm/include/asm/arch-tegra2/warmboot.h
create mode 100644 board/nvidia/common/emc.c
create mode 100644 board/nvidia/common/emc.h
create mode 100644 drivers/power/tps6586x.c
create mode 100644 include/aes.h
create mode 100644 include/tps6586x.h
create mode 100644 lib/aes.c
--
1.7.7.3
More information about the U-Boot
mailing list