From: Wu Zhangjin <wuzj@xxxxxxxxxx> This patch series introduces support for loongson-based machines, including source code tuning for old fuloong-2e support, and the whole new support for fuloong-2f and yeeloong-2f. these three different machines are all made by Lemote (http://www.lemote.com). fuloong-2e is a mini PC, use a loongson-2e cpu, an cpu-inbuilt FPGA-based north bridge(bonito64 compatiable) and a VIA686B sourth bridge. fuloong-2f is also a mini PC, but it use a loongson-2f cpu, which has an built-in DDR2 and PCIX controller, The PCIX controller has a similar programming interface with FPGA-based northbridge of loongson-2e. and fuloong-2f use AMD CS5536 as its south bridge. yeeloong-2f is a mini laptop(netbook), has the basic architecture with fuloong-2f, but it has an extra EC(embedded controller) which are used to do power management, keyboard controlling and something else. and gdium is also a mini laptop, but made by dexxon. it uses a loongson-2f cpu, but has no south bridge. currently, there is no support for gdium in this set, but this set is scalable enough to add gdium and even the other new loongson-based machines support: 1. new cpu revisions support arch/mips/Kconfig config CPU_LOONGSONX bool ^ 2,3... select CPU_SUPPORTS_32BIT_KERNEL select CPU_SUPPORTS_64BIT_KERNEL select CPU_SUPPORTS_HIGHMEM ... config SYS_HAS_CPU_LOONGSON2X bool ^^ 2E,2F,2G...3A... config CPU_LOONGSON2X bool "Loongson 2X" depends on SYS_HAS_CPU_LOONGSON2X select CPU_LOONGSONX ^^ 2E,2F,2G...3A... ... ^ 2,3... arch/mips/include/asm/mach-loongson/loongson.h arch/mips/include/asm/mach-loongson/cpu-feature-overrides.h ... 2. new machines support arch/mips/Makefile load-$(CONFIG_[MACH_NAME]) += [kernel_load_address] arch/mips/loongson/Kconfig config [MACH_NAME] bool "introduction of [MACH_NAME]" select ... select SYS_HAS_CPU_LOONGSON2X select ... ^^2E,2F,2G...3A... arch/mips/loongson/[mach_name] reset.c irq.c ... arch/mips/include/asm/mach-loongson/machine.h This -v2 patch series incorporates feedback I received on -v1 of these series, the changes include: * updated to the latest master branch of git://git.linux-mips.org/pub/scm. the current git branch for this set is: git://dev.lemote.com/rt4ls.git linux-loongson-dev-to-ralf * two patches are discussed and tuned in progress, including FUJTU disk fixup and Alsa memory map fixup. so, I hope these patches can be added later after the basic support are accepted. * updating of STD support Wu Zhangjin (23): fix-warning: incompatible argument type of pci_fixup_irqs fix-warning: incompatible argument type of virt_to_phys change the naming methods remove reference to bonito64.h divide the files to the smallest logic unit replace tons of magic numbers by understandable symbols clean up the early printk support for fuloong(2e) enable Real Time Clock Support for fuloong(2e) split the loongson-specific part out add basic loongson-2f support add basic fuloong(2f) support enable serial port support of loongson-based machines add basic yeeloong(2f) laptop support Add Siliconmotion 712 framebuffer driver define Loongson2F arch specific phys prot access Loongson2 specific OProfile driver flush posted write to irq CS5536 MFGPT as system clock source support Loongson2F cpufreq support add gcc 4.4 support for MIPS and loongson add default kernel config file for loongson-based machines add a default kernel configration for yeeloong-7inch laptop Hibernation Support in mips system arch/mips/Kconfig | 90 +- arch/mips/Makefile | 21 +- arch/mips/configs/fulong_defconfig | 1912 -------------- arch/mips/configs/fuloong2e_defconfig | 1977 +++++++++++++++ arch/mips/configs/fuloong2f_defconfig | 2630 +++++++++++++++++++ arch/mips/configs/yeeloong2f-7inch_defconfig | 1720 +++++++++++++ arch/mips/configs/yeeloong2f_defconfig | 2641 ++++++++++++++++++++ arch/mips/include/asm/clock.h | 64 + arch/mips/include/asm/compiler.h | 10 + arch/mips/include/asm/delay.h | 58 +- .../asm/mach-lemote/cpu-feature-overrides.h | 59 - arch/mips/include/asm/mach-lemote/dma-coherence.h | 66 - arch/mips/include/asm/mach-lemote/mc146818rtc.h | 36 - arch/mips/include/asm/mach-lemote/pci.h | 30 - arch/mips/include/asm/mach-lemote/war.h | 25 - arch/mips/include/asm/mach-loongson/cmdline.h | 9 + .../asm/mach-loongson/cpu-feature-overrides.h | 59 + .../mips/include/asm/mach-loongson/cs5536/cs5536.h | 382 +++ .../asm/mach-loongson/cs5536/cs5536_mfgpt.h | 26 + .../include/asm/mach-loongson/cs5536/cs5536_pci.h | 174 ++ .../include/asm/mach-loongson/cs5536/cs5536_vsm.h | 59 + .../mips/include/asm/mach-loongson/dma-coherence.h | 70 + arch/mips/include/asm/mach-loongson/loongson.h | 311 +++ arch/mips/include/asm/mach-loongson/machine.h | 87 + arch/mips/include/asm/mach-loongson/mc146818rtc.h | 36 + arch/mips/include/asm/mach-loongson/mem.h | 31 + arch/mips/include/asm/mach-loongson/pci.h | 59 + arch/mips/include/asm/mach-loongson/war.h | 25 + arch/mips/include/asm/mips-boards/bonito64.h | 5 - arch/mips/include/asm/page.h | 5 +- arch/mips/include/asm/pci.h | 2 +- arch/mips/include/asm/pgtable.h | 13 + arch/mips/include/asm/suspend.h | 2 +- arch/mips/include/asm/txx9/generic.h | 2 +- arch/mips/include/asm/txx9/jmr3927.h | 2 +- arch/mips/include/asm/txx9/rbtx4927.h | 2 +- arch/mips/include/asm/txx9/rbtx4938.h | 2 +- arch/mips/include/asm/txx9/tx4938.h | 2 +- arch/mips/include/asm/txx9/tx4939.h | 4 +- arch/mips/kernel/Makefile | 1 + arch/mips/kernel/asm-offsets.c | 13 + arch/mips/kernel/i8259.c | 2 + arch/mips/kernel/loongson2f_freq.c | 223 ++ arch/mips/lemote/lm2e/Makefile | 7 - arch/mips/lemote/lm2e/bonito-irq.c | 74 - arch/mips/lemote/lm2e/dbg_io.c | 146 -- arch/mips/lemote/lm2e/irq.c | 143 -- arch/mips/lemote/lm2e/mem.c | 23 - arch/mips/lemote/lm2e/pci.c | 97 - arch/mips/lemote/lm2e/prom.c | 97 - arch/mips/lemote/lm2e/reset.c | 41 - arch/mips/lemote/lm2e/setup.c | 111 - arch/mips/loongson/Kconfig | 135 + arch/mips/loongson/Makefile | 23 + arch/mips/loongson/common/Makefile | 37 + arch/mips/loongson/common/bonito-irq.c | 78 + arch/mips/loongson/common/clock.c | 166 ++ arch/mips/loongson/common/cmdline.c | 85 + arch/mips/loongson/common/cs5536/Makefile | 25 + arch/mips/loongson/common/cs5536/cs5536_acc.c | 156 ++ arch/mips/loongson/common/cs5536/cs5536_ehci.c | 166 ++ arch/mips/loongson/common/cs5536/cs5536_flash.c | 452 ++++ arch/mips/loongson/common/cs5536/cs5536_ide.c | 194 ++ arch/mips/loongson/common/cs5536/cs5536_isa.c | 376 +++ arch/mips/loongson/common/cs5536/cs5536_mfgpt.c | 257 ++ arch/mips/loongson/common/cs5536/cs5536_ohci.c | 168 ++ arch/mips/loongson/common/cs5536/cs5536_otg.c | 138 + arch/mips/loongson/common/cs5536/cs5536_pci.c | 126 + arch/mips/loongson/common/cs5536/cs5536_udc.c | 143 ++ arch/mips/loongson/common/early_printk.c | 28 + arch/mips/loongson/common/init.c | 57 + arch/mips/loongson/common/irq.c | 132 + arch/mips/loongson/common/mem.c | 116 + arch/mips/loongson/common/misc.c | 15 + arch/mips/loongson/common/pci.c | 109 + arch/mips/loongson/common/reset.c | 38 + arch/mips/loongson/common/rtc.c | 54 + arch/mips/loongson/common/serial.c | 64 + arch/mips/loongson/common/setup.c | 74 + arch/mips/loongson/common/time.c | 34 + arch/mips/loongson/fuloong-2e/Makefile | 7 + arch/mips/loongson/fuloong-2e/irq.c | 58 + arch/mips/loongson/fuloong-2e/reset.c | 26 + arch/mips/loongson/fuloong-2f/Makefile | 5 + arch/mips/loongson/fuloong-2f/irq.c | 53 + arch/mips/loongson/fuloong-2f/reset.c | 65 + arch/mips/loongson/yeeloong-2f/Makefile | 5 + arch/mips/loongson/yeeloong-2f/init.c | 71 + arch/mips/loongson/yeeloong-2f/irq.c | 53 + arch/mips/loongson/yeeloong-2f/reset.c | 40 + arch/mips/oprofile/Makefile | 1 + arch/mips/oprofile/common.c | 5 + arch/mips/oprofile/op_model_loongson2.c | 186 ++ arch/mips/pci/Makefile | 4 +- arch/mips/pci/fixup-au1000.c | 2 +- arch/mips/pci/fixup-capcella.c | 2 +- arch/mips/pci/fixup-cobalt.c | 2 +- arch/mips/pci/fixup-emma2rh.c | 2 +- arch/mips/pci/fixup-excite.c | 2 +- arch/mips/pci/fixup-fuloong2e.c | 243 ++ arch/mips/pci/fixup-ip32.c | 2 +- arch/mips/pci/fixup-jmr3927.c | 2 +- arch/mips/pci/fixup-lemote2f.c | 171 ++ arch/mips/pci/fixup-lm2e.c | 242 -- arch/mips/pci/fixup-malta.c | 2 +- arch/mips/pci/fixup-mpc30x.c | 2 +- arch/mips/pci/fixup-pmcmsp.c | 2 +- arch/mips/pci/fixup-pnx8550.c | 2 +- arch/mips/pci/fixup-rbtx4927.c | 2 +- arch/mips/pci/fixup-rbtx4938.c | 2 +- arch/mips/pci/fixup-rc32434.c | 2 +- arch/mips/pci/fixup-sni.c | 2 +- arch/mips/pci/fixup-tb0219.c | 2 +- arch/mips/pci/fixup-tb0226.c | 2 +- arch/mips/pci/fixup-tb0287.c | 2 +- arch/mips/pci/fixup-wrppmc.c | 2 +- arch/mips/pci/fixup-yosemite.c | 2 +- arch/mips/pci/ops-bonito64.c | 19 +- arch/mips/pci/ops-loongson2.c | 213 ++ arch/mips/pci/pci-bcm1480.c | 2 +- arch/mips/pci/pci-bcm47xx.c | 2 +- arch/mips/pci/pci-ip27.c | 2 +- arch/mips/pci/pci-lasat.c | 2 +- arch/mips/pci/pci-sb1250.c | 2 +- arch/mips/pci/pci-tx4938.c | 2 +- arch/mips/pci/pci-tx4939.c | 4 +- arch/mips/power/Makefile | 1 + arch/mips/power/cpu.c | 34 + arch/mips/power/hibernate.S | 61 + arch/mips/txx9/generic/pci.c | 2 +- drivers/rtc/rtc-cmos.c | 8 +- drivers/video/Kconfig | 23 + drivers/video/Makefile | 1 + drivers/video/smi/Makefile | 8 + drivers/video/smi/smtc2d.c | 979 ++++++++ drivers/video/smi/smtc2d.h | 530 ++++ drivers/video/smi/smtcfb.c | 1141 +++++++++ drivers/video/smi/smtcfb.h | 793 ++++++ 138 files changed, 19011 insertions(+), 3225 deletions(-) delete mode 100644 arch/mips/configs/fulong_defconfig create mode 100644 arch/mips/configs/fuloong2e_defconfig create mode 100644 arch/mips/configs/fuloong2f_defconfig create mode 100644 arch/mips/configs/yeeloong2f-7inch_defconfig create mode 100644 arch/mips/configs/yeeloong2f_defconfig create mode 100644 arch/mips/include/asm/clock.h delete mode 100644 arch/mips/include/asm/mach-lemote/cpu-feature-overrides.h delete mode 100644 arch/mips/include/asm/mach-lemote/dma-coherence.h delete mode 100644 arch/mips/include/asm/mach-lemote/mc146818rtc.h delete mode 100644 arch/mips/include/asm/mach-lemote/pci.h delete mode 100644 arch/mips/include/asm/mach-lemote/war.h create mode 100644 arch/mips/include/asm/mach-loongson/cmdline.h create mode 100644 arch/mips/include/asm/mach-loongson/cpu-feature-overrides.h create mode 100644 arch/mips/include/asm/mach-loongson/cs5536/cs5536.h create mode 100644 arch/mips/include/asm/mach-loongson/cs5536/cs5536_mfgpt.h create mode 100644 arch/mips/include/asm/mach-loongson/cs5536/cs5536_pci.h create mode 100644 arch/mips/include/asm/mach-loongson/cs5536/cs5536_vsm.h create mode 100644 arch/mips/include/asm/mach-loongson/dma-coherence.h create mode 100644 arch/mips/include/asm/mach-loongson/loongson.h create mode 100644 arch/mips/include/asm/mach-loongson/machine.h create mode 100644 arch/mips/include/asm/mach-loongson/mc146818rtc.h create mode 100644 arch/mips/include/asm/mach-loongson/mem.h create mode 100644 arch/mips/include/asm/mach-loongson/pci.h create mode 100644 arch/mips/include/asm/mach-loongson/war.h create mode 100644 arch/mips/kernel/loongson2f_freq.c delete mode 100644 arch/mips/lemote/lm2e/Makefile delete mode 100644 arch/mips/lemote/lm2e/bonito-irq.c delete mode 100644 arch/mips/lemote/lm2e/dbg_io.c delete mode 100644 arch/mips/lemote/lm2e/irq.c delete mode 100644 arch/mips/lemote/lm2e/mem.c delete mode 100644 arch/mips/lemote/lm2e/pci.c delete mode 100644 arch/mips/lemote/lm2e/prom.c delete mode 100644 arch/mips/lemote/lm2e/reset.c delete mode 100644 arch/mips/lemote/lm2e/setup.c create mode 100644 arch/mips/loongson/Kconfig create mode 100644 arch/mips/loongson/Makefile create mode 100644 arch/mips/loongson/common/Makefile create mode 100644 arch/mips/loongson/common/bonito-irq.c create mode 100644 arch/mips/loongson/common/clock.c create mode 100644 arch/mips/loongson/common/cmdline.c create mode 100644 arch/mips/loongson/common/cs5536/Makefile create mode 100644 arch/mips/loongson/common/cs5536/cs5536_acc.c create mode 100644 arch/mips/loongson/common/cs5536/cs5536_ehci.c create mode 100644 arch/mips/loongson/common/cs5536/cs5536_flash.c create mode 100644 arch/mips/loongson/common/cs5536/cs5536_ide.c create mode 100644 arch/mips/loongson/common/cs5536/cs5536_isa.c create mode 100644 arch/mips/loongson/common/cs5536/cs5536_mfgpt.c create mode 100644 arch/mips/loongson/common/cs5536/cs5536_ohci.c create mode 100644 arch/mips/loongson/common/cs5536/cs5536_otg.c create mode 100644 arch/mips/loongson/common/cs5536/cs5536_pci.c create mode 100644 arch/mips/loongson/common/cs5536/cs5536_udc.c create mode 100644 arch/mips/loongson/common/early_printk.c create mode 100644 arch/mips/loongson/common/init.c create mode 100644 arch/mips/loongson/common/irq.c create mode 100644 arch/mips/loongson/common/mem.c create mode 100644 arch/mips/loongson/common/misc.c create mode 100644 arch/mips/loongson/common/pci.c create mode 100644 arch/mips/loongson/common/reset.c create mode 100644 arch/mips/loongson/common/rtc.c create mode 100644 arch/mips/loongson/common/serial.c create mode 100644 arch/mips/loongson/common/setup.c create mode 100644 arch/mips/loongson/common/time.c create mode 100644 arch/mips/loongson/fuloong-2e/Makefile create mode 100644 arch/mips/loongson/fuloong-2e/irq.c create mode 100644 arch/mips/loongson/fuloong-2e/reset.c create mode 100644 arch/mips/loongson/fuloong-2f/Makefile create mode 100644 arch/mips/loongson/fuloong-2f/irq.c create mode 100644 arch/mips/loongson/fuloong-2f/reset.c create mode 100644 arch/mips/loongson/yeeloong-2f/Makefile create mode 100644 arch/mips/loongson/yeeloong-2f/init.c create mode 100644 arch/mips/loongson/yeeloong-2f/irq.c create mode 100644 arch/mips/loongson/yeeloong-2f/reset.c create mode 100644 arch/mips/oprofile/op_model_loongson2.c create mode 100644 arch/mips/pci/fixup-fuloong2e.c create mode 100644 arch/mips/pci/fixup-lemote2f.c delete mode 100644 arch/mips/pci/fixup-lm2e.c create mode 100644 arch/mips/pci/ops-loongson2.c create mode 100644 arch/mips/power/Makefile create mode 100644 arch/mips/power/cpu.c create mode 100644 arch/mips/power/hibernate.S create mode 100644 drivers/video/smi/Makefile create mode 100644 drivers/video/smi/smtc2d.c create mode 100644 drivers/video/smi/smtc2d.h create mode 100644 drivers/video/smi/smtcfb.c create mode 100644 drivers/video/smi/smtcfb.h