layerscape: add 64b/32b target for ls1012ardb device
[openwrt/staging/wigyori.git] / package / boot / uboot-layerscape / patches / 0028-fsl-ls1012a-qixis-Add-support-for-qixis-subsystem.patch
diff --git a/package/boot/uboot-layerscape/patches/0028-fsl-ls1012a-qixis-Add-support-for-qixis-subsystem.patch b/package/boot/uboot-layerscape/patches/0028-fsl-ls1012a-qixis-Add-support-for-qixis-subsystem.patch
new file mode 100644 (file)
index 0000000..0604685
--- /dev/null
@@ -0,0 +1,80 @@
+From 4fcb1d5141ff6d9527ceac9f391e1da4128f5a60 Mon Sep 17 00:00:00 2001
+From: Abhimanyu Saini <abhimanyu.saini@nxp.com>
+Date: Tue, 10 May 2016 09:54:36 +0530
+Subject: [PATCH 28/93] fsl, ls1012a, qixis: Add support for qixis subsystem
+
+Add support for the printing FPGA build information,
+altbank switching and board reset using qixis subsystem.
+
+Signed-off-by: Calvin Johnson <calvin.johnson@nxp.com>
+Signed-off-by: Abhimanyu Saini <abhimanyu.saini@nxp.com>
+---
+ board/freescale/ls1012aqds/ls1012aqds.c |   20 +++++++++++++++++++-
+ include/configs/ls1012aqds.h            |   17 +++++++++++++++++
+ 2 files changed, 36 insertions(+), 1 deletion(-)
+
+diff --git a/board/freescale/ls1012aqds/ls1012aqds.c b/board/freescale/ls1012aqds/ls1012aqds.c
+index 5cb225f..446989b 100644
+--- a/board/freescale/ls1012aqds/ls1012aqds.c
++++ b/board/freescale/ls1012aqds/ls1012aqds.c
+@@ -44,8 +44,26 @@ static void set_wait_for_bits_clear(void *ptr, u32 value, u32 bits)
+ int checkboard(void)
+ {
+-      puts("Board: LS1012AQDS\n");
++      char buf[64];
++      u8 sw;
++      sw = QIXIS_READ(arch);
++      printf("Board Arch: V%d, ", sw >> 4);
++      printf("Board version: %c, boot from ", (sw & 0xf) + 'A' - 1);
++
++      sw = QIXIS_READ(brdcfg[QIXIS_LBMAP_BRDCFG_REG]);
++
++      if (sw & QIXIS_LBMAP_ALTBANK)
++              printf("flash: 2\n");
++      else
++              printf("flash: 1\n");
++
++      printf("FPGA: v%d (%s), build %d",
++                      (int)QIXIS_READ(scver), qixis_read_tag(buf),
++                      (int)qixis_read_minor());
++
++      /* the timestamp string contains "\n" at the end */
++      printf(" on %s", qixis_read_time(buf));
+       return 0;
+ }
+diff --git a/include/configs/ls1012aqds.h b/include/configs/ls1012aqds.h
+index 51ca902..de998b8 100644
+--- a/include/configs/ls1012aqds.h
++++ b/include/configs/ls1012aqds.h
+@@ -26,8 +26,25 @@
+ #define SGMII_CARD_PORT4_PHY_ADDR 0x1F
+ #endif
++/*
++ * QIXIS Definitions
++ */
++#define CONFIG_FSL_QIXIS
++
++#ifdef CONFIG_FSL_QIXIS
+ #define CONFIG_QIXIS_I2C_ACCESS
+ #define CONFIG_SYS_I2C_FPGA_ADDR      0x66
++#define QIXIS_LBMAP_BRDCFG_REG                0x04
++#define QIXIS_LBMAP_SWITCH            6
++#define QIXIS_LBMAP_MASK              0xf7
++#define QIXIS_LBMAP_SHIFT             0
++#define QIXIS_LBMAP_DFLTBANK          0x00
++#define QIXIS_LBMAP_ALTBANK           0x08
++#define QIXIS_RST_CTL_RESET           0x41
++#define QIXIS_RCFG_CTL_RECONFIG_IDLE  0x20
++#define QIXIS_RCFG_CTL_RECONFIG_START 0x21
++#define QIXIS_RCFG_CTL_WATCHDOG_ENBLE 0x08
++#endif
+ /*
+  * I2C bus multiplexer
+-- 
+1.7.9.5
+