From 6941b77c879b5411844914dd87796a28b04e3caa Mon Sep 17 00:00:00 2001 From: Aaron Durbin Date: Tue, 12 Aug 2014 17:55:02 -0500 Subject: ryu: support for DMA region Currently ryu needs a DMA region in order to communicate with USB devices. Therefore, add that region to the memory map. BUG=chrome-os-partner:31293 BRANCH=None TEST=With usb added am able to talk to a USB mass storage device albeit inconsistently. Change-Id: I7efaf2ba44cc94dc64af3f1cd916bdc5c7ff0795 Signed-off-by: Patrick Georgi Original-Commit-Id: e93389479518ee28dc3477da0c6e6e33fa8a47d1 Original-Change-Id: I6b5c052ccaafce30705349e07639dffbb994901f Original-Signed-off-by: Aaron Durbin Original-Reviewed-on: https://chromium-review.googlesource.com/212162 Original-Reviewed-by: Furquan Shaikh Original-Commit-Queue: Furquan Shaikh Reviewed-on: http://review.coreboot.org/8926 Tested-by: build bot (Jenkins) Reviewed-by: Stefan Reinauer --- src/mainboard/google/rush_ryu/Kconfig | 8 ++++++++ src/mainboard/google/rush_ryu/mainboard.c | 20 ++++++++++++++++++++ 2 files changed, 28 insertions(+) (limited to 'src/mainboard') diff --git a/src/mainboard/google/rush_ryu/Kconfig b/src/mainboard/google/rush_ryu/Kconfig index ec6eadb86b..c6929af589 100644 --- a/src/mainboard/google/rush_ryu/Kconfig +++ b/src/mainboard/google/rush_ryu/Kconfig @@ -91,4 +91,12 @@ config EC_GOOGLE_CHROMEEC_I2C_BUS hex default 1 +config DRAM_DMA_START + hex + default 0xc0000000 + +config DRAM_DMA_SIZE + hex + default 0x00200000 + endif # BOARD_GOOGLE_RUSH_RYU diff --git a/src/mainboard/google/rush_ryu/mainboard.c b/src/mainboard/google/rush_ryu/mainboard.c index 93ffca9adc..1e80b5b9b2 100644 --- a/src/mainboard/google/rush_ryu/mainboard.c +++ b/src/mainboard/google/rush_ryu/mainboard.c @@ -17,8 +17,10 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ +#include #include #include +#include #include #include @@ -63,3 +65,21 @@ struct chip_operations mainboard_ops = { .name = "rush_ryu", .enable_dev = mainboard_enable, }; + +void mainboard_add_memory_ranges(struct memranges *map) +{ + /* Create non-cacheable region for DMA operations. */ + memranges_insert(map, CONFIG_DRAM_DMA_START, CONFIG_DRAM_DMA_SIZE, + MA_MEM | MA_MEM_NC | MA_NS | MA_RW); +} + +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; +} -- cgit v1.2.3