[coreboot-gerrit] New patch to review for coreboot: fb9f814 beaglebone: Update bootblock.c to take advantage of the new structs/code.

Gabe Black (gabeblack@chromium.org) gerrit at coreboot.org
Tue Sep 24 11:26:37 CEST 2013


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

-gerrit

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

    beaglebone: Update bootblock.c to take advantage of the 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 | 40 ++++++++++++++++-----------------
 1 file changed, 20 insertions(+), 20 deletions(-)

diff --git a/src/mainboard/ti/beaglebone/bootblock.c b/src/mainboard/ti/beaglebone/bootblock.c
index dd46040..ce7beab 100644
--- a/src/mainboard/ti/beaglebone/bootblock.c
+++ b/src/mainboard/ti/beaglebone/bootblock.c
@@ -21,48 +21,48 @@
 #include <types.h>
 #include <uart.h>
 #include <console/console.h>
+#include <cpu/ti/am335x/clock.h>
+#include <cpu/ti/am335x/gpio.h>
 #include <cpu/ti/am335x/pinmux.h>
 
+#include "leds.h"
+
 void bootblock_mainboard_init(void);
 void bootblock_mainboard_init(void)
 {
-	void *uart_clock_ctrl = NULL;
-
-	/* Enable the GPIO module */
-	writel((0x2 << 0) | (1 << 18), (uint32_t *)(0x44e00000 + 0xac));
-
-	/* Disable interrupts from these GPIOs */
-	setbits_le32((uint32_t *)(0x4804c000 + 0x3c), 0xf << 21);
+	writel(CM_ST_SW_WKUP | CM_FCLK_EN, &am335x_cm_wkup->wkup_gpio0);
+	writel(CM_ST_SW_WKUP | CM_FCLK_EN, &am335x_cm_per->gpio1);
+	writel(CM_ST_SW_WKUP | CM_FCLK_EN, &am335x_cm_per->gpio2);
+	writel(CM_ST_SW_WKUP | CM_FCLK_EN, &am335x_cm_per->gpio3);
 
-	/* 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_CONSOLE_SERIAL_UART0) {
 		am335x_pinmux_uart0();
-		uart_clock_ctrl = (void *)(uintptr_t)(0x44e00400 + 0xb4);
+		writel(CM_ST_SW_WKUP, &am335x_cm_wkup->wkup_uart0);
 	} else if (CONFIG_CONSOLE_SERIAL_UART1) {
 		am335x_pinmux_uart1();
-		uart_clock_ctrl = (void *)(uintptr_t)(0x44e00000 + 0x6c);
+		writel(CM_ST_SW_WKUP, &am335x_cm_per->uart1);
 	} else if (CONFIG_CONSOLE_SERIAL_UART2) {
 		am335x_pinmux_uart2();
-		uart_clock_ctrl = (void *)(uintptr_t)(0x44e00000 + 0x70);
+		writel(CM_ST_SW_WKUP, &am335x_cm_per->uart2);
 	} else if (CONFIG_CONSOLE_SERIAL_UART3) {
 		am335x_pinmux_uart3();
-		uart_clock_ctrl = (void *)(uintptr_t)(0x44e00000 + 0x74);
+		writel(CM_ST_SW_WKUP, &am335x_cm_per->uart3);
 	} else if (CONFIG_CONSOLE_SERIAL_UART4) {
 		am335x_pinmux_uart4();
-		uart_clock_ctrl = (void *)(uintptr_t)(0x44e00000 + 0x78);
+		writel(CM_ST_SW_WKUP, &am335x_cm_per->uart4);
 	} else if (CONFIG_CONSOLE_SERIAL_UART5) {
 		am335x_pinmux_uart5();
-		uart_clock_ctrl = (void *)(uintptr_t)(0x44e00000 + 0x38);
+		writel(CM_ST_SW_WKUP, &am335x_cm_per->uart5);
 	}
-	if (uart_clock_ctrl)
-		writel(0x2, uart_clock_ctrl);
 
 	/* Start monotonic timer */
 	//rtc_start();



More information about the coreboot-gerrit mailing list