• 검색 결과가 없습니다.

커널에서 변경된 내용들

문서에서 GettingStarted-with-HBE-EMPOSII (페이지 161-165)

파일 변경 내용

파일명 : linux-2.4.19-rmk4-pxa2-empx1/arch/arm/config.in 역할 : Empos II 보드에 맞게 config 파일 수정한다.

파일명 : linux-2.4.19-rmk4-pxa2-empx1/Makefile 변경 내용 : EXTRAVERSION = -rmk4-pxa2-empx1 역할 : 커널의 버전정보를 변경한다.

파일명 : linux-2.4.19-rmk4-pxa2-empx1/arch/arm/boot/compressed/head-xscale.S 변경 내용 :

#ifdef CONFIG_ARCH_EMPOS_X255 mov r7, #MACH_TYPE_EMPOS_X255

#endif

역할 : 부팅을 위해 ARCH 번호를 r7레지스터에 저장한다.

파일명 :linux-2.4.19-rmk4-pxa2-empx1/arch/arm/kernel/setup.c 변경 내용 : #define MEM_SIZE (128*1024*1024)

역할 : 기본 메모리 크기를 128M로 설정한다.

파일명 : linux-2.4.19-rmk4-pxa2-empx1/arch/arm/mach-pxa/leds.c 변경 내용

if (machine_is_empos_x255())

leds_event = empos_x255_leds_event;

역할 : led_event가 발생하였을 경우 해당 이벤트 처리 함수와 연결한다.

파일명 : linux-2.4.19-rmk4-pxa2-empx1/arch/arm/mach-pxa/usb_ctl.c 변경 내용 :

GAFR0_L &= ~GPIO_bit(4); //interrupt GAFR0_L &= ~GPIO_bit(5);

set_GPIO_IRQ_edge( 2, GPIO_FALLING_EDGE);

retval = request_irq(IRQ_GPIO(2), udc_int_hndlr, SA_INTERRUPT,

파일명 : linux-2.4.19-rmk4-pxa2-empx1/arch/arm/tools/mach-types 변경 내용 :

empos_x255 ARCH_EMPOS_X255 EMPOS_X255 241 역할 : 보드의 ARCH 번호 추가

파일명 : linux-2.4.19-rmk4-pxa2-empx1/drivers/sound/pxa-ac97.c 변경 내용 :

#ifdef CONFIG_ARCH_EMPOS_X255 //ucb1400 or cs4201 .?

GAFR1_L &= ~(1<<0);

GAFR1_L &= ~(1<<1);

GPDR1 |= (1<<0);

GPCR1 |= (1<<0); //cs4201 select

#endif

역할 : GPIO 설정을 통해 보드에서 cs4201의 사용을 가능하게 한다.

#ifdef CONFIG_ARCH_EMPOS_X255 u16 cs4201_write(int reg, int val) {

pxa_ac97_write(&pxa_ac97_codec, reg, val);

}

#endif

역할 : cs4201 레지스터에 값을 저장할 수 있는 함수를 생성

파일명 : linux-2.4.19-rmk4-pxa2-empx1/drivers/sound/pxa-audio.c

#ifdef CONFIG_ARCH_EMPOS_X255

cs4201_write(0x5e, 0x80); //NO direct mode cs4201_write(0x18, 0x808); //NO pcm out mute cs4201_write(0x2, 0x0); //NO mute cs4201_write(0x0e, 0x8000); //NO mic mute

#endif

역할 : cs4201 레지스터를 설정하여 사운드 출력을 가능하게 한다.

#ifdef CONFIG_ARCH_EMPOS_X255 cs4201_write(0x5e, 0x180); //direct mode cs4201_write(0x0e, 0x0000); //mic vol cs4201_write(0x1a, 0x0); //adc input mux cs4201_write(0x1c, 0xf); //main adc gain vol

#endif

역할 : cs4201 레지스터를 설정하여 마이크 입력을 가능하게 한다.

파일명 : linux-2.4.19-rmk4-pxa2-empx1/drivers/sound/pxa-audio.h 변경내용 :

#ifdef CONFIG_ARCH_EMPOS_X255 extern u16 cs4201_write(int reg, int val);

#endif

역할 : 추가한 함수를 extern으로 선언하여 다른 곳에서 사용 가능하도록 한다.

#define LOGO_W 640

역할 : LCD 화면의 로고 크기를 화면 전체 크기로 변경한다.

파일명 : linux-2.4.19-rmk4-pxa2-empx1/drivers/video/pxafb.c 변경 내용 :

new_regs.lccr0 = LCD_LCCR0;

new_regs.lccr1 = LCD_LCCR1;

new_regs.lccr2 = LCD_LCCR2;

new_regs.lccr3 = LCD_LCCR3;

역할 : lccr 레지스터의 값을 미리 정의한 헤더의 값으로 설정 변경하여 LCD 사용을 가 능하게 한다.

파일명 : linux-2.4.19-rmk4-pxa2-empx1/drivers/video/pxafb.h 변경 내용 :

#elif defined(CONFIG_ARCH_EMPOS_X255)

#define LCD_PIXCLOCK 0

#define LCD_BPP 16

#define LCD_XRES 640

#define LCD_YRES 480

#define LCD_HORIZONTAL_SYNC_PULSE_WIDTH 1

#define LCD_VERTICAL_SYNC_PULSE_WIDTH 1

#define LCD_BEGIN_OF_LINE_WAIT_COUNT 200

#define LCD_BEGIN_FRAME_WAIT_COUNT 0

#define LCD_END_OF_LINE_WAIT_COUNT 4

#define LCD_END_OF_FRAME_WAIT_COUNT 0

#define LCD_SYNC (FB_SYNC_HOR_HIGH_ACT|

FB_SYNC_VERT_HIGH_ACT)

#define LCD_LCCR0 0x3008f8

#define LCD_LCCR1 0x4f0ffe7f

#define LCD_LCCR2 0x210e05df

#define LCD_LCCR3 (LCCR3_PCP | LCCR3_PixClkDiv(0x1) | LCCR3_Bpp(0x04) | LCCR3_Acb(0xff))

역할 : EMPOS 보드에 맞는 LCD 관련 값들을 미리 정의 한다.

파일명 : linux-2.4.19-rmk4-pxa2-empx1/include/asm-arm/arch-pxa/hardware.h 변경 내용 :

#ifdef CONFIG_ARCH_EMPOS_X255

#include "empos_x255.h"

#endif

역할 : 본 파일을 include 할 경우 empos_x255.h 파일도 포함하도록 한다.

linux-2.4.19-rmk4-pxa2-empx1/include/asm-arm/arch-pxa/irqs.h

#if defined(CONFIG_ARCH_EMPOS_X255) || defined(CONFIG_ARCH_PXA_IDP)

#if CONFIG_SA1111

#define EMPOS_X255_IRQ(x) (SA1111_IRQ_MAX + 1 + (x))

#define EMPOS_X255_USB_IRQ EMPOS_X255_IRQ(2)

#define EMPOS_X255_ETH_PRI_IRQ IRQ_GPIO0

#define EMPOS_X255_ETH_SEC_IRQ IRQ_GPIO1

#define EMPOS_X255_ADS7846_PENIRQ 5

#define EMPOS_X255_ADS7846_IRQ IRQ_GPIO(EMPOS_X255_ADS7846_PENIRQ)

#define EMPOS_X255_UCB1400_IRQ EMPOS_X255_IRQ(4)

#define EMPOS_X255_BB_IRQ EMPOS_X255_IRQ(5)

#undef NR_IRQS

#define NR_IRQS (EMPOS_X255_IRQ(5) + 1)

#endif // CONFIG_ARCH_EMPOS_X255 역할 : EMPOS 보드에 맞는 IRQ를 정의한다.

파일명 : linux-2.4.19-rmk4-pxa2-empx1/init/do_mounts.c //int root_mountflags = MS_RDONLY | MS_VERBOSE;

int root_mountflags = MS_VERBOSE;

역할 : RDONLY 플래그를 제거하여 마운트 한 파일시스템의 쓰기를 가능하도록 한다.

문서에서 GettingStarted-with-HBE-EMPOSII (페이지 161-165)