android_image_parse_kernel_comp() doesn't return valid os
compressed type after android_image_set_kload(), so we add
the env "os_comp" to record compressed type.
Change-Id: Ie175649d348c0578ce78e139bdbbf4b6f9ea1101
Signed-off-by: Joseph Chen <chenjh@rock-chips.com>
If there is not "kernel_addr_c", using "kernel_addr_r" for Image/zImage
on 32-bit platform.
If there is not "kernel_addr_c", adjust load address to promise compressed
kernel can normal boot on 64-bit platform.
Change-Id: I42cc3c9074eb8f1caaa44d9256d2abdae6cd97b8
Signed-off-by: Joseph Chen <chenjh@rock-chips.com>
- use standard dm framework to implement all key drivers;
- all key node to be children and attach to key bus;
- dm key uclass takes over most work;
- reduce a lot of driver code size;
Change-Id: I9ea4515249d493eb4434890b90350f694c07404f
Signed-off-by: Joseph Chen <chenjh@rock-chips.com>
It is optional to use dtb from distro images to initialize
periph drivers when kernel dtb function is enabled.
Change-Id: I7119962ba61d84c5ccdf2e515e21bb347e50b91b
Signed-off-by: Joseph Chen <chenjh@rock-chips.com>
- add amp uclass;
- add a simple rockchip amp driver.
An example for amps dts node configure:
amps {
compatible = "uboot,rockchip-amp";
status = "okay";
amp@0 {
description = "mcu-os1";
partition = "mcu1";
cpu = <0x1>; // this is mpidr!
load = <0x800000>;
entry = <0x800000>;
memory = <0x800000 0x400000>;
};
amp@1 {
......
};
......
};
U-Boot loads "mcu-os1" firmware to "0x800000" address from partiton
"mcu1" for cpu[1], the cpu[1] entry address is 0x800000. And
U-Boot reserve memory from 0x800000 with 0x400000 size in order
to make it invisible for kernel.
Please use rockchip tool "mkkrnlimg" to pack firmware binary, example:
./scripts/mkkrnlimg mcu-os1.bin mcu-os1.img
Change-Id: I127d5d9f460ec0c1812a76fb4c3702e82f21c9a6
Signed-off-by: Joseph Chen <chenjh@rock-chips.com>
Use different name for the volume up key node, dm framework
can't support the same device node since kernel dtb is enabled.
Change-Id: Ia99c9b8fd46fea63949f9d06072c0ebec0e76a46
Signed-off-by: Joseph Chen <chenjh@rock-chips.com>
Default boot from sdcard may fail in evb without sd.
Change-Id: Ifde49b6b28e7154a14f5e028d9863446f11cb59c
Signed-off-by: Kever Yang <kever.yang@rock-chips.com>
RK3368 uart2 iomux config is not correct, fix it.
Change-Id: I992c4b0ae9d8c0a91c5ee1fb3e7850a1e94db206
Signed-off-by: Kever Yang <kever.yang@rock-chips.com>
- If the region is out of avaiable dram bank, return success;
- region can override allocated memblk with attr M_ATTR_OVERLAP;
Change-Id: I02171cdb51462e9cec3dd955ae3e0aaaa0ee7afd
Signed-off-by: Joseph Chen <chenjh@rock-chips.com>
The under-voltage protection will shutdown the LDO3 and reset the PMIC.
Change-Id: Ic84c7ad1a2eed8c1f983e761988ffb903fc878af
Signed-off-by: Shengfei Xu <xsf@rock-chips.com>
The sd card power is enabled when PWREN is set low by rockchip hardware design.
Change-Id: I4fb54235bd5235030146f77be1e07dc4e729ae06
Signed-off-by: Jason Zhu <jason.zhu@rock-chips.com>
This U-Boot is working with kernel-4.4 at least which
requires trust.img with ta.
It also avoids user confused with trust.img and trust_with_ta.img.
Change-Id: I18ec538a1f83cbb660e2fda597bf8120863d744f
Signed-off-by: Joseph Chen <chenjh@rock-chips.com>
This adds a simple driver for reading the OTP block of the PX30.
Change-Id: Ic2c0f4b0886808af87c826e8d0045e5d440521f7
Signed-off-by: Finley Xiao <finley.xiao@rock-chips.com>
Add function get_cd to detect storage device directly instead of detect
it by mmc command.
Change-Id: I486dee836c62092baabe40fc6de995904849f91d
Signed-off-by: Jason Zhu <jason.zhu@rock-chips.com>
file not exist if ret < 0, file exist if ret >=0
Change-Id: I1a70b0a41773f03d552c5f6cda82b745d6e81421
Signed-off-by: Hisping Lin <hisping.lin@rock-chips.com>
CONFIG_SYS_TEXT_BASE define in header file has be deprecate on
mainline, it has been move to Kconfig.
Change-Id: I40ae0ab84dbc6d74eca3450413fc2d11eb098434
Signed-off-by: Kever Yang <kever.yang@rock-chips.com>
Enable the exception handler for async error so that we can get the
abort before kernel.
Change-Id: Ie0e7c89a0d03adf3b74b0d9ddf8c9117536dac6b
Signed-off-by: Kever Yang <kever.yang@rock-chips.com>
TPL need dmc to init ddr sdram, and emmc, boot-order.
Change-Id: Ia783e1a47a7710bf618c556eefaf354b7097eacd
Signed-off-by: Kever Yang <kever.yang@rock-chips.com>
We always try to init stimer in case it's not init in previous stage,
but don't re-init if it already work.
Change-Id: I2133804560c6e31e51e6b2cb0a6e51b9544970d3
Signed-off-by: Kever Yang <kever.yang@rock-chips.com>
The arch_cpu_init() should be done in SPL only.
Change-Id: If96bad9694dbcb0d9821433d1f2cbead4517633c
Signed-off-by: Kever Yang <kever.yang@rock-chips.com>
arch_cpu_init() may use DM to get cru handler.
Change-Id: I5f2daa4718bcdcc5a4aa5601d26e9f4f31a01b69
Signed-off-by: Kever Yang <kever.yang@rock-chips.com>
During board_f sequence, it's able to add any count of dram banks
and validate memory layout after reserve_xxx() done, stop bootflow
if there is something wrong.
During board_r sequence, it's able to manage all memory blocks and
add reserve memory blocks for bi_dram[] at late bootflow, it's
nesscessary for AMP boot.
Change-Id: I4443a809792bb04e205bb26d79870c85cb5fe7bd
Signed-off-by: Joseph Chen <chenjh@rock-chips.com>
Some platform provides more than one dram banks and reserved firmware
regions (eg. ATF, OP-TEE, etc) by pre-loader dynamically. It means
there are memory holes in board dram layout. What's more, U-Boot will
reserved regions at the late bootflow(eg. firmware reserved for AMP).
So we introduce bidram mechanism to manage GD board bi_dram[], which
provides a way to easily manage memory holes and update bi_dram[]. It
dpends on LMB which provides a good algorithm to manage memory blocks.
What's different from sysmem?
- bidram manage and pass the avaliable memory blocks to kernel;
- sysmem is only for U-Boot memory management to avoid ram overlap,
it doesn't matter about kernel avaliable memory.
Change-Id: I697cbb80bdc961e4ad5ab94548e2dc93feefde6f
Signed-off-by: Joseph Chen <chenjh@rock-chips.com>