Difference between revisions of "User:J Lipscomb"
From eLinux.org
J Lipscomb (Talk | contribs) |
J Lipscomb (Talk | contribs) |
||
| Line 647: | Line 647: | ||
5 .globl input_data_end | 5 .globl input_data_end | ||
6 input_data_end: | 6 input_data_end: | ||
| + | </pre> | ||
| + | |- | ||
| + | | 5-4 | ||
| + | | Console Setup Code Snippet | ||
| + | | <pre> | ||
| + | /* | ||
| + | 838 * Set up a list of consoles. Called from init/main.c | ||
| + | 839 */ | ||
| + | 840 static int __init console_setup(char *str) | ||
| + | 841 { | ||
| + | 842 char buf[sizeof(console_cmdline[0].name) + 4]; /* 4 for index */ | ||
| + | 843 char *s, *options, *brl_options = NULL; | ||
| + | 844 int idx; | ||
| + | 845 | ||
| + | 887 return 1; | ||
| + | 888 } | ||
| + | 889 __setup("console=", console_setup); | ||
| + | </pre> | ||
| + | |- | ||
| + | | 5-5 | ||
| + | | Family of _setup Macro Definitions from init.h | ||
| + | | <pre> | ||
| + | #define __setup_param(str, unique_id, fn, early) \ | ||
| + | 231 static const char __setup_str_##unique_id[] __initconst \ | ||
| + | 232 __aligned(1) = str; \ | ||
| + | 233 static struct obs_kernel_param __setup_##unique_id \ | ||
| + | 234 __used __section(.init.setup) \ | ||
| + | 235 __attribute__((aligned((sizeof(long))))) \ | ||
| + | 236 = { __setup_str_##unique_id, fn, early } | ||
| + | 237 | ||
| + | 238 #define __setup(str, fn) \ | ||
| + | 239 __setup_param(str, fn, fn, 0) | ||
| + | </pre> | ||
| + | |- | ||
| + | | 5-6 | ||
| + | | Kernel Command Line Processing | ||
| + | | <pre> | ||
| + | 204 extern struct obs_kernel_param __setup_start[], __setup_end[]; | ||
| + | 205 | ||
| + | 206 static int __init obsolete_checksetup(char *line) | ||
| + | 207 { | ||
| + | 208 struct obs_kernel_param *p; | ||
| + | 209 int had_early_param = 0; | ||
| + | 210 | ||
| + | 211 p = __setup_start; | ||
| + | 212 do { | ||
| + | 213 int n = strlen(p->str); | ||
| + | 214 if (!strncmp(line, p->str, n)) { | ||
| + | 215 if (p->early) { | ||
| + | 216 /* Already done in parse_early_param? | ||
| + | 217 * (Needs exact match on param part). | ||
| + | 218 * Keep iterating, as we can have early | ||
| + | 219 * params and __setups of same names 8( */ | ||
| + | 220 if (line[n] == '\0' || line[n] == '=') | ||
| + | 221 had_early_param = 1; | ||
| + | 222 } else if (!p->setup_func) { | ||
| + | 223 printk(KERN_WARNING "Parameter %s is obsolete," | ||
| + | 224 " ignored\n", p->str); | ||
| + | 225 return 1; | ||
| + | 226 } else if (p->setup_func(line + n)) | ||
| + | 227 return 1; | ||
| + | 228 } | ||
| + | 229 p++; | ||
| + | 230 } while (p < __setup_end); | ||
| + | 231 | ||
| + | 232 return had_early_param; | ||
| + | 233 } | ||
| + | </pre> | ||
| + | |- | ||
| + | | 5-7 | ||
| + | | Example Initialization Routine | ||
| + | | <pre> | ||
| + | 655 static int __init customize_machine(void) | ||
| + | 656 { | ||
| + | 657 /* customizes platform devices, or adds new ones */ | ||
| + | 658 if (init_machine) | ||
| + | 659 init_machine(); | ||
| + | 660 return 0; | ||
| + | 661 } | ||
| + | 662 arch_initcall(customize_machine); | ||
| + | </pre> | ||
| + | |- | ||
| + | | 5-8 | ||
| + | | initcall Family of Macros | ||
| + | | <pre> | ||
| + | #define __define_initcall(level,fn,id) \ | ||
| + | 171 static initcall_t __initcall_##fn##id __used \ | ||
| + | 172 __attribute__((__section__(".initcall" level ".init"))) = fn | ||
| + | 173 | ||
| + | 174 /* | ||
| + | 175 * Early initcalls run before initializing SMP. | ||
| + | 176 * | ||
| + | 177 * Only for built-in code, not modules. | ||
| + | 178 */ | ||
| + | 179 #define early_initcall(fn) __define_initcall("early",fn,early) | ||
| + | 180 | ||
| + | 181 /* | ||
| + | 182 * A "pure" initcall has no dependencies on anything else, and purely | ||
| + | 183 * initializes variables that couldn't be statically initialized. | ||
| + | 184 * | ||
| + | 185 * This only exists for built-in code, not for modules. | ||
| + | 186 */ | ||
| + | 187 #define pure_initcall(fn) __define_initcall("0",fn,0) | ||
| + | 188 | ||
| + | 189 #define core_initcall(fn) __define_initcall("1",fn,1) | ||
| + | 190 #define core_initcall_sync(fn) __define_initcall("1s",fn,1s) | ||
| + | 191 #define postcore_initcall(fn) __define_initcall("2",fn,2) | ||
| + | 192 #define postcore_initcall_sync(fn) __define_initcall("2s",fn,2s) | ||
| + | 193 #define arch_initcall(fn) __define_initcall("3",fn,3) | ||
| + | 194 #define arch_initcall_sync(fn) __define_initcall("3s",fn,3s) | ||
| + | 195 #define subsys_initcall(fn) __define_initcall("4",fn,4) | ||
| + | 196 #define subsys_initcall_sync(fn) __define_initcall("4s",fn,4s) | ||
| + | 197 #define fs_initcall(fn) __define_initcall("5",fn,5) | ||
| + | 198 #define fs_initcall_sync(fn) __define_initcall("5s",fn,5s) | ||
| + | 199 #define rootfs_initcall(fn) __define_initcall("rootfs",fn,rootfs) | ||
| + | 200 #define device_initcall(fn) __define_initcall("6",fn,6) | ||
| + | 201 #define device_initcall_sync(fn) __define_initcall("6s",fn,6s) | ||
| + | 202 #define late_initcall(fn) __define_initcall("7",fn,7) | ||
| + | 203 #define late_initcall_sync(fn) __define_initcall("7s",fn,7s) | ||
| + | 204 | ||
| + | 205 #define __initcall(fn) device_initcall(fn) | ||
| + | </pre> | ||
| + | |- | ||
| + | | 5-9 | ||
| + | | Creation of Kernel init Thread | ||
| + | | <pre> | ||
| + | static noinline void __init_refok rest_init(void) | ||
| + | 425 __releases(kernel_lock) | ||
| + | 426 { | ||
| + | 427 int pid; | ||
| + | 428 | ||
| + | 429 rcu_scheduler_starting(); | ||
| + | 430 kernel_thread(kernel_init, NULL, CLONE_FS | CLONE_SIGHAND); | ||
| + | 431 numa_default_policy(); | ||
| + | 432 pid = kernel_thread(kthreadd, NULL, CLONE_FS | CLONE_FILES); | ||
| + | 433 rcu_read_lock(); | ||
| + | 434 kthreadd_task = find_task_by_pid_ns(pid, &init_pid_ns); | ||
| + | 435 rcu_read_unlock(); | ||
| + | 436 unlock_kernel(); | ||
| + | 437 | ||
| + | 438 /* | ||
| + | 439 * The boot idle thread must execute schedule() | ||
| + | 440 * at least once to get things moving: | ||
| + | 441 */ | ||
| + | 442 init_idle_bootup_task(current); | ||
| + | 443 preempt_enable_no_resched(); | ||
| + | 444 schedule(); | ||
| + | 445 preempt_disable(); | ||
| + | 446 | ||
| + | 447 /* Call into cpu_idle with preempt disabled */ | ||
| + | 448 cpu_idle(); | ||
| + | 449 } | ||
| + | </pre> | ||
| + | |- | ||
| + | | 5-10 | ||
| + | | Initialization via initcalls | ||
| + | | <pre> | ||
| + | 765 extern initcall_t __initcall_start[], __initcall_end[], __early_initcall_end[]; | ||
| + | 766 | ||
| + | 767 static void __init do_initcalls(void) | ||
| + | 768 { | ||
| + | 769 initcall_t *fn; | ||
| + | 770 | ||
| + | 771 for (fn = __early_initcall_end; fn < __initcall_end; fn++) | ||
| + | 772 do_one_initcall(*fn); | ||
| + | 773 | ||
| + | 774 /* Make sure there is no pending stuff from the initcall sequence */ | ||
| + | 775 flush_scheduled_work(); | ||
| + | 776 } | ||
| + | </pre> | ||
| + | |- | ||
| + | | 5-11 | ||
| + | | Final Kernel Boot Steps from main.c | ||
| + | | <pre> | ||
| + | 814 static noinline int init_post(void) | ||
| + | 815 __releases(kernel_lock) | ||
| + | 816 { | ||
| + | 817 /* need to finish all async __init code before freeing the memory */ | ||
| + | 818 async_synchronize_full(); | ||
| + | 819 free_initmem(); | ||
| + | 820 unlock_kernel(); | ||
| + | 821 mark_rodata_ro(); | ||
| + | 822 system_state = SYSTEM_RUNNING; | ||
| + | 823 numa_default_policy(); | ||
| + | 824 | ||
| + | 825 | ||
| + | 826 current->signal->flags |= SIGNAL_UNKILLABLE; | ||
| + | 827 | ||
| + | 828 if (ramdisk_execute_command) { | ||
| + | 829 run_init_process(ramdisk_execute_command); | ||
| + | 830 printk(KERN_WARNING "Failed to execute %s\n", | ||
| + | 831 ramdisk_execute_command); | ||
| + | 832 } | ||
| + | 833 | ||
| + | 834 /* | ||
| + | 835 * We try each of these until one succeeds. | ||
| + | 836 * | ||
| + | 837 * The Bourne shell can be used instead of init if we are | ||
| + | 838 * trying to recover a really broken machine. | ||
| + | 839 */ | ||
| + | 840 if (execute_command) { | ||
| + | 841 run_init_process(execute_command); | ||
| + | 842 printk(KERN_WARNING "Failed to execute %s. Attempting " | ||
| + | 843 "defaults...\n", execute_command); | ||
| + | 844 } | ||
| + | 845 run_init_process("/sbin/init"); | ||
| + | 846 run_init_process("/etc/init"); | ||
| + | 847 run_init_process("/bin/init"); | ||
| + | 848 run_init_process("/bin/sh"); | ||
| + | 849 | ||
| + | 850 panic("No init found. Try passing init= option to kernel. " | ||
| + | 851 "See Linux Documentation/init.txt for guidance."); | ||
| + | 852 } | ||
| + | </pre> | ||
| + | |} | ||
| + | == Chapter 6 Listings == | ||
| + | {| | ||
| + | ! Number | ||
| + | ! Caption | ||
| + | ! Listing | ||
| + | |- | ||
| + | | 6-2 | ||
| + | | Final Boot Steps from main.c | ||
| + | | <pre> | ||
| + | if (execute_command) { | ||
| + | 841 run_init_process(execute_command); | ||
| + | 842 printk(KERN_WARNING "Failed to execute %s. Attempting " | ||
| + | 843 "defaults...\n", execute_command); | ||
| + | 844 } | ||
| + | 845 run_init_process("/sbin/init"); | ||
| + | 846 run_init_process("/etc/init"); | ||
| + | 847 run_init_process("/bin/init"); | ||
| + | 848 run_init_process("/bin/sh"); | ||
| + | 849 | ||
| + | 850 panic("No init found. Try passing init= option to kernel. " | ||
| + | 851 "See Linux Documentation/init.txt for guidance."); | ||
| + | </pre> | ||
| + | |- | ||
| + | | 6-4 | ||
| + | | Runlevel Directory Structure | ||
| + | | <pre> | ||
| + | lipscojl@Kratos:/etc$ ls -dl rc* | ||
| + | drwxr-xr-x 2 root root 4096 2010-03-09 21:35 rc0.d | ||
| + | drwxr-xr-x 2 root root 4096 2010-03-09 21:35 rc1.d | ||
| + | drwxr-xr-x 2 root root 4096 2010-03-09 21:35 rc2.d | ||
| + | drwxr-xr-x 2 root root 4096 2010-03-09 21:35 rc3.d | ||
| + | drwxr-xr-x 2 root root 4096 2010-03-09 21:35 rc4.d | ||
| + | drwxr-xr-x 2 root root 4096 2010-03-09 21:35 rc5.d | ||
| + | drwxr-xr-x 2 root root 4096 2010-03-09 21:35 rc6.d | ||
| + | -rwxr-xr-x 1 root root 306 2008-08-24 14:34 rc.local | ||
| + | drwxr-xr-x 2 root root 4096 2010-03-09 00:51 rcS.d | ||
| + | </pre> | ||
| + | |- | ||
| + | | 6-5 | ||
| + | | Example Runlevel Directory | ||
| + | | <pre> | ||
| + | lipscojl@Kratos:/etc$ ls -ls rc5.d/ | ||
| + | total 4 | ||
| + | 4 -rw-r--r-- 1 root root 556 2008-08-12 10:09 README | ||
| + | 0 lrwxrwxrwx 1 root root 18 2008-08-24 14:34 S10sysklogd -> ../init.d/sysklogd | ||
| + | 0 lrwxrwxrwx 1 root root 15 2008-08-24 14:34 S11klogd -> ../init.d/klogd | ||
| + | 0 lrwxrwxrwx 1 root root 15 2008-08-24 14:35 S12acpid -> ../init.d/acpid | ||
| + | 0 lrwxrwxrwx 1 root root 14 2008-08-24 14:46 S12dbus -> ../init.d/dbus | ||
| + | 0 lrwxrwxrwx 1 root root 22 2009-02-03 11:39 S14avahi-daemon -> ../init.d/avahi-daem on | ||
| + | 0 lrwxrwxrwx 1 root root 14 2008-08-29 20:58 S15bind -> ../init.d/bind | ||
| + | 0 lrwxrwxrwx 1 root root 15 2008-09-02 14:27 S15bind9 -> ../init.d/bind9 | ||
| + | 0 lrwxrwxrwx 1 root root 13 2008-08-24 15:46 S16ssh -> ../init.d/ssh | ||
| + | 0 lrwxrwxrwx 1 root root 23 2008-08-29 21:08 S17mysql-ndb-mgm -> ../init.d/mysql-ndb -mgm | ||
| + | 0 lrwxrwxrwx 1 root root 19 2008-08-29 21:08 S18mysql-ndb -> ../init.d/mysql-ndb | ||
| + | 0 lrwxrwxrwx 1 root root 15 2008-08-29 21:08 S19mysql -> ../init.d/mysql | ||
| + | 0 lrwxrwxrwx 1 root root 14 2008-09-02 14:51 S20dhcp -> ../init.d/dhcp | ||
| + | 0 lrwxrwxrwx 1 root root 15 2008-08-24 14:40 S20exim4 -> ../init.d/exim4 | ||
| + | 0 lrwxrwxrwx 1 root root 20 2008-08-25 09:50 S20fancontrol -> ../init.d/fancontrol | ||
| + | 0 lrwxrwxrwx 1 root root 17 2008-08-25 09:50 S20hddtemp -> ../init.d/hddtemp | ||
| + | 0 lrwxrwxrwx 1 root root 25 2008-08-24 16:37 S20inetutils-inetd -> ../init.d/inetuti ls-inetd | ||
| + | 0 lrwxrwxrwx 1 root root 20 2008-08-24 14:40 S20nfs-common -> ../init.d/nfs-common | ||
| + | 0 lrwxrwxrwx 1 root root 27 2008-09-03 00:59 S20nfs-kernel-server -> ../init.d/nfs-k ernel-server | ||
| + | 0 lrwxrwxrwx 1 root root 23 2008-08-24 14:40 S20openbsd-inetd -> ../init.d/openbsd-i netd | ||
| + | 0 lrwxrwxrwx 1 root root 14 2010-02-12 16:30 S20pimd -> ../init.d/pimd | ||
| + | 0 lrwxrwxrwx 1 root root 25 2008-08-24 14:40 S20policycoreutils -> ../init.d/policyc oreutils | ||
| + | 0 lrwxrwxrwx 1 root root 15 2010-03-09 21:35 S20rsync -> ../init.d/rsync | ||
| + | 0 lrwxrwxrwx 1 root root 15 2008-09-02 14:26 S20samba -> ../init.d/samba | ||
| + | 0 lrwxrwxrwx 1 root root 23 2008-08-28 13:54 S20smartmontools -> ../init.d/smartmont ools | ||
| + | 0 lrwxrwxrwx 1 root root 17 2009-12-06 18:23 S20vboxdrv -> ../init.d/vboxdrv | ||
| + | 0 lrwxrwxrwx 1 root root 16 2009-01-04 02:15 S20xinetd -> ../init.d/xinetd | ||
| + | 0 lrwxrwxrwx 1 root root 13 2009-12-06 18:23 S21fam -> ../init.d/fam | ||
| + | 0 lrwxrwxrwx 1 root root 13 2008-08-24 15:54 S23ntp -> ../init.d/ntp | ||
| + | 0 lrwxrwxrwx 1 root root 13 2009-01-04 09:41 S24hal -> ../init.d/hal | ||
| + | 0 lrwxrwxrwx 1 root root 15 2008-08-24 14:54 S25mdadm -> ../init.d/mdadm | ||
| + | 0 lrwxrwxrwx 1 root root 25 2008-09-03 00:56 S25nfs-user-server -> ../init.d/nfs-use r-server | ||
| + | 0 lrwxrwxrwx 1 root root 22 2009-09-06 17:46 S40dhcp3-server -> ../init.d/dhcp3-serv er | ||
| + | 0 lrwxrwxrwx 1 root root 24 2008-08-29 21:08 S40mythtv-backend -> ../init.d/mythtv-b ackend | ||
| + | 0 lrwxrwxrwx 1 root root 17 2008-09-02 20:22 S41apcupsd -> ../init.d/apcupsd | ||
| + | 0 lrwxrwxrwx 1 root root 13 2008-08-24 14:40 S89atd -> ../init.d/atd | ||
| + | 0 lrwxrwxrwx 1 root root 14 2008-08-24 14:34 S89cron -> ../init.d/cron | ||
| + | 0 lrwxrwxrwx 1 root root 17 2008-08-24 15:45 S91apache2 -> ../init.d/apache2 | ||
| + | 0 lrwxrwxrwx 1 root root 18 2009-02-27 12:58 S99fail2ban -> ../init.d/fail2ban | ||
| + | 0 lrwxrwxrwx 1 root root 18 2008-08-24 14:34 S99rc.local -> ../init.d/rc.local | ||
| + | 0 lrwxrwxrwx 1 root root 19 2008-08-24 14:34 S99rmnologin -> ../init.d/rmnologin | ||
| + | 0 lrwxrwxrwx 1 root root 21 2008-09-03 00:37 S99shorewall -> /etc/init.d/shorewall | ||
| + | 0 lrwxrwxrwx 1 root root 23 2008-08-24 14:34 S99stop-bootlogd -> ../init.d/stop-boot logd | ||
| + | 0 lrwxrwxrwx 1 root root 18 2008-08-24 14:53 S99webmin -> /etc/init.d/webmin | ||
</pre> | </pre> | ||
Revision as of 00:26, 23 March 2010
I am currently an Electrical Engineering undergraduate student at Rose-Hulman Institute of Technology in Terre Haute, Indiana.
Contents |
Chapter 2 Listings
| Number | Caption | Listing |
|---|---|---|
| 2-4 | Hello World, Embedded Style |
#include <stdio.h>
int bss_var; /* Uninitialized global variable */
int data_var = 1; /* Initialized global variable */
int main(int argc, char **argv)
{
void *stack_var; /* Local variable on the stack */
stack_var = (void *)main; /* Don't let the compiler */
/* optimize it out */
printf("Hello, World! Main is executing at %p\n", stack_var);
printf("This address (%p) is in our stack frame\n", &stack_var);
/* bss section contains uninitialized data */
printf("This address (%p) is in our bss section\n", &bss_var);
/* data section contains initializated data */
printf("This address (%p) is in our data section\n", &data_var);
return 0;
}
|
Chapter 4 Listings
| Number | Caption | Listing |
|---|---|---|
| 4-3 | Kernel Subdirectory omap1 | lipscojl@Kratos:/dump/hw/oe/linux-omap-2.6/arch/arm$ ls -l mach-omap1 total 432 -rwxrwx--x 1 brian elinux 7080 2010-03-11 23:14 board-ams-delta.c -rwxrwx--x 1 brian elinux 9081 2010-03-11 23:14 board-fsample.c -rwxrwx--x 1 brian elinux 2514 2010-03-11 23:14 board-generic.c -rwxrwx--x 1 brian elinux 11159 2010-03-11 23:14 board-h2.c -rwxrwx--x 1 brian elinux 1585 2010-03-11 23:14 board-h2.h -rwxrwx--x 1 brian elinux 1862 2010-03-11 23:14 board-h2-mmc.c -rwxrwx--x 1 brian elinux 10227 2010-03-11 23:14 board-h3.c -rwxrwx--x 1 brian elinux 1550 2010-03-11 23:14 board-h3.h -rwxrwx--x 1 brian elinux 1668 2010-03-11 23:14 board-h3-mmc.c -rwxrwx--x 1 brian elinux 8037 2010-03-11 23:14 board-htcherald.c -rwxrwx--x 1 brian elinux 11497 2010-03-11 23:14 board-innovator.c -rwxrwx--x 1 brian elinux 10347 2010-03-11 23:14 board-nokia770.c -rwxrwx--x 1 brian elinux 15686 2010-03-11 23:14 board-osk.c -rwxrwx--x 1 brian elinux 9547 2010-03-11 23:14 board-palmte.c -rwxrwx--x 1 brian elinux 7198 2010-03-11 23:14 board-palmtt.c -rwxrwx--x 1 brian elinux 8167 2010-03-11 23:14 board-palmz71.c -rwxrwx--x 1 brian elinux 7691 2010-03-11 23:14 board-perseus2.c -rwxrwx--x 1 brian elinux 10377 2010-03-11 23:14 board-sx1.c -rwxrwx--x 1 brian elinux 1614 2010-03-11 23:14 board-sx1-mmc.c -rwxrwx--x 1 brian elinux 6996 2010-03-11 23:14 board-voiceblue.c -rwxrwx--x 1 brian elinux 14005 2010-03-11 23:14 clock.c -rwxrwx--x 1 brian elinux 24059 2010-03-11 23:14 clock_data.c -rwxrwx--x 1 brian elinux 3880 2010-03-11 23:14 clock.h -rwxrwx--x 1 brian elinux 7542 2010-03-11 23:14 devices.c -rwxrwx--x 1 brian elinux 692 2010-03-11 23:14 flash.c -rwxrwx--x 1 brian elinux 5186 2010-03-11 23:14 fpga.c -rwxrwx--x 1 brian elinux 1025 2010-03-11 23:14 i2c.c -rwxrwx--x 1 brian elinux 6447 2010-03-11 23:14 id.c drwxrwx--x 3 brian elinux 4096 2010-03-11 23:14 include -rwxrwx--x 1 brian elinux 3552 2010-03-11 23:14 io.c -rwxrwx--x 1 brian elinux 7074 2010-03-11 23:14 irq.c -rwxrwx--x 1 brian elinux 6527 2010-03-11 23:14 Kconfig -rwxrwx--x 1 brian elinux 10873 2010-03-11 23:14 lcd_dma.c -rwxrwx--x 1 brian elinux 1461 2010-03-11 23:14 leds.c -rwxrwx--x 1 brian elinux 146 2010-03-11 23:14 leds.h -rwxrwx--x 1 brian elinux 3222 2010-03-11 23:14 leds-h2p2-debug.c -rwxrwx--x 1 brian elinux 1565 2010-03-11 23:14 leds-innovator.c -rwxrwx--x 1 brian elinux 2044 2010-03-11 23:14 leds-osk.c -rwxrwx--x 1 brian elinux 4798 2010-03-11 23:14 mailbox.c -rwxrwx--x 1 brian elinux 1776 2010-03-11 23:14 Makefile -rwxrwx--x 1 brian elinux 87 2010-03-11 23:14 Makefile.boot -rwxrwx--x 1 brian elinux 5597 2010-03-11 23:14 mcbsp.c -rwxrwx--x 1 brian elinux 20719 2010-03-11 23:14 mux.c -rwxrwx--x 1 brian elinux 2279 2010-03-11 23:14 opp_data.c -rwxrwx--x 1 brian elinux 705 2010-03-11 23:14 opp.h -rwxrwx--x 1 brian elinux 19611 2010-03-11 23:14 pm.c -rwxrwx--x 1 brian elinux 9084 2010-03-11 23:14 pm.h -rwxrwx--x 1 brian elinux 6043 2010-03-11 23:14 serial.c -rwxrwx--x 1 brian elinux 9282 2010-03-11 23:14 sleep.S -rwxrwx--x 1 brian elinux 1543 2010-03-11 23:14 sram.S -rwxrwx--x 1 brian elinux 7096 2010-03-11 23:14 time.c -rwxrwx--x 1 brian elinux 6121 2010-03-11 23:14 timer32k.c |
| 4-3 | Kernel Subdirectory omap2 | lipscojl@Kratos:/dump/hw/oe/linux-omap-2.6/arch/arm$ ls -l mach-omap2 total 1952 -rwxrwx--x 1 brian elinux 5333 2010-03-11 23:14 board-2430sdp.c -rwxrwx--x 1 brian elinux 19575 2010-03-11 23:14 board-3430sdp.c -rwxrwx--x 1 brian elinux 2645 2010-03-11 23:14 board-3630sdp.c -rwxrwx--x 1 brian elinux 3467 2010-03-11 23:14 board-4430sdp.c -rwxrwx--x 1 brian elinux 8117 2010-03-11 23:14 board-am3517evm.c -rwxrwx--x 1 brian elinux 8653 2010-03-11 23:14 board-apollon.c -rwxrwx--x 1 brian elinux 22418 2010-03-11 23:14 board-cm-t35.c -rwxrwx--x 1 brian elinux 17097 2010-03-11 23:14 board-devkit8000.c -rwxrwx--x 1 brian elinux 1763 2010-03-11 23:14 board-generic.c -rwxrwx--x 1 brian elinux 9359 2010-03-11 23:14 board-h4.c -rwxrwx--x 1 brian elinux 14145 2010-03-11 23:14 board-igep0020.c -rwxrwx--x 1 brian elinux 9466 2010-03-11 23:14 board-ldp.c -rwxrwx--x 1 brian elinux 15510 2010-03-11 23:14 board-n8x0.c -rwxrwx--x 1 brian elinux 11863 2010-03-11 23:14 board-omap3beagle.c -rwxrwx--x 1 brian elinux 18257 2010-03-11 23:14 board-omap3evm.c -rwxrwx--x 1 brian elinux 15568 2010-03-11 23:14 board-omap3pandora.c -rwxrwx--x 1 brian elinux 14241 2010-03-11 23:14 board-omap3touchbook.c -rwxrwx--x 1 brian elinux 12529 2010-03-11 23:14 board-overo.c -rwxrwx--x 1 brian elinux 3544 2010-03-11 23:14 board-rx51.c -rwxrwx--x 1 brian elinux 20958 2010-03-11 23:14 board-rx51-peripherals.c -rwxrwx--x 1 brian elinux 4914 2010-03-11 23:14 board-rx51-sdram.c -rwxrwx--x 1 brian elinux 6955 2010-03-11 23:14 board-sdp-flash.c -rwxrwx--x 1 brian elinux 2311 2010-03-11 23:14 board-zoom2.c -rwxrwx--x 1 brian elinux 2002 2010-03-11 23:14 board-zoom3.c -rwxrwx--x 1 brian elinux 3863 2010-03-11 23:14 board-zoom-debugboard.c -rwxrwx--x 1 brian elinux 6928 2010-03-11 23:14 board-zoom-peripherals.c -rwxrwx--x 1 brian elinux 2709 2010-03-11 23:14 clkt2xxx_apll.c -rwxrwx--x 1 brian elinux 4517 2010-03-11 23:14 clkt2xxx_dpllcore.c -rwxrwx--x 1 brian elinux 1339 2010-03-11 23:14 clkt2xxx_osc.c -rwxrwx--x 1 brian elinux 1044 2010-03-11 23:14 clkt2xxx_sys.c -rwxrwx--x 1 brian elinux 6350 2010-03-11 23:14 clkt2xxx_virt_prcm_set.c -rwxrwx--x 1 brian elinux 3190 2010-03-11 23:14 clkt34xx_dpll3m2.c -rwxrwx--x 1 brian elinux 10683 2010-03-11 23:14 clkt_clksel.c -rwxrwx--x 1 brian elinux 11398 2010-03-11 23:14 clkt_dpll.c -rwxrwx--x 1 brian elinux 57617 2010-03-11 23:14 clock2420_data.c -rwxrwx--x 1 brian elinux 1825 2010-03-11 23:14 clock2430.c -rwxrwx--x 1 brian elinux 60193 2010-03-11 23:14 clock2430_data.c -rwxrwx--x 1 brian elinux 1545 2010-03-11 23:14 clock2xxx.c -rwxrwx--x 1 brian elinux 1303 2010-03-11 23:14 clock2xxx.h -rwxrwx--x 1 brian elinux 4195 2010-03-11 23:14 clock34xx.c -rwxrwx--x 1 brian elinux 430 2010-03-11 23:14 clock34xx.h -rwxrwx--x 1 brian elinux 4195 2010-03-11 23:14 clock3517.c -rwxrwx--x 1 brian elinux 355 2010-03-11 23:14 clock3517.h -rwxrwx--x 1 brian elinux 2027 2010-03-11 23:14 clock36xx.c -rwxrwx--x 1 brian elinux 313 2010-03-11 23:14 clock36xx.h -rwxrwx--x 1 brian elinux 2585 2010-03-11 23:14 clock3xxx.c -rwxrwx--x 1 brian elinux 109556 2010-03-11 23:14 clock3xxx_data.c -rwxrwx--x 1 brian elinux 563 2010-03-11 23:14 clock3xxx.h -rwxrwx--x 1 brian elinux 82933 2010-03-11 23:14 clock44xx_data.c -rwxrwx--x 1 brian elinux 445 2010-03-11 23:14 clock44xx.h -rwxrwx--x 1 brian elinux 14082 2010-03-11 23:14 clock.c -rwxrwx--x 1 brian elinux 1216 2010-03-11 23:14 clock_common_data.c -rwxrwx--x 1 brian elinux 29903 2010-03-11 23:14 clockdomain.c -rwxrwx--x 1 brian elinux 8265 2010-03-11 23:14 clockdomains44xx.h -rwxrwx--x 1 brian elinux 24077 2010-03-11 23:14 clockdomains.h -rwxrwx--x 1 brian elinux 5076 2010-03-11 23:14 clock.h -rwxrwx--x 1 brian elinux 29027 2010-03-11 23:14 cm44xx.h -rwxrwx--x 1 brian elinux 1421 2010-03-11 23:14 cm4xxx.c -rwxrwx--x 1 brian elinux 1683 2010-03-11 23:14 cm.c -rwxrwx--x 1 brian elinux 4467 2010-03-11 23:14 cm.h -rwxrwx--x 1 brian elinux 14321 2010-03-11 23:14 cm-regbits-24xx.h -rwxrwx--x 1 brian elinux 27452 2010-03-11 23:14 cm-regbits-34xx.h -rwxrwx--x 1 brian elinux 60074 2010-03-11 23:14 cm-regbits-44xx.h -rwxrwx--x 1 brian elinux 15102 2010-03-11 23:14 control.c -rwxrwx--x 1 brian elinux 14037 2010-03-11 23:14 cpuidle34xx.c -rwxrwx--x 1 brian elinux 18888 2010-03-11 23:14 devices.c -rwxrwx--x 1 brian elinux 15462 2010-03-11 23:14 dpll3xxx.c -rwxrwx--x 1 brian elinux 1522 2010-03-11 23:14 emu.c -rwxrwx--x 1 brian elinux 15087 2010-03-11 23:14 gpmc.c -rwxrwx--x 1 brian elinux 3562 2010-03-11 23:14 gpmc-nand.c -rwxrwx--x 1 brian elinux 9348 2010-03-11 23:14 gpmc-onenand.c -rwxrwx--x 1 brian elinux 5045 2010-03-11 23:14 gpmc-smc91x.c -rwxrwx--x 1 brian elinux 6968 2010-03-11 23:14 hsmmc.c -rwxrwx--x 1 brian elinux 1238 2010-03-11 23:14 hsmmc.h -rwxrwx--x 1 brian elinux 1538 2010-03-11 23:14 i2c.c -rwxrwx--x 1 brian elinux 10740 2010-03-11 23:14 id.c drwxrwx--x 3 brian elinux 4096 2010-03-11 23:14 include -rwxrwx--x 1 brian elinux 7975 2010-03-11 23:14 io.c -rwxrwx--x 1 brian elinux 7914 2010-03-11 23:14 iommu2.c -rwxrwx--x 1 brian elinux 7481 2010-03-11 23:14 irq.c -rwxrwx--x 1 brian elinux 3448 2010-03-11 23:14 Kconfig -rwxrwx--x 1 brian elinux 12216 2010-03-11 23:14 mailbox.c -rwxrwx--x 1 brian elinux 4943 2010-03-11 23:14 Makefile -rwxrwx--x 1 brian elinux 86 2010-03-11 23:14 Makefile.boot -rwxrwx--x 1 brian elinux 7650 2010-03-11 23:14 mcbsp.c -rwxrwx--x 1 brian elinux 83424 2010-03-11 23:14 mux34xx.c -rwxrwx--x 1 brian elinux 20813 2010-03-11 23:14 mux34xx.h -rwxrwx--x 1 brian elinux 26941 2010-03-11 23:14 mux.c -rwxrwx--x 1 brian elinux 5089 2010-03-11 23:14 mux.h -rwxrwx--x 1 brian elinux 2196 2010-03-11 23:14 omap3-iommu.c -rwxrwx--x 1 brian elinux 847 2010-03-11 23:14 omap44xx-smc.S -rwxrwx--x 1 brian elinux 1588 2010-03-11 23:14 omap-headsmp.S -rwxrwx--x 1 brian elinux 4151 2010-03-11 23:14 omap_hwmod_2420_data.c -rwxrwx--x 1 brian elinux 4243 2010-03-11 23:14 omap_hwmod_2430_data.c -rwxrwx--x 1 brian elinux 5122 2010-03-11 23:14 omap_hwmod_3xxx_data.c -rwxrwx--x 1 brian elinux 42966 2010-03-11 23:14 omap_hwmod.c -rwxrwx--x 1 brian elinux 1796 2010-03-11 23:14 omap_hwmod_common_data.c -rwxrwx--x 1 brian elinux 736 2010-03-11 23:14 omap_hwmod_common_data.h -rwxrwx--x 1 brian elinux 4059 2010-03-11 23:14 omap-smp.c -rwxrwx--x 1 brian elinux 4994 2010-03-11 23:14 opp2420_data.c -rwxrwx--x 1 brian elinux 4914 2010-03-11 23:14 opp2430_data.c -rwxrwx--x 1 brian elinux 15591 2010-03-11 23:14 opp2xxx.h -rwxrwx--x 1 brian elinux 13927 2010-03-11 23:14 pm24xx.c -rwxrwx--x 1 brian elinux 29998 2010-03-11 23:14 pm34xx.c -rwxrwx--x 1 brian elinux 14658 2010-03-11 23:14 pm-debug.c -rwxrwx--x 1 brian elinux 2526 2010-03-11 23:14 pm.h -rwxrwx--x 1 brian elinux 27931 2010-03-11 23:14 powerdomain.c -rwxrwx--x 1 brian elinux 2659 2010-03-11 23:14 powerdomains24xx.h -rwxrwx--x 1 brian elinux 6376 2010-03-11 23:14 powerdomains34xx.h -rwxrwx--x 1 brian elinux 8752 2010-03-11 23:14 powerdomains44xx.h -rwxrwx--x 1 brian elinux 3730 2010-03-11 23:14 powerdomains.h -rwxrwx--x 1 brian elinux 20105 2010-03-11 23:14 prcm.c -rwxrwx--x 1 brian elinux 16366 2010-03-11 23:14 prcm-common.h -rwxrwx--x 1 brian elinux 33309 2010-03-11 23:14 prm44xx.h -rwxrwx--x 1 brian elinux 14824 2010-03-11 23:14 prm.h -rwxrwx--x 1 brian elinux 8244 2010-03-11 23:14 prm-regbits-24xx.h -rwxrwx--x 1 brian elinux 19792 2010-03-11 23:14 prm-regbits-34xx.h -rwxrwx--x 1 brian elinux 80743 2010-03-11 23:14 prm-regbits-44xx.h -rwxrwx--x 1 brian elinux 1207 2010-03-11 23:14 sdram-hynix-h8mbx00u0mer-0em.h -rwxrwx--x 1 brian elinux 1306 2010-03-11 23:14 sdram-micron-mt46h32m32lf-6.h -rwxrwx--x 1 brian elinux 1141 2010-03-11 23:14 sdram-numonyx-m65kxxxxam.h -rwxrwx--x 1 brian elinux 1254 2010-03-11 23:14 sdram-qimonda-hyb18m512160af-6.h -rwxrwx--x 1 brian elinux 4290 2010-03-11 23:14 sdrc2xxx.c -rwxrwx--x 1 brian elinux 4676 2010-03-11 23:14 sdrc.c -rwxrwx--x 1 brian elinux 1935 2010-03-11 23:14 sdrc.h -rwxrwx--x 1 brian elinux 18740 2010-03-11 23:14 serial.c -rwxrwx--x 1 brian elinux 4039 2010-03-11 23:14 sleep24xx.S -rwxrwx--x 1 brian elinux 19716 2010-03-11 23:14 sleep34xx.S -rwxrwx--x 1 brian elinux 10217 2010-03-11 23:14 sram242x.S -rwxrwx--x 1 brian elinux 10217 2010-03-11 23:14 sram243x.S -rwxrwx--x 1 brian elinux 9800 2010-03-11 23:14 sram34xx.S -rwxrwx--x 1 brian elinux 6480 2010-03-11 23:14 timer-gp.c -rwxrwx--x 1 brian elinux 974 2010-03-11 23:14 timer-mpu.c -rwxrwx--x 1 brian elinux 7046 2010-03-11 23:14 usb-ehci.c -rwxrwx--x 1 brian elinux 3089 2010-03-11 23:14 usb-musb.c -rwxrwx--x 1 brian elinux 8813 2010-03-11 23:14 usb-tusb6010.c |
| 4-6 | Makefile Targets |
lipscojl@Kratos:/dump/hw/oe/linux-omap-2.6$ make ARCH=arm help
Cleaning targets:
clean - Remove most generated files but keep the config and
enough build support to build external modules
mrproper - Remove all generated files + config + various backup files
distclean - mrproper + remove editor backup and patch files
Configuration targets:
config - Update current config utilising a line-oriented program
menuconfig - Update current config utilising a menu based program
xconfig - Update current config utilising a QT based front-end
gconfig - Update current config utilising a GTK based front-end
oldconfig - Update current config utilising a provided .config as base
localmodconfig - Update current config disabling modules not loaded
localyesconfig - Update current config converting local mods to core
silentoldconfig - Same as oldconfig, but quietly, additionally update deps
randconfig - New config with random answer to all options
defconfig - New config with default answer to all options
allmodconfig - New config selecting modules when possible
allyesconfig - New config where all options are accepted with yes
allnoconfig - New config where all options are answered with no
Other generic targets:
all - Build all targets marked with [*]
* vmlinux - Build the bare kernel
* modules - Build all modules
modules_install - Install all modules to INSTALL_MOD_PATH (default: /)
firmware_install- Install all firmware to INSTALL_FW_PATH
(default: $(INSTALL_MOD_PATH)/lib/firmware)
dir/ - Build all files in dir and below
dir/file.[ois] - Build specified target only
dir/file.ko - Build module including final link
modules_prepare - Set up for building external modules
tags/TAGS - Generate tags file for editors
cscope - Generate cscope index
kernelrelease - Output the release version string
kernelversion - Output the version stored in Makefile
headers_install - Install sanitised kernel headers to INSTALL_HDR_PATH
(default: /dump/hw/oe/linux-omap-2.6/usr)
Static analysers
checkstack - Generate a list of stack hogs
namespacecheck - Name space analysis on compiled kernel
versioncheck - Sanity check on version.h usage
includecheck - Check for duplicate included header files
export_report - List the usages of all exported symbols
headers_check - Sanity check on exported headers
headerdep - Detect inclusion cycles in headers
Kernel packaging:
rpm-pkg - Build both source and binary RPM kernel packages
binrpm-pkg - Build only the binary kernel package
deb-pkg - Build the kernel as an deb package
tar-pkg - Build the kernel as an uncompressed tarball
targz-pkg - Build the kernel as a gzip compressed tarball
tarbz2-pkg - Build the kernel as a bzip2 compressed tarball
Documentation targets:
Linux kernel internal documentation in different formats:
htmldocs - HTML
pdfdocs - PDF
psdocs - Postscript
xmldocs - XML DocBook
mandocs - man pages
installmandocs - install man pages generated by mandocs
cleandocs - clean all generated DocBook files
Architecture specific targets (arm):
* zImage - Compressed kernel image (arch/arm/boot/zImage)
Image - Uncompressed kernel image (arch/arm/boot/Image)
* xipImage - XIP kernel image, if configured (arch/arm/boot/xipImage)
uImage - U-Boot wrapped zImage
bootpImage - Combined zImage and initial RAM disk
(supply initrd image via make variable INITRD=<path>)
install - Install uncompressed kernel
zinstall - Install compressed kernel
Install using (your) ~/bin/installkernel or
(distribution) /sbin/installkernel or
install to $(INSTALL_PATH) and run lilo
acs5k_defconfig - Build for acs5k
acs5k_tiny_defconfig - Build for acs5k_tiny
afeb9260_defconfig - Build for afeb9260
am200epdkit_defconfig - Build for am200epdkit
am3517_evm_defconfig - Build for am3517_evm
ams_delta_defconfig - Build for ams_delta
assabet_defconfig - Build for assabet
at572d940hfek_defconfig - Build for at572d940hfek
at91cap9adk_defconfig - Build for at91cap9adk
at91rm9200dk_defconfig - Build for at91rm9200dk
at91rm9200ek_defconfig - Build for at91rm9200ek
at91sam9260ek_defconfig - Build for at91sam9260ek
at91sam9261ek_defconfig - Build for at91sam9261ek
at91sam9263ek_defconfig - Build for at91sam9263ek
at91sam9g20ek_defconfig - Build for at91sam9g20ek
at91sam9rlek_defconfig - Build for at91sam9rlek
ateb9200_defconfig - Build for ateb9200
badge4_defconfig - Build for badge4
bcmring_defconfig - Build for bcmring
cam60_defconfig - Build for cam60
carmeva_defconfig - Build for carmeva
cerfcube_defconfig - Build for cerfcube
cm_t35_defconfig - Build for cm_t35
cm_x2xx_defconfig - Build for cm_x2xx
cm_x300_defconfig - Build for cm_x300
colibri_pxa270_defconfig - Build for colibri_pxa270
colibri_pxa300_defconfig - Build for colibri_pxa300
collie_defconfig - Build for collie
corgi_defconfig - Build for corgi
cpu9260_defconfig - Build for cpu9260
cpu9g20_defconfig - Build for cpu9g20
cpuat91_defconfig - Build for cpuat91
csb337_defconfig - Build for csb337
csb637_defconfig - Build for csb637
da8xx_omapl_defconfig - Build for da8xx_omapl
davinci_all_defconfig - Build for davinci_all
devkit8000_defconfig - Build for devkit8000
dove_defconfig - Build for dove
ebsa110_defconfig - Build for ebsa110
ecbat91_defconfig - Build for ecbat91
edb7211_defconfig - Build for edb7211
em_x270_defconfig - Build for em_x270
ep93xx_defconfig - Build for ep93xx
eseries_pxa_defconfig - Build for eseries_pxa
ezx_defconfig - Build for ezx
footbridge_defconfig - Build for footbridge
fortunet_defconfig - Build for fortunet
h3600_defconfig - Build for h3600
h5000_defconfig - Build for h5000
h7201_defconfig - Build for h7201
h7202_defconfig - Build for h7202
hackkit_defconfig - Build for hackkit
htcherald_defconfig - Build for htcherald
igep0020_defconfig - Build for igep0020
integrator_defconfig - Build for integrator
iop13xx_defconfig - Build for iop13xx
iop32x_defconfig - Build for iop32x
iop33x_defconfig - Build for iop33x
ixp2000_defconfig - Build for ixp2000
ixp23xx_defconfig - Build for ixp23xx
ixp4xx_defconfig - Build for ixp4xx
jornada720_defconfig - Build for jornada720
kafa_defconfig - Build for kafa
kb9202_defconfig - Build for kb9202
kirkwood_defconfig - Build for kirkwood
ks8695_defconfig - Build for ks8695
lart_defconfig - Build for lart
loki_defconfig - Build for loki
lpd270_defconfig - Build for lpd270
lpd7a400_defconfig - Build for lpd7a400
lpd7a404_defconfig - Build for lpd7a404
lubbock_defconfig - Build for lubbock
lusl7200_defconfig - Build for lusl7200
magician_defconfig - Build for magician
mainstone_defconfig - Build for mainstone
mini2440_defconfig - Build for mini2440
msm_defconfig - Build for msm
mv78xx0_defconfig - Build for mv78xx0
mx1ads_defconfig - Build for mx1ads
mx1_defconfig - Build for mx1
mx21_defconfig - Build for mx21
mx27_defconfig - Build for mx27
mx31pdk_defconfig - Build for mx31pdk
mx3_defconfig - Build for mx3
n770_defconfig - Build for n770
n8x0_defconfig - Build for n8x0
neocore926_defconfig - Build for neocore926
neponset_defconfig - Build for neponset
netwinder_defconfig - Build for netwinder
netx_defconfig - Build for netx
nhk8815_defconfig - Build for nhk8815
ns9xxx_defconfig - Build for ns9xxx
nuc910_defconfig - Build for nuc910
nuc950_defconfig - Build for nuc950
nuc960_defconfig - Build for nuc960
omap_2430sdp_defconfig - Build for omap_2430sdp
omap_3430sdp_defconfig - Build for omap_3430sdp
omap_3630sdp_defconfig - Build for omap_3630sdp
omap3_beagle_defconfig - Build for omap3_beagle
omap3_defconfig - Build for omap3
omap3_evm_defconfig - Build for omap3_evm
omap3_pandora_defconfig - Build for omap3_pandora
omap3_touchbook_defconfig - Build for omap3_touchbook
omap_4430sdp_defconfig - Build for omap_4430sdp
omap_apollon_2420_defconfig - Build for omap_apollon_2420
omap_generic_1510_defconfig - Build for omap_generic_1510
omap_generic_1610_defconfig - Build for omap_generic_1610
omap_generic_1710_defconfig - Build for omap_generic_1710
omap_generic_2420_defconfig - Build for omap_generic_2420
omap_h2_1610_defconfig - Build for omap_h2_1610
omap_h4_2420_defconfig - Build for omap_h4_2420
omap_innovator_1510_defconfig - Build for omap_innovator_1510
omap_innovator_1610_defconfig - Build for omap_innovator_1610
omap_ldp_defconfig - Build for omap_ldp
omap_osk_5912_defconfig - Build for omap_osk_5912
omap_perseus2_730_defconfig - Build for omap_perseus2_730
omap_zoom2_defconfig - Build for omap_zoom2
omap_zoom3_defconfig - Build for omap_zoom3
onearm_defconfig - Build for onearm
orion5x_defconfig - Build for orion5x
overo_defconfig - Build for overo
palmte_defconfig - Build for palmte
palmtt_defconfig - Build for palmtt
palmz71_defconfig - Build for palmz71
palmz72_defconfig - Build for palmz72
pcm027_defconfig - Build for pcm027
picotux200_defconfig - Build for picotux200
pleb_defconfig - Build for pleb
pnx4008_defconfig - Build for pnx4008
pxa168_defconfig - Build for pxa168
pxa255-idp_defconfig - Build for pxa255-idp
pxa3xx_defconfig - Build for pxa3xx
pxa910_defconfig - Build for pxa910
qil-a9260_defconfig - Build for qil-a9260
realview_defconfig - Build for realview
realview-smp_defconfig - Build for realview-smp
rpc_defconfig - Build for rpc
rx51_defconfig - Build for rx51
s3c2410_defconfig - Build for s3c2410
s3c6400_defconfig - Build for s3c6400
s5pc100_defconfig - Build for s5pc100
sam9_l9260_defconfig - Build for sam9_l9260
shannon_defconfig - Build for shannon
shark_defconfig - Build for shark
simpad_defconfig - Build for simpad
spitz_defconfig - Build for spitz
stmp378x_defconfig - Build for stmp378x
stmp37xx_defconfig - Build for stmp37xx
sx1_defconfig - Build for sx1
tct_hammer_defconfig - Build for tct_hammer
trizeps4_defconfig - Build for trizeps4
u300_defconfig - Build for u300
u8500_defconfig - Build for u8500
usb-a9260_defconfig - Build for usb-a9260
usb-a9263_defconfig - Build for usb-a9263
versatile_defconfig - Build for versatile
viper_defconfig - Build for viper
xcep_defconfig - Build for xcep
yl9200_defconfig - Build for yl9200
zeus_defconfig - Build for zeus
make V=0|1 [targets] 0 => quiet build (default), 1 => verbose build
make V=2 [targets] 2 => give reason for rebuild of target
make O=dir [targets] Locate all output files in "dir", including .config
make C=1 [targets] Check all c source with $CHECK (sparse by default)
make C=2 [targets] Force check of all c source with $CHECK
Execute "make" or "make all" to build all targets marked with [*]
For further info see the ./README file
|
| 4-8 | Snippet from .../arch/arm/Kconfig | 205 source "init/Kconfig" 206 207 source "kernel/Kconfig.freezer" 208 209 menu "System Type" 210 211 config MMU 212 bool "MMU-based Paged Memory Management Support" 213 default y 214 help 215 Select if you want MMU-based virtualised addressing space 216 support by paged memory management. If unsure, say 'Y'. 217 218 choice 219 prompt "ARM system type" 220 default ARCH_VERSATILE 221 222 config ARCH_AAEC2000 223 bool "Agilent AAEC-2000 based" 224 select CPU_ARM920T 225 select ARM_AMBA 226 select HAVE_CLK 227 help 228 This enables support for systems based on the Agilent AAEC-2000 |
| 4-9 | Snippet from .../arch/arm/mach-omap2/Kconfig | comment "OMAP Core Type" 2 depends on ARCH_OMAP2 3 4 config ARCH_OMAP2420 5 bool "OMAP2420 support" 6 depends on ARCH_OMAP2 7 select OMAP_DM_TIMER 8 select ARCH_OMAP_OTG |
| 4-9 | Snippet from .../arch/arm/mach-omap1/Kconfig | comment "OMAP Core Type" 2 depends on ARCH_OMAP1 3 4 config ARCH_OMAP730 5 depends on ARCH_OMAP1 6 bool "OMAP730 Based System" 7 select CPU_ARM926T 8 select ARCH_OMAP_OTG |
| 4-10 | Customized .config File Snippet | # TI OMAP Implementations 229 # 230 CONFIG_ARCH_OMAP_OTG=y 231 # CONFIG_ARCH_OMAP1 is not set 232 CONFIG_ARCH_OMAP2PLUS=y 233 # CONFIG_ARCH_OMAP2 is not set 234 CONFIG_ARCH_OMAP3=y 235 # CONFIG_ARCH_OMAP4 is not set 236 237 # 238 # OMAP Feature Selections 239 # 240 # CONFIG_OMAP_RESET_CLOCKS is not set 241 # CONFIG_OMAP_MUX is not set 242 # CONFIG_OMAP_MCBSP is not set 243 # CONFIG_OMAP_MBOX_FWK is not set 244 # CONFIG_OMAP_MPU_TIMER is not set 245 CONFIG_OMAP_32K_TIMER=y 246 # CONFIG_OMAP3_L2_AUX_SECURE_SAVE_RESTORE is not set 247 CONFIG_OMAP_32K_TIMER_HZ=128 248 CONFIG_OMAP_DM_TIMER=y 249 # CONFIG_OMAP_PM_NONE is not set 250 CONFIG_OMAP_PM_NOOP=y 251 CONFIG_ARCH_OMAP3430=y 252 CONFIG_OMAP_PACKAGE_CBB=y 253 254 # 255 # OMAP Board Type 256 # 257 CONFIG_MACH_OMAP3_BEAGLE=y 258 # CONFIG_MACH_DEVKIT8000 is not set 259 # CONFIG_MACH_OMAP_LDP is not set 260 # CONFIG_MACH_OVERO is not set 261 # CONFIG_MACH_OMAP3EVM is not set 262 # CONFIG_MACH_OMAP3517EVM is not set 263 # CONFIG_MACH_OMAP3_PANDORA is not set 264 # CONFIG_MACH_OMAP3_TOUCHBOOK is not set 265 # CONFIG_MACH_OMAP_3430SDP is not set 266 # CONFIG_MACH_NOKIA_RX51 is not set 267 # CONFIG_MACH_OMAP_ZOOM2 is not set 268 # CONFIG_MACH_OMAP_ZOOM3 is not set 269 # CONFIG_MACH_CM_T35 is not set 270 # CONFIG_MACH_IGEP0020 is not set 271 # CONFIG_MACH_OMAP_3630SDP is not set 272 # CONFIG_OMAP3_EMU is not set 273 # CONFIG_OMAP3_SDRC_AC_TIMING is not set |
| 4-11 | Makefile from .../arch/arm/mach-omap2 Kernel Subdirectory | 2 # Makefile for the linux kernel. 3 # 4 5 # Common support 6 obj-y := id.o io.o control.o mux.o devices.o serial.o gpmc.o timer-gp.o 7 8 omap-2-3-common = irq.o sdrc.o 9 hwmod-common = omap_hwmod.o \ 10 omap_hwmod_common_data.o 11 prcm-common = prcm.o powerdomain.o 12 clock-common = clock.o clock_common_data.o \ 13 clockdomain.o clkt_dpll.o \ 14 clkt_clksel.o 15 16 obj-$(CONFIG_ARCH_OMAP2) += $(omap-2-3-common) $(prcm-common) $(hwmod-common ) 17 obj-$(CONFIG_ARCH_OMAP3) += $(omap-2-3-common) $(prcm-common) $(hwmod-common ) 18 obj-$(CONFIG_ARCH_OMAP4) += $(prcm-common) 19 20 obj-$(CONFIG_OMAP_MCBSP) += mcbsp.o |
Chapter 5 Listings
| Number | Caption | Listing |
|---|---|---|
| 5-2 | Assembly File piggy.gzip.S | .section .piggydata,#alloc 2 .globl input_data 3 input_data: 4 .incbin "arch/arm/boot/compressed/piggy.gzip" 5 .globl input_data_end 6 input_data_end: |
| 5-4 | Console Setup Code Snippet |
/*
838 * Set up a list of consoles. Called from init/main.c
839 */
840 static int __init console_setup(char *str)
841 {
842 char buf[sizeof(console_cmdline[0].name) + 4]; /* 4 for index */
843 char *s, *options, *brl_options = NULL;
844 int idx;
845
887 return 1;
888 }
889 __setup("console=", console_setup);
|
| 5-5 | Family of _setup Macro Definitions from init.h |
#define __setup_param(str, unique_id, fn, early) \
231 static const char __setup_str_##unique_id[] __initconst \
232 __aligned(1) = str; \
233 static struct obs_kernel_param __setup_##unique_id \
234 __used __section(.init.setup) \
235 __attribute__((aligned((sizeof(long))))) \
236 = { __setup_str_##unique_id, fn, early }
237
238 #define __setup(str, fn) \
239 __setup_param(str, fn, fn, 0)
|
| 5-6 | Kernel Command Line Processing |
204 extern struct obs_kernel_param __setup_start[], __setup_end[];
205
206 static int __init obsolete_checksetup(char *line)
207 {
208 struct obs_kernel_param *p;
209 int had_early_param = 0;
210
211 p = __setup_start;
212 do {
213 int n = strlen(p->str);
214 if (!strncmp(line, p->str, n)) {
215 if (p->early) {
216 /* Already done in parse_early_param?
217 * (Needs exact match on param part).
218 * Keep iterating, as we can have early
219 * params and __setups of same names 8( */
220 if (line[n] == '\0' || line[n] == '=')
221 had_early_param = 1;
222 } else if (!p->setup_func) {
223 printk(KERN_WARNING "Parameter %s is obsolete,"
224 " ignored\n", p->str);
225 return 1;
226 } else if (p->setup_func(line + n))
227 return 1;
228 }
229 p++;
230 } while (p < __setup_end);
231
232 return had_early_param;
233 }
|
| 5-7 | Example Initialization Routine |
655 static int __init customize_machine(void)
656 {
657 /* customizes platform devices, or adds new ones */
658 if (init_machine)
659 init_machine();
660 return 0;
661 }
662 arch_initcall(customize_machine);
|
| 5-8 | initcall Family of Macros |
#define __define_initcall(level,fn,id) \
171 static initcall_t __initcall_##fn##id __used \
172 __attribute__((__section__(".initcall" level ".init"))) = fn
173
174 /*
175 * Early initcalls run before initializing SMP.
176 *
177 * Only for built-in code, not modules.
178 */
179 #define early_initcall(fn) __define_initcall("early",fn,early)
180
181 /*
182 * A "pure" initcall has no dependencies on anything else, and purely
183 * initializes variables that couldn't be statically initialized.
184 *
185 * This only exists for built-in code, not for modules.
186 */
187 #define pure_initcall(fn) __define_initcall("0",fn,0)
188
189 #define core_initcall(fn) __define_initcall("1",fn,1)
190 #define core_initcall_sync(fn) __define_initcall("1s",fn,1s)
191 #define postcore_initcall(fn) __define_initcall("2",fn,2)
192 #define postcore_initcall_sync(fn) __define_initcall("2s",fn,2s)
193 #define arch_initcall(fn) __define_initcall("3",fn,3)
194 #define arch_initcall_sync(fn) __define_initcall("3s",fn,3s)
195 #define subsys_initcall(fn) __define_initcall("4",fn,4)
196 #define subsys_initcall_sync(fn) __define_initcall("4s",fn,4s)
197 #define fs_initcall(fn) __define_initcall("5",fn,5)
198 #define fs_initcall_sync(fn) __define_initcall("5s",fn,5s)
199 #define rootfs_initcall(fn) __define_initcall("rootfs",fn,rootfs)
200 #define device_initcall(fn) __define_initcall("6",fn,6)
201 #define device_initcall_sync(fn) __define_initcall("6s",fn,6s)
202 #define late_initcall(fn) __define_initcall("7",fn,7)
203 #define late_initcall_sync(fn) __define_initcall("7s",fn,7s)
204
205 #define __initcall(fn) device_initcall(fn)
|
| 5-9 | Creation of Kernel init Thread |
static noinline void __init_refok rest_init(void)
425 __releases(kernel_lock)
426 {
427 int pid;
428
429 rcu_scheduler_starting();
430 kernel_thread(kernel_init, NULL, CLONE_FS | CLONE_SIGHAND);
431 numa_default_policy();
432 pid = kernel_thread(kthreadd, NULL, CLONE_FS | CLONE_FILES);
433 rcu_read_lock();
434 kthreadd_task = find_task_by_pid_ns(pid, &init_pid_ns);
435 rcu_read_unlock();
436 unlock_kernel();
437
438 /*
439 * The boot idle thread must execute schedule()
440 * at least once to get things moving:
441 */
442 init_idle_bootup_task(current);
443 preempt_enable_no_resched();
444 schedule();
445 preempt_disable();
446
447 /* Call into cpu_idle with preempt disabled */
448 cpu_idle();
449 }
|
| 5-10 | Initialization via initcalls |
765 extern initcall_t __initcall_start[], __initcall_end[], __early_initcall_end[];
766
767 static void __init do_initcalls(void)
768 {
769 initcall_t *fn;
770
771 for (fn = __early_initcall_end; fn < __initcall_end; fn++)
772 do_one_initcall(*fn);
773
774 /* Make sure there is no pending stuff from the initcall sequence */
775 flush_scheduled_work();
776 }
|
| 5-11 | Final Kernel Boot Steps from main.c |
814 static noinline int init_post(void)
815 __releases(kernel_lock)
816 {
817 /* need to finish all async __init code before freeing the memory */
818 async_synchronize_full();
819 free_initmem();
820 unlock_kernel();
821 mark_rodata_ro();
822 system_state = SYSTEM_RUNNING;
823 numa_default_policy();
824
825
826 current->signal->flags |= SIGNAL_UNKILLABLE;
827
828 if (ramdisk_execute_command) {
829 run_init_process(ramdisk_execute_command);
830 printk(KERN_WARNING "Failed to execute %s\n",
831 ramdisk_execute_command);
832 }
833
834 /*
835 * We try each of these until one succeeds.
836 *
837 * The Bourne shell can be used instead of init if we are
838 * trying to recover a really broken machine.
839 */
840 if (execute_command) {
841 run_init_process(execute_command);
842 printk(KERN_WARNING "Failed to execute %s. Attempting "
843 "defaults...\n", execute_command);
844 }
845 run_init_process("/sbin/init");
846 run_init_process("/etc/init");
847 run_init_process("/bin/init");
848 run_init_process("/bin/sh");
849
850 panic("No init found. Try passing init= option to kernel. "
851 "See Linux Documentation/init.txt for guidance.");
852 }
|
Chapter 6 Listings
| Number | Caption | Listing |
|---|---|---|
| 6-2 | Final Boot Steps from main.c |
if (execute_command) {
841 run_init_process(execute_command);
842 printk(KERN_WARNING "Failed to execute %s. Attempting "
843 "defaults...\n", execute_command);
844 }
845 run_init_process("/sbin/init");
846 run_init_process("/etc/init");
847 run_init_process("/bin/init");
848 run_init_process("/bin/sh");
849
850 panic("No init found. Try passing init= option to kernel. "
851 "See Linux Documentation/init.txt for guidance.");
|
| 6-4 | Runlevel Directory Structure | lipscojl@Kratos:/etc$ ls -dl rc* drwxr-xr-x 2 root root 4096 2010-03-09 21:35 rc0.d drwxr-xr-x 2 root root 4096 2010-03-09 21:35 rc1.d drwxr-xr-x 2 root root 4096 2010-03-09 21:35 rc2.d drwxr-xr-x 2 root root 4096 2010-03-09 21:35 rc3.d drwxr-xr-x 2 root root 4096 2010-03-09 21:35 rc4.d drwxr-xr-x 2 root root 4096 2010-03-09 21:35 rc5.d drwxr-xr-x 2 root root 4096 2010-03-09 21:35 rc6.d -rwxr-xr-x 1 root root 306 2008-08-24 14:34 rc.local drwxr-xr-x 2 root root 4096 2010-03-09 00:51 rcS.d |
| 6-5 | Example Runlevel Directory | lipscojl@Kratos:/etc$ ls -ls rc5.d/ total 4 4 -rw-r--r-- 1 root root 556 2008-08-12 10:09 README 0 lrwxrwxrwx 1 root root 18 2008-08-24 14:34 S10sysklogd -> ../init.d/sysklogd 0 lrwxrwxrwx 1 root root 15 2008-08-24 14:34 S11klogd -> ../init.d/klogd 0 lrwxrwxrwx 1 root root 15 2008-08-24 14:35 S12acpid -> ../init.d/acpid 0 lrwxrwxrwx 1 root root 14 2008-08-24 14:46 S12dbus -> ../init.d/dbus 0 lrwxrwxrwx 1 root root 22 2009-02-03 11:39 S14avahi-daemon -> ../init.d/avahi-daem on 0 lrwxrwxrwx 1 root root 14 2008-08-29 20:58 S15bind -> ../init.d/bind 0 lrwxrwxrwx 1 root root 15 2008-09-02 14:27 S15bind9 -> ../init.d/bind9 0 lrwxrwxrwx 1 root root 13 2008-08-24 15:46 S16ssh -> ../init.d/ssh 0 lrwxrwxrwx 1 root root 23 2008-08-29 21:08 S17mysql-ndb-mgm -> ../init.d/mysql-ndb -mgm 0 lrwxrwxrwx 1 root root 19 2008-08-29 21:08 S18mysql-ndb -> ../init.d/mysql-ndb 0 lrwxrwxrwx 1 root root 15 2008-08-29 21:08 S19mysql -> ../init.d/mysql 0 lrwxrwxrwx 1 root root 14 2008-09-02 14:51 S20dhcp -> ../init.d/dhcp 0 lrwxrwxrwx 1 root root 15 2008-08-24 14:40 S20exim4 -> ../init.d/exim4 0 lrwxrwxrwx 1 root root 20 2008-08-25 09:50 S20fancontrol -> ../init.d/fancontrol 0 lrwxrwxrwx 1 root root 17 2008-08-25 09:50 S20hddtemp -> ../init.d/hddtemp 0 lrwxrwxrwx 1 root root 25 2008-08-24 16:37 S20inetutils-inetd -> ../init.d/inetuti ls-inetd 0 lrwxrwxrwx 1 root root 20 2008-08-24 14:40 S20nfs-common -> ../init.d/nfs-common 0 lrwxrwxrwx 1 root root 27 2008-09-03 00:59 S20nfs-kernel-server -> ../init.d/nfs-k ernel-server 0 lrwxrwxrwx 1 root root 23 2008-08-24 14:40 S20openbsd-inetd -> ../init.d/openbsd-i netd 0 lrwxrwxrwx 1 root root 14 2010-02-12 16:30 S20pimd -> ../init.d/pimd 0 lrwxrwxrwx 1 root root 25 2008-08-24 14:40 S20policycoreutils -> ../init.d/policyc oreutils 0 lrwxrwxrwx 1 root root 15 2010-03-09 21:35 S20rsync -> ../init.d/rsync 0 lrwxrwxrwx 1 root root 15 2008-09-02 14:26 S20samba -> ../init.d/samba 0 lrwxrwxrwx 1 root root 23 2008-08-28 13:54 S20smartmontools -> ../init.d/smartmont ools 0 lrwxrwxrwx 1 root root 17 2009-12-06 18:23 S20vboxdrv -> ../init.d/vboxdrv 0 lrwxrwxrwx 1 root root 16 2009-01-04 02:15 S20xinetd -> ../init.d/xinetd 0 lrwxrwxrwx 1 root root 13 2009-12-06 18:23 S21fam -> ../init.d/fam 0 lrwxrwxrwx 1 root root 13 2008-08-24 15:54 S23ntp -> ../init.d/ntp 0 lrwxrwxrwx 1 root root 13 2009-01-04 09:41 S24hal -> ../init.d/hal 0 lrwxrwxrwx 1 root root 15 2008-08-24 14:54 S25mdadm -> ../init.d/mdadm 0 lrwxrwxrwx 1 root root 25 2008-09-03 00:56 S25nfs-user-server -> ../init.d/nfs-use r-server 0 lrwxrwxrwx 1 root root 22 2009-09-06 17:46 S40dhcp3-server -> ../init.d/dhcp3-serv er 0 lrwxrwxrwx 1 root root 24 2008-08-29 21:08 S40mythtv-backend -> ../init.d/mythtv-b ackend 0 lrwxrwxrwx 1 root root 17 2008-09-02 20:22 S41apcupsd -> ../init.d/apcupsd 0 lrwxrwxrwx 1 root root 13 2008-08-24 14:40 S89atd -> ../init.d/atd 0 lrwxrwxrwx 1 root root 14 2008-08-24 14:34 S89cron -> ../init.d/cron 0 lrwxrwxrwx 1 root root 17 2008-08-24 15:45 S91apache2 -> ../init.d/apache2 0 lrwxrwxrwx 1 root root 18 2009-02-27 12:58 S99fail2ban -> ../init.d/fail2ban 0 lrwxrwxrwx 1 root root 18 2008-08-24 14:34 S99rc.local -> ../init.d/rc.local 0 lrwxrwxrwx 1 root root 19 2008-08-24 14:34 S99rmnologin -> ../init.d/rmnologin 0 lrwxrwxrwx 1 root root 21 2008-09-03 00:37 S99shorewall -> /etc/init.d/shorewall 0 lrwxrwxrwx 1 root root 23 2008-08-24 14:34 S99stop-bootlogd -> ../init.d/stop-boot logd 0 lrwxrwxrwx 1 root root 18 2008-08-24 14:53 S99webmin -> /etc/init.d/webmin |