Hi Bin, On 23 April 2015 at 21:36, Bin Meng <bmeng...@gmail.com> wrote: > Hi Simon, > > On Fri, Apr 24, 2015 at 11:02 AM, Simon Glass <s...@chromium.org> wrote: >> Hi Bin, >> >> On 21 April 2015 at 19:56, Bin Meng <bmeng...@gmail.com> wrote: >>> Implement Intel Queensbay platform-specific PIRQ routing support. >>> The chipset PIRQ routing setup is called in the arch_mist_init(). >> >> arch_misc_init()? > > Will fix. > >> Also how can this be used on other boards? Should part of this code be >> moved to a generic place? > > Generally Intel interrupt router should be compatible, but the offsets > of these interrupt routing registers might be different from platform > to platform. The platform-specific part is the internal PCI devices' > interrupt pin to PIRQ map. > >>> >>> Signed-off-by: Bin Meng <bmeng...@gmail.com> >>> >>> --- >>> >>> arch/x86/cpu/queensbay/Makefile | 2 +- >>> arch/x86/cpu/queensbay/irq.c | 236 >>> +++++++++++++++++++++++++++ >>> arch/x86/cpu/queensbay/tnc.c | 10 +- >>> arch/x86/include/asm/arch-queensbay/device.h | 94 +++++++++++ >>> arch/x86/include/asm/arch-queensbay/irq.h | 55 +++++++ >>> arch/x86/include/asm/arch-queensbay/tnc.h | 26 ++- >>> arch/x86/include/asm/u-boot-x86.h | 2 + >>> configs/crownbay_defconfig | 1 + >>> include/configs/crownbay.h | 1 + >>> 9 files changed, 423 insertions(+), 4 deletions(-) >>> create mode 100644 arch/x86/cpu/queensbay/irq.c >>> create mode 100644 arch/x86/include/asm/arch-queensbay/device.h >>> create mode 100644 arch/x86/include/asm/arch-queensbay/irq.h >>> [snip]
>>> + writew(PIRQE, rcba + D02IR); >>> + writew(PIRQF, rcba + D03IR); >>> + writew(PIRQG, rcba + D27IR); >>> + writew(PIRQH, rcba + D31IR); >>> + writew(PIRQE, rcba + D23IR); >>> + writew(PIRQF, rcba + D24IR); >>> + writew(PIRQG, rcba + D25IR); >>> + writew(PIRQH, rcba + D26IR); >>> + >>> + if (!create_pirq_routing_table()) { >> >> Can you add a comment here as to why you do this next bit if >> create_pirq_routing_table() fails? > > I am not sure if you misread the codes? If create_pirq_routing_table() > fails, it returns non-zero value and the following pirq_route_irqs() > will not be called. Yes I misread it. So should this function return the error code it gets? Or maybe add debug()? > >>> + /* Route PIRQ */ >>> + pirq_route_irqs(pirq_routing_table->slots, >>> + get_irq_slot_count(pirq_routing_table)); >>> + } >>> +} >>> + Regards, Simon _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot