# This is a BitKeeper generated patch for the following project: # Project Name: Linux 2.4 # This patch format is intended for GNU patch command version 2.5 or higher. # This patch includes the following deltas: # ChangeSet 1.133 -> 1.134 # arch/ppc/kernel/time.c 1.18 -> 1.19 # arch/ppc/kernel/prpmc750_pci.c 1.1 -> 1.2 # arch/ppc/kernel/prpmc750_setup.c 1.1 -> 1.2 # arch/ppc/configs/prpmc750_defconfig 1.1 -> 1.2 # # The following is the BitKeeper ChangeSet Log # -------------------------------------------- # 01/06/07 trini@opus.bloom.county 1.134 # Update Motorola PrPMC750 # -------------------------------------------- # diff -Nru a/arch/ppc/configs/prpmc750_defconfig b/arch/ppc/configs/prpmc750_defconfig --- a/arch/ppc/configs/prpmc750_defconfig Thu Jun 7 12:27:35 2001 +++ b/arch/ppc/configs/prpmc750_defconfig Thu Jun 7 12:27:35 2001 @@ -30,14 +30,21 @@ # CONFIG_ALL_PPC is not set # CONFIG_APUS is not set # CONFIG_SPRUCE is not set +# CONFIG_PCORE is not set +# CONFIG_MENF1 is not set +# CONFIG_MCPN765 is not set # CONFIG_MVME5100 is not set CONFIG_PRPMC750=y +# CONFIG_SANDPOINT is not set # CONFIG_K2 is not set # CONFIG_GEMINI is not set +# CONFIG_ZX4500 is not set +CONFIG_PRPMC_BASE=y +# CONFIG_PRPMC_CARRIER is not set # CONFIG_PPC601_SYNC_FIX is not set # CONFIG_SMP is not set # CONFIG_ALTIVEC is not set -CONFIG_MACH_SPECIFIC=y +# CONFIG_TAU is not set # # General setup @@ -65,7 +72,8 @@ # # CONFIG_PARPORT is not set # CONFIG_PPC_RTC is not set -# CONFIG_CMDLINE_BOOL is not set +CONFIG_CMDLINE_BOOL=y +CONFIG_CMDLINE="ip=on" # # Memory Technology Devices (MTD) @@ -89,8 +97,9 @@ # CONFIG_BLK_DEV_DAC960 is not set # 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 +CONFIG_BLK_DEV_RAM=y +CONFIG_BLK_DEV_RAM_SIZE=4096 +CONFIG_BLK_DEV_INITRD=y # # Multi-device support (RAID and LVM) @@ -119,7 +128,8 @@ CONFIG_IP_MULTICAST=y # CONFIG_IP_ADVANCED_ROUTER is not set CONFIG_IP_PNP=y -CONFIG_IP_PNP_BOOTP=y +CONFIG_IP_PNP_DHCP=y +# CONFIG_IP_PNP_BOOTP is not set # CONFIG_IP_PNP_RARP is not set # CONFIG_NET_IPIP is not set # CONFIG_NET_IPGRE is not set @@ -244,6 +254,7 @@ CONFIG_EEPRO100=y # CONFIG_EEPRO100_PM is not set # CONFIG_LNE390 is not set +# CONFIG_FEALNX is not set # CONFIG_NATSEMI is not set # CONFIG_NE2K_PCI is not set # CONFIG_NE3210 is not set @@ -417,6 +428,7 @@ # CONFIG_ISO9660_FS is not set # CONFIG_JOLIET is not set # CONFIG_MINIX_FS is not set +# CONFIG_VXFS_FS is not set # CONFIG_NTFS_FS is not set # CONFIG_NTFS_RW is not set # CONFIG_HPFS_FS is not set diff -Nru a/arch/ppc/kernel/prpmc750_pci.c b/arch/ppc/kernel/prpmc750_pci.c --- a/arch/ppc/kernel/prpmc750_pci.c Thu Jun 7 12:27:35 2001 +++ b/arch/ppc/kernel/prpmc750_pci.c Thu Jun 7 12:27:35 2001 @@ -47,7 +47,7 @@ { {12, 0, 0, 0}, /* IDSEL 14 - Ethernet */ {0, 0, 0, 0}, /* IDSEL 15 - unused */ - {10, 0, 0, 0}, /* IDSEL 16 - PMC1INTA */ + {10, 11, 12, 9}, /* IDSEL 16 - PMC1 */ {0, 0, 0, 0}, /* IDSEL 17 - unused */ {0, 0, 0, 0}, /* IDSEL 18 - unused */ {0, 0, 0, 0}, /* IDSEL 19 - unused */ @@ -122,6 +122,7 @@ hose->first_busno = 0; hose->last_busno = 0xff; hose->pci_mem_offset = PRPMC750_PCI_PHY_MEM_BASE; + hose->mem_resources[0].end = 0xffffffff; hose->io_base_virt = (void *)PRPMC750_ISA_IO_BASE; setup_indirect_pci(hose, diff -Nru a/arch/ppc/kernel/prpmc750_setup.c b/arch/ppc/kernel/prpmc750_setup.c --- a/arch/ppc/kernel/prpmc750_setup.c Thu Jun 7 12:27:35 2001 +++ b/arch/ppc/kernel/prpmc750_setup.c Thu Jun 7 12:27:35 2001 @@ -77,18 +77,21 @@ void __init prpmc750_setup_arch(void) { - extern char cmd_line[]; - /* init to some ~sane value until calibrate_delay() runs */ - loops_per_jiffy = 100000000/HZ; + loops_per_jiffy = 50000000/HZ; /* Lookup PCI host bridges */ prpmc750_find_bridges(); +#ifdef CONFIG_BLK_DEV_INITRD + if (initrd_start) + ROOT_DEV = MKDEV(RAMDISK_MAJOR, 0); /* /dev/ram */ + else +#endif #ifdef CONFIG_ROOT_NFS - ROOT_DEV = to_kdev_t(0x00ff); /* /dev/nfs pseudo device */ + ROOT_DEV = to_kdev_t(0x00ff); /* /dev/nfs pseudo device */ #else - ROOT_DEV = to_kdev_t(0x0802); /* /dev/sda2 */ + ROOT_DEV = to_kdev_t(0x0802); /* /dev/sda2 */ #endif /* Find and map our OpenPIC */ @@ -96,9 +99,7 @@ OpenPIC_InitSenses = prpmc750_openpic_initsenses; OpenPIC_NumInitSenses = sizeof(prpmc750_openpic_initsenses); - printk("PrPMC750 port (C) 2001 MontaVista Software, Inc. \n"); - - return; + printk("PrPMC750 port (C) 2001 MontaVista Software, Inc. (source@mvista.com)\n"); } /* @@ -250,6 +251,14 @@ prpmc750_init(unsigned long r3, unsigned long r4, unsigned long r5, unsigned long r6, unsigned long r7) { +#ifdef CONFIG_BLK_DEV_INITRD + if ( r4 ) + { + initrd_start = r4 + KERNELBASE; + initrd_end = r5 + KERNELBASE; + } +#endif + /* Copy cmd_line parameters */ if ( r6) { @@ -277,3 +286,4 @@ ppc_md.get_rtc_time = NULL; ppc_md.set_rtc_time = NULL; ppc_md.calibrate_decr = prpmc750_calibrate_decr; +} diff -Nru a/arch/ppc/kernel/time.c b/arch/ppc/kernel/time.c --- a/arch/ppc/kernel/time.c Thu Jun 7 12:27:35 2001 +++ b/arch/ppc/kernel/time.c Thu Jun 7 12:27:35 2001 @@ -321,27 +321,30 @@ * makes things more complex. Repeatedly read the RTC until the * next second boundary to try to achieve some precision... */ - stamp = get_native_tbl(); - sec = ppc_md.get_rtc_time(); - elapsed = 0; - do { - old_stamp = stamp; - old_sec = sec; + if (ppc_md.get_rtc_time) { stamp = get_native_tbl(); - if (__USE_RTC() && stamp < old_stamp) old_stamp -= 1000000000; - elapsed += stamp - old_stamp; sec = ppc_md.get_rtc_time(); - } while ( sec == old_sec && elapsed < 2*HZ*tb_ticks_per_jiffy); - if (sec==old_sec) { - printk("Warning: real time clock seems stuck!\n"); + elapsed = 0; + do { + old_stamp = stamp; + old_sec = sec; + stamp = get_native_tbl(); + if (__USE_RTC() && stamp < old_stamp) old_stamp -= 1000000000; + elapsed += stamp - old_stamp; + sec = ppc_md.get_rtc_time(); + } while ( sec == old_sec && elapsed < 2*HZ*tb_ticks_per_jiffy); + if (sec==old_sec) { + printk("Warning: real time clock seems stuck!\n"); + } + write_lock_irqsave(&xtime_lock, flags); + xtime.tv_sec = sec; + last_jiffy_stamp(0) = tb_last_stamp = stamp; + xtime.tv_usec = 0; + /* No update now, we just read the time from the RTC ! */ + last_rtc_update = xtime.tv_sec; + write_unlock_irqrestore(&xtime_lock, flags); } - write_lock_irqsave(&xtime_lock, flags); - xtime.tv_sec = sec; - last_jiffy_stamp(0) = tb_last_stamp = stamp; - xtime.tv_usec = 0; - /* No update now, we just read the time from the RTC ! */ - last_rtc_update = xtime.tv_sec; - write_unlock_irqrestore(&xtime_lock, flags); + /* Not exact, but the timer interrupt takes care of this */ set_dec(tb_ticks_per_jiffy);