====== 35230 보드 Bring-up 하기 ====== BCM35230 보드를 사용하여, 네트워크 기능을 확인하는 방법을 기술하고 있다. ====== Board Booting ====== 현재 Nand 부팅이 안되는 관계로 Kernel, DTV Application 을 모두 NFS 로 사용해야 한다. 부트로더가 뜨면, 아래의 명령어들을 차례로 실행해주면 된다. ifconfig eth0 -addr=192.168.100.50 -mask=255.255.255.0 -hwaddr=00-00-23-81-41-00 # 보드 IP 설정 boot -z -elf 192.168.100.12:kernel.gz 'root=/dev/nfs rw nfsroot=156.147.69.81:/nfsroot,nolock ip=192.168.100.50::192.168.100.254:255.255.255.0:localhost:eth0:off' # 12 -> PC, 81 -> 중계서버, 254 -> 게이트웨이 주소 ====== 수정사항 ====== ===== Kernel ===== Ethernet 포트에 랜선을 꼽아도, NM 에서 인식을 못하는 문제가 있다. 결국 랜선이 꼽혀 있음에도 UI 에서는 인식하지 못한다. 이를 위해서는 Ethernet 드라이버의 ioctl 처리 코드를 수정해야 한다. 여기서는 stblinux-2.6.28.9.tgz 파일을 기준으로 설명한다. stblinux-2.6.28.9/drivers/net/bcmgenet/bcmgenet.c 파일을 수정한다. static int bcmgenet_ioctl(struct net_device *dev, struct ifreq *rq, int cmd) { ... switch (cmd) { ... case SIOCGMIIPHY: case SIOCGMIIREG: case SIOCSMIIREG: val = generic_mii_ioctl(&pDevCtrl->mii, if_mii(rq), cmd, NULL); // 위에 정의한 3가지의 ioctl 에대해서 해당 함수를 처리를 넘긴다 break; ... } ===== RGB 출력 ===== 일반 LVDS 케이블을 사용할 수 없기 때문에, 부득이 하게 RGB 쪽보드를 이용하여 UI 를 확인해야 했다. 이를 위해서는 코드 수정이 필요하다. os/bcm35230_linux/nuxus_v0.1/magnum/portinginterface/vdc/35230/bvdc_displayhandler_priv.c 파일을 아래와 같이 수정한다. L.1949 BVDC_P_Vec_Build_Hdmi_isr() { … /* Temporary For Bring Up */ *pList->pulCurrent++ = BRDC_OP_IMM_TO_REG(); *pList->pulCurrent++ = BRDC_REGISTER(BCHP_DVPO_0_MISC_CONTROL_2); #if 0 /*To use the RGB DAC board on LGE board for bringup*/ *pList->pulCurrent++ = 0x6C40020; #else *pList->pulCurrent++ = 0x6C20020; #endif *pList->pulCurrent++ = BRDC_OP_IMM_TO_REG(); *pList->pulCurrent++ = BRDC_REGISTER(BCHP_DVPO_0_MISC_CONTROL_3); #if 0 /*To use the RGB DAC board on LGE board for bringup*/ *pList->pulCurrent++ = 0xDB6; #else *pList->pulCurrent++ = 0; #endif … } 다음은 os/bcm35230_linux/nuxus_v0.1/magnum/portinginterface/lvd/35230/blvd.c 파일을 아래와 같이 수정한다. L.896 BLVD_P_EnablePort() { … Register |= BCHP_FIELD_DATA(DVPO_0_LVDS_CFG_0, LVDS_ENCODE_ENABLE, ucEncodeEnable) | BCHP_FIELD_DATA(DVPO_0_LVDS_CFG_0, COLOR_MODE, 1/*jason Lim for LGE dac board uiColorMode*/ ) | BCHP_FIELD_DATA(DVPO_0_LVDS_CFG_0, REVERSE_LVDS_SHIFT, ucReverseLvdsShift) | BCHP_FIELD_DATA(DVPO_0_LVDS_CFG_0, JEIDA_MODE, hLVD->DeviceSettings.eLvdsMapping) ; BREG_Write32(hRegister, BCHP_DVPO_0_LVDS_CFG_0, Register) ; … } ==== rev. 2827 이후 ==== bcm_platform_init.c 파일을 아래와 같이 수정한다. L.695 #if 1 /* for using the LGE RGB DAC board */ // 1로 수정 platformSettings.displayModuleSettings.panel.customLinkSettings.lvdsMode = NEXUS_LvdsMode_eDualLink; platformSettings.displayModuleSettings.panel.customLinkSettings.lvdsColorMode = BLVD_ColorMode_e8Bit; #endif ===== Networkmanager ===== 현재 NFS 로 실행을 하기때문에, 도중에 Network 설정을 바꾼다거나, 시도하게 되면, 기존의 접속이 끊겨 프로그램 실행이 중지된다. 따라서, 불가피하게 코드 수정이 필요하다. nmstate.c 파일을 아래와 같이 수정한다. void nm_sm_event(NM_EVENT_T event) { while (event != NM_EVENT_NONE) { switch (EVENT_ID(_gNMControl.state, event)) { case EVENT_ID(NM_STATE_ETH_LINK_UP, NM_EVENT_ETH_SET_IP_IPC); // if(_gNMControl.currentcfg) # 주석처리함 ... } ---- {{indexmenu>:#1|skipns=/^(wiki|etc|diary|playground)$/ skipfile=/^(todays|about|guestbook)$/ nsort rsort}} ----