[ECOS] About iPAQ H3870
Sung-Nan Yao
catboy@ms63.url.com.tw
Sun Apr 27 19:27:00 GMT 2003
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
More information about the Ecos-discuss
mailing list