-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
ARM: ixp4xx: Add device tree boot support
This adds a minimal support for booting IXP4xx systems from device tree. We have to add hacks to the QMGR, NPE and notably also ethernet and watchdog drivers so that they don't crash the platform: these drivers are unconditionally starting to grab regions of statically remapped IO space with no concern of the device model or other platforms. We will go in and properly fix these drivers as we go along but for now this hack gets us to a place where we can start working on proper device tree support for these platforms. Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
- Loading branch information
Linus Walleij
committed
Apr 23, 2019
1 parent
50d2c8d
commit 9540724
Showing
7 changed files
with
106 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,60 @@ | ||
// SPDX-License-Identifier: GPL-2.0 | ||
/* | ||
* IXP4xx Device Tree boot support | ||
*/ | ||
#include <linux/kernel.h> | ||
#include <linux/init.h> | ||
#include <linux/io.h> | ||
|
||
#include <asm/mach/arch.h> | ||
#include <asm/mach/map.h> | ||
|
||
#include <mach/hardware.h> | ||
#include <mach/ixp4xx-regs.h> | ||
|
||
static struct map_desc ixp4xx_of_io_desc[] __initdata = { | ||
/* | ||
* This is needed for runtime system configuration checks, | ||
* such as reading if hardware so-and-so is present. This | ||
* could eventually be converted into a syscon once all boards | ||
* are converted to device tree. | ||
*/ | ||
{ | ||
.virtual = IXP4XX_EXP_CFG_BASE_VIRT, | ||
.pfn = __phys_to_pfn(IXP4XX_EXP_CFG_BASE_PHYS), | ||
.length = SZ_4K, | ||
.type = MT_DEVICE, | ||
}, | ||
#ifdef CONFIG_DEBUG_UART_8250 | ||
/* This is needed for LL-debug/earlyprintk/debug-macro.S */ | ||
{ | ||
.virtual = CONFIG_DEBUG_UART_VIRT, | ||
.pfn = __phys_to_pfn(CONFIG_DEBUG_UART_PHYS), | ||
.length = SZ_4K, | ||
.type = MT_DEVICE, | ||
}, | ||
#endif | ||
}; | ||
|
||
static void __init ixp4xx_of_map_io(void) | ||
{ | ||
iotable_init(ixp4xx_of_io_desc, ARRAY_SIZE(ixp4xx_of_io_desc)); | ||
} | ||
|
||
/* | ||
* We handle 4 differen SoC families. These compatible strings are enough | ||
* to provide the core so that different boards can add their more detailed | ||
* specifics. | ||
*/ | ||
static const char *ixp4xx_of_board_compat[] = { | ||
"intel,ixp42x", | ||
"intel,ixp43x", | ||
"intel,ixp45x", | ||
"intel,ixp46x", | ||
NULL, | ||
}; | ||
|
||
DT_MACHINE_START(IXP4XX_DT, "IXP4xx (Device Tree)") | ||
.map_io = ixp4xx_of_map_io, | ||
.dt_compat = ixp4xx_of_board_compat, | ||
MACHINE_END |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters