|
News,
Internal,
Projects,
Home Software, Support, Documentation |
기뻐해주세요~~~
if_rl.c 에 정의되어 있는 RL_USEIOSPACE 매크로를 코맨트 처리해주면 잘 동작합니다.
결국 I/O 포트에 접근하지 못하는 문제였는데, 왜 그런지 이유는 잘 모르겠습니다. 소스에는 SMP 에서 문제가 있다는 말고 uniprocessor 에서는 잘 동작한다고 되어 있습니다.
sysctl 에 보면 hw.pci.enable_io_modes 라는 것이 0으로 되어 있는데도 강제로 I/O 를 사용하게 드라이버가 만들어져 있었습니다. 그래도 해결되어서 다행입니다.
하여튼 해결은 했는데, 이게 맞는 방법인지는 모르겠습니다.
그럼, 좋은 시간 되세요.
각종 sysctl debug 플랙을 키고 나온 메시지 입니다.
Status is 0x30000820 cbb0: card inserted: event=0x00000000, state=30000820 cbb0: cbb_power: 3V TUPLE: LINKTARGET [3]: 43 49 53 Manufacturer ID: 00004c02 Functions: Network Adaptor, Multi-Functioned Function Extension: 0102 Function Extension: 0280969800 Function Extension: 0200e1f505 Function Extension: 040600e04c390010 TUPLE: Unknown(0x1c) [2]: 02 ff cardbus0: Opening BAR: type=IO, bar=10, len=0100 cardbus0: Opening BAR: type=MEM, bar=14, len=0200 CIS reading done cardbus0: Non-prefetchable memory at d0308000-d03081ff cardbus0: IO port at 1100-11ff rl0: <RealTek 8139 10/100BaseTX> port 0x1100-0x11ff mem 0xd0308000-0xd03081ff ir q 20 at device 0.0 on cardbus0 : reset never completed! rl0: unknown device ID: ffff device_attach: rl0 attach returned 6 cbb0: cbb_power: 0V
----- Original Message ----- From: "TaeKyeong Wang" <bugiii@xxxxxxxxxxxx>
To: <questions@xxxxxxxxxxxxxx>
Sent: Tuesday, August 23, 2005 8:34 AM
Subject: [KFUG] LG LE50 ACE3 에서 8139C Cardbus 카드가 동작하지 않습니다.
안녕하세요?
LG LE50 ACE3 에 내장된 NIC 은 Marvell Yukon 88e8036 이더넷 입니다. 당연히(!) 동작하는 드라이버가 없구요. 그래서 cardbus 용 NIC 을 달아보기로 했습니다. 여기저기 알아봤지만 8139 를 제외하고는 제품이 없더군요. 결국 8139 를 사용한 카드를 구입했습니다.
현재 구성은 FreeBSD 5.4 Stable 로 커널 업데이트 했구요. 노트북 cardbus 칩셋은 Texas Instruments 사의 PCI6411 입니다. vendor id = 104c device id = 8031 이구요. cbb0 로 잡힙니다.
참고로 8139C cardbus 는 윈도우와 Fedora Core 4 에서 정확히 인식하고 잘 동작합니다.
문제는 if_rl 모듈이 올라가면서 다음과 같은 메시지를 냅니다.
rl0: <RealTek 8139 10/100BaseTX> port 0x1100-0x11ff mem 0xd0308000-0xd03081ff irq 20 at device 0.0 on cardbus0 : reset never completed! rl0: unknown device ID: ffff device_attach: rl0 attach returned 6
그래서 Xircom CreditCard 10/100 PCMCIA (16비트) 를 꼽으니 xe0 로 잡히면서 정상 동작은 합니다. (top 에서 interrupt 가 거의 100%까지 올라갑니다. 실제 사용은 불가능합니다.)
이리저리 if_rl.c 를 뒤지니까 if_rl 모듈의 문제보다는 cardbus 에서 매핑한 I/O 포트의 값을 제대로 읽어오지 못해서 probe 하는 부분부터 문제가 생기더군요. cardbus 가 PCI 로 브릿지가 되어서 PCI 정보는 제대로 넘어오는데, 그 이후에 I/O 포트를 이용해서 칩을 판단하는 부분을 보면 hwrev 을 조사하는 것이 있는데, 아예 그 레지스터 값이 모두 ffffffff 라서 판단자체가 되지 않는 것 같습니다.
그렇게되니까 rl_reset 부분에서 아무리 포트로 값을 찔러줘도 카드로 전달되지 않는 것 같습니다.
이 문제가 TI 의 새 cardbus 컨트롤러의 문제일까요? 아니면 8139C cardbus 카드가 문제일까요? 검색을 해서 몇가지 글을 찾기는 했는데, 된다는 사람 (5.3 에서?) 도 있고 netbsd 에서는 전통적으로 8139c cardbus 가 동작하지 않는다는 글도 있었습니다.
8139c cardbus 를 경험해보신 분들 계시면 코맨트 부탁드립니다.
감사합니다.
--------------------------------------------------------------------------------
_______________________________________________ 한국 FreeBSD 사용자 그룹(KFUG) questions 메일링 리스트 questions at kr.FreeBSD.org http://www.kr.FreeBSD.org/mailman/listinfo/questions
_______________________________________________ 한국 FreeBSD 사용자 그룹(KFUG) questions 메일링 리스트 questions at kr.FreeBSD.org http://www.kr.FreeBSD.org/mailman/listinfo/questions
|
Copyright © 1998-2005 Korea FreeBSD Users Group. All rights reserved. webmaster at kr.FreeBSD.org $Date: 2005/08/26 23:21:42 $ |
|