MIPS: Malta: Basic DT plumbing
Build a DT for the Malta platform into the kernel, load it & probe devices from it. The DT is essentially empty at this point, devices will be added in further patches. [ralf@linux-mips.org: Fixed conflicts.] Signed-off-by: Paul Burton <paul.burton@imgtec.com> Cc: linux-mips@linux-mips.org Cc: devicetree@vger.kernel.org Cc: Rob Herring <robh+dt@kernel.org> Cc: Pawel Moll <pawel.moll@arm.com> Cc: Mark Rutland <mark.rutland@arm.com> Cc: Ian Campbell <ijc+devicetree@hellion.org.uk> Cc: Kumar Gala <galak@codeaurora.org> Cc: Andrew Bresticker <abrestic@chromium.org> Cc: linux-kernel@vger.kernel.org Cc: Markos Chandras <markos.chandras@imgtec.com> Patchwork: http://patchwork.linux-mips.org/patch/10119/ Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
This commit is contained in:
		
					parent
					
						
							
								56d4c99b84
							
						
					
				
			
			
				commit
				
					
						e8823d26b4
					
				
			
		
					 6 changed files with 49 additions and 1 deletions
				
			
		| 
						 | 
					@ -404,6 +404,7 @@ config MIPS_MALTA
 | 
				
			||||||
	select ARCH_MAY_HAVE_PC_FDC
 | 
						select ARCH_MAY_HAVE_PC_FDC
 | 
				
			||||||
	select BOOT_ELF32
 | 
						select BOOT_ELF32
 | 
				
			||||||
	select BOOT_RAW
 | 
						select BOOT_RAW
 | 
				
			||||||
 | 
						select BUILTIN_DTB
 | 
				
			||||||
	select CEVT_R4K
 | 
						select CEVT_R4K
 | 
				
			||||||
	select CSRC_R4K
 | 
						select CSRC_R4K
 | 
				
			||||||
	select CLKSRC_MIPS_GIC
 | 
						select CLKSRC_MIPS_GIC
 | 
				
			||||||
| 
						 | 
					@ -443,6 +444,7 @@ config MIPS_MALTA
 | 
				
			||||||
	select SYS_SUPPORTS_MULTITHREADING
 | 
						select SYS_SUPPORTS_MULTITHREADING
 | 
				
			||||||
	select SYS_SUPPORTS_SMARTMIPS
 | 
						select SYS_SUPPORTS_SMARTMIPS
 | 
				
			||||||
	select SYS_SUPPORTS_ZBOOT
 | 
						select SYS_SUPPORTS_ZBOOT
 | 
				
			||||||
 | 
						select USE_OF
 | 
				
			||||||
	select ZONE_DMA32 if 64BIT
 | 
						select ZONE_DMA32 if 64BIT
 | 
				
			||||||
	help
 | 
						help
 | 
				
			||||||
	  This enables support for the MIPS Technologies Malta evaluation
 | 
						  This enables support for the MIPS Technologies Malta evaluation
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,3 +1,4 @@
 | 
				
			||||||
 | 
					dtb-$(CONFIG_MIPS_MALTA)	+= malta.dtb
 | 
				
			||||||
dtb-$(CONFIG_MIPS_SEAD3)	+= sead3.dtb
 | 
					dtb-$(CONFIG_MIPS_SEAD3)	+= sead3.dtb
 | 
				
			||||||
 | 
					
 | 
				
			||||||
obj-y				+= $(patsubst %.dtb, %.dtb.o, $(dtb-y))
 | 
					obj-y				+= $(patsubst %.dtb, %.dtb.o, $(dtb-y))
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										7
									
								
								arch/mips/boot/dts/mti/malta.dts
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								arch/mips/boot/dts/mti/malta.dts
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,7 @@
 | 
				
			||||||
 | 
					/dts-v1/;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/ {
 | 
				
			||||||
 | 
						#address-cells = <1>;
 | 
				
			||||||
 | 
						#size-cells = <1>;
 | 
				
			||||||
 | 
						compatible = "mti,malta";
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
| 
						 | 
					@ -5,7 +5,7 @@
 | 
				
			||||||
# Copyright (C) 2008 Wind River Systems, Inc.
 | 
					# Copyright (C) 2008 Wind River Systems, Inc.
 | 
				
			||||||
#   written by Ralf Baechle <ralf@linux-mips.org>
 | 
					#   written by Ralf Baechle <ralf@linux-mips.org>
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
obj-y				:= malta-display.o malta-init.o \
 | 
					obj-y				:= malta-display.o malta-dt.o malta-init.o \
 | 
				
			||||||
				   malta-int.o malta-memory.o malta-platform.o \
 | 
									   malta-int.o malta-memory.o malta-platform.o \
 | 
				
			||||||
				   malta-reset.o malta-setup.o malta-time.o
 | 
									   malta-reset.o malta-setup.o malta-time.o
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										34
									
								
								arch/mips/mti-malta/malta-dt.c
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										34
									
								
								arch/mips/mti-malta/malta-dt.c
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,34 @@
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Copyright (C) 2015 Imagination Technologies
 | 
				
			||||||
 | 
					 * Author: Paul Burton <paul.burton@imgtec.com>
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * This program is free software; you can redistribute it and/or modify it
 | 
				
			||||||
 | 
					 * under the terms of the GNU General Public License as published by the
 | 
				
			||||||
 | 
					 * Free Software Foundation; either version 2 of the License, or (at your
 | 
				
			||||||
 | 
					 * option) any later version.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <linux/clk-provider.h>
 | 
				
			||||||
 | 
					#include <linux/init.h>
 | 
				
			||||||
 | 
					#include <linux/of_fdt.h>
 | 
				
			||||||
 | 
					#include <linux/of_platform.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void __init device_tree_init(void)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						unflatten_and_copy_device_tree();
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static const struct of_device_id bus_ids[] __initconst = {
 | 
				
			||||||
 | 
						{ .compatible = "simple-bus", },
 | 
				
			||||||
 | 
						{ .compatible = "isa", },
 | 
				
			||||||
 | 
						{},
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static int __init publish_devices(void)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						if (!of_have_populated_dt())
 | 
				
			||||||
 | 
							return 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						return of_platform_bus_probe(NULL, bus_ids, NULL);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					device_initcall(publish_devices);
 | 
				
			||||||
| 
						 | 
					@ -21,6 +21,7 @@
 | 
				
			||||||
#include <linux/sched.h>
 | 
					#include <linux/sched.h>
 | 
				
			||||||
#include <linux/ioport.h>
 | 
					#include <linux/ioport.h>
 | 
				
			||||||
#include <linux/irq.h>
 | 
					#include <linux/irq.h>
 | 
				
			||||||
 | 
					#include <linux/of_fdt.h>
 | 
				
			||||||
#include <linux/pci.h>
 | 
					#include <linux/pci.h>
 | 
				
			||||||
#include <linux/screen_info.h>
 | 
					#include <linux/screen_info.h>
 | 
				
			||||||
#include <linux/time.h>
 | 
					#include <linux/time.h>
 | 
				
			||||||
| 
						 | 
					@ -31,6 +32,7 @@
 | 
				
			||||||
#include <asm/mips-boards/malta.h>
 | 
					#include <asm/mips-boards/malta.h>
 | 
				
			||||||
#include <asm/mips-boards/maltaint.h>
 | 
					#include <asm/mips-boards/maltaint.h>
 | 
				
			||||||
#include <asm/dma.h>
 | 
					#include <asm/dma.h>
 | 
				
			||||||
 | 
					#include <asm/prom.h>
 | 
				
			||||||
#include <asm/traps.h>
 | 
					#include <asm/traps.h>
 | 
				
			||||||
#ifdef CONFIG_VT
 | 
					#ifdef CONFIG_VT
 | 
				
			||||||
#include <linux/console.h>
 | 
					#include <linux/console.h>
 | 
				
			||||||
| 
						 | 
					@ -249,6 +251,8 @@ void __init plat_mem_setup(void)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	unsigned int i;
 | 
						unsigned int i;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						__dt_setup_arch(__dtb_start);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if (config_enabled(CONFIG_EVA))
 | 
						if (config_enabled(CONFIG_EVA))
 | 
				
			||||||
		/* EVA has already been configured in mach-malta/kernel-init.h */
 | 
							/* EVA has already been configured in mach-malta/kernel-init.h */
 | 
				
			||||||
		pr_info("Enhanced Virtual Addressing (EVA) activated\n");
 | 
							pr_info("Enhanced Virtual Addressing (EVA) activated\n");
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue