From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> To: linux-kernel@vger.kernel.org Cc: sodaville@linutronix.de, x86@kernel.org, devicetree-discuss@lists.ozlabs.org Subject: Device tree on x86, part v3 Date: Mon, 24 Jan 2011 09:58:48 +0530 [thread overview] Message-ID: <1295843342-1122-1-git-send-email-bigeasy@linutronix.de> (raw) This patchset introduces device tree support on x86. The device tree is passed by the bootloader via setup_data. It is used as an additional source of information and does not replace the "traditional" x86 boot page. Right now we get the the following information from it: - hpet location - apic & ioapic location - ioapic's interrupt routing - legacy devices which are not initialized by bios - devices which are behind a bus which does not support enumeration like i2c History: - v1 initial post - v2: Benh took my device tree apart so once this got fixed I refactor a lot of code. Here are the changes: - device tree is unflattenend before kmalloc() is working, alloc_bootmem() is used for that. - irq_host got renamed to irq_domain. This custom implementation will leave once the powerpc implementation is in generic shape - of_irq_map_pci() is moved from ppc & microblaze into drivers/of and used also by x86 instead of a tiny subset of it. Bridges are not handled at all on x86 (I don't have any so for so I worry later) - the device tree is relocated from its initial location. That means that the boot loader does not need to know anything about kernel's memory layout. - v3: - rebase on top of current tip. The OLPC merged some OF defines which are mostly nops so I replaced them with the code I have. irq_create_of_mapping() requires now an irq chip to work. Those things are moved into prom.c which is enabled by CONFIG_X86_OF. This probably breaks OLPC but I don't know what they need in the end. - Fixed up Grant's review comments. The most noticeable is the i2c controller node which has now three child nodes, representing the three controllers indentified by the bar number. Each pci bar matches via address translation the correct device tree node. The series is based on the tip tree and is also available at git://git.linutronix.de/users/bigeasy/soda.git ce_of_v3 Sebastian Andrzej Siewior (14): x86/e820: remove conditional early mapping in parse_e820_ext x86: Add device tree support x86/dtb: Add a device tree for CE4100 x86/dtb: add irq domain abstraction x86/dtb: add early parsing of APIC and IO APIC x86/dtb: add support hpet of: move of_irq_map_pci() into generic code x86/dtb: add support for PCI devices backed by dtb nodes x86/dtb: Add generic bus probe x86/ioapic: Add OF bindings for IO-APIC x86/ce4100: use OF for ioapic x86/rtc: don't register rtc if we the DT blob rtc/cmos: add OF bindings x86/pci: remove warning Documentation/powerpc/dts-bindings/rtc-cmos.txt | 28 ++ Documentation/x86/boot_with_dtb.txt | 26 ++ arch/microblaze/include/asm/pci-bridge.h | 12 + arch/microblaze/include/asm/prom.h | 15 - arch/microblaze/kernel/prom_parse.c | 77 ----- arch/microblaze/pci/pci-common.c | 1 + arch/powerpc/include/asm/pci-bridge.h | 10 + arch/powerpc/include/asm/prom.h | 15 - arch/powerpc/kernel/pci-common.c | 1 + arch/powerpc/kernel/prom_parse.c | 84 ------ arch/x86/Kconfig | 7 + arch/x86/include/asm/bootparam.h | 1 + arch/x86/include/asm/e820.h | 2 +- arch/x86/include/asm/io_apic.h | 7 + arch/x86/include/asm/irq.h | 3 - arch/x86/include/asm/irq_controller.h | 12 + arch/x86/include/asm/prom.h | 88 ++++++- arch/x86/kernel/Makefile | 1 + arch/x86/kernel/apic/io_apic.c | 99 +++++++ arch/x86/kernel/e820.c | 8 +- arch/x86/kernel/irq.c | 9 - arch/x86/kernel/irqinit.c | 9 +- arch/x86/kernel/prom.c | 337 +++++++++++++++++++++++ arch/x86/kernel/rtc.c | 3 + arch/x86/kernel/setup.c | 22 ++- arch/x86/pci/ce4100.c | 2 +- arch/x86/platform/ce4100/ce4100.c | 24 ++- arch/x86/platform/ce4100/falconfalls.dts | 228 +++++++++++++++ drivers/of/Kconfig | 6 + drivers/of/Makefile | 1 + drivers/of/of_pci.c | 80 ++++++ drivers/rtc/rtc-cmos.c | 46 +++ include/linux/of.h | 12 + include/linux/of_pci.h | 20 ++ 34 files changed, 1072 insertions(+), 224 deletions(-) create mode 100644 Documentation/powerpc/dts-bindings/rtc-cmos.txt create mode 100644 Documentation/x86/boot_with_dtb.txt create mode 100644 arch/x86/include/asm/irq_controller.h create mode 100644 arch/x86/kernel/prom.c create mode 100644 arch/x86/platform/ce4100/falconfalls.dts create mode 100644 drivers/of/of_pci.c create mode 100644 include/linux/of_pci.h Sebastian
WARNING: multiple messages have this Message-ID (diff)
From: Sebastian Andrzej Siewior <bigeasy-hfZtesqFncYOwBW4kG4KsQ@public.gmane.org> To: linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org Cc: sodaville-hfZtesqFncYOwBW4kG4KsQ@public.gmane.org, devicetree-discuss-uLR06cmDAlY/bJ5BZ2RsiQ@public.gmane.org, x86-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org Subject: Device tree on x86, part v3 Date: Mon, 24 Jan 2011 09:58:48 +0530 [thread overview] Message-ID: <1295843342-1122-1-git-send-email-bigeasy@linutronix.de> (raw) This patchset introduces device tree support on x86. The device tree is passed by the bootloader via setup_data. It is used as an additional source of information and does not replace the "traditional" x86 boot page. Right now we get the the following information from it: - hpet location - apic & ioapic location - ioapic's interrupt routing - legacy devices which are not initialized by bios - devices which are behind a bus which does not support enumeration like i2c History: - v1 initial post - v2: Benh took my device tree apart so once this got fixed I refactor a lot of code. Here are the changes: - device tree is unflattenend before kmalloc() is working, alloc_bootmem() is used for that. - irq_host got renamed to irq_domain. This custom implementation will leave once the powerpc implementation is in generic shape - of_irq_map_pci() is moved from ppc & microblaze into drivers/of and used also by x86 instead of a tiny subset of it. Bridges are not handled at all on x86 (I don't have any so for so I worry later) - the device tree is relocated from its initial location. That means that the boot loader does not need to know anything about kernel's memory layout. - v3: - rebase on top of current tip. The OLPC merged some OF defines which are mostly nops so I replaced them with the code I have. irq_create_of_mapping() requires now an irq chip to work. Those things are moved into prom.c which is enabled by CONFIG_X86_OF. This probably breaks OLPC but I don't know what they need in the end. - Fixed up Grant's review comments. The most noticeable is the i2c controller node which has now three child nodes, representing the three controllers indentified by the bar number. Each pci bar matches via address translation the correct device tree node. The series is based on the tip tree and is also available at git://git.linutronix.de/users/bigeasy/soda.git ce_of_v3 Sebastian Andrzej Siewior (14): x86/e820: remove conditional early mapping in parse_e820_ext x86: Add device tree support x86/dtb: Add a device tree for CE4100 x86/dtb: add irq domain abstraction x86/dtb: add early parsing of APIC and IO APIC x86/dtb: add support hpet of: move of_irq_map_pci() into generic code x86/dtb: add support for PCI devices backed by dtb nodes x86/dtb: Add generic bus probe x86/ioapic: Add OF bindings for IO-APIC x86/ce4100: use OF for ioapic x86/rtc: don't register rtc if we the DT blob rtc/cmos: add OF bindings x86/pci: remove warning Documentation/powerpc/dts-bindings/rtc-cmos.txt | 28 ++ Documentation/x86/boot_with_dtb.txt | 26 ++ arch/microblaze/include/asm/pci-bridge.h | 12 + arch/microblaze/include/asm/prom.h | 15 - arch/microblaze/kernel/prom_parse.c | 77 ----- arch/microblaze/pci/pci-common.c | 1 + arch/powerpc/include/asm/pci-bridge.h | 10 + arch/powerpc/include/asm/prom.h | 15 - arch/powerpc/kernel/pci-common.c | 1 + arch/powerpc/kernel/prom_parse.c | 84 ------ arch/x86/Kconfig | 7 + arch/x86/include/asm/bootparam.h | 1 + arch/x86/include/asm/e820.h | 2 +- arch/x86/include/asm/io_apic.h | 7 + arch/x86/include/asm/irq.h | 3 - arch/x86/include/asm/irq_controller.h | 12 + arch/x86/include/asm/prom.h | 88 ++++++- arch/x86/kernel/Makefile | 1 + arch/x86/kernel/apic/io_apic.c | 99 +++++++ arch/x86/kernel/e820.c | 8 +- arch/x86/kernel/irq.c | 9 - arch/x86/kernel/irqinit.c | 9 +- arch/x86/kernel/prom.c | 337 +++++++++++++++++++++++ arch/x86/kernel/rtc.c | 3 + arch/x86/kernel/setup.c | 22 ++- arch/x86/pci/ce4100.c | 2 +- arch/x86/platform/ce4100/ce4100.c | 24 ++- arch/x86/platform/ce4100/falconfalls.dts | 228 +++++++++++++++ drivers/of/Kconfig | 6 + drivers/of/Makefile | 1 + drivers/of/of_pci.c | 80 ++++++ drivers/rtc/rtc-cmos.c | 46 +++ include/linux/of.h | 12 + include/linux/of_pci.h | 20 ++ 34 files changed, 1072 insertions(+), 224 deletions(-) create mode 100644 Documentation/powerpc/dts-bindings/rtc-cmos.txt create mode 100644 Documentation/x86/boot_with_dtb.txt create mode 100644 arch/x86/include/asm/irq_controller.h create mode 100644 arch/x86/kernel/prom.c create mode 100644 arch/x86/platform/ce4100/falconfalls.dts create mode 100644 drivers/of/of_pci.c create mode 100644 include/linux/of_pci.h Sebastian
next reply other threads:[~2011-01-24 4:29 UTC|newest] Thread overview: 94+ messages / expand[flat|nested] mbox.gz Atom feed top 2011-01-24 4:28 Sebastian Andrzej Siewior [this message] 2011-01-24 4:28 ` Device tree on x86, part v3 Sebastian Andrzej Siewior 2011-01-24 4:28 ` [PATCH TIP 01/14] x86/e820: remove conditional early mapping in parse_e820_ext Sebastian Andrzej Siewior 2011-01-24 4:28 ` Sebastian Andrzej Siewior 2011-02-03 20:57 ` Grant Likely 2011-01-24 4:28 ` [PATCH TIP 02/14] x86: Add device tree support Sebastian Andrzej Siewior 2011-01-24 4:28 ` Sebastian Andrzej Siewior 2011-01-24 4:34 ` Sebastian Andrzej Siewior 2011-01-24 4:34 ` Sebastian Andrzej Siewior 2011-02-16 21:27 ` Grant Likely 2011-02-16 21:27 ` Grant Likely 2011-02-17 11:05 ` [sodaville] " Sebastian Andrzej Siewior 2011-02-17 11:05 ` Sebastian Andrzej Siewior 2011-02-16 21:26 ` Grant Likely 2011-02-17 11:03 ` Sebastian Andrzej Siewior 2011-02-17 11:03 ` Sebastian Andrzej Siewior 2011-02-16 21:31 ` Grant Likely 2011-02-16 21:31 ` Grant Likely 2011-02-17 11:31 ` [sodaville] " Sebastian Andrzej Siewior 2011-02-17 11:31 ` Sebastian Andrzej Siewior 2011-02-17 17:02 ` Grant Likely 2011-01-24 4:28 ` [PATCH TIP 03/14] x86/dtb: Add a device tree for CE4100 Sebastian Andrzej Siewior 2011-01-24 4:28 ` Sebastian Andrzej Siewior 2011-01-27 5:00 ` David Gibson 2011-01-27 5:00 ` David Gibson 2011-01-27 9:11 ` Sebastian Andrzej Siewior 2011-01-27 9:11 ` Sebastian Andrzej Siewior 2011-02-03 20:59 ` Grant Likely 2011-02-03 21:32 ` Mitch Bradley 2011-02-03 21:32 ` Mitch Bradley 2011-02-04 9:40 ` Sebastian Andrzej Siewior 2011-02-04 9:40 ` Sebastian Andrzej Siewior 2011-02-02 18:58 ` [PATCH TIP v2 " Sebastian Andrzej Siewior 2011-02-02 18:58 ` Sebastian Andrzej Siewior 2011-02-03 21:07 ` Grant Likely 2011-02-03 21:07 ` Grant Likely 2011-02-04 10:06 ` Sebastian Andrzej Siewior 2011-02-04 10:06 ` Sebastian Andrzej Siewior 2011-02-16 21:44 ` Grant Likely 2011-02-16 21:44 ` Grant Likely 2011-02-22 11:21 ` [sodaville] " Sebastian Andrzej Siewior 2011-02-22 11:21 ` Sebastian Andrzej Siewior 2011-01-24 4:28 ` [PATCH TIP 04/14] x86/dtb: add irq domain abstraction Sebastian Andrzej Siewior 2011-01-24 4:28 ` Sebastian Andrzej Siewior 2011-01-24 4:28 ` [PATCH TIP 05/14] x86/dtb: add early parsing of APIC and IO APIC Sebastian Andrzej Siewior 2011-01-24 4:28 ` Sebastian Andrzej Siewior 2011-02-16 21:47 ` Grant Likely 2011-02-16 21:47 ` Grant Likely 2011-01-24 4:28 ` [PATCH TIP 06/14] x86/dtb: add support hpet Sebastian Andrzej Siewior 2011-01-24 4:28 ` Sebastian Andrzej Siewior 2011-01-24 4:28 ` [PATCH OF 07/14] of: move of_irq_map_pci() into generic code Sebastian Andrzej Siewior 2011-01-24 4:28 ` Sebastian Andrzej Siewior 2011-02-10 13:57 ` Michal Simek 2011-02-16 21:53 ` Grant Likely 2011-02-16 21:53 ` Grant Likely 2011-02-17 7:49 ` Michal Simek 2011-02-17 7:49 ` Michal Simek 2011-02-17 7:49 ` Michal Simek 2011-01-24 4:28 ` [PATCH TIP 08/14] x86/dtb: add support for PCI devices backed by dtb nodes Sebastian Andrzej Siewior 2011-01-24 4:28 ` Sebastian Andrzej Siewior 2011-02-16 21:59 ` Grant Likely 2011-02-16 21:59 ` Grant Likely 2011-02-22 11:21 ` [sodaville] " Sebastian Andrzej Siewior 2011-02-22 11:21 ` Sebastian Andrzej Siewior 2011-01-24 4:28 ` [PATCH TIP 09/14] x86/dtb: Add generic bus probe Sebastian Andrzej Siewior 2011-01-24 4:28 ` Sebastian Andrzej Siewior 2011-02-04 10:21 ` [PATCH v2 " Sebastian Andrzej Siewior 2011-02-04 10:21 ` Sebastian Andrzej Siewior 2011-02-16 22:04 ` Grant Likely 2011-02-16 22:04 ` Grant Likely 2011-01-24 4:28 ` [PATCH TIP 10/14] x86/ioapic: Add OF bindings for IO-APIC Sebastian Andrzej Siewior 2011-01-24 4:28 ` Sebastian Andrzej Siewior 2011-02-16 22:04 ` Grant Likely 2011-01-24 4:28 ` [PATCH TIP 11/14] x86/ce4100: use OF for ioapic Sebastian Andrzej Siewior 2011-01-24 4:28 ` Sebastian Andrzej Siewior 2011-01-24 4:29 ` [PATCH OF 12/14] x86/rtc: don't register rtc if we the DT blob Sebastian Andrzej Siewior 2011-01-24 4:29 ` Sebastian Andrzej Siewior 2011-02-16 22:08 ` Grant Likely 2011-02-16 22:08 ` Grant Likely 2011-02-16 22:09 ` Grant Likely 2011-02-16 22:09 ` Grant Likely 2011-02-17 13:13 ` [sodaville] " Sebastian Andrzej Siewior 2011-02-17 13:13 ` Sebastian Andrzej Siewior 2011-01-24 4:29 ` [PATCH OF 13/14] rtc/cmos: add OF bindings Sebastian Andrzej Siewior 2011-01-24 4:29 ` Sebastian Andrzej Siewior 2011-01-24 4:38 ` Sebastian Andrzej Siewior 2011-01-24 4:38 ` Sebastian Andrzej Siewior 2011-02-16 22:11 ` Grant Likely 2011-02-16 22:11 ` Grant Likely 2011-02-17 13:26 ` [sodaville] " Sebastian Andrzej Siewior 2011-02-17 13:26 ` Sebastian Andrzej Siewior 2011-02-17 16:46 ` Grant Likely 2011-01-24 4:29 ` [PATCH TIP 14/14] x86/pci: remove warning Sebastian Andrzej Siewior 2011-01-24 4:29 ` Sebastian Andrzej Siewior
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=1295843342-1122-1-git-send-email-bigeasy@linutronix.de \ --to=bigeasy@linutronix.de \ --cc=devicetree-discuss@lists.ozlabs.org \ --cc=linux-kernel@vger.kernel.org \ --cc=sodaville@linutronix.de \ --cc=x86@kernel.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.