diff options
Diffstat (limited to 'meta-openbmc-mods/meta-common/recipes-bsp/u-boot/files/0032-Adding-PFR-boot-flow-checkpoint-in-u-boot.patch')
-rw-r--r-- | meta-openbmc-mods/meta-common/recipes-bsp/u-boot/files/0032-Adding-PFR-boot-flow-checkpoint-in-u-boot.patch | 102 |
1 files changed, 0 insertions, 102 deletions
diff --git a/meta-openbmc-mods/meta-common/recipes-bsp/u-boot/files/0032-Adding-PFR-boot-flow-checkpoint-in-u-boot.patch b/meta-openbmc-mods/meta-common/recipes-bsp/u-boot/files/0032-Adding-PFR-boot-flow-checkpoint-in-u-boot.patch deleted file mode 100644 index b76a3dba0..000000000 --- a/meta-openbmc-mods/meta-common/recipes-bsp/u-boot/files/0032-Adding-PFR-boot-flow-checkpoint-in-u-boot.patch +++ /dev/null @@ -1,102 +0,0 @@ -From dda24946edd0a4ec54e3ecaa8bd493cce9bdfa15 Mon Sep 17 00:00:00 2001 -From: AppaRao Puli <apparao.puli@linux.intel.com> -Date: Mon, 22 Jul 2019 08:26:15 +0530 -Subject: [PATCH] Adding PFR boot flow checkpoint in u-boot - -Added two PFR boot flow check points in u-boot -1) Set the booting starts checkpoint(0x01) -2) Set FFUJ checkpoint(0x07) when jumper on. - -Tested: -Loaded the image, dumped all cpld registers and -cross verified the check-points properly set or not. - -Change-Id: I3c725b0e15c1fea5bdb7b085826bdabad19bda80 -Signed-off-by: AppaRao Puli <apparao.puli@linux.intel.com> ---- - board/aspeed/ast-g5/ast-g5-intel.c | 46 ++++++++++++++++++++++++++++++++++++++ - 1 file changed, 46 insertions(+) - -diff --git a/board/aspeed/ast-g5/ast-g5-intel.c b/board/aspeed/ast-g5/ast-g5-intel.c -index e68ab85..9f0a64d 100644 ---- a/board/aspeed/ast-g5/ast-g5-intel.c -+++ b/board/aspeed/ast-g5/ast-g5-intel.c -@@ -12,11 +12,21 @@ - #include <asm/arch/regs-scu.h> - #include <asm/arch/ast_scu.h> - #include <asm/arch/aspeed.h> -+#include <i2c.h> - - #include "ast-g5.h" - #include "ast-g5-gpio.h" - #include "ast-g5-timer.h" - -+/* PFR Specific defines */ -+#define PFR_CPLD_I2C_BUSNO 4 -+#define PFR_CPLD_SLAVE_ADDR 0xE0 -+#define PFR_CPLD_BOOT_CHECKPOINT_REG 0x13 -+ -+#define PFR_CPLD_CHKPOINT_START 0x01 -+#define PFR_CPLD_CHKPOINT_FFUJ 0x07 -+#define PFR_CPLD_CHKPOINT_FINISHED 0x09 -+ - /* Names to match the GPIOs */ - enum gpio_names { - GPIO_ID_LED = 0, -@@ -537,10 +547,42 @@ static void pwm_init(void) - writel(val, PWM_BASE_ADDR + PWM_CONTROL); - } - -+static void set_boot_checkpoint(u8 chk_point) -+{ -+ int ret = 0; -+ int chip = (PFR_CPLD_SLAVE_ADDR >> 1); -+ u32 reg_addr = PFR_CPLD_BOOT_CHECKPOINT_REG; -+ -+ /* Get current I2C bus number to restore later. */ -+ int current_bus_no = i2c_get_bus_num(); -+ -+ /* Set I2C bus number to PFR CPLD I2C bus. */ -+ ret = i2c_set_bus_num(PFR_CPLD_I2C_BUSNO); -+ if (ret) { -+ printf("Failed to change I2C bus number (%d)\n", ret); -+ goto done; -+ } -+ -+ ret = i2c_write(chip, reg_addr, 1, &chk_point, 1); -+ if (ret) { -+ printf("Error writing the chip: %d\n", ret); -+ goto done; -+ } -+ -+done: -+ /* Restore I2C bus number */ -+ if (i2c_set_bus_num(current_bus_no)) -+ printf("Failed to restore I2C bus number.\n"); -+} -+ - extern void espi_init(void); - extern void kcs_init(void); - void ast_g5_intel(void) - { -+ /* To notify the CPLD about the start of bootloader -+ * and hardware initialization */ -+ set_boot_checkpoint(PFR_CPLD_CHKPOINT_START); -+ - uart_init(); - pwm_init(); - gpio_init(gpio_table, ARRAY_SIZE(gpio_table)); -@@ -551,6 +593,10 @@ void ast_g5_intel(void) - if (intel_force_firmware_jumper_enabled()) { - id_led_control(GPIO_AMBER_LED, EIDLED_On); - kcs_init(); -+ /* Notify CPLD about FFUJ jumper set and pause -+ * of booting for indefinitely time. It will be -+ * resumed once reset is done. */ -+ set_boot_checkpoint(PFR_CPLD_CHKPOINT_FFUJ); - /* TODO: need to stop the booting here. */ - } else { - id_led_control(GPIO_GREEN_LED, EIDLED_On); --- -2.7.4 - |