summaryrefslogtreecommitdiffstats
path: root/arch/arm/boards/radxa-rock
diff options
context:
space:
mode:
authorSascha Hauer <s.hauer@pengutronix.de>2014-04-29 08:34:54 +0200
committerSascha Hauer <s.hauer@pengutronix.de>2014-04-29 08:40:40 +0200
commit903b1d430904588ef9f6b2f897b46e3e3cc4516a (patch)
treed3fd8739f5ba44cc70966bc2a15420f5e65fda9b /arch/arm/boards/radxa-rock
parent3bef9916a3610e5323c0297ad78471d331c332d5 (diff)
downloadbarebox-903b1d430904588ef9f6b2f897b46e3e3cc4516a.tar.gz
barebox-903b1d430904588ef9f6b2f897b46e3e3cc4516a.tar.xz
ARM: Rockchip: switch to multiimage support
- Add images/Makefile.rockchip - Allow multiple boards to be selected - protect initcalls with appropriate of_machine_is_compatible - rename board specific config to SoC config - Add dtb file to compilation - turn barebox_arm_reset_vectorto ENTRY_FUNCTION - pass dtb to barebox_arm_entry Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'arch/arm/boards/radxa-rock')
-rw-r--r--arch/arm/boards/radxa-rock/board.c9
-rw-r--r--arch/arm/boards/radxa-rock/lowlevel.c11
2 files changed, 18 insertions, 2 deletions
diff --git a/arch/arm/boards/radxa-rock/board.c b/arch/arm/boards/radxa-rock/board.c
index 55b4d23ef3..691f243d80 100644
--- a/arch/arm/boards/radxa-rock/board.c
+++ b/arch/arm/boards/radxa-rock/board.c
@@ -45,6 +45,9 @@ static void radxa_rock_pmic_init(void)
static int setup_plls(void)
{
+ if (!of_machine_is_compatible("radxa,rock"))
+ return 0;
+
/* Codec PLL frequency: 594 MHz */
rk3188_pll_set_parameters(RK3188_CPLL, 2, 198, 4);
/* General PLL frequency: 300 MHz */
@@ -56,6 +59,9 @@ coredevice_initcall(setup_plls);
static int devices_init(void)
{
+ if (!of_machine_is_compatible("radxa,rock"))
+ return 0;
+
i2c_register_board_info(0, radxa_rock_i2c_devices,
ARRAY_SIZE(radxa_rock_i2c_devices));
add_generic_device_res("i2c-gpio", 0, NULL, 0, &i2c_gpio_pdata);
@@ -71,6 +77,9 @@ device_initcall(devices_init);
static int hostname_init(void)
{
+ if (!of_machine_is_compatible("radxa,rock"))
+ return 0;
+
barebox_set_hostname("radxa-rock");
return 0;
diff --git a/arch/arm/boards/radxa-rock/lowlevel.c b/arch/arm/boards/radxa-rock/lowlevel.c
index c68d229858..0b40f10599 100644
--- a/arch/arm/boards/radxa-rock/lowlevel.c
+++ b/arch/arm/boards/radxa-rock/lowlevel.c
@@ -16,8 +16,15 @@
#include <asm/barebox-arm-head.h>
#include <asm/barebox-arm.h>
-void __naked barebox_arm_reset_vector(void)
+extern char __dtb_rk3188_radxarock_start[];
+
+ENTRY_FUNCTION(start_radxa_rock, r0, r1, r2)
{
+ uint32_t fdt;
+
arm_cpu_lowlevel_init();
- barebox_arm_entry(0x60000000, SZ_2G, 0);
+
+ fdt = (uint32_t)__dtb_rk3188_radxarock_start - get_runtime_offset();
+
+ barebox_arm_entry(0x60000000, SZ_2G, fdt);
}