This is the mail archive of the ecos-discuss@sources.redhat.com mailing list for the eCos project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: About iPAQ H3870


Jonathan Larmour wrote:

Gary D. Thomas wrote:

On Wed, 2003-04-23 at 11:24, Sung-Nan Yao wrote:

Hi,
After tracing the Linux code for H3800,
I found the memory mapped I/O between the iPAQ H3800 and
iPAQ H6000 is different.
So I think some code in eCos won`t work on H3870.

For example,
the RS232_ON is different between them.

In linux,
#define H3800_ASIC1_GPIO_OUT    0x49001e68
#define GPIO1_RS232_ON          (1  << 2)

In eCos,
#define EGPIOBase               0x49000000
#define EGPIO_BITSY_RS232_ON    (1  << 7)

In InitUART3 macro in eCos,it initializes the UART3.
In the end of the macro,it turns on the RS232_ON by setting the EGPIOBase.
But in the linux,it sets the H3800_ASIC1_GPIO_OUT.


So I change the EGPIOBase to 0x49001e68 and
EGPIO_BITSY_RS232_ON to (1  << 7).
In the test on my H3870,the Serial Port can work.

Does anyone find the problem or do the porting?



As far as I know, no one has ever tried to get eCos/RedBoot running on the 3870.


Obviously if this is the only change required, and Sung-Nan can verify this, then we want to know so we can add this support! Sung-Nan?

Jifl

This change is for serial port. Its job just turns on the RS-232 chip. And I use the bad way to do it. I think there are many codes must be modified.

After tracing linux,
I guess that H3870 has two ASIC(application-specific integrated circuit)-ASIC1 and ASIC2.
The ASIC2 is connected to pin 1 in GPIO and ASIC1 is connected to ASIC2.
ASIC1 has one GPIO and ASIC2 has one GPIO and KPIO(keyboardPIO??).


H3600 has GPIO,EGPIO and microcontroller.

I think the ASIC2 is similar to microcontroller and
the ASIC1 is similar to EGPIO.

Below is a part of the memory mapped I/O in H3870 and I`m trying to modify these.
I`m just a beginner.If there is something wrong,please tell me.thanks. ^_^


address the name of the definiens in linux
*ASIC2 GPIO*
0x4900 0000 H3800_ASIC2_GPIODIR
0x4900 0004 H3800_ASIC2_GPIINTTYPE
0x4900 0008 H3800_ASIC2_GPIINTESEL
0x4900 000c H3800_ASIC2_GPIINTALSEL
0x4900 0010 H3800_ASIC2_GPIINTCLR
0x4900 0010 H3800_ASIC2_GPIINTFLAG
0x4900 0014 H3800_ASIC2_GPIOPIOD
0x4900 0018 H3800_ASIC2_GPOBFSTAT
0x4900 001c H3800_ASIC2_GPIINTSTAT
0x4900 003c H3800_ASIC2_GPIOALT
*ASIC2 KPIO*

0x4900 0200 H3800_ASIC2_KPIODIR
0x4900 0204 H3800_ASIC2_KPIINTTYPE
0x4900 0208 H3800_ASIC2_KPIINTESEL
0x4900 020c H3800_ASIC2_KPIINTALSEL
0x4900 0210 H3800_ASIC2_KPIINTCLR
0x4900 0210 H3800_ASIC2_KPIINTFLAG
0x4900 0214 H3800_ASIC2_KPIOPIOD
0x4900 0218 H3800_ASIC2_KPOBFSTAT
0x4900 021c H3800_ASIC2_KPIINTSTAT
0x4900 023c H3800_ASIC2_KPIOALT
*ASIC2 SPI*

0x4900 0400 H3800_ASIC2_SPI_Control
0x4900 0404 H3800_ASIC2_SPI_Data
0x4900 0408 H3800_ASIC2_SPI_ChipSelectDisabled
*ASIC2 PWM_0*

0x4900 0600 H3800_ASIC2_PWM_0_TimeBase
0x4900 0604 H3800_ASIC2_PWM_0_PeriodTime
0x4900 0608 H3800_ASIC2_PWM_0_DutyTime
*ASIC2 PWM_1*

0x4900 0700 H3800_ASIC2_PWM_1_TimeBase
0x4900 0704 H3800_ASIC2_PWM_1_PeriodTime
0x4900 0708 H3800_ASIC2_PWM_1_DutyTime
*ASIC2 LED_0*

0x4900 0800 H3800_ASIC2_LED_0_TimeBase
0x4900 0804 H3800_ASIC2_LED_0_PeriodTime
0x4900 0808 H3800_ASIC2_LED_0_DutyTime
0x4900 080c H3800_ASIC2_LED_0_AutoStopCount
*ASIC2 LED_1*

0x4900 0880 H3800_ASIC2_LED_1_TimeBase
0x4900 0884 H3800_ASIC2_LED_1_PeriodTime
0x4900 0888 H3800_ASIC2_LED_1_DutyTime
0x4900 088c H3800_ASIC2_LED_1_AutoStopCount
*ASIC2 LED_2*

0x4900 0900 H3800_ASIC2_LED_2_TimeBase
0x4900 0904 H3800_ASIC2_LED_2_PeriodTime
0x4900 0908 H3800_ASIC2_LED_2_DutyTime
0x4900 090c H3800_ASIC2_LED_2_AutoStopCount
*ASIC2 UART_0*

0x4900 0a00 H3800_ASIC2_UART_0_Base
0x4900 0a00 H3800_ASIC2_UART_0_RCVR
0x4900 0a00 H3800_ASIC2_UART_0_XMIT
0x4900 0a04 H3800_ASIC2_UART_0_IER
0x4900 0a08 H3800_ASIC2_UART_0_IIR
0x4900 0a08 H3800_ASIC2_UART_0_FCR
0x4900 0a0c H3800_ASIC2_UART_0_LCR
0x4900 0a10 H3800_ASIC2_UART_0_MCR
0x4900 0a14 H3800_ASIC2_UART_0_LSR
0x4900 0a18 H3800_ASIC2_UART_0_MSR
0x4900 0a1c H3800_ASIC2_UART_0_SCR
0x4900 0a20 H3800_ASIC2_UART_0_RSR
0x4900 0a00 H3800_ASIC2_UART_0_DLL
0x4900 0a04 H3800_ASIC2_UART_0_DLM
*ASIC2 UART_1*

0x4900 0c00 H3800_ASIC2_UART_1_Base
0x4900 0c00 H3800_ASIC2_UART_1_RCVR
0x4900 0c00 H3800_ASIC2_UART_1_XMIT
0x4900 0c04 H3800_ASIC2_UART_1_IER
0x4900 0c08 H3800_ASIC2_UART_1_IIR
0x4900 0c08 H3800_ASIC2_UART_1_FCR
0x4900 0c0c H3800_ASIC2_UART_1_LCR
0x4900 0c10 H3800_ASIC2_UART_1_MCR
0x4900 0c14 H3800_ASIC2_UART_1_LSR
0x4900 0c18 H3800_ASIC2_UART_1_MSR
0x4900 0c1c H3800_ASIC2_UART_1_SCR
0x4900 0c20 H3800_ASIC2_UART_1_RSR
0x4900 0c00 H3800_ASIC2_UART_1_DLL
0x4900 0c04 H3800_ASIC2_UART_1_DLM





-- Before posting, please read the FAQ: http://sources.redhat.com/fom/ecos and search the list archive: http://sources.redhat.com/ml/ecos-discuss


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]