[coreboot-gerrit] Patch set updated for coreboot: beaglebone: Update bootblock.c to use new structs/code
Alexander Couzens (lynxis@fe80.eu)
gerrit at coreboot.org
Fri Jun 17 07:51:35 CEST 2016
Alexander Couzens (lynxis at fe80.eu) just uploaded a new patch set to gerrit, which you can find at https://review.coreboot.org/3944
-gerrit
commit 5a0fd7ac64d9acbe298d9a81039b5ce7d4bb83a5
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>
Signed-off-by: Alexander Couzens <lynxis at fe80.eu>
---
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..1ce7fb1 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(&am335x_cm_per->uart1, CM_ST_SW_WKUP);
} 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