회원 및 비회원 모두 열람이 가능합니다. 최대 업로드 가능한 용량은 20MB 입니다.

안녕하세요.

고도리입니다.

회사를 나온지 1달반이 좀 넘어가네요.
회사를 나오면서 정말 일이 많았습니다. 회사가 어려워진것도 있었고, 개인적으로
힘든일도 많이 있었고요....

나오면서 무엇을 해야할까 고민하다가 그냥 제일 잘 할 수 있는 일을 하기로 했습니다.
새로운 칩에 리눅스 돌려보는 정도는 좀 오래하다보니 조금은 익숙해져서 할만 할 듯 싶더군요.

그러다 제안이 하나 들어와서 현재는 pollux란 칩에 리눅스를 포팅하고 있습니다.

2달 넘게 고생하다보니 어느정도 끝이 보이기 시작합니다.

처음에는 mp2530f와 유사해서 금방 할 수 있는 것처럼 보였는데, 실제로 작업에 들어가니
상상을 초월할 정도로 힘드네요.

칩벤더가 아니다 보니, 정보에 한계가 있고, 메뉴얼과 wince소스만 보고 개발하려니
나름 많이 힘들었습니다.

============================================================


U-Boot 1.1.6 (May  8 2008 - 12:50:04)

U-Boot code: 03680000 -> 036A61D0  BSS: -> 036AB5A8
RAM Configuration:
Bank #0: 00000000 64 MB
Get flash bank 0 size @ 0x80000000
Total Flash bank's sizes: 0x400000
protect monitor 261d0 bytes @ address 80000000
Flash:  4 MB
NAND:  64 MiB
nand_read_ecc: from = 0x00040000, len = 16384
In:    serial
Out:   serial
Err:   serial
### main_loop entered: bootdelay=2

### main_loop: bootcmd="tftp 0x02000000 uImage; bootm 0x02000000"
Hit any key to stop autoboot:  0
11:0:33:22:55:44:TFTP from server 192.168.0.250; our IP address is 192.168.0.100
Filename 'uImage'.
Load address: 0x2000000
Loading: #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         ##################################################
done
Bytes transferred = 2914700 (2c798c hex)
## Booting image at 02000000 ...
   Image Name:   Linux-2.6.20-pollux
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    2914636 Bytes =  2.8 MB
   Load Address: 00008000
   Entry Point:  00008000
   Verifying Checksum ... OK
OK
No initrd
## Transferring control to Linux (at address 00008000) ...

Starting kernel ...

Linux version 2.6.20-pollux (root@pollux) (gcc version 4.0.2) #397 Sun May 18 11:49:16 KST 2008
CPU: ARM926EJ-S [41069265] revision 5 (ARMv5TEJ), cr=00053177
Machine: AESOP_POLLUX
Memory policy: ECC disabled, Data cache writeback
clkmodereg = 0x05010480
pollux_cmr.cpu0_div    = 0
pollux_cmr.cpu0_src_pll= 0
pollux_cmr.cpu0_AHB_div= 2
pollux_cmr.bclk_div    = 0
pollux_cmr.bclk_src_pll= 1
pollux_cmr.pll_pdown1  = 0
pll 0 = 528000000
pll 1 = 147000000
ARM926 fclk      = 528000000 Hz
ARM926 AHB clock = 176000000 Hz
       BCLK      = 147000000 Hz
       PCLK      =  73500000 Hz
   DRAM CLK      =  73500000 Hz
CPU0: D VIVT write-back cache
CPU0: I cache: 16384 bytes, associativity 4, 32 byte lines, 128 sets
CPU0: D cache: 16384 bytes, associativity 4, 32 byte lines, 128 sets
Built 1 zonelists.  Total pages: 13970
Kernel command line: mem=55M root=/dev/nfs rw nfsroot=192.168.0.250:/root/gwork/rootfs ip=192.168.0.100:192.168.0.250:192.168.0.1:255.255.255.0:godori:eth0:off console=ttySAC0,115200n81 mtdparts=pollux-nor:-(extra)
PID hash table entries: 256 (order: 8, 1024 bytes)
Console: colour dummy device 80x30
Dentry cache hash table entries: 8192 (order: 3, 32768 bytes)
Inode-cache hash table entries: 4096 (order: 2, 16384 bytes)
Memory: 55MB = 55MB total
Memory: 52736KB available (2416K code, 477K data, 96K init)
Mount-cache hash table entries: 512
CPU: Testing write buffer coherency: ok
NET: Registered protocol family 16
usbcore: registered new interface driver usbfs
usbcore: registered new interface driver hub
usbcore: registered new device driver usb
NET: Registered protocol family 2
IP route cache hash table entries: 1024 (order: 0, 4096 bytes)
TCP established hash table entries: 2048 (order: 1, 8192 bytes)
TCP bind hash table entries: 1024 (order: 0, 4096 bytes)
TCP: Hash tables configured (established 2048 bind 1024)
TCP reno registered
NetWinder Floating Point Emulator V0.97 (double precision)
io scheduler noop registered
io scheduler anticipatory registered (default)
io scheduler deadline registered
io scheduler cfq registered
pollux-uart.0: pollux_serial0 at MMIO 0xf0016000 (irq = 44) is a POLLUX
pollux-uart.1: pollux_serial1 at MMIO 0xf0016080 (irq = 48) is a POLLUX
pollux-uart.2: pollux_serial2 at MMIO 0xf0016800 (irq = 52) is a POLLUX
pollux-uart.3: pollux_serial3 at MMIO 0xf0016880 (irq = 56) is a POLLUX
RAMDISK driver initialized: 1 RAM disks of 8192K size 1024 blocksize
loop: loaded (max 8 devices)
nbd: registered device at major 43
Linux video capture interface: v2.00
pollux_spi_probe: res->start = 0xf0007800
pollux_spi_probe: GPIO_SSPFRM = 44, function = 0
pollux_spi_probe: GPIO_SSPCLK = 45, function = 1
pollux_spi_probe: GPIO_SSPRXD = 46, function = 1
pollux_spi_probe: GPIO_SSPTXD = 47, function = 1
usbmon: debugfs is not available
usbcore: registered new interface driver usbhid
drivers/usb/input/hid-core.c: v2.6:USB HID core driver
lf1000_udc_probe: base addr = f0018000
mice: PS/2 mouse device common for all mice
pollux-rtc pollux-rtc.0: rtc core: registered pollux-rtc as rtc0
POLLUX Real Time Clock driver initialized.
i2c /dev entries driver
MagicEyes POLLUX I2C Bus driver
pollux-i2c pollux-i2c.0: i2c-0: POLLUX I2C adapter
initialization done.
TCP cubic registered
NET: Registered protocol family 1
pollux-rtc pollux-rtc.0: setting the system clock to 2009-05-05 13:33:15 (1241530395)
mmcblk0: mmc0:0002       992256KiB
mmcblk0: p1
IP-Config: Complete:
      device=eth0, addr=192.168.0.100, mask=255.255.255.0, gw=192.168.0.1,
     host=godori, domain=, nis-domain=(none),
     bootserver=192.168.0.250, rootserver=192.168.0.250, rootpath=
Looking up port of RPC 100003/2 on 192.168.0.250
Looking up port of RPC 100005/1 on 192.168.0.250
VFS: Mounted root (nfs filesystem).
Freeing init memory: 96K
INIT: version 2.84 booting
rc.udev start
Initializing udev dynamic device directory.
Starting udevd:  /sbin/udevd --daemon
mount: Mounting /dev/root on / failed: No such file or directory
INIT: Entering runlevel: 3


AESOP Linux

/) /)
(='.'=) <- godori

login[560]: root login  on `tts/0'

============================================

이제 남은 device driver는 MLC nand와 usb device controller정도네요.
참, video관련 YUV -> RGB plane 쓰는 법도 있네요.

개인적으로 칩을 개발하면서 느낀점은....

- 속도가 굉장히 빠르다. arm9 528Mhz로 돌리고 있는데, 2440에 비해서도 빠르다는 느낌입니다.
- 이전에 써 왔던 매직아이 칩들에 비해서 불확실한 부분이 많이 줄었다.
- system용도로 쓰기에는 아주 좋다(2410/2440/2443을 대체할)
- 가격적인 부분에서 아주 맘에 든다....^^

대략 이정도입니다.

단점은...
- 몇가지 버그땜에 삽질을 심하게 했음. 대놓고 설명하기는....ㅎㅎ
큰 버그가 현재까지는 1개 나왔고, 나머지 짜잘한 버그들은 5개 언더....

- RAM을 대용량 붙이기가 난감하다.
- PLL이 2개인데, 하나가 모자라서 삽질을 심하게 해야한다.
- reference코드가 딸랑 wince다(매직아이의 코드방식이라, 익숙하지 않으면 엄청 짜증난다는)


장점은
- 속도
- 가격(전체 시스템 단가도 낮아짐)
- SD 가 2포트
- CS가 10개
- MLC컨트롤러가 붙어 있음
- 4 port serial
- IIS만 붙어있음 --> 가격에는 장점, 제어에는 약점...

대략 이정도입니다. 현재까지는 큰 칩버그 하나만 빼면, 어떤 다른 칩들과도 떨어지지 않는 성능을 보여줍니다.

앞으로 더 완성도 있는 녀석을 만들어 봐야할 듯 합니다.

한달정도 고생하면 될래나....ㅎㅎ

고현철

2008.05.19 00:03:04
*.32.117.22

이 일과 먹고 사는 일 때문에, 그 동안 동호회에 소홀했습니다.

더 신경을 써야하는데, 1달 넘게 하루도 못 쉬었습니다.
이 일이 끝난 후에야 신경을 쓸 수 있을 듯 합니다.

그리고, 한가지 더.....

aesop-mp2530f 보드 두매를 스페인에서 사 갑니다.
음....개인적으로 너무나 기쁜 일이라서요....

해외서 우리 한글 사이트를 보면서......예전에 aesop 초창기에 이제현님께서 말씀하신, 남들이 우리를 찾아올 수 있게(한글 배워서?) 만들어 보자...라는게 조금이나마 현실화 된게, 너무너무 기쁩니다.

^^

정창환

2008.05.19 16:37:32
*.14.117.41


16bit DDR을 써서 컴포넌트 갯수를 줄여서, 부피와 단가를 낮출수 있는 장점이 있는것 같습니다. 거기에 볼피치가 0.65mm라서, pcb제조 단가도 낮출수 있을것 같습니다.

2440을 쓰고 있는 관점에서는, 바꾸고 싶은 생각이 들정도로 매력적인것 같진 않은것 같네요.
2440보다 먼저 나왔으면 대박이었을것 같네요.

SD카드의 속도가 궁금하네요.
저는 차기시스템 고려서, 우선순위1위가 디스크속도고 그담이 cpu속도입니다.

고현철

2008.05.19 20:42:26
*.32.117.22

현재는 SD를 irq mode로 포팅해서 쓰고 있습니다.
꽤 괜찮은 속도가 납니다. 다시 측정해봐야하지만요.

DMA로 간다면 훨 빠를테고요. 게다가 2.6.2x의 SD stack이 많이 좋아졌습니다. multi-block read/write도 지원 잘하더군요. 4k 단위의 dma전송이 이루어집니다.

예전의 mmsp2/mmsp2+때와 완전히 IP block이 틀려졌습니다.
맘에 안드는 구석이 있긴 하지만, 속도만큼은 훨 빨라졌습니다.

2440을 쓰는 관점에서 카메라가 없는게 단점이 되겠지요.
리소스도 많이 모자른것도 그렇고요.

저도 2440이 뜨기 시작할때만 나왔어도....하는 생각은 듭니다....^^

arm11으로 가지도 못하는 상황이라 어쩔 수 없이 이 녀석을 함 해볼까
했는데, 그나마 만족스러운 구석은 있습니다. DDR에 528이라서 속도감은
좀 나오더군요.

장병남

2008.05.20 06:18:45
*.131.127.142

폴룩스,, MS 컨퍼런스에서 보았는데, 정말 땡겼습니다. ^^ 공제하길 무지 기다리고 있습니다. 그때 봤던 3D UI 제공 될지 궁금 하네요, ^^ 고생하시고 자~알 마무리 하시길 기다리겠습니다. 고도리님 화이링~!!!

고도리

2008.05.20 08:12:10
*.32.117.22

UI소스는 불가겠지만, 라이브러리는 제공될 겁니다.

리눅스는 소스레벨은 아니지만, 완전히 동작되도록 왕창 조르고 있습니다.
이번에는 확실히 지원될겁니다.

칩버그까정 다 검증해 주고 있거등요....ㅠ.ㅠ
List of Articles
번호 제목 글쓴이 날짜 조회 수
공지 교육 홍보 및 광고는 "교육 및 세미나 홍보" 게시판을 이용해 ... 관리자 2010-07-15 108026
690 [잡담] u-boot-1.3.3/S3C6400 Datasheet 공부 [1] 고현철 2008-06-29 2373
689 [잡담] u-boot에서 pollux SD read성공했습니다...^^ [4] 고현철 2008-06-29 2359
688 [잡담] S3C6400을 드뎌....s3c2443/pollux랑 같이 왕노가다 모드... [9] 고현철 2008-06-26 2796
687 [잡담] 폴룩스,, 폴룩스,,, [6] 장병남 2008-06-24 2197
686 [교육정보] Linux 2.6 기반의 Embedded Linux system 설계 file [5] 고현철 2008-06-11 1889
685 오랜만에 글쓰네요....ㅠ.ㅠ, S3C6400 이나 함 지를까요? [4] 고현철 2008-06-06 2220
» [정보] 근래 개발하고 있는 CPU입니다....Pollux라고하는...^^ file [5] 고현철 2008-05-18 3968
683 그동안 2 년의 세월 ..... [2] 장석원 2008-05-17 1763
682 너무나 바쁘네요....^^ [6] 고현철 2008-05-13 1663
681 질문입니다. [3] 이상훈 2008-05-09 1518
680 중국의 개발자 사이트들.... [5] 고현철 2008-05-06 2153
679 Windows Embedded Conferance 댕겨 왔습니다. [3] 장병남 2008-05-01 2098
678 Wince 2차 릴리즈버젼 올렸습니다. [4] 이상훈 2008-05-01 1537
677 크아악 돌아버리겠습니다. [2] 도찬구 2008-04-30 1714
676 안녕하세요. 프로젝트하려고 하는데 질문드립니다. [1] 이상훈 2008-04-25 1540
675 Wibrain B1 가지고 코딩하는 모습....^^ file [7] 고현철 2008-04-25 1699
674 MID에 대한 기사 관련 [1] 장병남 2008-04-23 1513
673 21일 부터는 빡세게 코딩작업에 몰두하려 합니다 ... [3] 장석원 2008-04-21 1556
672 소모임관련 [3] 한기태 2008-04-18 1529
671 Embedded Linux에서 사용가능한 솔루션에 대해 문의드립니다. [6] 강권일 2008-04-17 1583

사용자 로그인