入口
    OF 1/2 の場合
    OF 3 の場合
      設置後すぐ
      CDROM 無で
    Mac OS の場合
    その他
  NetBSD
  Booting Media
Primary
  bootxx
Secondary
  xcf/elf
    release(7)
    /usr/mdec
ofwboot
  Locore.c
  boot.c
    main()
    boot-file
    chain()
    OF_chain()
kernel(1)
  locore.S
  machdep.c
    initppc()
kernel(2)
  init_main.c
    main()
その他
  installboot
    旧版
    新版
    実例
  DEFAULT CATCH
GENERIC_MD
  mdsetimage

NetBSD/macppc booting

OF_chain()

OF_chain は sys/arch/macppc/stand/ofwboot/Locore.c の中に次のように書いてある
511 #ifdef  __notyet__
....
542 #else
543 void
544 OF_chain(virt, size, entry, arg, len)
545         void *virt;
546         u_int size;
547         void (*entry)();
548         void *arg;
549         u_int len;
550 {
551         /*
552          * This is a REALLY dirty hack till the firmware gets this going
553          */
554 #if 0
555         OF_release(virt, size);
556 #endif
557         entry(0, 0, openfirmware, arg, len);
558 }
559 #endif
ここで entry は、(boot.c -> main で呼出された) loadfile から引続き渡されて来たもの。 kernel の ELF の見出し部分(header) に書いてあるものが loadfile で読まれている。 この値としては、 例えば
0x10000  通常の場合
0x80000  GENERIC_MD などの Memory Disk の場合
などが入っている。 config GENERIC とした後で、 compile/GENERIC/Makefile を見ると
 64 ##
 65 ## (5) link settings
 66 ##
 67 TEXTADDR?=      0x100000
 68 LINKFORMAT=     -N
 69 ENTRYPOINT=     __start
のように書いあるのがそれである
Last Update: Fri, 03 May 2019 15:45:20 GMT 1.66 2008/03/08