From 7c695d1132a225132ea98aa690aaccf86d9faa3a Mon Sep 17 00:00:00 2001 From: jow Date: Sat, 13 Feb 2010 00:37:11 +0000 Subject: [PATCH] [x86] prepare kernel 2.6.32 support git-svn-id: svn://svn.openwrt.org/openwrt/trunk@19617 3c298f89-4303-0410-b956-a3cf2f4a3e73 --- target/linux/generic-2.6/config-2.6.32 | 5 + .../patches-2.6.32/221-binfmt_elf_gcc4.1.patch | 2 +- .../patches-2.6.32/240-packet_socket_type.patch | 22 +- .../patches-2.6.32/980-vm_exports.patch | 26 +- .../patches-2.6.32/999-use_preinit_as_init.patch | 2 +- target/linux/x86/config-2.6.32 | 459 +++++++++++++++++++++ .../x86/patches-2.6.32/300-block2mtd_init.patch | 213 ++++++++++ target/linux/x86/xen_domu/config-2.6.32 | 74 ++++ 8 files changed, 777 insertions(+), 26 deletions(-) create mode 100644 target/linux/x86/config-2.6.32 create mode 100644 target/linux/x86/patches-2.6.32/300-block2mtd_init.patch create mode 100644 target/linux/x86/xen_domu/config-2.6.32 diff --git a/target/linux/generic-2.6/config-2.6.32 b/target/linux/generic-2.6/config-2.6.32 index 0493d7602..42666817b 100644 --- a/target/linux/generic-2.6/config-2.6.32 +++ b/target/linux/generic-2.6/config-2.6.32 @@ -542,15 +542,18 @@ CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" # CONFIG_FB_FOREIGN_ENDIAN is not set # CONFIG_FB_GEODE is not set # CONFIG_FB_GOLDFISH is not set +# CONFIG_FB_HGA is not set # CONFIG_FB_IBM_GXT4500 is not set # CONFIG_FB_IMSTT is not set # CONFIG_FB is not set # CONFIG_FB_KYRO is not set +# CONFIG_FB_LE80578 is not set # CONFIG_FB_MACMODES is not set # CONFIG_FB_MATROX is not set # CONFIG_FB_MB862XX is not set # CONFIG_FB_METRONOME is not set # CONFIG_FB_MODE_HELPERS is not set +# CONFIG_FB_N411 is not set # CONFIG_FB_NEOMAGIC is not set # CONFIG_FB_NVIDIA is not set # CONFIG_FB_OF is not set @@ -590,6 +593,7 @@ CONFIG_FLATMEM=y CONFIG_FLAT_NODE_MEM_MAP=y # CONFIG_FORCEDETH is not set CONFIG_FRAME_WARN=1024 +# CONFIG_FRAMEBUFFER_CONSOLE is not set # CONFIG_FREEZER is not set # CONFIG_FSCACHE is not set CONFIG_FSNOTIFY=y @@ -1114,6 +1118,7 @@ CONFIG_LOCKD_V4=y CONFIG_LOG_BUF_SHIFT=14 # CONFIG_LOGIRUMBLEPAD2_FF is not set # CONFIG_LOGITECH_FF is not set +# CONFIG_LOGO is not set # CONFIG_LSF is not set # CONFIG_LSI_ET1011C_PHY is not set # CONFIG_LXT_PHY is not set diff --git a/target/linux/generic-2.6/patches-2.6.32/221-binfmt_elf_gcc4.1.patch b/target/linux/generic-2.6/patches-2.6.32/221-binfmt_elf_gcc4.1.patch index fa891e0f3..64f28d80f 100644 --- a/target/linux/generic-2.6/patches-2.6.32/221-binfmt_elf_gcc4.1.patch +++ b/target/linux/generic-2.6/patches-2.6.32/221-binfmt_elf_gcc4.1.patch @@ -1,6 +1,6 @@ --- a/fs/binfmt_elf.c +++ b/fs/binfmt_elf.c -@@ -1193,7 +1193,7 @@ static unsigned long vma_dump_size(struc +@@ -1170,7 +1170,7 @@ if (FILTER(ELF_HEADERS) && vma->vm_pgoff == 0 && (vma->vm_flags & VM_READ)) { u32 __user *header = (u32 __user *) vma->vm_start; diff --git a/target/linux/generic-2.6/patches-2.6.32/240-packet_socket_type.patch b/target/linux/generic-2.6/patches-2.6.32/240-packet_socket_type.patch index 71827643e..a03d69957 100644 --- a/target/linux/generic-2.6/patches-2.6.32/240-packet_socket_type.patch +++ b/target/linux/generic-2.6/patches-2.6.32/240-packet_socket_type.patch @@ -7,7 +7,7 @@ Signed-off-by: Felix Fietkau --- a/include/linux/if_packet.h +++ b/include/linux/if_packet.h -@@ -31,6 +31,8 @@ struct sockaddr_ll +@@ -31,6 +31,8 @@ /* These ones are invisible by user level */ #define PACKET_LOOPBACK 5 /* MC/BRD frame looped back */ #define PACKET_FASTROUTE 6 /* Fastrouted frame */ @@ -16,7 +16,7 @@ Signed-off-by: Felix Fietkau /* Packet socket options */ -@@ -48,6 +50,7 @@ struct sockaddr_ll +@@ -48,6 +50,7 @@ #define PACKET_RESERVE 12 #define PACKET_TX_RING 13 #define PACKET_LOSS 14 @@ -26,7 +26,7 @@ Signed-off-by: Felix Fietkau { --- a/net/packet/af_packet.c +++ b/net/packet/af_packet.c -@@ -204,6 +204,7 @@ struct packet_sock { +@@ -204,6 +204,7 @@ unsigned int tp_reserve; unsigned int tp_loss:1; #endif @@ -34,7 +34,7 @@ Signed-off-by: Felix Fietkau }; struct packet_skb_cb { -@@ -342,6 +343,7 @@ static int packet_rcv_spkt(struct sk_buf +@@ -342,6 +343,7 @@ { struct sock *sk; struct sockaddr_pkt *spkt; @@ -42,7 +42,7 @@ Signed-off-by: Felix Fietkau /* * When we registered the protocol we saved the socket in the data -@@ -349,6 +351,7 @@ static int packet_rcv_spkt(struct sk_buf +@@ -349,6 +351,7 @@ */ sk = pt->af_packet_priv; @@ -50,7 +50,7 @@ Signed-off-by: Felix Fietkau /* * Yank back the headers [hope the device set this -@@ -361,7 +364,7 @@ static int packet_rcv_spkt(struct sk_buf +@@ -361,7 +364,7 @@ * so that this procedure is noop. */ @@ -59,7 +59,7 @@ Signed-off-by: Felix Fietkau goto out; if (dev_net(dev) != sock_net(sk)) -@@ -545,12 +548,12 @@ static int packet_rcv(struct sk_buff *sk +@@ -545,12 +548,12 @@ int skb_len = skb->len; unsigned int snaplen, res; @@ -75,7 +75,7 @@ Signed-off-by: Felix Fietkau if (dev_net(dev) != sock_net(sk)) goto drop; -@@ -667,12 +670,12 @@ static int tpacket_rcv(struct sk_buff *s +@@ -667,12 +670,12 @@ struct timeval tv; struct timespec ts; @@ -91,7 +91,7 @@ Signed-off-by: Felix Fietkau if (dev_net(dev) != sock_net(sk)) goto drop; -@@ -1381,6 +1384,7 @@ static int packet_create(struct net *net +@@ -1390,6 +1393,7 @@ spin_lock_init(&po->bind_lock); mutex_init(&po->pg_vec_lock); po->prot_hook.func = packet_rcv; @@ -99,7 +99,7 @@ Signed-off-by: Felix Fietkau if (sock->type == SOCK_PACKET) po->prot_hook.func = packet_rcv_spkt; -@@ -1728,6 +1732,16 @@ packet_setsockopt(struct socket *sock, i +@@ -1737,6 +1741,16 @@ ret = packet_mc_drop(sk, &mreq); return ret; } @@ -116,7 +116,7 @@ Signed-off-by: Felix Fietkau #ifdef CONFIG_PACKET_MMAP case PACKET_RX_RING: -@@ -1873,6 +1887,13 @@ static int packet_getsockopt(struct sock +@@ -1882,6 +1896,13 @@ data = &val; break; diff --git a/target/linux/generic-2.6/patches-2.6.32/980-vm_exports.patch b/target/linux/generic-2.6/patches-2.6.32/980-vm_exports.patch index 1c60dbc50..ca70efe0e 100644 --- a/target/linux/generic-2.6/patches-2.6.32/980-vm_exports.patch +++ b/target/linux/generic-2.6/patches-2.6.32/980-vm_exports.patch @@ -1,6 +1,6 @@ --- a/mm/shmem.c +++ b/mm/shmem.c -@@ -2608,6 +2608,16 @@ int shmem_lock(struct file *file, int lo +@@ -2608,6 +2608,16 @@ /* common code */ @@ -17,7 +17,7 @@ /** * shmem_file_setup - get an unlinked file living in tmpfs * @name: name for dentry (to be seen in /proc//maps -@@ -2687,9 +2697,6 @@ int shmem_zero_setup(struct vm_area_stru +@@ -2687,9 +2697,6 @@ if (IS_ERR(file)) return PTR_ERR(file); @@ -30,7 +30,7 @@ } --- a/fs/file.c +++ b/fs/file.c -@@ -271,6 +271,7 @@ int expand_files(struct files_struct *fi +@@ -271,6 +271,7 @@ /* All good, so we try */ return expand_fdtable(files, nr); } @@ -40,7 +40,7 @@ { --- a/kernel/exit.c +++ b/kernel/exit.c -@@ -507,6 +507,7 @@ struct files_struct *get_files_struct(st +@@ -507,6 +507,7 @@ return files; } @@ -48,7 +48,7 @@ void put_files_struct(struct files_struct *files) { -@@ -526,6 +527,7 @@ void put_files_struct(struct files_struc +@@ -526,6 +527,7 @@ free_fdtable(fdt); } } @@ -58,7 +58,7 @@ { --- a/kernel/fork.c +++ b/kernel/fork.c -@@ -168,6 +168,7 @@ void __put_task_struct(struct task_struc +@@ -168,6 +168,7 @@ if (!profile_handoff_task(tsk)) free_task(tsk); } @@ -68,7 +68,7 @@ * macro override instead of weak attribute alias, to workaround --- a/kernel/sched.c +++ b/kernel/sched.c -@@ -6093,6 +6093,7 @@ int can_nice(const struct task_struct *p +@@ -6093,6 +6093,7 @@ return (nice_rlim <= p->signal->rlim[RLIMIT_NICE].rlim_cur || capable(CAP_SYS_NICE)); } @@ -78,7 +78,7 @@ --- a/mm/memory.c +++ b/mm/memory.c -@@ -1100,6 +1100,7 @@ unsigned long zap_page_range(struct vm_a +@@ -1100,6 +1100,7 @@ tlb_finish_mmu(tlb, address, end); return end; } @@ -86,7 +86,7 @@ /** * zap_vma_ptes - remove ptes mapping the vma -@@ -2486,6 +2487,7 @@ int vmtruncate_range(struct inode *inode +@@ -2486,6 +2487,7 @@ return 0; } @@ -96,7 +96,7 @@ * We enter with non-exclusive mmap_sem (to exclude vma changes, --- a/mm/vmalloc.c +++ b/mm/vmalloc.c -@@ -1111,6 +1111,7 @@ void unmap_kernel_range(unsigned long ad +@@ -1172,6 +1172,7 @@ vunmap_page_range(addr, end); flush_tlb_kernel_range(addr, end); } @@ -104,7 +104,7 @@ int map_vm_area(struct vm_struct *area, pgprot_t prot, struct page ***pages) { -@@ -1226,6 +1227,7 @@ struct vm_struct *get_vm_area(unsigned l +@@ -1287,6 +1288,7 @@ return __get_vm_area_node(size, 1, flags, VMALLOC_START, VMALLOC_END, -1, GFP_KERNEL, __builtin_return_address(0)); } @@ -114,7 +114,7 @@ void *caller) --- a/include/linux/mm.h +++ b/include/linux/mm.h -@@ -713,6 +713,7 @@ extern void show_free_areas(void); +@@ -713,6 +713,7 @@ int shmem_lock(struct file *file, int lock, struct user_struct *user); struct file *shmem_file_setup(const char *name, loff_t size, unsigned long flags); @@ -124,7 +124,7 @@ #ifndef CONFIG_MMU --- a/kernel/signal.c +++ b/kernel/signal.c -@@ -1070,6 +1070,7 @@ struct sighand_struct *lock_task_sighand +@@ -1070,6 +1070,7 @@ return sighand; } diff --git a/target/linux/generic-2.6/patches-2.6.32/999-use_preinit_as_init.patch b/target/linux/generic-2.6/patches-2.6.32/999-use_preinit_as_init.patch index 0a52a87e8..33943fe2d 100644 --- a/target/linux/generic-2.6/patches-2.6.32/999-use_preinit_as_init.patch +++ b/target/linux/generic-2.6/patches-2.6.32/999-use_preinit_as_init.patch @@ -1,6 +1,6 @@ --- a/init/main.c +++ b/init/main.c -@@ -836,10 +836,7 @@ static noinline int init_post(void) +@@ -836,10 +836,7 @@ printk(KERN_WARNING "Failed to execute %s. Attempting " "defaults...\n", execute_command); } diff --git a/target/linux/x86/config-2.6.32 b/target/linux/x86/config-2.6.32 new file mode 100644 index 000000000..398c0668e --- /dev/null +++ b/target/linux/x86/config-2.6.32 @@ -0,0 +1,459 @@ +# CONFIG_3C515 is not set +# CONFIG_60XX_WDT is not set +# CONFIG_64BIT is not set +# CONFIG_AC3200 is not set +# CONFIG_ACPI_AC is not set +# CONFIG_ACPI_ASUS is not set +# CONFIG_ACPI_BATTERY is not set +# CONFIG_ACPI_BUTTON is not set +# CONFIG_ACPI_CONTAINER is not set +# CONFIG_ACPI_CUSTOM_DSDT is not set +# CONFIG_ACPI_DEBUG is not set +# CONFIG_ACPI_DOCK is not set +# CONFIG_ACPI_FAN is not set +# CONFIG_ACPI_PCI_SLOT is not set +# CONFIG_ACPI_PROCESSOR_AGGREGATOR is not set +# CONFIG_ACPI_PROCFS is not set +# CONFIG_ACPI_PROCFS_POWER is not set +# CONFIG_ACPI_PROC_EVENT is not set +# CONFIG_ACPI_SBS is not set +# CONFIG_ACPI_TOSHIBA is not set +# CONFIG_ACPI_WMI is not set +# CONFIG_ACQUIRE_WDT is not set +# CONFIG_ADVANTECH_WDT is not set +# CONFIG_ALIM1535_WDT is not set +# CONFIG_APRICOT is not set +# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set +# CONFIG_ASUS_LAPTOP is not set +# CONFIG_AT1700 is not set +# CONFIG_AUDIT_ARCH is not set +# CONFIG_BLK_DEV_XD is not set +# CONFIG_CC_STACKPROTECTOR is not set +# CONFIG_CMDLINE_BOOL is not set +# CONFIG_CPU5_WDT is not set +# CONFIG_CPU_FREQ_DEBUG is not set +# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set +# CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set +# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set +# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set +# CONFIG_CPU_FREQ_GOV_CONSERVATIVE is not set +# CONFIG_CPU_FREQ_GOV_ONDEMAND is not set +# CONFIG_CPU_FREQ_GOV_POWERSAVE is not set +# CONFIG_CPU_FREQ_GOV_USERSPACE is not set +# CONFIG_CS5535_GPIO is not set +# CONFIG_CS89x0 is not set +# CONFIG_DCDBAS is not set +# CONFIG_DELL_RBU is not set +# CONFIG_DEPCA is not set +# CONFIG_DMAR is not set +# CONFIG_DMA_API_DEBUG is not set +# CONFIG_DMIID is not set +# CONFIG_EARLY_PRINTK_DBGP is not set +# CONFIG_EDD is not set +# CONFIG_EFI is not set +# CONFIG_EISA is not set +# CONFIG_EL1 is not set +# CONFIG_EL16 is not set +# CONFIG_EL2 is not set +# CONFIG_EL3 is not set +# CONFIG_ELPLUS is not set +# CONFIG_EUROTECH_WDT is not set +# CONFIG_FRAME_POINTER is not set +# CONFIG_GENERIC_CPU is not set +# CONFIG_GENERIC_TIME_VSYSCALL is not set +# CONFIG_HANGCHECK_TIMER is not set +# CONFIG_HAVE_CPUMASK_OF_CPU_MAP is not set +# CONFIG_HIBERNATION is not set +# CONFIG_HIGHMEM4G is not set +# CONFIG_HIGHMEM64G is not set +# CONFIG_HIGH_RES_TIMERS is not set +# CONFIG_HPET_TIMER is not set +# CONFIG_HP_WATCHDOG is not set +# CONFIG_HUGETLBFS is not set +# CONFIG_I6300ESB_WDT is not set +# CONFIG_I8K is not set +# CONFIG_IB700_WDT is not set +# CONFIG_IBMASR is not set +# CONFIG_IMA is not set +# CONFIG_INPUT_YEALINK is not set +# CONFIG_INTEL_MENLOW is not set +# CONFIG_IOMMU_API is not set +# CONFIG_IOMMU_HELPER is not set +# CONFIG_IOMMU_STRESS is not set +# CONFIG_IO_DELAY_0XED is not set +# CONFIG_IO_DELAY_NONE is not set +# CONFIG_IO_DELAY_UDELAY is not set +# CONFIG_ISCSI_IBFT_FIND is not set +# CONFIG_IT8712F_WDT is not set +# CONFIG_IT87_WDT is not set +# CONFIG_ITCO_WDT is not set +# CONFIG_KEYBOARD_LKKBD is not set +# CONFIG_KEYBOARD_NEWTON is not set +# CONFIG_KEYBOARD_STOWAWAY is not set +# CONFIG_KEYBOARD_SUNKBD is not set +# CONFIG_KEYBOARD_XTKBD is not set +# CONFIG_LANCE is not set +# CONFIG_LEDS_ALIX2 is not set +# CONFIG_LEDS_CLEVO_MAIL is not set +# CONFIG_M486 is not set +# CONFIG_M586 is not set +# CONFIG_M586MMX is not set +# CONFIG_M586TSC is not set +# CONFIG_M686 is not set +# CONFIG_MACHZ_WDT is not set +# CONFIG_MATOM is not set +# CONFIG_MCA is not set +# CONFIG_MCORE2 is not set +# CONFIG_MCRUSOE is not set +# CONFIG_MCYRIXIII is not set +# CONFIG_MDA_CONSOLE is not set +# CONFIG_MEFFICEON is not set +# CONFIG_MEMTEST is not set +# CONFIG_MGEODEGX1 is not set +# CONFIG_MGEODE_LX is not set +# CONFIG_MICROCODE_AMD is not set +# CONFIG_MIXCOMWD is not set +# CONFIG_MK6 is not set +# CONFIG_MK7 is not set +# CONFIG_MK8 is not set +# CONFIG_MOUSE_BCM5974 is not set +# CONFIG_MOUSE_PS2_ELANTECH is not set +# CONFIG_MOUSE_PS2_TOUCHKIT is not set +# CONFIG_MOUSE_SERIAL is not set +# CONFIG_MOUSE_VSXXXAA is not set +# CONFIG_MPENTIUM4 is not set +# CONFIG_MPENTIUMII is not set +# CONFIG_MPENTIUMIII is not set +# CONFIG_MPENTIUMM is not set +# CONFIG_MPSC is not set +# CONFIG_MTD_CFI is not set +# CONFIG_MTD_COMPLEX_MAPPINGS is not set +# CONFIG_MTD_TS5500 is not set +# CONFIG_MTRR_SANITIZER is not set +# CONFIG_MVIAC3_2 is not set +# CONFIG_MVIAC7 is not set +# CONFIG_MWINCHIP3D is not set +# CONFIG_MWINCHIPC6 is not set +# CONFIG_NET_NS is not set +# CONFIG_NET_VENDOR_RACAL is not set +# CONFIG_NET_VENDOR_SMC is not set +# CONFIG_NSC_GPIO is not set +# CONFIG_OLPC is not set +# CONFIG_OPTIMIZE_INLINING is not set +# CONFIG_PARAVIRT_GUEST is not set +# CONFIG_PC8736x_GPIO is not set +# CONFIG_PC87413_WDT is not set +# CONFIG_PCIEPORTBUS is not set +# CONFIG_PCI_GOBIOS is not set +# CONFIG_PCI_GODIRECT is not set +# CONFIG_PCI_GOMMCONFIG is not set +# CONFIG_PCI_GOOLPC is not set +# CONFIG_PCWATCHDOG is not set +# CONFIG_PDA_POWER is not set +# CONFIG_PM_DEBUG is not set +# CONFIG_PM_RUNTIME is not set +# CONFIG_PNPBIOS is not set +# CONFIG_POWER_SUPPLY_DEBUG is not set +# CONFIG_PROCESSOR_SELECT is not set +# CONFIG_PROVIDE_OHCI1394_DMA_INIT is not set +# CONFIG_RELOCATABLE is not set +# CONFIG_RWSEM_XCHGADD_ALGORITHM is not set +# CONFIG_SBC7240_WDT is not set +# CONFIG_SBC8360_WDT is not set +# CONFIG_SBC_EPX_C3_WATCHDOG is not set +# CONFIG_SC1200_WDT is not set +# CONFIG_SC520_WDT is not set +# CONFIG_SCHED_HRTICK is not set +# CONFIG_SCSI_LOWLEVEL is not set +# CONFIG_SCx200_GPIO is not set +# CONFIG_SCx200_WDT is not set +# CONFIG_SERIAL_8250_EXTENDED is not set +# CONFIG_SERIO_CT82C710 is not set +# CONFIG_SERIO_PCIPS2 is not set +# CONFIG_SERIO_RAW is not set +# CONFIG_SLAB is not set +# CONFIG_SLUB_DEBUG_ON is not set +# CONFIG_SLUB_STATS is not set +# CONFIG_SMSC37B787_WDT is not set +# CONFIG_SMSC_SCH311X_WDT is not set +# CONFIG_SPARSE_IRQ is not set +# CONFIG_SUSPEND is not set +# CONFIG_TC1100_WMI is not set +# CONFIG_TELCLOCK is not set +# CONFIG_THINKPAD_ACPI is not set +# CONFIG_TOPSTAR_LAPTOP is not set +# CONFIG_TOSHIBA is not set +# CONFIG_TREE_PREEMPT_RCU is not set +# CONFIG_TYPHOON is not set +# CONFIG_USER_NS is not set +# CONFIG_VGACON_SOFT_SCROLLBACK is not set +# CONFIG_VORTEX is not set +# CONFIG_VT_HW_CONSOLE_BINDING is not set +# CONFIG_W83697UG_WDT is not set +# CONFIG_WAFER_WDT is not set +# CONFIG_WDT is not set +# CONFIG_X86_64 is not set +# CONFIG_X86_ACPI_CPUFREQ is not set +# CONFIG_X86_ANCIENT_MCE is not set +# CONFIG_X86_CHECK_BIOS_CORRUPTION is not set +# CONFIG_X86_CMPXCHG is not set +# CONFIG_X86_CPUFREQ_NFORCE2 is not set +# CONFIG_X86_CPUID is not set +# CONFIG_X86_ELAN is not set +# CONFIG_X86_E_POWERSAVER is not set +# CONFIG_X86_GX_SUSPMOD is not set +# CONFIG_X86_LONGHAUL is not set +# CONFIG_X86_LONGRUN is not set +# CONFIG_X86_MCE_INJECT is not set +# CONFIG_X86_MRST is not set +# CONFIG_X86_MSR is not set +# CONFIG_X86_P4_CLOCKMOD is not set +# CONFIG_X86_PAE is not set +# CONFIG_X86_POWERNOW_K6 is not set +# CONFIG_X86_POWERNOW_K7 is not set +# CONFIG_X86_POWERNOW_K8 is not set +# CONFIG_X86_RDC321X is not set +# CONFIG_X86_REBOOTFIXUPS is not set +# CONFIG_X86_SPEEDSTEP_CENTRINO is not set +# CONFIG_X86_SPEEDSTEP_ICH is not set +# CONFIG_X86_SPEEDSTEP_LIB is not set +# CONFIG_X86_SPEEDSTEP_SMI is not set +# CONFIG_ZONE_DMA32 is not set +CONFIG_4KSTACKS=y +CONFIG_ACPI=y +CONFIG_ACPI_BLACKLIST_YEAR=0 +CONFIG_ACPI_PROCESSOR=y +CONFIG_ACPI_SYSFS_POWER=y +CONFIG_ACPI_THERMAL=y +CONFIG_ARCH_DEFCONFIG="arch/x86/configs/i386_defconfig" +CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y +CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y +CONFIG_ARCH_HAS_CPU_RELAX=y +CONFIG_ARCH_HAS_DEFAULT_IDLE=y +CONFIG_ARCH_HIBERNATION_POSSIBLE=y +CONFIG_ARCH_MAY_HAVE_PC_FDC=y +CONFIG_ARCH_POPULATES_NODE_MAP=y +CONFIG_ARCH_SELECT_MEMORY_MODEL=y +CONFIG_ARCH_SPARSEMEM_ENABLE=y +CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y +CONFIG_ARCH_SUPPORTS_MEMORY_FAILURE=y +CONFIG_ARCH_SUPPORTS_MSI=y +CONFIG_ARCH_SUPPORTS_OPTIMIZED_INLINING=y +CONFIG_ARCH_SUSPEND_POSSIBLE=y +CONFIG_ARCH_USES_PG_UNCACHED=y +CONFIG_ARCH_WANT_FRAME_POINTERS=y +CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y +CONFIG_ATA=y +CONFIG_ATA_GENERIC=y +CONFIG_ATA_PIIX=y +CONFIG_BINFMT_MISC=y +CONFIG_BITREVERSE=y +CONFIG_BLK_DEV_SD=y +CONFIG_BOUNCE=y +CONFIG_CFG80211_DEFAULT_PS_VALUE=0 +CONFIG_CLOCKSOURCE_WATCHDOG=y +CONFIG_COMPAT_VDSO=y +CONFIG_CONSOLE_TRANSLATIONS=y +CONFIG_CPU_FREQ=y +CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y +CONFIG_CPU_FREQ_GOV_PERFORMANCE=y +CONFIG_CPU_FREQ_STAT=y +CONFIG_CPU_FREQ_STAT_DETAILS=y +CONFIG_CPU_FREQ_TABLE=y +CONFIG_CPU_IDLE=y +CONFIG_CPU_IDLE_GOV_LADDER=y +CONFIG_CPU_SUP_AMD=y +CONFIG_CPU_SUP_CENTAUR=y +CONFIG_CPU_SUP_CYRIX_32=y +CONFIG_CPU_SUP_INTEL=y +CONFIG_CPU_SUP_TRANSMETA_32=y +CONFIG_CPU_SUP_UMC_32=y +CONFIG_DEBUG_MEMORY_INIT=y +CONFIG_DECOMPRESS_BZIP2=y +CONFIG_DECOMPRESS_GZIP=y +CONFIG_DECOMPRESS_LZMA=y +CONFIG_DEFAULT_IO_DELAY_TYPE=0 +CONFIG_DEVPORT=y +CONFIG_DMI=y +CONFIG_DNOTIFY=y +CONFIG_DOUBLEFAULT=y +CONFIG_DUMMY_CONSOLE=y +CONFIG_EARLY_PRINTK=y +CONFIG_ELF_CORE=y +CONFIG_EXT2_FS=y +CONFIG_FIRMWARE_IN_KERNEL=y +CONFIG_FIRMWARE_MEMMAP=y +CONFIG_FIX_EARLYCON_MEM=y +CONFIG_GENERIC_BUG=y +CONFIG_GENERIC_CLOCKEVENTS=y +CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y +CONFIG_GENERIC_CLOCKEVENTS_BUILD=y +CONFIG_GENERIC_CMOS_UPDATE=y +CONFIG_GENERIC_FIND_FIRST_BIT=y +CONFIG_GENERIC_FIND_LAST_BIT=y +CONFIG_GENERIC_FIND_NEXT_BIT=y +CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y +CONFIG_GENERIC_IOMAP=y +CONFIG_GENERIC_ISA_DMA=y +CONFIG_HAS_DMA=y +CONFIG_HAS_IOMEM=y +CONFIG_HAS_IOPORT=y +CONFIG_HAVE_AOUT=y +CONFIG_HAVE_ARCH_KGDB=y +CONFIG_HAVE_ARCH_KMEMCHECK=y +CONFIG_HAVE_ARCH_TRACEHOOK=y +CONFIG_HAVE_ATOMIC_IOMAP=y +CONFIG_HAVE_DMA_API_DEBUG=y +CONFIG_HAVE_DMA_ATTRS=y +CONFIG_HAVE_DYNAMIC_FTRACE=y +CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y +CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y +CONFIG_HAVE_FUNCTION_GRAPH_FP_TEST=y +CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y +CONFIG_HAVE_FUNCTION_TRACER=y +CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y +CONFIG_HAVE_GENERIC_DMA_COHERENT=y +CONFIG_HAVE_IDE=y +CONFIG_HAVE_IOREMAP_PROT=y +CONFIG_HAVE_KERNEL_BZIP2=y +CONFIG_HAVE_KERNEL_GZIP=y +CONFIG_HAVE_KERNEL_LZMA=y +CONFIG_HAVE_KERNEL_LZO=y +CONFIG_HAVE_KPROBES=y +CONFIG_HAVE_KRETPROBES=y +CONFIG_HAVE_KVM=y +CONFIG_HAVE_LATENCYTOP_SUPPORT=y +CONFIG_HAVE_MMIOTRACE_SUPPORT=y +CONFIG_HAVE_OPROFILE=y +CONFIG_HAVE_SETUP_PER_CPU_AREA=y +CONFIG_HAVE_SYSCALL_TRACEPOINTS=y +CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y +CONFIG_HID=y +CONFIG_HID_SUPPORT=y +CONFIG_HPET=y +CONFIG_HPET_MMAP=y +CONFIG_HT_IRQ=y +CONFIG_HW_CONSOLE=y +CONFIG_HW_RANDOM=y +CONFIG_HW_RANDOM_GEODE=y +CONFIG_HW_RANDOM_VIA=y +CONFIG_INITRAMFS_SOURCE="" +CONFIG_INPUT=y +CONFIG_INPUT_KEYBOARD=y +CONFIG_INPUT_MOUSE=y +CONFIG_INPUT_MOUSEDEV=y +CONFIG_INPUT_MOUSEDEV_PSAUX=y +CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 +CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 +CONFIG_IO_DELAY_0X80=y +CONFIG_IO_DELAY_TYPE_0X80=0 +CONFIG_IO_DELAY_TYPE_0XED=1 +CONFIG_IO_DELAY_TYPE_NONE=3 +CONFIG_IO_DELAY_TYPE_UDELAY=2 +CONFIG_ISA=y +CONFIG_ISAPNP=y +CONFIG_ISA_DMA_API=y +CONFIG_KALLSYMS=y +CONFIG_KEXEC=y +CONFIG_KEYBOARD_ATKBD=y +CONFIG_KTIME_SCALAR=y +CONFIG_M386=y +CONFIG_MATH_EMULATION=y +CONFIG_MICROCODE=y +CONFIG_MICROCODE_INTEL=y +CONFIG_MICROCODE_OLD_INTERFACE=y +CONFIG_MOUSE_PS2=y +CONFIG_MOUSE_PS2_ALPS=y +CONFIG_MOUSE_PS2_LIFEBOOK=y +CONFIG_MOUSE_PS2_LOGIPS2PP=y +CONFIG_MOUSE_PS2_SYNAPTICS=y +CONFIG_MOUSE_PS2_TRACKPOINT=y +CONFIG_MTD_BLOCK2MTD=y +CONFIG_MTRR=y +CONFIG_NAMESPACES=y +CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y +CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK=y +CONFIG_NET_VENDOR_3COM=y +CONFIG_NOHIGHMEM=y +CONFIG_NR_CPUS=1 +CONFIG_NVRAM=y +CONFIG_OUTPUT_FORMAT="elf32-i386" +CONFIG_PAGEFLAGS_EXTENDED=y +CONFIG_PAGE_OFFSET=0xC0000000 +CONFIG_PATA_AMD=y +CONFIG_PATA_MPIIX=y +CONFIG_PATA_OLDPIIX=y +CONFIG_PATA_SC1200=y +CONFIG_PATA_VIA=y +CONFIG_PCI_BIOS=y +CONFIG_PCI_DIRECT=y +CONFIG_PCI_DOMAINS=y +CONFIG_PCI_GOANY=y +CONFIG_PCI_MMCONFIG=y +CONFIG_PCI_MSI=y +CONFIG_PCSPKR_PLATFORM=y +CONFIG_PHYSICAL_ALIGN=0x100000 +CONFIG_PHYSICAL_START=0x1000000 +CONFIG_PM=y +CONFIG_PNP=y +CONFIG_PNPACPI=y +CONFIG_PNP_DEBUG_MESSAGES=y +CONFIG_POWER_SUPPLY=y +CONFIG_PROC_PAGE_MONITOR=y +CONFIG_RD_BZIP2=y +CONFIG_RD_GZIP=y +CONFIG_RTC=y +CONFIG_SCHED_OMIT_FRAME_POINTER=y +CONFIG_SCSI=y +CONFIG_SCx200=y +CONFIG_SCx200HR_TIMER=y +CONFIG_SERIAL_8250_PCI=y +CONFIG_SERIAL_8250_PNP=y +CONFIG_SERIO=y +CONFIG_SERIO_I8042=y +CONFIG_SERIO_LIBPS2=y +CONFIG_SERIO_SERPORT=y +CONFIG_SLUB=y +CONFIG_SLUB_DEBUG=y +CONFIG_SPARSEMEM_STATIC=y +CONFIG_STRICT_DEVMEM=y +CONFIG_THERMAL=y +CONFIG_TREE_RCU=y +CONFIG_UID16=y +CONFIG_USB_SUPPORT=y +CONFIG_USER_STACKTRACE_SUPPORT=y +CONFIG_VGA_CONSOLE=y +CONFIG_VM86=y +CONFIG_VM_EVENT_COUNTERS=y +CONFIG_VT=y +CONFIG_VT_CONSOLE=y +CONFIG_X86=y +CONFIG_X86_32=y +CONFIG_X86_32_LAZY_GS=y +CONFIG_X86_CPU=y +CONFIG_X86_EXTENDED_PLATFORM=y +CONFIG_X86_F00F_BUG=y +CONFIG_X86_GENERIC=y +CONFIG_X86_INTEL_USERCOPY=y +CONFIG_X86_INTERNODE_CACHE_BYTES=64 +CONFIG_X86_IO_APIC=y +CONFIG_X86_L1_CACHE_BYTES=64 +CONFIG_X86_L1_CACHE_SHIFT=4 +CONFIG_X86_LOCAL_APIC=y +CONFIG_X86_MCE=y +CONFIG_X86_MCE_AMD=y +CONFIG_X86_MCE_INTEL=y +CONFIG_X86_MCE_THRESHOLD=y +CONFIG_X86_MINIMUM_CPU_FAMILY=3 +CONFIG_X86_MPPARSE=y +CONFIG_X86_PAT=y +CONFIG_X86_PLATFORM_DEVICES=y +CONFIG_X86_PM_TIMER=y +CONFIG_X86_PPRO_FENCE=y +CONFIG_X86_REROUTE_FOR_BROKEN_BOOT_IRQS=y +CONFIG_X86_RESERVE_LOW_64K=y +CONFIG_X86_SUPPORTS_MEMORY_FAILURE=y +CONFIG_X86_THERMAL_VECTOR=y +CONFIG_X86_UP_APIC=y +CONFIG_X86_UP_IOAPIC=y +CONFIG_X86_VERBOSE_BOOTUP=y diff --git a/target/linux/x86/patches-2.6.32/300-block2mtd_init.patch b/target/linux/x86/patches-2.6.32/300-block2mtd_init.patch new file mode 100644 index 000000000..1ac85a332 --- /dev/null +++ b/target/linux/x86/patches-2.6.32/300-block2mtd_init.patch @@ -0,0 +1,213 @@ +--- a/drivers/mtd/devices/block2mtd.c ++++ b/drivers/mtd/devices/block2mtd.c +@@ -18,10 +18,18 @@ + #include + #include + #include ++#include ++#include + + #define ERROR(fmt, args...) printk(KERN_ERR "block2mtd: " fmt "\n" , ## args) + #define INFO(fmt, args...) printk(KERN_INFO "block2mtd: " fmt "\n" , ## args) + ++struct retry { ++ struct list_head list; ++ const char *val; ++}; ++ ++static LIST_HEAD(retry_list); + + /* Info for the block device */ + struct block2mtd_dev { +@@ -33,10 +41,34 @@ + char devname[0]; + }; + ++static int block2mtd_setup2(const char *val); + + /* Static info about the MTD, used in cleanup_module */ + static LIST_HEAD(blkmtd_device_list); + ++static int add_retry(const char *val) { ++ struct retry *r = kmalloc(sizeof(struct retry), GFP_KERNEL); ++ ++ INIT_LIST_HEAD(&r->list); ++ r->val = val; ++ list_add(&r->list, &retry_list); ++ ++ return 0; ++} ++ ++static int __init process_retries(void) { ++ struct list_head *p, *tmp; ++ ++ list_for_each_safe(p, tmp, &retry_list) { ++ struct retry *r = list_entry(p, struct retry, list); ++ block2mtd_setup2(r->val); ++ msleep(100); ++ list_del(p); ++ kfree(r); ++ } ++ return 0; ++} ++rootfs_initcall(process_retries); + + static struct page *page_read(struct address_space *mapping, int index) + { +@@ -511,7 +543,9 @@ + if (token[2] && (strlen(token[2]) + 1 > 80)) + parse_err("mtd device name too long"); + +- add_device(name, erase_size, token[2]); ++ if (add_device(name, erase_size, token[2]) == NULL) { ++ add_retry(val); ++ } + + return 0; + } +--- a/include/asm-generic/vmlinux.lds.h ++++ b/include/asm-generic/vmlinux.lds.h +@@ -614,17 +614,24 @@ + *(.initcall4s.init) \ + *(.initcall5.init) \ + *(.initcall5s.init) \ +- *(.initcallrootfs.init) \ + *(.initcall6.init) \ + *(.initcall6s.init) \ + *(.initcall7.init) \ + *(.initcall7s.init) + ++#define INITCALLS_ROOT \ ++ *(.initcallrootfs.init) ++ + #define INIT_CALLS \ + VMLINUX_SYMBOL(__initcall_start) = .; \ + INITCALLS \ + VMLINUX_SYMBOL(__initcall_end) = .; + ++#define INIT_CALLS_ROOT \ ++ VMLINUX_SYMBOL(__root_initcall_start) = .; \ ++ INITCALLS_ROOT \ ++ VMLINUX_SYMBOL(__root_initcall_end) = .; ++ + #define CON_INITCALL \ + VMLINUX_SYMBOL(__con_initcall_start) = .; \ + *(.con_initcall.init) \ +@@ -766,6 +773,7 @@ + INIT_DATA \ + INIT_SETUP(initsetup_align) \ + INIT_CALLS \ ++ INIT_CALLS_ROOT \ + CON_INITCALL \ + SECURITY_INITCALL \ + INIT_RAM_FS \ +--- a/init/do_mounts.c ++++ b/init/do_mounts.c +@@ -176,16 +176,8 @@ + return 1; + } + +-static unsigned int __initdata root_delay; +-static int __init root_delay_setup(char *str) +-{ +- root_delay = simple_strtoul(str, NULL, 0); +- return 1; +-} +- + __setup("rootflags=", root_data_setup); + __setup("rootfstype=", fs_names_setup); +-__setup("rootdelay=", root_delay_setup); + + static void __init get_fs_names(char *page) + { +@@ -366,23 +358,6 @@ + { + int is_floppy; + +- if (root_delay) { +- printk(KERN_INFO "Waiting %dsec before mounting root device...\n", +- root_delay); +- ssleep(root_delay); +- } +- +- /* +- * wait for the known devices to complete their probing +- * +- * Note: this is a potential source of long boot delays. +- * For example, it is not atypical to wait 5 seconds here +- * for the touchpad of a laptop to initialize. +- */ +- wait_for_device_probe(); +- +- md_run_setup(); +- + if (saved_root_name[0]) { + root_device_name = saved_root_name; + if (!strncmp(root_device_name, "mtd", 3) || +--- a/init/main.c ++++ b/init/main.c +@@ -80,6 +80,7 @@ + #ifdef CONFIG_X86_LOCAL_APIC + #include + #endif ++#include "do_mounts.h" + + static int kernel_init(void *); + +@@ -752,12 +753,13 @@ + + + extern initcall_t __initcall_start[], __initcall_end[], __early_initcall_end[]; ++extern initcall_t __root_initcall_start[], __root_initcall_end[]; + +-static void __init do_initcalls(void) ++static void __init do_initcalls(initcall_t *start, initcall_t *end) + { + initcall_t *call; + +- for (call = __early_initcall_end; call < __initcall_end; call++) ++ for (call = start; call < end; call++) + do_one_initcall(*call); + + /* Make sure there is no pending stuff from the initcall sequence */ +@@ -780,7 +782,7 @@ + driver_init(); + init_irq_proc(); + do_ctors(); +- do_initcalls(); ++ do_initcalls(__early_initcall_end, __initcall_end); + } + + static void __init do_pre_smp_initcalls(void) +@@ -841,6 +843,13 @@ + panic("No init found. Try passing init= option to kernel."); + } + ++static unsigned int __initdata root_delay; ++static int __init root_delay_setup(char *str) ++{ ++ root_delay = simple_strtoul(str, NULL, 0); ++ return 1; ++} ++__setup("rootdelay=", root_delay_setup); + static int __init kernel_init(void * unused) + { + lock_kernel(); +@@ -885,7 +894,16 @@ + + if (sys_access((const char __user *) ramdisk_execute_command, 0) != 0) { + ramdisk_execute_command = NULL; +- prepare_namespace(); ++ if (root_delay) { ++ printk(KERN_INFO "Waiting %desc before mounting root device...\n", ++ root_delay); ++ ssleep(root_delay); ++ } ++ while (driver_probe_done() != 0) ++ msleep(100); ++ do_initcalls(__root_initcall_start, __root_initcall_end); ++ md_run_setup(); ++ prepare_namespace(); + } + + /* diff --git a/target/linux/x86/xen_domu/config-2.6.32 b/target/linux/x86/xen_domu/config-2.6.32 new file mode 100644 index 000000000..322d57269 --- /dev/null +++ b/target/linux/x86/xen_domu/config-2.6.32 @@ -0,0 +1,74 @@ +# CONFIG_APM is not set +# CONFIG_KERNEL_LZMA is not set +# CONFIG_KVM_CLOCK is not set +# CONFIG_KVM_GUEST is not set +# CONFIG_LGUEST_GUEST is not set +# CONFIG_M386 is not set +# CONFIG_NETWORK_FILESYSTEMS is not set +# CONFIG_PARAVIRT_SPINLOCKS is not set +# CONFIG_PERF_COUNTERS is not set +# CONFIG_PERF_EVENTS is not set +# CONFIG_RWSEM_GENERIC_SPINLOCK is not set +# CONFIG_SCHED_SMT is not set +# CONFIG_VMI is not set +# CONFIG_X86_BIGSMP is not set +# CONFIG_X86_DS is not set +# CONFIG_X86_EXTENDED_PLATFORM is not set +# CONFIG_X86_PLATFORM_DEVICES is not set +# CONFIG_XENFS is not set +# CONFIG_XEN_DEBUG_FS is not set +# CONFIG_XEN_DEV_EVTCHN is not set +# CONFIG_XEN_NETDEV_FRONTEND is not set +CONFIG_ACPI_CONTAINER=y +CONFIG_ACPI_HOTPLUG_CPU=y +CONFIG_ARCH_PHYS_ADDR_T_64BIT=y +CONFIG_FREEZER=y +CONFIG_GENERIC_PENDING_IRQ=y +CONFIG_HAVE_PERF_EVENTS=y +CONFIG_HOTPLUG_CPU=y +CONFIG_HPET_EMULATE_RTC=y +CONFIG_HPET_TIMER=y +CONFIG_HVC_DRIVER=y +CONFIG_HVC_IRQ=y +CONFIG_HVC_XEN=y +CONFIG_KERNEL_GZIP=y +CONFIG_LOCK_KERNEL=y +CONFIG_MPENTIUM4=y +CONFIG_NR_CPUS=2 +CONFIG_PARAVIRT=y +CONFIG_PARAVIRT_CLOCK=y +CONFIG_PARAVIRT_GUEST=y +CONFIG_PHYS_ADDR_T_64BIT=y +CONFIG_PM_SLEEP=y +CONFIG_PM_SLEEP_SMP=y +CONFIG_RWSEM_XCHGADD_ALGORITHM=y +CONFIG_SCHED_MC=y +CONFIG_SMP=y +CONFIG_SPARSE_IRQ=y +CONFIG_STOP_MACHINE=y +CONFIG_SYS_HYPERVISOR=y +CONFIG_USE_GENERIC_SMP_HELPERS=y +CONFIG_X86_32_SMP=y +CONFIG_X86_BSWAP=y +CONFIG_X86_CMOV=y +CONFIG_X86_CMPXCHG64=y +CONFIG_X86_CMPXCHG=y +CONFIG_X86_DEBUGCTLMSR=y +CONFIG_X86_HT=y +CONFIG_X86_INVLPG=y +CONFIG_X86_L1_CACHE_SHIFT=7 +CONFIG_X86_MINIMUM_CPU_FAMILY=5 +CONFIG_X86_PAE=y +CONFIG_X86_POPAD_OK=y +CONFIG_X86_TRAMPOLINE=y +CONFIG_X86_TSC=y +CONFIG_X86_USE_PPRO_CHECKSUM=y +CONFIG_X86_WP_WORKS_OK=y +CONFIG_X86_XADD=y +CONFIG_XEN=y +CONFIG_XEN_BALLOON=y +CONFIG_XEN_BLKDEV_FRONTEND=y +CONFIG_XEN_MAX_DOMAIN_MEMORY=8 +CONFIG_XEN_SAVE_RESTORE=y +CONFIG_XEN_SCRUB_PAGES=y +CONFIG_XEN_SYS_HYPERVISOR=y -- 2.11.0