Merge branch 'master' of git://git.denx.de/u-boot-mips
authorTom Rini <trini@ti.com>
Mon, 2 Dec 2013 13:44:28 +0000 (08:44 -0500)
committerTom Rini <trini@ti.com>
Mon, 2 Dec 2013 13:44:28 +0000 (08:44 -0500)
arch/mips/include/asm/malta.h
arch/mips/lib/bootm.c
board/imgtec/malta/malta.c
include/configs/malta.h

index bd9043d..9e7c045 100644 (file)
 #define PCI_CFG_PIIX4_PIRQRCB          0x61
 #define PCI_CFG_PIIX4_PIRQRCC          0x62
 #define PCI_CFG_PIIX4_PIRQRCD          0x63
+#define PCI_CFG_PIIX4_SERIRQC          0x64
+#define PCI_CFG_PIIX4_GENCFG           0xb0
+
+#define PCI_CFG_PIIX4_SERIRQC_EN       (1 << 7)
+#define PCI_CFG_PIIX4_SERIRQC_CONT     (1 << 6)
+
+#define PCI_CFG_PIIX4_GENCFG_SERIRQ    (1 << 16)
 
 #endif /* _MIPS_ASM_MALTA_H */
index 1febf29..71bb0d2 100644 (file)
@@ -196,8 +196,10 @@ static void boot_prep_linux(bootm_headers_t *images)
        if (cp)
                linux_env_set("eth1addr", cp);
 
-       if (mips_boot_malta)
-               linux_env_set("modetty0", "38400n8r");
+       if (mips_boot_malta) {
+               sprintf(env_buf, "%un8r", gd->baudrate);
+               linux_env_set("modetty0", env_buf);
+       }
 }
 
 static void boot_jump_linux(bootm_headers_t *images)
index a1a4c01..d363e49 100644 (file)
@@ -171,6 +171,8 @@ struct serial_device *default_serial_console(void)
 void pci_init_board(void)
 {
        pci_dev_t bdf;
+       u32 val32;
+       u8 val8;
 
        switch (malta_sys_con()) {
        case SYSCON_GT64120:
@@ -205,4 +207,14 @@ void pci_init_board(void)
        pci_write_config_byte(bdf, PCI_CFG_PIIX4_PIRQRCB, 10);
        pci_write_config_byte(bdf, PCI_CFG_PIIX4_PIRQRCC, 11);
        pci_write_config_byte(bdf, PCI_CFG_PIIX4_PIRQRCD, 11);
+
+       /* mux SERIRQ onto SERIRQ pin */
+       pci_read_config_dword(bdf, PCI_CFG_PIIX4_GENCFG, &val32);
+       val32 |= PCI_CFG_PIIX4_GENCFG_SERIRQ;
+       pci_write_config_dword(bdf, PCI_CFG_PIIX4_GENCFG, val32);
+
+       /* enable SERIRQ - Linux currently depends upon this */
+       pci_read_config_byte(bdf, PCI_CFG_PIIX4_SERIRQC, &val8);
+       val8 |= PCI_CFG_PIIX4_SERIRQC_EN | PCI_CFG_PIIX4_SERIRQC_CONT;
+       pci_write_config_byte(bdf, PCI_CFG_PIIX4_SERIRQC, val8);
 }
index 458c33a..cc574ed 100644 (file)
@@ -54,6 +54,7 @@
 
 #define CONFIG_SYS_MALLOC_LEN          (128 * 1024)
 #define CONFIG_SYS_BOOTPARAMS_LEN      (128 * 1024)
+#define CONFIG_SYS_BOOTM_LEN           (64 * 1024 * 1024)
 
 /*
  * Console configuration
@@ -80,7 +81,7 @@
 #define CONFIG_SYS_NS16550
 #define CONFIG_SYS_NS16550_SERIAL
 #define CONFIG_SYS_NS16550_REG_SIZE    1
-#define CONFIG_SYS_NS16550_CLK         115200
+#define CONFIG_SYS_NS16550_CLK         (115200 * 16)
 #define CONFIG_SYS_NS16550_COM1                CKSEG1ADDR(MALTA_GT_UART0_BASE)
 #define CONFIG_SYS_NS16550_COM2                CKSEG1ADDR(MALTA_MSC01_UART0_BASE)
 #define CONFIG_CONS_INDEX              1