diff -urN linux.cvs/arch/mips/cobalt/pci.c linux/arch/mips/cobalt/pci.c --- linux.cvs/arch/mips/cobalt/pci.c Sat Jul 5 14:17:03 2003 +++ linux/arch/mips/cobalt/pci.c Sun Feb 1 13:38:21 2004 @@ -222,7 +222,7 @@ galileo_id &= 0xff; /* mask off class info */ if (galileo_id >= 0x10) { /* New Galileo, assumes PCI stop line to VIA is connected. */ - GALILEO_OUTL(0x4020, GT_PCI0_TOR_OFS); + GALILEO_OUTL(/*0x4020*/ 0xffff, GT_PCI0_TOR_OFS); } else if (galileo_id == 0x1 || galileo_id == 0x2) { signed int timeo; /* XXX WE MUST DO THIS ELSE GALILEO LOCKS UP! -DaveM */ diff -urN linux.cvs/arch/mips/defconfig-cobalt linux/arch/mips/defconfig-cobalt --- linux.cvs/arch/mips/defconfig-cobalt Sat Jan 10 05:16:42 2004 +++ linux/arch/mips/defconfig-cobalt Sun Feb 1 13:56:47 2004 @@ -1,5 +1,5 @@ # -# Automatically generated make config: don't edit +# Automatically generated by make menuconfig: don't edit # CONFIG_MIPS=y CONFIG_MIPS32=y @@ -13,7 +13,9 @@ # # Loadable module support # -# CONFIG_MODULES is not set +CONFIG_MODULES=y +# CONFIG_MODVERSIONS is not set +CONFIG_KMOD=y # # Machine selection @@ -28,6 +30,7 @@ # CONFIG_MIPS_PB1100 is not set # CONFIG_MIPS_PB1500 is not set # CONFIG_MIPS_HYDROGEN3 is not set +# CONFIG_MIPS_PB1550 is not set # CONFIG_MIPS_XXS1500 is not set # CONFIG_MIPS_MTX1 is not set # CONFIG_COGENT_CSB250 is not set @@ -163,7 +166,7 @@ # CONFIG_CISS_MONITOR_THREAD is not set # CONFIG_BLK_DEV_DAC960 is not set # CONFIG_BLK_DEV_UMEM is not set -CONFIG_BLK_DEV_LOOP=y +# CONFIG_BLK_DEV_LOOP is not set # CONFIG_BLK_DEV_NBD is not set # CONFIG_BLK_DEV_RAM is not set # CONFIG_BLK_DEV_INITRD is not set @@ -209,10 +212,6 @@ # CONFIG_IP_SCTP is not set # CONFIG_ATM is not set # CONFIG_VLAN_8021Q is not set - -# -# -# # CONFIG_IPX is not set # CONFIG_ATALK is not set @@ -257,10 +256,6 @@ # IDE, ATA and ATAPI Block devices # CONFIG_BLK_DEV_IDE=y - -# -# Please see Documentation/ide.txt for help/info on IDE drives -# # CONFIG_BLK_DEV_HD_IDE is not set # CONFIG_BLK_DEV_HD is not set CONFIG_BLK_DEV_IDEDISK=y @@ -272,10 +267,6 @@ # CONFIG_BLK_DEV_IDEFLOPPY is not set # CONFIG_BLK_DEV_IDESCSI is not set # CONFIG_IDE_TASK_IOCTL is not set - -# -# IDE chipset support/bugfixes -# # CONFIG_BLK_DEV_CMD640 is not set # CONFIG_BLK_DEV_CMD640_ENHANCED is not set # CONFIG_BLK_DEV_ISAPNP is not set @@ -512,14 +503,6 @@ # Joysticks # # CONFIG_INPUT_GAMEPORT is not set - -# -# Input core support is needed for gameports -# - -# -# Input core support is needed for joysticks -# # CONFIG_QIC02_TAPE is not set # CONFIG_IPMI_HANDLER is not set # CONFIG_IPMI_PANIC_EVENT is not set @@ -618,15 +601,15 @@ # # CONFIG_CODA_FS is not set # CONFIG_INTERMEZZO_FS is not set -CONFIG_NFS_FS=y +# CONFIG_NFS_FS is not set # CONFIG_NFS_V3 is not set # CONFIG_NFS_DIRECTIO is not set # CONFIG_ROOT_NFS is not set # CONFIG_NFSD is not set # CONFIG_NFSD_V3 is not set # CONFIG_NFSD_TCP is not set -CONFIG_SUNRPC=y -CONFIG_LOCKD=y +# CONFIG_SUNRPC is not set +# CONFIG_LOCKD is not set # CONFIG_SMB_FS is not set # CONFIG_NCP_FS is not set # CONFIG_NCPFS_PACKET_SIGNING is not set @@ -689,7 +672,7 @@ # # Kernel hacking # -CONFIG_CROSSCOMPILE=y +# CONFIG_CROSSCOMPILE is not set # CONFIG_RUNTIME_DEBUG is not set # CONFIG_KGDB is not set # CONFIG_GDB_CONSOLE is not set diff -urN linux.cvs/arch/mips/ld.script.in linux/arch/mips/ld.script.in --- linux.cvs/arch/mips/ld.script.in Fri Oct 31 16:49:18 2003 +++ linux/arch/mips/ld.script.in Sun Feb 1 13:48:04 2004 @@ -29,6 +29,10 @@ __ksymtab : { *(__ksymtab) } __stop___ksymtab = .; + __start___kallsyms = .; /* All kernel symbols */ + __kallsyms : { *(__kallsyms) } + __stop___kallsyms = .; + _etext = .; . = ALIGN(8192); diff -urN linux.cvs/arch/mips/lib/rtc-no.c linux/arch/mips/lib/rtc-no.c --- linux.cvs/arch/mips/lib/rtc-no.c Thu Jan 8 18:31:49 2004 +++ linux/arch/mips/lib/rtc-no.c Sun Feb 1 13:56:19 2004 @@ -30,4 +30,4 @@ .rtc_bcd_mode = (void *) &shouldnt_happen }; -EXPORT_SYMBOL(rtc_ops); +//EXPORT_SYMBOL(rtc_ops); diff -urN linux.cvs/arch/mips/mm/c-r4k.c linux/arch/mips/mm/c-r4k.c --- linux.cvs/arch/mips/mm/c-r4k.c Mon Jan 12 18:19:51 2004 +++ linux/arch/mips/mm/c-r4k.c Sun Feb 1 13:35:55 2004 @@ -400,8 +400,10 @@ * If there's no context yet, or the page isn't executable, no icache * flush is needed. */ +#ifndef CONFIG_MIPS_COBALT if (!(vma->vm_flags & VM_EXEC)) return; +#endif /* * Tricky ... Because we don't know the virtual address we've got the @@ -425,6 +427,11 @@ r4k_blast_dcache_page(addr); ClearPageDcacheDirty(page); } + +#ifdef CONFIG_MIPS_COBALT + if (!(vma->vm_flags & VM_EXEC)) + return; +#endif /* * We're not sure of the virtual address(es) involved here, so diff -urN linux.cvs/drivers/net/tulip/eeprom.c linux/drivers/net/tulip/eeprom.c --- linux.cvs/drivers/net/tulip/eeprom.c Tue Feb 25 22:03:08 2003 +++ linux/drivers/net/tulip/eeprom.c Sun Feb 1 13:30:08 2004 @@ -62,6 +62,10 @@ */ { 0x1e00, 0x0000, 0x000b, 0x8f01, 0x0103, 0x0300, 0x0821, 0x000, 0x0001, 0x0000, 0x01e1 } }, + {"Cobalt MicroServer", 0, 0x10, 0xE0, { 0x1e00, 0x0000, 0x0800, 0x8001, + 0x0003, 0x0400, 0x0801, 0x0000, + 0x0800, 0x0000, 0x7800, 0x01e0, + 0x5000, 0x1800, 0x0000 }}, {0, 0, 0, 0, {}}}; diff -urN linux.cvs/drivers/net/tulip/media.c linux/drivers/net/tulip/media.c --- linux.cvs/drivers/net/tulip/media.c Tue Feb 25 22:03:08 2003 +++ linux/drivers/net/tulip/media.c Sun Feb 1 13:17:02 2004 @@ -400,6 +400,9 @@ } tp->csr6 = new_csr6 | (tp->csr6 & 0xfdff) | (tp->full_duplex ? 0x0200 : 0); + + udelay(1000); + return; } diff -urN linux.cvs/drivers/net/tulip/tulip_core.c linux/drivers/net/tulip/tulip_core.c --- linux.cvs/drivers/net/tulip/tulip_core.c Wed Nov 19 18:49:50 2003 +++ linux/drivers/net/tulip/tulip_core.c Sun Feb 1 14:09:25 2004 @@ -1595,8 +1595,8 @@ (PCI_SLOT(pdev->devfn) == 12))) { /* Cobalt MAC address in first EEPROM locations. */ sa_offset = 0; - /* No media table either */ - tp->flags &= ~HAS_MEDIA_TABLE; + /* Ensure our media table fixup get's applied */ + memcpy(ee_data + 16, ee_data, 8); } #endif #ifdef __hppa__ diff -urN linux.cvs/include/linux/udf_fs_sb.h linux/include/linux/udf_fs_sb.h --- linux.cvs/include/linux/udf_fs_sb.h Wed Jun 26 23:36:46 2002 +++ linux/include/linux/udf_fs_sb.h Sun Feb 1 13:44:34 2004 @@ -18,7 +18,7 @@ #ifndef _UDF_FS_SB_H #define _UDF_FS_SB_H 1 -#pragma pack(1) +//#pragma pack(1) #define UDF_MAX_BLOCK_LOADED 8 @@ -31,13 +31,13 @@ { __u16 s_packet_len; struct buffer_head *s_spar_map[4]; -}; +} __attribute__((packed)); struct udf_virtual_data { __u32 s_num_entries; __u16 s_start_offset; -}; +} __attribute__((packed)); struct udf_bitmap { @@ -45,7 +45,7 @@ __u32 s_extPosition; __u16 s_nr_groups; struct buffer_head **s_block_bitmap; -}; +} __attribute__((packed)); struct udf_part_map { @@ -71,9 +71,9 @@ __u32 (*s_partition_func)(struct super_block *, __u32, __u16, __u32); __u16 s_volumeseqnum; __u16 s_partition_flags; -}; +} __attribute__((packed)); -#pragma pack() +//#pragma pack() struct udf_sb_info { diff -urN linux.cvs/arch/mips/cobalt/setup.c linux/arch/mips/cobalt/setup.c --- linux.cvs/arch/mips/cobalt/setup.c Sat Jul 5 14:17:03 2003 +++ linux/arch/mips/cobalt/setup.c Sun Feb 1 18:44:00 2004 @@ -99,12 +99,32 @@ } /* Prom init. We read our one and only communication with the - firmware. Grab the amount of installed memory */ -void __init prom_init(int argc) + firmware. Grab the amount of installed memory. + Better boot loaders pass a command line too :-) */ +void __init prom_init(int argc, char *argv[]) { + int narg, indx, posn, nchr; + mips_machgroup = MACH_GROUP_COBALT; + narg = argc & 0xff; + argc -= narg; + add_memory_region(0x0, argc & 0x7fffffff, BOOT_MEM_RAM); + + if (narg) { + arcs_cmdline[0] = '\0'; + posn = 0; + for (indx = 1; indx < narg; ++indx) { + nchr = strlen(argv[indx]); + if (posn + 1 + nchr + 1 > sizeof(arcs_cmdline)) + break; + if (posn) + arcs_cmdline[posn++] = ' '; + strcpy(arcs_cmdline + posn, argv[indx]); + posn += nchr; + } + } } void __init prom_free_prom_memory(void)