· KLDP.org · KLDP.net · KLDP Wiki · KLDP BBS ·
SKKU2006

1. u-boot porting to PXA270

1.1. ÀÌ ¹®¼­ÀÇ ¸ñÀû

ÀÌ ¹®¼­´Â ±è±â¿À´ÔÀÇ U-boot 1.1.2 Porting Guide to PXA270À» Âü°íÇÏ¿© ½ÇÁ¦·Î pxa270 º¸µå¿¡ u-boot¸¦ Æ÷Æà ÀÛ¾÷À» ÇÏ´Â °úÁ¤À» ¸Þ¸ðÇÑ °ÍÀÔ´Ï´Ù. ÇöÀç ÁøÇàÁßÀÔ´Ï´Ù.

1.2. START

  • u-boot-1.1.4ÀÇ lubbock board¸¦ ¼öÁ¤ÇÏ¿© pxa270 ¼³Á¤ÆÄÀϵéÀ» »ý¼º.
  • boot.bin ÆÄÀÏ »ý¼º ¼º°ø
  • ±×·¯³ª lubbock´Â pxa250À» »ç¿ëÇϹǷΠ³»°¡ »ç¿ëÇÒ pxa270 SKKUº¸µå¿Í´Â Â÷ÀÌ°¡ ÀÖ´Ù.
    • ¸Þ¸ð¸® ¸Ê ¼³Á¤, ¸Þ¸ð¸® ÄÁÆ®·Ñ·¯ ¼³Á¤, ³×Æ®¿öÅ© µð¹ÙÀ̽º ¼³Á¤ ¼öÁ¤
    • ÇÁ·Î¼¼¼­ ¼Óµµ°¡ »¡¶óÁ³°í ¸Þ¸ð¸® Ŭ·°µµ »¡¶óÁ³À¸¹Ç·Î Ŭ·°°ü·Ã ÄÚµå ¼öÁ¤

1.3. 2006.03.03

  • Äڵ带 ¼öÁ¤Çϱ⿡ ¾Õ¼­ Çϵå¿þ¾î¿¡ °üÇÑ ÀÌÇØ°¡ ±âº»µÇ¾î¾ß ÇÔ.
    • ÂüÁ¶ : PXA27x Processor Family Developer's Manual
    • SDRAM : K4S561632C_TL75(64MByte = 32MByte X 2)
      ½ÃÀÛÁÖ¼Ò0xa400 0000
      Å©±â 64MByte
      • ¼Óµµ¼³Á¤ : PXA270Àº ÃÖ´ë 104MHzÀÇ ¸Þ¸ð¸® Ŭ·°À» Áö¿ø
      • ÇÁ·Î¼¼¼­´Â 520MHzÀÇ Åͺ¸¸ðµå°¡ µÇ¾î¾ß ÇÏ°í ½Ã½ºÅÛ¹ö½º´Â 208MHz
      • ¸Þ¸ð¸® ÄÁÆ®·Ñ·¯¿¡ ÀԷµǴ Ŭ·°ÀÌ 208MHz°¡ µÇ¾î¾ß SDRAMŬ·°ÀÌ 104MHz
    • Ç÷¡½Ã ¸Þ¸ð¸®
    • ÇÁ·Î¼¼¼­ÀÇ ¼Óµµ
  • ¼³¸íÀ» ºÁµµ ¹«½¼ ¼Ò¸®ÀÎÁö Àß ¸ð¸£°ÚÁö¸¸ ÀÏ´Ü ÄÚµå¼öÁ¤Çϸ鼭 ÀÌÇØÇϵµ·Ï ÇÑ´Ù.

1.3.1. include/configs/skku.h

  • ÀÌ ÆÄÀÏÀ» ÀÌÇØÇϱâ À§ÇØ ºêÆ®·Î´õ ¼Ò½º¿¡ ÀÖ´Â README¸¦ Àо´Ù.
  • Àǹ®Á¡
    • ¿Ö Ä¿³ÎÀÌ ·ÎµåµÉ ÁÖ¼Ò°¡ 0xa4008000 ~ 0xa4080000Àΰ¡?
      • SDRAMÀÇ ½ÃÀÛÁÖ¼Ò´Â 0xa4000000Àε¥ ARM°è¿­ ÇÁ·Î¼¼¼­¿¡¼­´Â ¹Ýµå½Ã SDRAMÀÇ ½ÃÀÛ ¹°¸®ÁÖ¼Ò + 0x8000À¸·Î ÇؾßÇÑ´Ù.
  • ¼öÁ¤¿Ï·á

1.3.2. ÃʱâÈ­ ÄÚµå ¼öÁ¤Çϱâ

  • board/skku/memsetup.S : ¸Þ¸ð¸® ÄÁÆ®·Ñ·¯ ¼³Á¤.
    • SDRAM¼Óµµ, ¸®ÇÁ·¹½Ã ÁÖ±â, Ç÷¡½Ã ¸Þ¸ð¸® µ¿ÀÛ ¼³Á¤
  • board/skku/skku.c : ƯÁ¤ º¸µå¿¡ ¸Â´Â Çϵå¿þ¾î ¼³Á¤
    • Ä¿³Î¿¡ ³Ñ±â±â À§ÇÑ ºÎÆà ÆĶó¹ÌÅÍÀÇ ÁÖ¼Ò ¼³Á¤
    • SDRAMÀÇ ½ÃÀÛ ÁÖ¼Ò¿Í Å©±â¸¦ ¼³Á¤(ARM¿ë ¸®´ª½ºÄ¿³Î¿¡¼­´Â SDRAM½ÃÀÛÁÖ¼Ò + 0x100¹øÁö¿¡)
  • board/skku/flash.c : º¸µå¿¡¼­ »ç¿ëÇÏ´Â Ç÷¡½Ã ¸Þ¸ð¸®ÀÇ µ¿ÀÛ¿¡ °ü·ÃµÈ ÇÔ¼öµé
    • u-boot¿¡¼­´Â flash_init, flash_erase, flash_print_info, write_buff¸¦ °øÅëÀ¸·Î ÀÛ¼º
    • common/flash.c & common/cmd_flash.c¿¡¼­ ÇÔ¼ö »ç¿ë
  • cpu/pxa270/start.S : ÇÁ·Î¼¼¼­ÀÇ ¼Óµµ¼³Á¤°ú SDRAMÀ¸·Î ºÎÆ®·Î´õ ÀÚ½ÅÀ» º¹»ç

  • ½ÇÇà¼ø¼­
    • start.S¿¡¼­ memsetup.S È£Ãâ, ¸Þ¸ð¸® ÄÁÆ®·Ñ·¯ ¼³Á¤
    • ºÎÆ®·Î´õ ÀÚ½ÅÀ» SDRAMÀ¸·Î º¹»çÇÏ°í SDRAMÀ¸·Î Á¡ÇÁ.
    • lib_arm/board.cÀÇ start_armbootÇÔ¼ö°¡ ½ÇÇà
    • include/configs/skku.h¿¡¼­ ¼³Á¤ÇÑ ³»¿ë¿¡ µû¶ó ³ª¸ÓÁö Çϵå¿þ¾îµé¿¡ ´ëÇÑ ¼³Á¤
    • »ç¿ëÀÚÀÇ ¸í·É ´ë±â
    • »ç¿ëÀÚ°¡ Ä¿³ÎÀ» ·ÎµåÇϵµ·Ï ¸í·É
    • lib_arm/armlinux.c¿¡ ÀÖ´Â do_bootm_linuxÇÔ¼ö°¡ È£Ãâ
    • Ä¿³Î À̹ÌÁö¸¦ ·ÎµåÇÏ°í Ä¿³Î·Î Á¡ÇÁÇÑ´Ù.

1.3.2.1. cpu/pxa270/start.S

.globl _start
_start:
    b    reset
ÀÌ ºÎºÐÀº ÆÄÀÏÀÇ ½ÃÀÛ ÁöÁ¡À¸·Î ¹°¸®ÀûÀ¸·Î 0x00000000¹øÁö¿¡ ³õÀÌ°Ô µÈ´Ù. 0x00000000¹øÁö¿¡´Â Ç÷¡½¬ ¸Þ¸ð¸®°¡ ³õ¿© ÀÖ´Ù. Áï, _start ÁöÁ¡ÀÌ 0x00000000 ¹øÁö¿¡ ³õÀÌ°Ô µÇ¸ç, "b reset" ¸í·É¾î´Â 0x00000000 ¹øÁö¿¡ ³õÀÌ´Â ÃÖÁ¶ÀÇ ¸í·É¾î°¡ µÈ´Ù. ÀÌ ¸í·É¾î¿¡ ÀÇÇØ CPU´Â reset À§Ä¡·Î ¶Ú´Ù. ".globl _start"¿¡¼­ .globlÀº Àüü ¸ñÀû ÆÄÀÏÀ» ¸µÅ©ÇÒ ¶§ _start ½É¹úÀ» ¸µÄ¿,·Î´õ°¡ º¼¼ö ÀÖµµ·Ï ÇÏ´Â ¿ªÈ°À» ÇÑ´Ù.

    .balignl 16,0xdeadbeef
ÀÌ ºÎºÐÀº ´ÙÀ½¿¡ ¿Ã Äڵ带 16 ¹ÙÀÌÆ® °æ°è(¹ÙÀδõ¸®ÀÎÁö ¸ðÀÎÁö, word´ÜÀ§·Î ¸ÂÃߴ°Í)¿¡ ³õ°í Áß°£¿¡ ºñ°Ô µÇ´Â ºÎºÐÀ» 4¹ÙÀÌÆ® Å©±âÀÇ 0xdeadbeef°ªÀ¸·Î ä¿ì¶ó´Â ¾î¼Àºí·¯ Áö½Ã¾î.
reset:
    mrs r0,cpsr      
    bic r0,r0,#0x1f
    orr r0,r0,#0xd3
    msr cpsr,r0
¿©±â´Â cpsr ·¹Áö½ºÅÍÀÇ °ªÀ» r0 ·¹Áö½ºÅÍ·Î Àоî¿ÂÈÄ, r0 ·¹Áö½ºÅÍÀÇ ÇÏÀ§ ´Ù¼¸ ºñÆ®¸¦ ÀÌÁø¼ö 00000À¸·Î ä¿ì°í ´Ù½Ã ÇÏÀ§ 5 ºñÆ®¿Í 5,6,7¹ø ºñÆ®¸¦ ÀÌÁø¼ö 11010011(0xd3) °ªÀ¸·Î ä¿îÈÄ, ¼öÁ¤ÇÑ r0 ·¹Áö½ºÅÍÀÇ °ªÀ» cpsr ·¹Áö½ºÅÍ¿¡ ¾²´Â ºÎºÐÀÌ´Ù. ÀÌ ºÎºÐÀº CPU¸¦ SVC32 mode·Î ÀüȯÀ» Çϸç, IRQ¿Í FIQ¸¦ ²ô´Â ¿ªÈ°À» ÇÑ´Ù.

1.4. 2006.03.04

  • start.S ÄÚµå ¼öÁ¤ ¿Ï·á.

1.4.1. board/skku/memsetup.S

  • u-boot°¡ ¹öÀü¾÷ÀÌ µÇ¸é¼­ memsetup.S°¡ lowlevel_init.S·Î ÆÄÀϸíÀÌ º¯°æ됬À½. ÇÏÁö¸¸ ÄÚµåÀÇ ³»¿ëÀº Àü°ú µ¿ÀÏ.
  • Äڵ带 ±×´ë·Î µû¶ó¼­ ¼öÁ¤¸¸ ÇÏ´Â °ÍÀÌ ¾Æ´Ï¶ó ¿Ö ÀÌ·± ½ÄÀ¸·Î ¼³Á¤ÀÌ µÇ´ÂÁö ÀÌÇØ°¡ ÇÊ¿ä. ÀÏ´Ü ¸Þ´º¾óÀ» º¸°í ÀÖÀ¸³ª ÀÌÇØ°¡ ¾È°¨.
  • ¸Þ¸ð¸®¸¦ ¼ÂÆÃÇϴµ¥ À־ SDRAM°ú FlashÀÇ Á¤È®ÇÑ µ¿ÀÛ¿ø¸®¿¡ ´ëÇÑ ÀÌÇØ°¡ ÇÊ¿äÇÔ.

1.4.1.1. Synchronous DRAM

Synchronous DRAM?
  • SDRAMÀº cpuÀÇ Å¸Àֿ̹¡ ¸ÂÃß¾î µ¿±âÈ­µÇµµ·Ï µðÀÚÀÎµÈ ÃÖÃÊÀÇ DRAM ±â¼úÀÌ´Ù. SDRAMÀº ±Ô°Ý SDRAM Äھ ¹ÙÅÁÀ¸·Î Çß°í, ±Ô°Ý DRAM°ú À¯»çÇÏ°Ô ÀÛµ¿ÇÏÁö¸¸, À̵éÀ» Çõ½ÅÀûÀ¸·Î ¸¸µå´Â ¸î°¡ÁöÀÇ ±¸º°µÇ´Â Ư¡µéÀ» °¡Áö°í ÀÖ´Ù.
    • Synchoronous Operation : Æò¹üÇÏ°í AsynchronousÀÎ DRAM°ú ´Þ¸® SDRAMÀº ¸¶ÀÌÅ©·ÎÇÁ·Î¼¼¼­ÀÇ ´Ü°èº° ¿î¿ëÀ» Á¶Á¤ÇÏ´Â ½Ã½ºÅÛ Å¬·°ÀÌ SDRAM¿î¿ëÀ» Á¶Á¤ÇÒ ¼ö ÀÖ°Ô Å¬·° ÀÔ·ÂÀÌ µÇ¾îÀÖ´Ù. ÀÌ°ÍÀº ¸Þ¸ð¸® ÄÜÆ®·Ñ·¯°¡ ¾ðÁ¦ ¿äûÇÑ Á¤º¸°¡ ¿Ï·áµÇ¾ú´Â°¡ÀÇ Á¤È®ÇÑ Å¬·° »çÀÌŬÀ» ¾Ë°í ÀÖ´Ù´Â °ÍÀ» ÀǸ¶ÇÑ´Ù. ÀÌ°ÍÀ¸·Î ÀÎÇØ, ÇÁ·Î¼¼¼­°¡ ¸Þ¸ð¸® ¿¢¼¼½º µ¿¾È ±â´Ù¸®´Â °ÍÀ» ¾ø¾Ö ÁØ´Ù.
    • ½ÇÁ¦·Î SKKU board¿¡¼­µµ PXA270¿¡¼­ SDCLK1À» SDRAM¿¡ °ø±ÞÇؼ­ SDRAMÀÇ ¼Óµµ¸¦ Á¶Á¤ÇÑ´Ù.
  • SDRAM Interface
    • CLK : clock ÇÁ·Î¼¼¼­¿¡¼­ »ý¼º
    • CLK : clock enable
    • nCS : chip selector
    • A0:A12 : addresss
    • BA0:BA1 : bank address
    • DQ0:DQ15 : data
    • nRAS : Row Strobe
    • nCAS : Column Strobe
    • nWE : write enable
    • DQM : DQ input/output Mask
  • »ç½Ç ÇÁ·Î¼¼¼­¿¡ SDRAM ÄÁÆ®·Ñ·¯°¡ ÀÖ¾î º¹ÀâÇÑ ³»ºÎ µ¿ÀÛÀº ¾Ë¾Æ¼­ ó¸®ÇØÁØ´Ù. ÇÁ·Î¼¼¼­¿¡´Â ÀÌ SDRAM ÄÁÆ®·Ñ·¯¸¦ Á¦¾îÇÏ´Â ½Ã½ºÅÛ ·¹Áö½ºÅÍ°¡ ÀÖ°í ÀÌ ·¹Áö½ºÅ͸¦ Á¶ÀÛÇÏ´Â ¹ýÀ» ¾Ë¾Æ¾ß ÇÑ´Ù.
1.4.1.1.1. SDRAM ¾îµå·¹½Ì ±âº»¿ø¸®
  • column address, row address, bank address°¡ (x, y, z)°¡ µÇ¾î Á÷À°¸éüÀÇ ¾î´À ÇÑ°÷(=1Byte)¸¦ ÁöÁ¤ÇÏ°Ô µÈ´Ù. ±×¸®°í column°ú row µÎ ÁÖ¼Ò¸¦ ½Ã°£ Â÷À̸¦ µÎ¾î A0:A12 ÇÉ¿¡´Ù°¡ ½Ç¾îÁÖ°í(À̸¦ À§ÇØ RAS,CAS°¡ ÀÖ´Ù.) bank address´Â 2ÇÉÀÌ´Ï, BA0, BA1À» »ç¿ëÇÏ´Â °ÍÀÌ´Ù.
  • µ¿ÀÛ¼ø¼­´Â nCS¿Í RAS½ÅÈ£¸¦ È°¼ºÈ­ ½ÃÄѼ­ Row Address¸¦ ÁÖ¼Ò¹ö½º¿¡ ½Ç¾îÁØ´Ù. ±× ´ÙÀ½ RAS¸¦ ºñÈ°¼ºÈ­ ½ÃÅ°°í CAS½ÅÈ£¸¦ È°¼ºÈ­ ½ÃÅ°°í, Àб⳪ ¾²±â µ¿ÀÛ¿¡ µû¶ó¼­ nWE½ÅÈ£¸¦ ÁÖ¸é µÇ´Â °ÍÀÌ´Ù. °á±¹, ¿øÇϴ ƯÁ¤ÁÖ¼Ò¸¦ ÁöÁ¤ÇÏ°í ³ª¸é, °Å±â¼­ºÎÅÍ Column Address¸¦ Çϳª¾¿ Áõ°¡½ÃÄÑ°¡¸ç µ¥ÀÌÅ͸¦ ¹ö½ºÆ®ÇÏ°Ô ¾×¼¼½ºÇÏ´Â °ÍÀÌ´Ù.
¸ðµç µ¿ÀÛÀº CLKÀÇ positive edge¿¡ µ¿±âµÇ¾î µ¿ÀÛÇÑ´Ù.

1.5. 2006.03.08

  • ¿©ÀüÈ÷ ºÎÆ®·Î´õ µ¿ÀÛ ºÒ´É. ¼±¹è°¡ ¸¸µç À̹ÌÁö¸¦ ¿Ã·ÈÀ»¶§ Á¤»óÀûÀ¸·Î µ¿ÀÛÇÏ´Â °ÍÀ¸·Î ºÁ¼­´Â ¿ª½Ã ÄÚµù»óÀÇ ½Ç¼öÀεí. ¹®¼­·Î µÇ¾îÀÖ´Â °ÍÀ» ±×´ë·Î º¸°í º£³¢´Âµ¥µµ ¾È µÈ´Ù´Ï... ´Ù½Ã Çѹø Äڵ带 º¸¸é¼­ Çϵå¿þ¾î ¼³Á¤¿¡ °üÇÑ ÀÌÇظ¦ ÇÏ°í, serial_test.S¸¦ ÂüÁ¶ÇÏ¿© ºÎÆ® ´Ü°è´Ü°è¸¶´Ù °£´ÜÇÑ ½Ã¸®¾ó Ãâ·ÂÇÏ´Â Äڵ带 Áý¾î³Ö¾î ¾î´À ´Ü°è°¡ À߸øµÇ¾ú´ÂÁö °ËÃâÇؾßÇÔ.
  • ¿ø·¡ÀÇ start.S¸¦ start.S_·Î ¹é¾÷Çسõ°í start.S¸¦ ¼öÁ¤ÇÔ.

1.5.1. start.S ¼öÁ¤

  • ¸ñÇ¥ : ¸Ç óÀ½¿¡ ÀÏ´Ü ½Ã¸®¾óÀ» ¼³Á¤ÇÏ°í ½Ã¸®¾ó Ãâ·ÂÀ» ÀÌ¿ëÇؼ­ °¢ ´Ü°è´Ü°è¸¦ È®ÀÎÇÑ´Ù.

1.6. 2006.03.10

  • Ãæ°Ý : FFUART¸¦ »ç¿ëÇϱâ À§Çؼ± GPIO¸¦ ¼³Á¤ÇØ¾ß Çϴµ¥ ±×³É ¹«Åδë°í FFUART¸¸ ¼³Á¤ÇÏ°í ¿Ö ½Ã¸®¾óÀÌ ¾È ³ª¿À³ª ÇÏ°í ÀÖ¾úÀ½.

1.7. 2006.03.15

  • u-boot µ¿ÀÛ ¼º°ø. ÀÏ´Ü Ä¿³ÎÀº ¿Ã¸®Áö ¾Ê°í ±×Àü±îÁöÀÇ µ¿ÀÛÀº ½Ã¸®¾óÀ» ÅëÇؼ­ È®ÀÎÇß½À´Ï´Ù.
  • µ¿ÀÛÀ» ¾È Çß´ø ¿øÀÎÀº
    • ÀÏ´Ü u-boot 1.1.2 porting guide to pxa270 ¹®¼­»ó¿¡´Â À߸øµÈ ¿À·ù¶óµçÁö ÇÏ´Â °ÍÀÌ ÀüÇô ¾ø½À´Ï´Ù.
    • À§¿¡ Á¦°¡ Âü°íÇÑ Æ÷Æù®¼­´Â u-boot-1.1.2¸¦ ±â¹ÝÀ¸·Î ÇÏ°í ¹®¼­¿¡ º¸½Ã¸é ELDK 3.1.1À» »ç¿ëÇÏ°í ÀÖ½À´Ï´Ù. ±×·¯³ª Àú´Â ELDK 4.0 ÃֽŹöÀüÀ» »ç¿ëÇÏ¿© Æ÷ÆÃÀ» ÇÏ°íÀÚ Çß½À´Ï´Ù.
    • cpu/cpuname/config.mk ÆÄÀϾÈÀÇ °¢ cpuÀÇ Å¸ÀÔ¿¡ ¸Â°Ô cc flas¸¦ ¼³Á¤Çϴµ¥ ÀÌ·¯ÇÑ ¿É¼ÇµéÀÌ ¹öÀü¾÷ÀÌ µÇ¸é¼­ º¯°æÀÌ µÇ¾ú´Ù. ¹®¼­»óÀÇ ¿É¼ÇÀ» º¸ÀÚ¸é





2. °Ô½ÃÆÇ


captcha
Username:

¾ÆÁ÷µµ start.S ·Î ºÎÆÃÀÌ ºÒ°¡´ÉÇϽÅÁö¿ä? -- jachin 2006-03-13

ÀÏ´Ü ¼º°øÀº ÇϱäÇߴµ¥¿ä. Á» ÀÌ»óÇÑÁ¡ÀÌ ÀÖ±º¿ä. Áö±ÝÀº ÀÏ´Ü ¸®´ª½º µð¹ÙÀ̽º µå¶óÀ̹ö °øºÎ¿¡ ÁýÁßÀÔ´Ï´Ù. -- bluster 2006-04-08 04:01:13

ID
Password
Join
You will attract cultured and artistic people to your home.


sponsored by andamiro
sponsored by cdnetworks
sponsored by HP

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2006-04-08 04:01:13
Processing time 0.0020 sec