[coreboot-gerrit] Patch set updated for coreboot: beaglebone: Update bootblock.c to use new structs/code

Gabe Black (gabeblack@chromium.org) gerrit at coreboot.org
Thu Apr 7 11:39:19 CEST 2016


Gabe Black (gabeblack at chromium.org) just uploaded a new patch set to gerrit, which you can find at https://review.coreboot.org/3944

-gerrit

commit fc7e37a3a35294c16552723b9d63603b236f1024
Author: Gabe Black <gabeblack at chromium.org>
Date:   Tue Sep 24 01:42:30 2013 -0700

    beaglebone: Update bootblock.c to use new structs/code
    
    New structures and functions have been added to make it easier and
    clearer to talk to GPIOs, configure the clock module, and toggle the
    LEDs. Use that code in bootblock.c instead of doing those things
    manually with hardcoded addresses.
    
    Change-Id: If41db0220de4bc95a6c99945ec402e3026cb4eeb
    Signed-off-by: Gabe Black <gabeblack at chromium.org>
---
 src/mainboard/ti/beaglebone/bootblock.c | 39 ++++++++++++++++-----------------
 1 file changed, 19 insertions(+), 20 deletions(-)

diff --git a/src/mainboard/ti/beaglebone/bootblock.c b/src/mainboard/ti/beaglebone/bootblock.c
index 162592f..aae2fa3 100644
--- a/src/mainboard/ti/beaglebone/bootblock.c
+++ b/src/mainboard/ti/beaglebone/bootblock.c
@@ -18,47 +18,46 @@
 #include <bootblock_common.h>
 #include <console/uart.h>
 #include <console/console.h>
+#include <cpu/ti/am335x/gpio.h>
 #include <cpu/ti/am335x/pinmux.h>
 
+#include "leds.h"
+
 void bootblock_mainboard_init(void)
 {
-	void *uart_clock_ctrl = NULL;
-
-	/* Enable the GPIO module */
-	write32((uint32_t *)(0x44e00000 + 0xac), (0x2 << 0) | (1 << 18));
-
-	/* Disable interrupts from these GPIOs */
-	setbits_le32((uint32_t *)(0x4804c000 + 0x3c), 0xf << 21);
+	write32(&am335x_cm_wkup->wkup_gpio0, CM_ST_SW_WKUP | CM_FCLK_EN);
+	write32(&am335x_cm_per->gpio1, CM_ST_SW_WKUP | CM_FCLK_EN);
+	write32(&am335x_cm_per->gpio2, CM_ST_SW_WKUP | CM_FCLK_EN);
+	write32(&am335x_cm_per->gpio3, CM_ST_SW_WKUP | CM_FCLK_EN);
 
-	/* Enable output */
-	clrbits_le32((uint32_t *)(0x4804c000 + 0x134), 0xf << 21);
+	am335x_disable_gpio_irqs();
 
-	/* Set every other light */
-	clrbits_le32((uint32_t *)(0x4804c000 + 0x13c), 0xf << 21);
-	setbits_le32((uint32_t *)(0x4804c000 + 0x13c), 0x5 << 21);
+	beaglebone_leds_init();
+	beaglebone_leds_set(BEAGLEBONE_LED_USR0, 1);
+	beaglebone_leds_set(BEAGLEBONE_LED_USR1, 0);
+	beaglebone_leds_set(BEAGLEBONE_LED_USR2, 1);
+	beaglebone_leds_set(BEAGLEBONE_LED_USR3, 0);
 
 	/* Set up the UART we're going to use */
 	if (CONFIG_UART_FOR_CONSOLE == 0) {
 		am335x_pinmux_uart0();
-		uart_clock_ctrl = (void *)(uintptr_t)(0x44e00400 + 0xb4);
+		write32(&am335x_cm_wkup->wkup_uart0, CM_ST_SW_WKUP);
 	} else if (CONFIG_UART_FOR_CONSOLE == 1) {
 		am335x_pinmux_uart1();
-		uart_clock_ctrl = (void *)(uintptr_t)(0x44e00000 + 0x6c);
+		write32(CM_ST_SW_WKUP, &am335x_cm_per->uart1);
 	} else if (CONFIG_UART_FOR_CONSOLE == 2) {
 		am335x_pinmux_uart2();
-		uart_clock_ctrl = (void *)(uintptr_t)(0x44e00000 + 0x70);
+		write32(&am335x_cm_per->uart2, CM_ST_SW_WKUP);
 	} else if (CONFIG_UART_FOR_CONSOLE == 3) {
 		am335x_pinmux_uart3();
-		uart_clock_ctrl = (void *)(uintptr_t)(0x44e00000 + 0x74);
+		write32(&am335x_cm_per->uart3, CM_ST_SW_WKUP);
 	} else if (CONFIG_UART_FOR_CONSOLE == 4) {
 		am335x_pinmux_uart4();
-		uart_clock_ctrl = (void *)(uintptr_t)(0x44e00000 + 0x78);
+		write32(&am335x_cm_per->uart4, CM_ST_SW_WKUP);
 	} else if (CONFIG_UART_FOR_CONSOLE == 5) {
 		am335x_pinmux_uart5();
-		uart_clock_ctrl = (void *)(uintptr_t)(0x44e00000 + 0x38);
+		write32(&am335x_cm_per->uart5, CM_ST_SW_WKUP);
 	}
-	if (uart_clock_ctrl)
-		write32(uart_clock_ctrl, 0x2);
 
 	/* Start monotonic timer */
 	//rtc_start();



More information about the coreboot-gerrit mailing list