summaryrefslogtreecommitdiff
path: root/src/mainboard/google
diff options
context:
space:
mode:
Diffstat (limited to 'src/mainboard/google')
-rw-r--r--src/mainboard/google/snow/bootblock.c107
1 files changed, 9 insertions, 98 deletions
diff --git a/src/mainboard/google/snow/bootblock.c b/src/mainboard/google/snow/bootblock.c
index 90a2de188e..fc0b20814b 100644
--- a/src/mainboard/google/snow/bootblock.c
+++ b/src/mainboard/google/snow/bootblock.c
@@ -17,90 +17,20 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
-#include <stdlib.h>
#include <types.h>
-#include <assert.h>
-#include <arch/armv7/include/common.h>
#include <arch/io.h>
-#include "cpu/samsung/exynos5250/clk.h"
-#include "cpu/samsung/exynos5250/cpu.h"
-#include "cpu/samsung/exynos5250/dmc.h"
-#include "cpu/samsung/exynos5250/gpio.h"
-#include "cpu/samsung/exynos5250/periph.h"
-#include "cpu/samsung/exynos5250/setup.h"
-#include "cpu/samsung/exynos5250/clock_init.h"
-#include "cpu/samsung/s5p-common/gpio.h"
-#include "cpu/samsung/s5p-common/s3c24x0_i2c.h"
-#include "cpu/samsung/exynos5-common/spi.h"
-
-#include <device/i2c.h>
-#include <drivers/maxim/max77686/max77686.h>
+#include <cbfs.h>
#include <uart.h>
-
#include <console/console.h>
-#include <cbfs.h>
-
-#define EXYNOS5_CLOCK_BASE 0x10010000
-
-#define CONFIG_SYS_CLK_FREQ 24000000
-
-void puts(const char *s);
-void puts(const char *s)
-{
- int n = 0;
-
- while (*s) {
- if (*s == '\n') {
- uart_tx_byte(0xd); /* CR */
- }
-
- uart_tx_byte(*s++);
- n++;
- }
-}
-
-static void do_serial(void)
-{
- //exynos_pinmux_config(PERIPH_ID_UART3, PINMUX_FLAG_NONE);
- gpio_set_pull(GPIO_A14, EXYNOS_GPIO_PULL_NONE);
- gpio_cfg_pin(GPIO_A15, EXYNOS_GPIO_FUNC(0x2));
-
- uart_init();
-}
+#include <device/i2c.h>
+#include <cpu/samsung/exynos5250/clk.h>
+#include <cpu/samsung/exynos5250/dmc.h>
+#include <cpu/samsung/exynos5250/periph.h>
+#include <cpu/samsung/exynos5250/clock_init.h>
+#include <drivers/maxim/max77686/max77686.h>
#define I2C0_BASE 0x12c60000
-void do_barriers(void);
-void do_barriers(void)
-{
- /*
- * The reason we don't write out the instructions dsb/isb/sev:
- * While ARM Cortex-A8 supports ARM v7 instruction set (-march=armv7a),
- * we compile with -march=armv5 to allow more compilers to work.
- * For U-Boot code this has no performance impact.
- */
- __asm__ __volatile__(
-#if defined(__thumb__)
- ".hword 0xF3BF, 0x8F4F\n" /* dsb; darn -march=armv5 */
- ".hword 0xF3BF, 0x8F6F\n" /* isb; darn -march=armv5 */
- ".hword 0xBF40\n" /* sev; darn -march=armv5 */
-#else
- ".word 0xF57FF04F\n" /* dsb; darn -march=armv5 */
- ".word 0xF57FF06F\n" /* isb; darn -march=armv5 */
- ".word 0xE320F004\n" /* sev; darn -march=armv5 */
-#endif
- );
-}
-
-/* is this right? meh, it seems to work well enough... */
-void my_udelay(unsigned int n);
-void my_udelay(unsigned int n)
-{
- n *= 1000;
- __asm__ volatile ("1:\n" "subs %0, %1, #1\n"
- "bne 1b":"=r" (n):"0"(n));
-}
-
/*
* Max77686 parameters values
* see max77686.h for parameters details
@@ -359,13 +289,6 @@ static void power_init(void)
#define is_digit isdigit
#define isxdigit(c) (((c) >= '0' && (c) <= '9') || ((c) >= 'a' && (c) <= 'f') || ((c) >= 'A' && (c) <= 'F'))
-void __div0 (void);
-void __div0 (void)
-{
- puts("divide by zero detected");
- while(1) ;
-}
-
static int skip_atoi(const char **s)
{
int i=0;
@@ -649,20 +572,8 @@ void bootblock_mainboard_init(void)
mem = get_mem_timings();
arm_ratios = get_arm_clk_ratios();
system_clock_init(mem, arm_ratios);
- do_serial();
+ exynos_pinmux_config(PERIPH_ID_UART3, PINMUX_FLAG_NONE);
+ uart_init();
printk(BIOS_INFO, "%s: UART initialized\n", __func__);
-
-#if 0
- /* FIXME: dump SRAM content for sanity checking */
- uint32_t u;
- for (u = CONFIG_SPI_IMAGE_HACK; u < CONFIG_SPI_IMAGE_HACK + 128; u++) {
- if (u % 16 == 0)
- printk(BIOS_INFO, "\n0x%08x: ", u);
- else
- printk(BIOS_INFO, " ");
- printk(BIOS_INFO, "%02x", *(uint8_t *)(u));
- }
- printk(BIOS_INFO, "\n");
-#endif
printk(BIOS_INFO, "%s: finished\n", __func__);
}