summaryrefslogtreecommitdiff
path: root/src/mainboard
diff options
context:
space:
mode:
Diffstat (limited to 'src/mainboard')
-rw-r--r--src/mainboard/google/storm/Kconfig8
-rw-r--r--src/mainboard/google/storm/mainboard.c33
2 files changed, 34 insertions, 7 deletions
diff --git a/src/mainboard/google/storm/Kconfig b/src/mainboard/google/storm/Kconfig
index 4c90c4e094..1063f83ddd 100644
--- a/src/mainboard/google/storm/Kconfig
+++ b/src/mainboard/google/storm/Kconfig
@@ -40,4 +40,12 @@ config DRAM_SIZE_MB
int
default 512
+config DRAM_DMA_START
+ hex
+ default 0x5a000000
+
+config DRAM_DMA_SIZE
+ hex
+ default 0x00200000
+
endif # BOARD_GOOGLE_STORM
diff --git a/src/mainboard/google/storm/mainboard.c b/src/mainboard/google/storm/mainboard.c
index 1e622f4904..301e6450e5 100644
--- a/src/mainboard/google/storm/mainboard.c
+++ b/src/mainboard/google/storm/mainboard.c
@@ -20,17 +20,25 @@
#include <arch/cache.h>
#include <boot/coreboot_tables.h>
#include <device/device.h>
-
-#define TO_MB(x) ((x)>>20)
+#include <soc/qualcomm/ipq806x/include/clock.h>
+#include <soc/qualcomm/ipq806x/include/usb.h>
/* convenient shorthand (in MB) */
-#define DRAM_START TO_MB(CONFIG_SYS_SDRAM_BASE)
+#define DRAM_START (CONFIG_SYS_SDRAM_BASE / MiB)
#define DRAM_SIZE (CONFIG_DRAM_SIZE_MB)
#define DRAM_END (DRAM_START + DRAM_SIZE)
/* DMA memory for drivers */
-#define DMA_START TO_MB(CONFIG_DRAM_DMA_START)
-#define DMA_SIZE TO_MB(CONFIG_DRAM_DMA_SIZE)
+#define DMA_START (CONFIG_DRAM_DMA_START / MiB)
+#define DMA_SIZE (CONFIG_DRAM_DMA_SIZE / MiB)
+
+static void setup_usb(void)
+{
+ usb_clock_config();
+
+ setup_usb_host1();
+ setup_usb_host2();
+}
static void setup_mmu(void)
{
@@ -43,8 +51,7 @@ static void setup_mmu(void)
/* Map DRAM memory */
mmu_config_range(DRAM_START, DRAM_SIZE, DCACHE_WRITEBACK);
/* Map DMA memory */
- if (DMA_SIZE)
- mmu_config_range(DMA_START, DMA_SIZE, DCACHE_OFF);
+ mmu_config_range(DMA_START, DMA_SIZE, DCACHE_OFF);
mmu_disable_range(DRAM_END, 4096 - DRAM_END);
@@ -56,6 +63,7 @@ static void setup_mmu(void)
static void mainboard_init(device_t dev)
{
setup_mmu();
+ setup_usb();
}
static void mainboard_enable(device_t dev)
@@ -67,3 +75,14 @@ struct chip_operations mainboard_ops = {
.name = "storm",
.enable_dev = mainboard_enable,
};
+
+void lb_board(struct lb_header *header)
+{
+ struct lb_range *dma;
+
+ dma = (struct lb_range *)lb_new_record(header);
+ dma->tag = LB_TAB_DMA;
+ dma->size = sizeof(*dma);
+ dma->range_start = CONFIG_DRAM_DMA_START;
+ dma->range_size = CONFIG_DRAM_DMA_SIZE;
+}