Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 45fba084 authored by Ruslan V. Sushko's avatar Ruslan V. Sushko Committed by Russell King
Browse files

[ARM] 4311/1: ixp4xx: add KIXRP435 platform



Add Intel KIXRP435 Reference Platform based on IXP43x processor.
Fixed after review : access to cp15 removed in identification functions,
used access to global processor_id instead

Signed-off-by: default avatarVladimir Barinov <vbarinov@ru.mvista.com>
Signed-off-by: default avatarRuslan Sushko <rsushko@ru.mvista.com>
Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
parent 25735d10
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -117,11 +117,13 @@ CONFIG_ARCH_ADI_COYOTE=y
CONFIG_ARCH_IXDP425=y
CONFIG_MACH_IXDPG425=y
CONFIG_MACH_IXDP465=y
CONFIG_MACH_KIXRP435=y
CONFIG_ARCH_IXCDP1100=y
CONFIG_ARCH_PRPMC1100=y
CONFIG_MACH_NAS100D=y
CONFIG_ARCH_IXDP4XX=y
CONFIG_CPU_IXP46X=y
CONFIG_CPU_IXP43X=y
# CONFIG_MACH_GTWX5715 is not set

#
+12 −1
Original line number Diff line number Diff line
@@ -62,6 +62,12 @@ config MACH_IXDP465
	  IXDP465 Development Platform (Also known as BMP).
	  For more information on this platform, see <file:Documentation/arm/IXP4xx>.

config MACH_KIXRP435
	bool "KIXRP435"
	help
	  Say 'Y' here if you want your kernel to support Intel's
	  KIXRP435 Reference Platform.
	  For more information on this platform, see <file:Documentation/arm/IXP4xx>.

#
# IXCDP1100 is the exact same HW as IXDP425, but with a different machine 
@@ -94,7 +100,7 @@ config MACH_NAS100D
#
config	ARCH_IXDP4XX
	bool
	depends on ARCH_IXDP425 || MACH_IXDP465
	depends on ARCH_IXDP425 || MACH_IXDP465 || MACH_KIXRP435
	default y

#
@@ -105,6 +111,11 @@ config CPU_IXP46X
	depends on MACH_IXDP465
	default y

config CPU_IXP43X
	bool
	depends on MACH_KIXRP435
	default y

config MACH_GTWX5715
	bool "Gemtek WX5715 (Linksys WRV54G)"
	depends on ARCH_IXP4XX
+2 −2
Original line number Diff line number Diff line
@@ -374,7 +374,7 @@ void __init ixp4xx_pci_preinit(void)
	 * Determine which PCI read method to use.
	 * Rev 0 IXP425 requires workaround.
	 */
	if (!(processor_id & 0xf) && !cpu_is_ixp46x()) {
	if (!(processor_id & 0xf) && cpu_is_ixp42x()) {
		printk("PCI: IXP42x A0 silicon detected - "
			"PCI Non-Prefetch Workaround Enabled\n");
		ixp4xx_pci_read = ixp4xx_pci_read_errata;
@@ -480,7 +480,7 @@ int ixp4xx_setup(int nr, struct pci_sys_data *sys)
	res[0].flags = IORESOURCE_IO;

	res[1].name = "PCI Memory Space";
	res[1].start = 0x48000000;
	res[1].start = PCIBIOS_MIN_MEM;
#ifndef CONFIG_IXP4XX_INDIRECT_PCI
	res[1].end = 0x4bffffff;
#else
+3 −3
Original line number Diff line number Diff line
@@ -192,7 +192,7 @@ static int ixp4xx_set_irq_type(unsigned int irq, unsigned int type)

static void ixp4xx_irq_mask(unsigned int irq)
{
	if (cpu_is_ixp46x() && irq >= 32)
	if ((cpu_is_ixp46x() || cpu_is_ixp43x()) && irq >= 32)
		*IXP4XX_ICMR2 &= ~(1 << (irq - 32));
	else
		*IXP4XX_ICMR &= ~(1 << irq);
@@ -215,7 +215,7 @@ static void ixp4xx_irq_unmask(unsigned int irq)
	if (!(ixp4xx_irq_edge & (1 << irq)))
		ixp4xx_irq_ack(irq);

	if (cpu_is_ixp46x() && irq >= 32)
	if ((cpu_is_ixp46x() || cpu_is_ixp43x()) && irq >= 32)
		*IXP4XX_ICMR2 |= (1 << (irq - 32));
	else
		*IXP4XX_ICMR |= (1 << irq);
@@ -239,7 +239,7 @@ void __init ixp4xx_init_irq(void)
	/* Disable all interrupt */
	*IXP4XX_ICMR = 0x0; 

	if (cpu_is_ixp46x()) {
	if (cpu_is_ixp46x() || cpu_is_ixp43x()) {
		/* Route upper 32 sources to IRQ instead of FIQ */
		*IXP4XX_ICLR2 = 0x00;

+1 −1
Original line number Diff line number Diff line
@@ -66,7 +66,7 @@ struct hw_pci ixdp425_pci __initdata = {
int __init ixdp425_pci_init(void)
{
	if (machine_is_ixdp425() || machine_is_ixcdp1100() ||
			machine_is_ixdp465())
			machine_is_ixdp465() || machine_is_kixrp435())
		pci_common_init(&ixdp425_pci);
	return 0;
}
Loading