From owner-svn-src-projects@FreeBSD.ORG Mon Nov 25 22:24:05 2013 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id B81E4196; Mon, 25 Nov 2013 22:24:05 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 987072E47; Mon, 25 Nov 2013 22:24:05 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id rAPMO5QZ063419; Mon, 25 Nov 2013 22:24:05 GMT (envelope-from andrew@svn.freebsd.org) Received: (from andrew@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id rAPMO55n063418; Mon, 25 Nov 2013 22:24:05 GMT (envelope-from andrew@svn.freebsd.org) Message-Id: <201311252224.rAPMO55n063418@svn.freebsd.org> From: Andrew Turner Date: Mon, 25 Nov 2013 22:24:05 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r258603 - projects/specific_leg/sys/arm/ti X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.16 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 25 Nov 2013 22:24:05 -0000 Author: andrew Date: Mon Nov 25 22:24:05 2013 New Revision: 258603 URL: http://svnweb.freebsd.org/changeset/base/258603 Log: Port OMAP4 to the new platform code. Modified: projects/specific_leg/sys/arm/ti/ti_machdep.c Modified: projects/specific_leg/sys/arm/ti/ti_machdep.c ============================================================================== --- projects/specific_leg/sys/arm/ti/ti_machdep.c Mon Nov 25 22:20:34 2013 (r258602) +++ projects/specific_leg/sys/arm/ti/ti_machdep.c Mon Nov 25 22:24:05 2013 (r258603) @@ -51,36 +51,30 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include +#include "platform_if.h" + /* Start of address space used for bootstrap map */ #define DEVMAP_BOOTSTRAP_MAP_START 0xF0000000 void (*ti_cpu_reset)(void); -vm_offset_t -initarm_lastaddr(void) -{ - - return (DEVMAP_BOOTSTRAP_MAP_START); -} - -void -initarm_early_init(void) +static int +ti_attach(platform_t plat) { ti_cpu_reset = NULL; + return (0); } -void -initarm_gpio_init(void) +static vm_offset_t +ti_lastaddr(platform_t plat) { -} -void -initarm_late_init(void) -{ + return (DEVMAP_BOOTSTRAP_MAP_START); } #define FDT_DEVMAP_MAX (2) // FIXME @@ -92,31 +86,41 @@ static struct arm_devmap_entry fdt_devma /* * Construct pmap_devmap[] with DT-derived config data. */ -int -initarm_devmap_init(void) -{ - int i = 0; #if defined(SOC_OMAP4) - fdt_devmap[i].pd_va = 0xF8000000; - fdt_devmap[i].pd_pa = 0x48000000; - fdt_devmap[i].pd_size = 0x1000000; - fdt_devmap[i].pd_prot = VM_PROT_READ | VM_PROT_WRITE; - fdt_devmap[i].pd_cache = PTE_DEVICE; - i++; -#elif defined(SOC_TI_AM335X) - fdt_devmap[i].pd_va = 0xF4C00000; - fdt_devmap[i].pd_pa = 0x44C00000; /* L4_WKUP */ - fdt_devmap[i].pd_size = 0x400000; /* 4 MB */ - fdt_devmap[i].pd_prot = VM_PROT_READ | VM_PROT_WRITE; - fdt_devmap[i].pd_cache = PTE_DEVICE; - i++; -#else -#error "Unknown SoC" +static int +ti_omap4_devmap_init(platform_t plat) +{ + + fdt_devmap[0].pd_va = 0xF8000000; + fdt_devmap[0].pd_pa = 0x48000000; + fdt_devmap[0].pd_size = 0x1000000; + fdt_devmap[0].pd_prot = VM_PROT_READ | VM_PROT_WRITE; + fdt_devmap[0].pd_cache = PTE_DEVICE; + + arm_devmap_register_table(&fdt_devmap[0]); + return (0); +} #endif +#if defined(SOC_TI_AM335X) +static int +ti_am335x_devmap_init(platform_t plat) +{ + + fdt_devmap[0].pd_va = 0xF4C00000; + fdt_devmap[0].pd_pa = 0x44C00000; /* L4_WKUP */ + fdt_devmap[0].pd_size = 0x400000; /* 4 MB */ + fdt_devmap[0].pd_prot = VM_PROT_READ | VM_PROT_WRITE; + fdt_devmap[0].pd_cache = PTE_DEVICE; + arm_devmap_register_table(&fdt_devmap[0]); return (0); } +#endif + +#if !defined(SOC_OMAP4) && !defined(SOC_TI_AM335X) +#error "Unknown SoC" +#endif struct arm32_dma_range * bus_dma_get_range(void) @@ -142,3 +146,16 @@ cpu_reset() printf("Reset failed!\n"); while (1); } + +#if defined(SOC_OMAP4) +static platform_method_t omap4_methods[] = { + PLATFORMMETHOD(platform_attach, ti_attach), + PLATFORMMETHOD(platform_devmap_init, ti_omap4_devmap_init), + PLATFORMMETHOD(platform_lastaddr, ti_lastaddr), + + PLATFORMMETHOD_END, +}; + +FDT_PLATFORM_DEF(omap4, "omap4", 0, "ti,omap4430"); +#endif +