/[packages]/updates/6/kernel/current/PATCHES/scripts/create_configs
ViewVC logotype

Contents of /updates/6/kernel/current/PATCHES/scripts/create_configs

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1190848 - (show annotations) (download)
Sat Jan 6 13:15:18 2018 UTC (6 years, 2 months ago) by tmb
File size: 21482 byte(s)
- update to 4.14.12
- add current -stable queue
- add BFQ performance updates from upstream
- enable PAGE_TABLE_ISOLATION on all x86_64 kernels
 (can be disabled at boot time with pti=off on kernel command line)
- iwlwifi: pcie: fix DMA memory mapping / unmapping
- update conflicts on microcode


1 #!/usr/bin/perl
2
3 # Copyright (C) 2002 by MandrakeSoft,
4 # Juan Quintela <quintela@mandrakesoft.com>,
5 # Redistribution of this file is permitted under the terms of the GNU
6 # Public License (GPL)
7
8 # stealed from use MDK::Common;
9
10 sub dirname { local $_ = shift; s|[^/]*/*\s*$||; s|(.)/*$|$1|; $_ || '.' }
11 sub basename { local $_ = shift; s|/*\s*$||; s|.*/||; $_ }
12
13
14 my $version=0.5;
15
16 my $acpi=1;
17 my $user_cpu="none";
18 my $user_nprocs="none";
19 my $user_mem="none";
20 my $user_name="none";
21 my $debug=0;
22 my $minimal=0;
23 my $verbose=0;
24 my $configs_dir="";
25
26 my @archs = qw(i386 x86_64 arm);
27
28 my @configs = (
29 [ qw(i586 smp 4GB desktop586) ],
30 [ qw(i686 smp 4GB desktop) ],
31 [ qw(i686 smp 64GB server) ],
32
33 [ qw(x86_64 smp none desktop) ],
34 [ qw(x86_64 smp none server) ],
35
36 [ qw(arm up none desktop) ],
37 [ qw(arm up none desktop-armv6v7) ],
38 [ qw(arm up none versatile) ],
39 [ qw(arm up none iop32x) ],
40 );
41
42 my %cpu2arch = (
43 i386 => i386,
44 i486 => i386,
45 i586 => i386,
46 i686 => i386,
47 p3 => i386,
48 athlon => i386,
49
50 x86_64 => x86_64,
51
52 arm => arm,
53 armeb => arm,
54 armel => arm,
55 );
56
57 sub dprint { print @_ if $verbose; }
58
59 sub mysystem { dprint @_, "\n"; system(@_); $? and die qq("@_" failed\n) }
60
61 my (%values, %to_add);
62
63 sub config_init_globals {
64 %values = %to_add = ();
65 }
66
67 sub config_nproc {
68 my ($nproc) = @_;
69
70 if ($nproc eq "smp" ) {
71 $values{SMP} = "y";
72 $to_add{HOTPLUG_CPU} = "n";
73 } else {
74 $values{SMP} = "n";
75 }
76 }
77
78 sub config_nproc_x86 {
79 my ($nproc) = @_;
80
81 config_nproc($nproc);
82
83 if ($nproc eq "smp") {
84 $to_add{HOTPLUG_CPU} = "y";
85 $to_add{SMP_ALTERNATIVES} = "n";
86 $to_add{IRQBALANCE} = "n";
87 $to_add{NUMA} = "n";
88 $to_add{SCHED_MC} = "y";
89 } else {
90 $to_add{X86_UP_APIC} = "y";
91 $to_add{X86_UP_IOAPIC} = "y";
92 $values{I8K} = "m";
93 $values{TOSHIBA} = "m";
94 $values{SONYPI} = "m";
95 $values{VIDEO_MEYE} = "m";
96 }
97 }
98
99 sub config_nproc_x86_64 {
100 my ($nproc) = @_;
101
102 config_nproc($nproc);
103
104 if ($nproc eq "smp" ) {
105 $to_add{HOTPLUG_CPU} = "y";
106 $to_add{K8_NUMA} = "y";
107 $to_add{X86_64_ACPI_NUMA} = "y";
108 $to_add{NUMA_EMU} = "n";
109 $to_add{ACPI_NUMA} = "y";
110 $to_add{NUMA} = "y";
111 $to_add{SCHED_MC} = "y";
112 $to_add{MIGRATION} = "y";
113 } else {
114 # nothing from now
115 }
116 }
117
118 sub config_xen {
119
120 $to_add{XEN} = "y";
121 $to_add{XEN_PV} = "y";
122 $to_add{XEN_PVH} = "y";
123 $to_add{XEN_PVHVM} = "y";
124 $to_add{XEN_BALLOON_MEMORY_HOTPLUG_LIMIT} = "512";
125 $to_add{XEN_DOM0} = "y";
126 $to_add{XEN_PRIVILEGED_GUEST} = "y";
127 $to_add{XEN_MAX_DOMAIN_MEMORY} = "128";
128 $to_add{XEN_SAVE_RESTORE} = "y";
129 $to_add{XEN_DEBUG_FS} = "y";
130 $to_add{PCI_XEN} = "y";
131 $to_add{XEN_PCIDEV_FRONTEND} = "m";
132 $to_add{XEN_BLKDEV_FRONTEND} = "m";
133 $to_add{XEN_BLKDEV_BACKEND} = "m";
134 $to_add{NETXEN_NIC} = "m";
135 $to_add{XEN_NETDEV_FRONTEND} = "m";
136 $to_add{XEN_NETDEV_BACKEND} = "m";
137 $to_add{INPUT_XEN_KBDDEV_FRONTEND} = "m";
138 $to_add{HVC_XEN} = "y";
139 $to_add{HVC_XEN_FRONTEND} = "y";
140 $to_add{XEN_WDT} = "m";
141 $to_add{XEN_FBDEV_FRONTEND} = "y";
142 $to_add{XEN_BALLOON} = "y";
143 $to_add{XEN_SELFBALLOONING} = "y";
144 $to_add{XEN_BALLOON_MEMORY_HOTPLUG} = "y";
145 $to_add{XEN_SCRUB_PAGES} = "y";
146 $to_add{XEN_DEV_EVTCHN} = "m";
147 $to_add{XEN_BACKEND} = "y";
148 $to_add{XENFS} = "m";
149 $to_add{XEN_COMPAT_XENFS} = "y";
150 $to_add{XEN_SYS_HYPERVISOR} = "y";
151 $to_add{XEN_XENBUS_FRONTEND} = "y";
152 $to_add{XEN_GNTDEV} = "m";
153 $to_add{XEN_GRANT_DEV_ALLOC} = "m";
154 $to_add{SWIOTLB_XEN} = "y";
155 $to_add{XEN_TMEM} = "y";
156 $to_add{XEN_PCIDEV_BACKEND} = "m";
157 $to_add{XEN_ACPI_PROCESSOR} = "m";
158 $to_add{TCG_XEN} = "m";
159 $to_add{XEN_SCSI_FRONTEND} = "m";
160 $to_add{XEN_SCSI_BACKEND} = "m";
161 $to_add{XEN_SYMS} = "y";
162 $to_add{NET_9P_XEN} = "m";
163 $to_add{XEN_PVCALLS_BACKEND} = "n";
164 }
165
166 sub config_x86_highmem {
167 my ($mem) = @_;
168
169 if ($mem eq "1GB" ) {
170 $values{HIGHMEM} = "n";
171 $values{HIGHMEM4G} = "n" ;
172 $values{HIGHMEM64G} = "n";
173 $values{NOHIGHMEM} = "y" ;
174 $values{HIGHPTE} = "n";
175 $values{VMSPLIT_3G} = "y";
176 $values{VMSPLIT_3G_OPT} = "n";
177 $values{VMSPLIT_2G} = "n";
178 $values{VMSPLIT_1G} = "n";
179 } elsif ($mem eq "4GB" ) {
180 $values{HIGHMEM} = "y";
181 $values{NOHIGHMEM} = "n" ;
182 $values{HIGHMEM4G} = "y" ;
183 $values{HIGHMEM64G} = "n" ;
184 $values{HIGHPTE} = "n";
185 $values{VMSPLIT_3G} = "y";
186 $values{VMSPLIT_3G_OPT} = "n";
187 $values{VMSPLIT_2G} = "n";
188 $values{VMSPLIT_1G} = "n";
189 } elsif ($mem eq "64GB") {
190 $values{HIGHMEM} = "y";
191 $values{NOHIGHMEM} = "n" ;
192 $values{HIGHMEM4G} = "n" ;
193 $values{HIGHMEM64G} = "y" ;
194 $values{HIGHPTE} = "n";
195 $values{VMSPLIT_3G} = "y";
196 $values{VMSPLIT_3G_OPT} = "n";
197 $values{VMSPLIT_2G} = "n";
198 $values{VMSPLIT_1G} = "n";
199 $to_add{I2O_EXT_ADAPTEC_DMA64} = "y";
200 }
201 }
202
203 sub config_x86_cpu {
204 my ($cpu) = @_;
205
206 if ($cpu eq "i386") {
207 $values{M686} = "n";
208 $values{M386} = "y";
209 } elsif ($cpu eq "i486") {
210 $values{M686} = "n";
211 $values{M486} = "y";
212 } elsif ($cpu eq "i586") {
213 $values{M686} = "n";
214 $values{M586} = "y";
215 } elsif ($cpu eq "i686") {
216 # nothing to do
217 } elsif ($cpu eq "p3") {
218 $values{M686} = "n";
219 $values{MPENTIUMIII} = "y";
220 } elsif ($cpu eq "athlon") {
221 $values{M686} = "n";
222 $values{MK7} = "y";
223 }
224 }
225
226 sub config_desktop586{
227 my ($name) = @_;
228
229 # nothing for now
230 }
231
232 sub config_server{
233 my ($name) = @_;
234
235 config_xen();
236
237 $values{MACVLAN} = "m";
238 $to_add{MACVTAP} = "m";
239 $values{VETH} = "m";
240 $values{PREEMPT_NONE} = "y";
241 $values{PREEMPT_VOLUNTARY} = "n";
242 $values{PREEMPT_BKL} = "n";
243 $values{HZ_100} = "y";
244 $values{HZ_1000} = "n";
245 $values{HZ} = "100";
246 $values{TCP_MD5SIG} = "y";
247 $values{SERIAL_8250_NR_UARTS} = "32";
248 $values{SERIAL_8250_MANY_PORTS} = "y";
249 $to_add{SERIAL_8250_FOURPORT} = "m";
250 $to_add{SERIAL_8250_ACCENT} = "m";
251 $to_add{SERIAL_8250_BOCA} = "m";
252 $to_add{SERIAL_8250_EXAR_ST16C554} = "m";
253 $to_add{SERIAL_8250_HUB6} = "m";
254 $values{BLK_DEV_DRBD} = "m";
255 $to_add{DRBD_FAULT_INJECTION} = "n";
256 $values{MEMCG} = "y";
257 $to_add{MEMCG_SWAP} = "y";
258 $to_add{MEMCG_SWAP_ENABLED} = "n";
259 $to_add{MEMCG_KMEM} = "y";
260 $to_add{MM_OWNER} = "y";
261 $to_add{SLUB_MEMCG_SYSFS_ON} = "n";
262 $values{KERNEL_GZIP} = "y";
263 $values{KERNEL_XZ} = "n";
264 $values{SQUASHFS_DECOMP_MULTI} = "n";
265 $values{SQUASHFS_DECOMP_MULTI_PERCPU} = "y";
266 $to_add{X86_PMEM_LEGACY} = "y";
267 $to_add{ACPI_NFIT} = "m";
268 $to_add{ACPI_NFIT_DEBUG} = "n";
269 $to_add{BLK_DEV_PMEM} = "m";
270 $to_add{ND_BLK} = "m";
271 $to_add{BTT} = "y";
272 $values{PAGE_TABLE_ISOLATION} = "y";
273 }
274
275 sub config_debug {
276 if ($debug == 1) {
277 $values{DEBUG_INFO} = "y";
278 $to_add{DEBUG_INFO_REDUCED} = "n";
279 $to_add{DEBUG_INFO_SPLIT} = "n";
280 $to_add{DEBUG_INFO_DWARF4} = "n";
281 $to_add{GDB_SCRIPTS} = "n";
282 }
283 }
284
285 sub config_nr_cpus {
286 $values{NR_CPUS} = "128";
287
288 }
289
290 sub config_i386 {
291 my ($cpu, $nproc, $mem, $name) = @_;
292 dprint "config i386\n";
293
294 config_debug();
295 config_x86_cpu($cpu);
296 config_nproc_x86($nproc);
297 config_x86_highmem($mem);
298
299 config_desktop586() if $name eq "desktop586";
300 config_server() if $name eq "server";
301 }
302
303 sub config_x86_64 {
304 my ($cpu, $nproc, $mem, $name) = @_;
305 dprint "config x86_64\n";
306
307 config_debug();
308 config_nproc_x86_64($nproc);
309
310 config_server() if $name eq "server";
311 config_nr_cpus() if $name eq "server";
312 }
313
314 sub config_arm {
315 my ($cpu, $nproc, $mem, $name) = @_;
316 dprint "config arm\n";
317
318 config_debug();
319
320 if ( $name eq "desktop-armv6v7" ) {
321 # Multi-platform kernel for ARMv6 and ARMv7
322 # System type
323 $values{ARCH_MULTI_V6} = "y";
324 $values{ARCH_MULTI_V7} = "y";
325 $values{ARCH_MULTI_V6_V7} = "y";
326
327 $values{SCHED_AUTOGROUP} = "y";
328
329 # Processor features (CHECKME)
330 $to_add{ARM_THUMBEE} = "n";
331 $to_add{SWP_EMULATE} = "n";
332 $to_add{CPU_BPREDICT_DISABLE} = "n";
333 $to_add{VDSO} = "n";
334 $to_add{ARM_ERRATA_411920} = "n";
335 $to_add{ARM_ERRATA_430973} = "n";
336 $to_add{ARM_ERRATA_754322} = "n";
337 $to_add{ARM_ERRATA_754327} = "n";
338 $to_add{ARM_ERRATA_764369} = "n";
339 $to_add{ARM_ERRATA_775420} = "n";
340 $to_add{ARM_ERRATA_798181} = "n";
341 $to_add{ARM_ERRATA_773022} = "n";
342 $to_add{ARM_ERRATA_818325_852422} = "n";
343 $to_add{ARM_ERRATA_821420} = "n";
344 $to_add{ARM_ERRATA_825619} = "n";
345 $to_add{ARM_ERRATA_852421} = "n";
346 $to_add{ARM_ERRATA_852423} = "n";
347
348 $to_add{ARM_PATCH_IDIV} = "y";
349
350 $to_add{ARM_CCI5xx_PMU} = "n";
351 $to_add{CPU_HOTPLUG_STATE_CONTROL} = "n";
352
353 # Kernel features
354 $to_add{CPUSETS} = "n";
355 $to_add{SMP} = "y";
356 $to_add{SMP_ON_UP} = "y";
357 $to_add{ARM_CPU_TOPOLOGY} = "y";
358 $to_add{SCHED_MC} = "y";
359 $to_add{SCHED_SMT} = "y";
360 $to_add{HAVE_ARM_ARCH_TIMER} = "y";
361 $to_add{ARM_ARCH_TIMER_EVTSTREAM} = "y";
362 $to_add{MCPM} = "n";
363 $to_add{BIG_LITTLE} = "n";
364 $to_add{NR_CPUS} = "4";
365 $to_add{ARM_PSCI} = "n";
366 $to_add{DEBUG_PER_CPU_MAPS} = "n";
367 $to_add{PID_IN_CONTEXTIDR} = "n";
368 $to_add{CRYPTO_PCRYPT} = "n";
369 $to_add{NO_HZ_FULL} = "n";
370 $to_add{LOG_CPU_MAX_BUF_SHIFT} = "12";
371 $to_add{SLUB_CPU_PARTIAL} = "y";
372 $to_add{DMA_CACHE_RWFO} = "y";
373 # devtmpfs support for early rootfs mount, to avoid initrd
374 $values{DEVTMPFS} = "y";
375 $to_add{DEVTMPFS_MOUNT} = "y";
376 # VFP and NEON
377 $values{VFP} = "y";
378 $to_add{NEON} = "y";
379 $to_add{KERNEL_MODE_NEON} = "y";
380
381 # Namespaces
382 $values{NAMESPACES} = "y";
383 $to_add{UTS_NS} = "y";
384 $to_add{IPC_NS} = "y";
385 $to_add{USER_NS} = "y";
386 $to_add{PID_NS} = "y";
387 $to_add{NET_NS} = "y";
388
389 # Virtualization
390 $to_add{XEN} = "n";
391
392 # Drivers
393 $to_add{MAILBOX} = "y";
394 $to_add{WIREGUARD_PARALLEL} = "y";
395
396 # USB support builtin for early rootfs mount, to avoid initrd
397 # DWC2: used on Raspberry Pi
398 $to_add{USB_DWC2} = "y";
399 $to_add{USB_DWC2_PCI} = "m";
400 $to_add{USB_DWC2_DEBUG} = "n";
401 $to_add{USB_DWC2_TRACK_MISSED_SOFS} = "n";
402 $to_add{PHY_SAMSUNG_USB2} = "m";
403 $to_add{AM335X_PHY_USB} = "m";
404
405 # SD support builtin for early rootfs mount, to avoid initrd
406 $values{MMC_SDHCI} = "y";
407 $values{MMC_SDHCI_PLTFM} = "y";
408
409 # Broadcom
410 $to_add{ARCH_BCM} = "y";
411 $to_add{ARCH_BCM_CYGNUS} = "n";
412 $to_add{ARCH_BCM_NSP} = "n";
413 $to_add{ARCH_BCM_5301X} = "n";
414 $to_add{ARCH_BCM_281XX} = "n";
415 $to_add{ARCH_BCM_23550} = "n";
416 $to_add{ARCH_BCM_21664} = "n";
417 $to_add{ARCH_BCM_63XX} = "n";
418 $to_add{ARCH_BRCMSTB} = "n";
419 $to_add{ARCH_BCM_53573} = "n";
420 $to_add{SPI_BCM_QSPI} = "n";
421 $to_add{PLATFORM_MHU} = "n";
422 # Raspberry Pi
423 $to_add{ARCH_BCM2835} = "y";
424 $to_add{SERIAL_8250_BCM2835AUX} = "y";
425 $to_add{HW_RANDOM_BCM2835} = "m";
426 $to_add{I2C_BCM2835} = "m";
427 $to_add{SPI_BCM2835} = "m";
428 $to_add{SPI_BCM2835AUX} = "m";
429 $to_add{BCM2835_WDT} = "m";
430 $to_add{SND_BCM2835_SOC_I2S} = "m";
431 $to_add{MMC_SDHCI_BCM2835} = "y";
432 $to_add{MMC_SDHCI_IPROC} = "y";
433 $to_add{DMA_BCM2835} = "m";
434 $to_add{BCM2835_MBOX} = "y";
435 $to_add{PWM_BCM2835} = "m";
436 $to_add{RASPBERRYPI_FIRMWARE} = "y";
437 $to_add{RASPBERRYPI_POWER} = "y";
438 $to_add{BCM2835_THERMAL} = "m";
439 $to_add{MMC_BCM2835} = "m";
440 $to_add{BCM_VIDEOCORE} = "y";
441 $to_add{BCM2835_VCHIQ} = "m";
442 $to_add{BCM2835_VCHIQ_SUPPORT_MEMDUMP} = "n";
443 $to_add{SND_BCM2835} = "m";
444 $to_add{VIDEO_BCM2835} = "m";
445
446 # Network drivers
447 $values{NET_VENDOR_SMSC} = "y";
448 $to_add{SMC91X} = "m";
449 $to_add{EPIC100} = "m";
450 $to_add{SMC911X} = "m";
451 $to_add{SMSC911X} = "m";
452 $to_add{SMSC9420} = "m";
453
454 # Versatile Express (mostly for qemu)
455 $to_add{ARCH_VEXPRESS} = "y";
456 $to_add{ARCH_VEXPRESS_CORTEX_A5_A9_ERRATA} = "y";
457 $to_add{ARCH_VEXPRESS_SPC} = "n";
458 $to_add{SERIO_AMBAKMI} = "m";
459 # serial console builtin for early boot messages, also used by Raspberry Pi
460 $to_add{SERIAL_AMBA_PL010} = "y";
461 $to_add{SERIAL_AMBA_PL010_CONSOLE} = "y";
462 $to_add{SERIAL_AMBA_PL011} = "y";
463 $to_add{SERIAL_AMBA_PL011_CONSOLE} = "y";
464 $to_add{I2C_NOMADIK} = "m";
465 $to_add{I2C_VERSATILE} = "m";
466 $to_add{SPI_PL022} = "m";
467 $to_add{GPIO_PL061} = "n";
468 $to_add{SENSORS_VEXPRESS} = "m";
469 $to_add{ARM_SP805_WATCHDOG} = "m";
470 $to_add{REGULATOR_VEXPRESS} = "m";
471 # builtin for early boot messages
472 $to_add{FB_ARMCLCD} = "y";
473 $to_add{SND_ARMAACI} = "m";
474 # SD support builtin for early rootfs mount, to avoid initrd
475 $to_add{MMC_ARMMMCI} = "y";
476 $to_add{RTC_DRV_PL030} = "m";
477 $to_add{RTC_DRV_PL031} = "m";
478 $to_add{AMBA_PL08X} = "n";
479 $to_add{PL330_DMA} = "m";
480 $to_add{CLK_SP810} = "y";
481 $to_add{CLK_VEXPRESS_OSC} = "y";
482 $to_add{CLKSRC_VERSATILE} = "y";
483
484 # Disabled archs
485 $to_add{ARCH_VIRT} = "n";
486 $to_add{MACH_ARMADA_370} = "n";
487 $to_add{MACH_ARMADA_375} = "n";
488 $to_add{MACH_ARMADA_38X} = "n";
489 $to_add{MACH_ARMADA_39X} = "n";
490 $to_add{MACH_ARMADA_XP} = "n";
491 $to_add{MACH_DOVE} = "n";
492 $to_add{ARCH_ACTIONS} = "n";
493 $to_add{ARCH_ALPINE} = "n";
494 $to_add{ARCH_ARTPEC} = "n";
495 $to_add{ARCH_BERLIN} = "n";
496 $to_add{ARCH_CNS3XXX} = "n";
497 $to_add{ARCH_DIGICOLOR} = "n";
498 $to_add{ARCH_HIGHBANK} = "n";
499 $to_add{ARCH_HISI} = "n";
500 $to_add{ARCH_KEYSTONE} = "n";
501 $to_add{ARCH_MESON} = "n";
502 $to_add{ARCH_MEDIATEK} = "n";
503 $to_add{ARCH_OMAP2} = "n";
504 $to_add{ARCH_OMAP3} = "n";
505 $to_add{ARCH_OMAP4} = "n";
506 $to_add{SOC_OMAP5} = "n";
507 $to_add{SOC_AM33XX} = "n";
508 $to_add{SOC_AM43XX} = "n";
509 $to_add{SOC_DRA7XX} = "n";
510 $to_add{ARCH_PICOXCELL} = "n";
511 $to_add{ARCH_QCOM} = "n";
512 $to_add{ARCH_ROCKCHIP} = "n";
513 $to_add{ARCH_RENESAS} = "n";
514 $to_add{ARCH_S3C64XX} = "n";
515 $to_add{ARCH_SOCFPGA} = "n";
516 $to_add{ARCH_STI} = "n";
517 $to_add{ARCH_S5PV210} = "n";
518 $to_add{ARCH_EXYNOS} = "n";
519 $to_add{ARCH_SUNXI} = "n";
520 $to_add{ARCH_SIRF} = "n";
521 $to_add{ARCH_TANGO} = "n";
522 $to_add{ARCH_TEGRA} = "n";
523 $to_add{ARCH_UNIPHIER} = "n";
524 $to_add{ARCH_U8500} = "n";
525 $to_add{ARCH_WM8750} = "n";
526 $to_add{ARCH_WM8850} = "n";
527 $to_add{ARCH_ZX} = "n";
528 $to_add{ARCH_ZYNQ} = "n";
529
530 # Disabled drivers
531 $to_add{ARM_CCI400_PMU} = "n";
532 $to_add{ARM_CHARLCD} = "n";
533 $to_add{ARM_MHU} = "n";
534 $to_add{PL320_MBOX} = "n";
535 $to_add{RPMSG_QCOM_GLINK_RPM} = "n";
536 $to_add{ALTERA_MBOX} = "n";
537 $to_add{MAILBOX_TEST} = "n";
538 $to_add{ARM_SCPI_PROTOCOL} = "n";
539 $to_add{TOUCHSCREEN_WM97XX} = "n";
540 $to_add{TEE} = "n";
541 $to_add{UCB1400_CORE} = "n";
542 $to_add{SND_AC97_POWER_SAVE} = "n";
543 } elsif ( $name eq "iop32x" ) {
544 $values{ARCH_IOP32X} = "y";
545 $to_add{MACH_GLANTANK} = "y";
546 $to_add{ARCH_IQ80321} = "y";
547 $to_add{ARCH_IQ31244} = "y";
548 $to_add{MACH_N2100} = "y";
549 $to_add{MACH_EM7210} = "y";
550 $to_add{IWMMXT} = "y";
551 $values{SATA_MV} = "n";
552 $values{SATA_SIL} = "y";
553 $values{SATA_VITESSE} = "y";
554 $to_add{I2C_IOP3XX} ="m";
555 $to_add{INTEL_IOP_ADMA} = "m";
556 $to_add{XIP_KERNEL} = "n";
557 $to_add{DEBUG_UART_PHYS} = "0x101f1000";
558 $to_add{DEBUG_UART_VIRT} = "0xf11f1000";
559 $to_add{DEBUG_UART_8250_SHIFT} = "0";
560 $to_add{DEBUG_UART_8250_PALMCHIP} = "n";
561 $to_add{DEBUG_UART_8250_FLOW_CONTROL} = "n";
562 } elsif ( $name eq "versatile" ) {
563 $values{ARCH_VERSATILE} = "y";
564 $to_add{CPU_DCACHE_WRITETHROUGH} = "n";
565 $to_add{CPU_CACHE_ROUND_ROBIN} = "n";
566 $to_add{PCI_VERSATILE} = "y";
567 $to_add{SERIO_AMBAKMI} = "y";
568 $to_add{SERIAL_AMBA_PL010} = "y";
569 $to_add{SERIAL_AMBA_PL010_CONSOLE} = "y";
570 $to_add{SERIAL_AMBA_PL011} = "y";
571 $to_add{SERIAL_AMBA_PL011_CONSOLE} = "y";
572 $to_add{I2C_VERSATILE} = "m";
573 $to_add{W1_MASTER_DS1WM} = "n";
574 $to_add{FB_ARMCLCD} = "y";
575 $to_add{SND_ARMAACI} = "m";
576 $to_add{USB_MUSB_HDRC} = "n";
577 $to_add{MMC_ARMMMCI} = "m";
578 $to_add{RTC_DRV_PL030} = "n";
579 $to_add{RTC_DRV_PL031} = "y";
580 $values{SCSI_SYM53C8XX_2}="y";
581 $to_add{SCSI_SYM53C8XX_DMA_ADDRESSING_MODE}="1";
582 $to_add{SCSI_SYM53C8XX_DEFAULT_TAGS}="16";
583 $to_add{SCSI_SYM53C8XX_MAX_TAGS} = "64";
584 $to_add{SCSI_SYM53C8XX_MMIO} ="y";
585 $values{HIGH_RES_TIMERS} = "n";
586 $values{NO_HZ} = "n";
587 $values{ATA}="n";
588 $to_add{MTD_PHYSMAP_OF_VERSATILE} = "y";
589 $to_add{MTD_PISMO} = "n";
590 $to_add{TOUCHSCREEN_WM97XX} = "n";
591 $to_add{I2C_NOMADIK} = "n";
592 $to_add{GPIO_PL061} = "n";
593 $to_add{SND_AC97_POWER_SAVE} = "n";
594 $to_add{ARM_CHARLCD} = "y";
595 $to_add{ARM_SP805_WATCHDOG} = "n";
596 $to_add{AMBA_PL08X} = "n";
597 $to_add{MTD_PHYSMAP_OF} = "m";
598 $to_add{SERIAL_OF_PLATFORM} = "m";
599 $to_add{MMC_SDHCI_PXAV3} = "m";
600 $to_add{MMC_RICOH_MMC} = "y";
601 $to_add{ARM_APPENDED_DTB} = "n";
602 $to_add{MTD_OF_PARTS} = "n";
603 $to_add{PL330_DMA} = "n";
604 $to_add{KEYBOARD_SAMSUNG} = "m";
605 $to_add{NTP_PPS} = "n";
606 $to_add{SPI_PL022} = "y";
607 $to_add{LEDS_VERSATILE} = "n";
608 $to_add{CLK_SP810} = "n";
609 $to_add{UCB1400_CORE} = "n";
610 $to_add{SND_AC97_POWER_SAVE} = "n";
611 $to_add{MTD_PHYSMAP_OF_GEMINI} = "n";
612 }
613 }
614
615 sub modify_config {
616 my ($old_file, $new_file) = @_;
617
618 dprint "modify_config $old_file $new_file\n";
619
620 open(IN, "$old_file") || die "can't open $old_file";
621 open(OUT, ">$new_file") || die "can't open $new_file";
622
623 while (my ($key, $v) = each %to_add) {
624 if ($v eq "n") {
625 dprint "disabling $key\n";
626 $line = "# CONFIG_$key is not set\n";
627 } else {
628 dprint "enabling $key with value $v\n";
629 $line = "CONFIG_$key=$v\n";
630 }
631 print OUT $line;
632 }
633
634 while(<IN>) {
635 my $line = $_;
636 my $key;
637
638 if (/^#\s*CONFIG_([A-Za-z_0-9]+)\s+is not set/) {
639 $key = $1;
640 } elsif (/^CONFIG_([A-Za-z_0-9]+)=/) {
641 $key = $1;
642 }
643
644 if (defined $key) {
645 dprint "dealing with key=$key and value**$values{$key}**\n";
646
647 if (exists $to_add{$key}) {
648 $line = "";
649 }
650 elsif (exists $values{$key}) {
651 if ($values{$key} eq "n") {
652 dprint "disabling $key\n";
653 $line = "# CONFIG_$key is not set\n";
654 } else {
655 dprint "enabling $key with value $values{$key}\n";
656 $line = "CONFIG_$key=$values{$key}\n";
657 }
658 }
659 }
660 print OUT $line;
661 }
662 }
663
664
665 sub config_name {
666 my ($cpu, $nproc, $mem, $name) = @_;
667 dprint "creating config name $cpu $nproc $mem $name\n";
668
669 if ( $name eq 'default' ) {
670 return "";
671 } elsif ($name eq 'none') {
672 @options = ($cpu, $nproc, $mem);
673 return "-" . join('-',grep(!/^none$/, @options));
674 } else {
675 return "-$name";
676 }
677 }
678
679 sub create_config {
680 my ($cpu, $nproc, $mem, $name) = @_;
681
682 my $arch = $cpu2arch{$cpu};
683 dprint "creating config $arch $cpu $nproc $mem $name\n";
684
685 config_init_globals();
686
687 # Notice that here we don't need make mrproper, because we are not
688 # going to compile (yet).
689
690 "config_$arch"->($cpu, $nproc, $mem, $name);
691 if ( "$arch" eq "i386" || "$arch" eq "x86_64" ) {
692 modify_config("arch/x86/configs/" . $arch .
693 "_defconfig-desktop", ".config");
694 } else {
695 modify_config("arch/$arch/defconfig-desktop", ".config");
696 }
697
698 mysystem("make ARCH=$arch oldconfig");
699
700 my $extension = config_name($cpu, $nproc, $mem, $name);
701 if ( "$arch" eq "i386" || "$arch" eq "x86_64" ) {
702 mysystem("install -m 644 .config arch/x86/configs/" . $arch . "_defconfig$extension");
703 } else {
704 mysystem("install -m 644 .config arch/$arch/defconfig$extension");
705 }
706 }
707
708 sub create_all_configs {
709 foreach my $config (@configs) {
710 create_config @$config;
711 }
712 }
713
714 sub copy_all_defconfigs {
715 foreach my $arch (@archs) {
716 $file = "$configs_dir/$arch.config";
717 if ( -f $file ) {
718 dprint "dealing with $arch\n";
719 if ( "$arch" eq "i386" || "$arch" eq "x86_64" ) {
720 mysystem "install -m 644 $file arch/x86/configs/" . $arch . "_defconfig-desktop";
721 } else {
722 mysystem "install -m 644 $file arch/$arch/defconfig-desktop";
723 }
724 } else {
725 die "file $file don't exist";
726 }
727 }
728 }
729
730 sub usage {
731 my $name=basename($0);
732 print STDERR "usage: $name [-v] [--configs_dir=<configs_dir>]";
733 print STDERR "\t(ex: $name --configs_dir=../configs";
734 }
735
736
737 while ( $ARGV[0] =~ /^-/ ) {
738 $_ = shift;
739 if (m/^--verbose/) {
740 $verbose++;
741 } elsif (m/^-v/) {
742 $verbose++;
743 } elsif (m/^--acpi/) {
744 $acpi=1;
745 } elsif (m/^--no-acpi/) {
746 $acpi=0;
747 } elsif (m/^--debug/) {
748 $debug=1;
749 } elsif (m/^--no-debug/) {
750 $debug=0;
751 } elsif (m/^--minimal/) {
752 $minimal=1;
753 } elsif (m/^--no-minimal/) {
754 $minimal=0;
755 } elsif (m/^--user_cpu=(.*)/) {
756 $user_cpu=$1;
757 } elsif (m/^--user_nprocs=(.*)/) {
758 $user_nprocs=$1;
759 } elsif (m/^--user_mem=(.*)/) {
760 $user_mem=$1;
761 } elsif (m/^--user_name=(.*)/) {
762 $user_name=$1;
763 } elsif (m/^--configs_dir=(.*)/) {
764 $configs_dir=$1;
765 } else {
766 usage();
767 die "Unknow option $_";
768 }
769 }
770
771 if ("$configs_dir" eq "" ) {
772 $configs_dir= dirname($0) . "/../configs";
773 }
774
775 if (! -d "$configs_dir" ) {
776 die "$configs_dir is not a directory\n";
777 }
778
779 dprint "configs dir is: $configs_dir\n";
780 dprint "acpi option value is: $acpi\n";
781 dprint "cpu option value is: $user_cpu\n";
782 dprint "nprocs option value is: $user_nprocs\n";
783 dprint "mem option value is: $user_mem\n";
784 dprint "name option value is: $user_name\n";
785 dprint "debug option value is: $debug\n";
786 dprint "mimimal option value is: $minimal\n";
787
788 copy_all_defconfigs();
789 create_all_configs();
790
791 exit 0;

Properties

Name Value
svn:executable *

  ViewVC Help
Powered by ViewVC 1.1.30