안녕하세요..

커널의 arch/arm/tools/mach-types 의 내용을 보시면 해당 보드의 아키텍쳐번호와 장비의 이름, Config, MACH_TYPE이 정의 되어 있습니다. 커널 내부에서 이 정보로 타겟보드에 맞게 커널을 수정할 수 있습니다. 즉, 이것이 없다면 수많은 보드들의 다른 정보를 커널에 전부 넣을 수 없겠지요.. 소스상에서 공통부분은 그대로 사용하고 나머지 타겟보드에 맞게 수정할 수 있는 것입니다.

예로 커널의 arch/arm/kernel/setup.c 내용을 보시면 다음의 내용이 있습니다.

     38    #if defined(CONFIG_ARCH_PXA_EZ_X5)
     39
     40    typedef struct
     41   {
     42       unsigned long MagicNumber;
     43       unsigned char MagicStr[8];
     44      unsigned char CommandLine[512];
     45   } TBootLoaderParam;
     46
     47   #endif
     48
     49
     50   #if defined(CONFIG_FPE_NWFPE) || defined(CONFIG_FPE_FASTFPE)
     51   char fpe_type[8];

여기서  #if defined(CONFIG_ARCH_PXA_EZ_X5) 이 부분이 타겟보드에서 만 사용되는 부분을 정의해 놓은 것입니다. setup.c 파일을 다른 보드들도 모두 공유는 소스이지만 특정부분을 타겟보드에 맞추고자 할 경우에 사용됩니다. 이것이 커널 전반적인 부분에 적용하기 위해서 mach-types이라는 파일에 정의해 놓을 것입니다.
또한 make menuconfig 옵션에 사용되는 부분도 이 아키텍쳐를 사용합니다.

# vi arch/arm/config.in

   153    if [ "$CONFIG_ARCH_PXA_EZ_X5" = "y" ]; then
   154        choice 'EZ-X5 RAM Available'
   155            "128MB-2Bank CONFIG_RAM128B2_EZ_X5
   156             64MB-2Bank CONFIG_RAM64B2_EZ_X5
   157             64MB-1Bank CONFIG_RAM64B1_EZ_X5
   158             32MB-1Bank CONFIG_RAM32B1_EZ_X5" 64MB-1Bank
   159        choice 'EZ-X5 FF-UART Available'
   160             "Full-Function CONFIG_FF_UART_FULL  

153라인에서 사용된것을 보실 수 있습니다..

커널에서 그렙으로 ARCH_PXA_EZ_X5 해 보세면 포팅된 부분들을 찾을 수 있을것입니다.

참고) 이 아케텍쳐는
         http://www.arm.linux.org.uk/developer/machines/
        사이트에 가시면 확인할 수 있으면 여기에 new machine type 등록을 하시면 최신 커널에 추가됩니다.
        제공되는 커널 2.4.19에는 보드 등록을 하지 않았기 때문에 임의로 사용하고 있습니다.
        하지만 커널 2.6대의 최신 버젼에서는 등록이 되어 있는 상태입니다.
       (  785      EZ-X5 FALinux(PXA255)     ez_x5      you youngchang  )


그럼 수고하세요..




>가 의미하는 것이 정확이 무엇인지 모르겠습니다. 왜 이 정보를 커널에게 알려줘야하는지에 대해서도 책에서 소개했으면 좋았을 것을^^(궁금증이 생겨서요) 이지보드는 303이라고 하는데 627은 또 어떤 보드를 말하는 건지도 궁금합니다.
>
>여기에 대한 정보는 도통 찾아 볼 수 가 없는 것 같습니다. 도와주세요~~~