rush: Add devicetree selection to FIT image
Use board ID to select 'nvidia,norrin' DT for Rush.
BUG=None
BRANCH=None
TEST=Built and booted on Rush, saw 'nvidia,norrin' selected and
kernel booted to command prompt OK.
Change-Id: Id7248df937648dab0ac52eddda9b83b2d942953a
Signed-off-by: Tom Warren <twarren@nvidia.com>
Reviewed-on: https://chromium-review.googlesource.com/217836
Reviewed-by: Aaron Durbin <adurbin@chromium.org>
diff --git a/src/board/rush/board.c b/src/board/rush/board.c
index f13ba13..e1b1880 100644
--- a/src/board/rush/board.c
+++ b/src/board/rush/board.c
@@ -30,6 +30,7 @@
#include "config.h"
#include "drivers/bus/spi/tegra.h"
#include "drivers/bus/i2c/tegra.h"
+#include "drivers/bus/usb/usb.h"
#include "drivers/gpio/sysinfo.h"
#include "drivers/gpio/tegra.h"
#include "drivers/dma/tegra_apb.h"
@@ -38,7 +39,10 @@
#include "drivers/tpm/tpm.h"
#include "drivers/storage/tegra_mmc.h"
#include "drivers/ec/cros/spi.h"
-#include "drivers/bus/usb/usb.h"
+
+enum {
+ BOARD_ID_PROTO_0 = 0x0A,
+};
enum {
CLK_RST_BASE = 0x60006000,
@@ -95,10 +99,24 @@
return power;
}
+static void choose_devicetree_by_boardid(void)
+{
+ switch(lib_sysinfo.board_id) {
+ case BOARD_ID_PROTO_0:
+ fit_override_kernel_compat("nvidia,norrin");
+ break;
+ default:
+ printf("Unknown board id: %x\n", lib_sysinfo.board_id);
+ break;
+ }
+}
+
static int board_setup(void)
{
sysinfo_install_flags();
+ choose_devicetree_by_boardid();
+
void *dma_channel_bases[32];
for (int i = 0; i < ARRAY_SIZE(dma_channel_bases); i++)
dma_channel_bases[i] = (void *)((unsigned long)0x60021000 + 0x40 * i);