OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [rtos/] [ecos-3.0/] [packages/] [hal/] [arm/] [sa11x0/] [ipaq/] [current/] [include/] [hal_platform_setup.h] - Blame information for rev 786

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 786 skrzyp
#ifndef CYGONCE_HAL_PLATFORM_SETUP_H
2
#define CYGONCE_HAL_PLATFORM_SETUP_H
3
 
4
/*=============================================================================
5
//
6
//      hal_platform_setup.h
7
//
8
//      Platform specific support for HAL (assembly code)
9
//
10
//=============================================================================
11
// ####ECOSGPLCOPYRIGHTBEGIN####
12
// -------------------------------------------
13
// This file is part of eCos, the Embedded Configurable Operating System.
14
// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
15
//
16
// eCos is free software; you can redistribute it and/or modify it under
17
// the terms of the GNU General Public License as published by the Free
18
// Software Foundation; either version 2 or (at your option) any later
19
// version.
20
//
21
// eCos is distributed in the hope that it will be useful, but WITHOUT
22
// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
23
// FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
24
// for more details.
25
//
26
// You should have received a copy of the GNU General Public License
27
// along with eCos; if not, write to the Free Software Foundation, Inc.,
28
// 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
29
//
30
// As a special exception, if other files instantiate templates or use
31
// macros or inline functions from this file, or you compile this file
32
// and link it with other works to produce a work based on this file,
33
// this file does not by itself cause the resulting work to be covered by
34
// the GNU General Public License. However the source code for this file
35
// must still be made available in accordance with section (3) of the GNU
36
// General Public License v2.
37
//
38
// This exception does not invalidate any other reasons why a work based
39
// on this file might be covered by the GNU General Public License.
40
// -------------------------------------------
41
// ####ECOSGPLCOPYRIGHTEND####
42
//=============================================================================
43
//#####DESCRIPTIONBEGIN####
44
//
45
// Author(s):    gthomas
46
// Contributors: gthomas, richard.panton@3glab.com
47
// Date:         2001-02-24
48
// Purpose:      Intel SA1110/iPAQ platform specific support routines
49
// Description:
50
// Usage:        #include <cyg/hal/hal_platform_setup.h>
51
//     Only used by "vectors.S"
52
//
53
//####DESCRIPTIONEND####
54
//
55
//===========================================================================*/
56
 
57
#include <pkgconf/system.h>             // System-wide configuration info
58
#include CYGBLD_HAL_VARIANT_H           // Variant (SA11x0) specific configuration
59
#include CYGBLD_HAL_PLATFORM_H          // Platform specific configuration
60
#include <cyg/hal/hal_sa11x0.h>         // Variant specific hardware definitions
61
#include <cyg/hal/hal_mmu.h>            // MMU definitions
62
#include <cyg/hal/ipaq.h>               // Platform specific hardware definitions
63
 
64
#if defined(CYG_HAL_STARTUP_ROM) || defined(CYG_HAL_STARTUP_Compaq) || defined(CYG_HAL_STARTUP_WinCE)
65
#define PLATFORM_SETUP1 _platform_setup1
66
#define CYGHWR_HAL_ARM_HAS_MMU
67
#define CYGSEM_HAL_ROM_RESET_USES_JUMP
68
#if defined(CYG_HAL_STARTUP_WinCE)
69
#define UNMAPPED(x) (x)+SA11X0_RAM_BANK0_BASE
70
#endif
71
 
72
#if defined(CYG_HAL_STARTUP_ROM)
73
#if (CYGHWR_HAL_ARM_SA11X0_PROCESSOR_CLOCK == 59000)
74
#define SA11X0_PLL_CLOCK 0x0        
75
#elif (CYGHWR_HAL_ARM_SA11X0_PROCESSOR_CLOCK == 73700)
76
#define SA11X0_PLL_CLOCK 0x1
77
#elif (CYGHWR_HAL_ARM_SA11X0_PROCESSOR_CLOCK == 88500)
78
#define SA11X0_PLL_CLOCK 0x2        
79
#elif (CYGHWR_HAL_ARM_SA11X0_PROCESSOR_CLOCK == 103200) 
80
#define SA11X0_PLL_CLOCK 0x3        
81
#elif (CYGHWR_HAL_ARM_SA11X0_PROCESSOR_CLOCK == 118000)
82
#define SA11X0_PLL_CLOCK 0x4        
83
#elif (CYGHWR_HAL_ARM_SA11X0_PROCESSOR_CLOCK == 132700)
84
#define SA11X0_PLL_CLOCK 0x5        
85
#elif (CYGHWR_HAL_ARM_SA11X0_PROCESSOR_CLOCK == 147500)
86
#define SA11X0_PLL_CLOCK 0x6        
87
#elif (CYGHWR_HAL_ARM_SA11X0_PROCESSOR_CLOCK == 162200)
88
#define SA11X0_PLL_CLOCK 0x7        
89
#elif (CYGHWR_HAL_ARM_SA11X0_PROCESSOR_CLOCK == 176900)
90
#define SA11X0_PLL_CLOCK 0x8        
91
#elif (CYGHWR_HAL_ARM_SA11X0_PROCESSOR_CLOCK == 191700)
92
#define SA11X0_PLL_CLOCK 0x9        
93
#elif (CYGHWR_HAL_ARM_SA11X0_PROCESSOR_CLOCK == 206400)
94
#define SA11X0_PLL_CLOCK 0xA        
95
#elif (CYGHWR_HAL_ARM_SA11X0_PROCESSOR_CLOCK == 221200)
96
#define SA11X0_PLL_CLOCK 0xB        
97
#else
98
#error Invalid processor clock speed
99
#endif
100
#endif
101
 
102
//#define DEBUG_INIT
103
 
104
// Special image header - required when run via Parrot loader
105
#ifdef CYGSEM_HAL_PARROT_BOOT
106
#define PLATFORM_PREAMBLE _platform_preamble
107
        .macro  _platform_preamble
108
        b       100f
109
        .org    0x40
110
        .long   0x43454345      // CECE
111
        .long   0x8C0B3000      // Unknown magic
112
        .org    0x1000
113
100:
114
        .endm
115
#endif
116
 
117
        .macro  InitUART3
118
#define EGPIOBase 0x49000000
119
#define EGPIO_BITSY_RS232_ON     (1 << 7)   /* UART3 transceiver force on.  Active high. */
120
 
121
#define SA1100_UTCR0     0x00
122
#define SA1100_UTCR1     0x04
123
#define SA1100_UTCR2     0x08
124
#define SA1100_UTCR3     0x0C
125
#define SA1100_UTDR      0x14
126
#define SA1100_UTSR0     0x1c
127
#define SA1100_UTSR1     0x20
128
 
129
#define SA1100_UTCR0_PE         (1 << 0)   /* parity enable */
130
#define SA1100_UTCR0_OES        (1 << 1)   /* 1 for even parity */
131
#define SA1100_UTCR0_2STOP      (1 << 2)   /* 1 for 2 stop bits */
132
#define SA1100_UTCR0_8BIT       (1 << 3)   /* 1 for 8 bit data */
133
#define SA1100_UTCR0_SCE        (1 << 4)   /* sample clock enable */
134
#define SA1100_UTCR0_RCE        (1 << 5)   /* receive clock edge select */
135
#define SA1100_UTCR0_TCE        (1 << 6)   /* transmit clock edge select */
136
 
137
#define SA1100_UTCR1_BRDHIMASK  0xF
138
#define SA1100_UTCR2_BRDLoMASK  0xFF
139
 
140
#define SA1100_UTCR3_RXE        (1 << 0)        /* receiver enable */
141
#define SA1100_UTCR3_TXE        (1 << 1)        /* transmit enable */
142
#define SA1100_UTCR3_BRK        (1 << 2)        /* send a BRK */
143
#define SA1100_UTCR3_RIE        (1 << 3)        /* receive FIFO interrupt enable */
144
#define SA1100_UTCR3_TIE        (1 << 4)        /* transmit FIFO interrupt enable */
145
#define SA1100_UTCR3_LBM        (1 << 5)        /* loopback mode */
146
 
147
/* [1] 11.11.6 */
148
#define SA1100_UTDR_PRE         (1 << 8)        /* parity error */
149
#define SA1100_UTDR_FRE         (1 << 9)        /* framing error */
150
#define SA1100_UTDR_ROR         (1 << 10)       /* receiver overrun */
151
 
152
/* [1] 11.11.7 */
153
#define SA1100_UTSR0_TFS        (1 << 0)        /* transmit FIFO service request */
154
 
155
/* [1] 11.11.8 */
156
#define SA1100_UTSR1_TBY        (1 << 0)        /* transmit FIFO busy */
157
#define SA1100_UTSR1_RNE        (1 << 1)        /* receive FIFO not empty */
158
#define SA1100_UTSR1_TNF        (1 << 2)        /* transmit FIFO not full */
159
#define SA1100_UTSR1_PRE        (1 << 3)        /* parity error */          
160
#define SA1100_UTSR1_FRE        (1 << 4)        /* framing error */         
161
#define SA1100_UTSR1_ROR        (1 << 5)        /* receiver overrun */      
162
 
163
#define SA1100_UTSR1_ERROR_MASK 0x38
164
 
165
#define SA1100_UART3BASE        0x80050000 
166
 
167
       /*
168
        ;; ********************************************************************
169
        ;; InitUART3 - Initialize Serial Communications
170
        ;; ********************************************************************
171
        ;; Following reset, the UART is disabled. So, we do the following:
172
        */
173
 
174
        ldr     r1, =SA1100_UART3BASE
175
        /* disable the UART */
176
        mov     r2, #0x00
177
        str     r2, [r1, #SA1100_UTCR3]         /* UART1 Control Reg. 3        */
178
        /* Now clear all 'sticky' bits in serial I registers, cf. [1] 11.11 */
179
        mov     r2, #0xFF
180
        str     r2, [r1, #SA1100_UTSR0]         /* UART1 Status Reg. 0        */
181
 
182
        /* Set the serial port to sensible defaults: no break, no interrupts, */
183
        /* no parity, 8 databits, 1 stopbit. */
184
        mov     r2, #SA1100_UTCR0_8BIT
185
        str     r2, [r1, #SA1100_UTCR0]         /* UART1 Control Reg. 0        */
186
 
187
        /* Set BRD to 1, for a baudrate of 115K2 ([1] 11.11.4.1) */
188
        /* Set BRD to 3, for a baudrate of 57k6 ([1] 11.11.4.1) */
189
        /* Set BRD to 5, for a baudrate of 38k4 ([1] 11.11.4.1) */
190
        /* Set BRD to 23, for a baudrate of 9k6 ([1] 11.11.4.1) */
191
        mov     r2, #0x00
192
        str     r2, [r1, #SA1100_UTCR1]
193
        mov     r2, #SA11X0_UART_BAUD_RATE_DIVISOR(CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_BAUD)
194
        str     r2, [r1, #SA1100_UTCR2]
195
        /* enable the UART TX and RX */
196
//InitUart3Enable:        
197
        mov     r2, #(SA1100_UTCR3_RXE|SA1100_UTCR3_TXE)
198
        str     r2, [r1, #SA1100_UTCR3]
199
 
200
        ldr     r3, =EGPIOBase
201
        mov     r2, #EGPIO_BITSY_RS232_ON
202
        str     r2, [r3, #0]
203
        ldr     r2, [r3, #0]
204
 
205
        // Give a little pause to let the thing settle
206
        ldr     r1,=1000000
207
10:     sub     r1,r1,#1
208
        cmp     r1,#0
209
        bne     10b
210
 
211
        .endm
212
 
213
        .macro  PutC c
214
        ldr     r8,=\c
215
        PutCh   r8
216
        .endm
217
 
218
        .macro  PutCh c
219
        ldr     r9,=SA1100_UART3BASE
220
        str     \c,[r9,#SA1100_UTDR]
221
77:     ldr     \c,[r9,#SA1100_UTSR1]
222
        tst     \c,#SA1100_UTSR1_TNF        // Tx FIFO not full
223
        beq     77b
224
        .endm
225
 
226
        .macro  PutNibble n
227
        and     \n,\n,#0x0F
228
        cmp     \n,#0x0A
229
        blt     78f
230
        add     \n,\n,#'A'-'0'-0x0A
231
78:     add     \n,\n,#'0'
232
        PutCh   \n
233
        .endm
234
 
235
        .macro  PutHex1 h
236
        mov     r0,\h,LSR #4
237
        PutNibble r0
238
        PutNibble \h
239
        .endm
240
 
241
        .macro  PutHex2 h
242
        mov     r1,\h,LSR #8
243
        PutHex1 r1
244
        PutHex1 \h
245
        .endm
246
 
247
        .macro  PutHex4 h
248
        PutC    '0'
249
        PutC    'x'
250
        mov     r2,\h,LSR #16
251
        PutHex2 r2
252
        PutHex2 \h
253
        .endm
254
 
255
// This macro represents the initial startup code for the platform        
256
        .macro  _platform_setup1
257
 
258
#ifdef DEBUG_INIT
259
        b       54f
260
// Dump hex memory
261
//  R5 - base address
262
//  R4 - length
263
//  R0..R6 destroyed
264
dump:
265
        PutC    '\r'
266
        PutC    '\n'
267
50:     mov     r6,r5
268
        PutHex4 r6
269
        PutC    ' '
270
        ldr     r3,=8
271
52:     PutC    ' '
272
        ldr     r6,[r5],#4
273
        PutHex4 r6
274
        sub     r3,r3,#1
275
        cmp     r3,#0
276
        bne     52b
277
        PutC    '\n'
278
        PutC    '\r'
279
        sub     r4,r4,#1
280
        cmp     r4,#0
281
        bne     50b
282
        mov     pc,lr
283
 
284
hexR6:
285
        PutHex4 r6
286
        PutC    ' '
287
        mov     pc,lr
288
54:
289
#endif // DEBUG_INIT
290
 
291
        // Disable all interrupts
292
        ldr     r1,=SA11X0_ICMR
293
        mov     r0,#0
294
        str     r0,[r1]
295
 
296
        // Make sure MMU is OFF
297
        mov r0,#0xE0000000      // Force cache writeback by reloading
298
        add r2,r0,#0x4000       // cache from the zeros bank
299
123:    ldr r1,[r0],#32
300
        cmp r0, r2
301
        bne 123b
302
        mov r0,#0
303
        mov r1,#0x0070          // MMU Control System bit
304
        mcr p15,0,r0,c7,c7,0      // Flush data and instruction cache
305
        mcr p15,0,r0,c8,c7,0      // Flush ID TLBs
306
        mcr p15,0,r0,c9,c0,0      // Flush Read-Buffer
307
        mcr p15,0,r0,c7,c10,4    // Drain write buffer
308
        mcr p15,0,r0,c13,c0,0     // Disable virtual ID mapping
309
        mcr p15,0,r1,c1,c0,0      // Write MMU control register
310
        nop; nop; nop; nop
311
 
312
        InitUART3
313
#ifdef DEBUG_INIT        
314
        mov     r7,#5
315
05:     PutC    '\n'
316
        PutC    '\r'
317
        sub     r7,r7,#1
318
        cmp     r7,#0
319
        bne     05b
320
 
321
        mrs     r6,cpsr
322
        bl      hexR6
323
#endif // DEBUG_INIT
324
 
325
#if 0 // This made no difference        
326
        ldr     r1,=10f
327
        ldr     r2,=SA11X0_RAM_BANK0_BASE
328
        add     r1,r1,r2
329
        mov     r0,#(CPSR_IRQ_DISABLE|CPSR_FIQ_DISABLE|CPSR_SUPERVISOR_MODE)
330
        msr     cpsr,r0
331
        msr     spsr,r0
332
        movs    pc,r1
333
10:
334
#else
335
 
336
        mov     r0,#(CPSR_IRQ_DISABLE|CPSR_FIQ_DISABLE|CPSR_SUPERVISOR_MODE)
337
        msr     cpsr,r0
338
#endif
339
#ifdef DEBUG_INIT
340
        mrs     r6,cpsr
341
        bl      hexR6
342
 
343
        ldr     r5,=0x00000000
344
        ldr     r4,=0x100/32
345
        bl      dump
346
#endif // DEBUG_INIT
347
 
348
        // Initialise extended GPIO
349
        ldr     r0,=SA1110_EGPIO
350
        ldr     r4,=SA1110_EIO_MIN
351
 
352
        // Initialize pin directions
353
        ldr     r1,=SA11X0_GPIO_PIN_DIRECTION
354
        ldr     r2,=0x0401F3FC
355
        str     r2,[r1]
356
 
357
        ldr     r2,[r1,#4]
358
        tst     r2,#0x08000000  // Look for expansion pack
359
        orreq   r4,r4,#0x01B0   // Power it up if there
360
        str     r4,[r0]
361
 
362
#if defined(CYG_HAL_STARTUP_ROM)
363
        // Disable clock switching
364
        mcr     p15,0,r0,\
365
                SA11X0_TEST_CLOCK_AND_IDLE_REGISTER,\
366
                SA11X0_DISABLE_CLOCK_SWITCHING_RM,\
367
                SA11X0_DISABLE_CLOCK_SWITCHING_OPCODE
368
 
369
        // Set up processor clock
370
        ldr     r1,=SA11X0_PWR_MGR_PLL_CONFIG
371
        ldr     r2,=SA11X0_PLL_CLOCK
372
        str     r2,[r1]
373
 
374
        // Turn clock switching back on
375
        mcr     p15,0,r0,\
376
                SA11X0_TEST_CLOCK_AND_IDLE_REGISTER,\
377
                SA11X0_ENABLE_CLOCK_SWITCHING_RM,\
378
                SA11X0_ENABLE_CLOCK_SWITCHING_OPCODE
379
        nop
380
        nop
381
#endif
382
 
383
        // Pause
384
        ldr     r1,=100000
385
10:     sub     r1,r1,#1
386
        cmp     r1,#0
387
        bne     10b
388
 
389
#ifdef CYGBLD_HAL_STARTUP_ROM_INIT_DRAM
390
 
391
        // Initialize DRAM controller
392
        bl      19f
393
// DRAM controller initialization        
394
dram_table:
395
        .word   SA11X0_DRAM0_CAS_0,           0xAAAAAAA7
396
        .word   SA11X0_DRAM0_CAS_1,           0xAAAAAAAA
397
        .word   SA11X0_DRAM0_CAS_2,           0xAAAAAAAA
398
//        .word   SA11X0_STATIC_CONTROL_0,      0x4B384B38
399
//        .word   SA11X0_STATIC_CONTROL_1,      0x22212419
400
        .word   SA11X0_EXP_BUS_CONFIGURATION, 0x994A994A  // 0x90E790E7
401
        .word   SA11X0_REFRESH_CONFIGURATION, 0x00302001
402
        .word   SA11X0_DRAM2_CAS_0,           0xAAAAAAA7
403
        .word   SA11X0_DRAM2_CAS_1,           0xAAAAAAAA
404
        .word   SA11X0_DRAM2_CAS_2,           0xAAAAAAAA
405
//        .word   SA11X0_STATIC_CONTROL_2,      0x42194449
406
        .word   SA11X0_SMROM_CONFIGURATION,   0x00000000  // 0xAFCCAFCC
407
        .word   SA11X0_DRAM_CONFIGURATION,    0x0000F354  // 0x72547254        // Disabled
408
        .word   0, 0
409
 
410
19:     mov     r1,lr                           // Points to 'dram_table'        
411
        ldr     r2,[r1],#4                      // First control register
412
20:     ldr     r3,[r1],#4
413
        str     r3,[r2]
414
        ldr     r2,[r1],#4                      // Next control register
415
        cmp     r2,#0
416
        bne     20b
417
 
418
        // Enable UART
419
        ldr     r1,=SA1110_GPCLK_CONTROL_0
420
        ldr     r2,=SA1110_GPCLK_SUS_UART
421
        str     r2,[r1]
422
 
423
        // Release DRAM hold (set by RESET)
424
        ldr     r1,=SA11X0_PWR_MGR_SLEEP_STATUS
425
        ldr     r2,=SA11X0_DRAM_CONTROL_HOLD
426
        str     r2,[r1]
427
 
428
        // Perform 8 reads from unmapped/unenabled DRAM
429
        ldr     r1,=SA11X0_RAM_BANK0_BASE
430
        ldr     r2,[r1]
431
        ldr     r2,[r1]
432
        ldr     r2,[r1]
433
        ldr     r2,[r1]
434
        ldr     r2,[r1]
435
        ldr     r2,[r1]
436
        ldr     r2,[r1]
437
        ldr     r2,[r1]
438
 
439
        // Enable DRAM controller
440
        ldr     r1,=SA11X0_DRAM_CONFIGURATION
441
        ldr     r2,=0x0000F355   // 0x72547255
442
        str     r2,[r1]
443
 
444
#endif // CYGBLD_HAL_STARTUP_ROM_INIT_DRAM
445
 
446
        // Release peripheral hold (set by RESET)
447
        ldr     r1,=SA11X0_PWR_MGR_SLEEP_STATUS
448
        ldr     r2,=SA11X0_PERIPHERAL_CONTROL_HOLD
449
        str     r2,[r1]
450
 
451
        // Wakeup (via power/resume button)
452
        ldr     r1,=SA11X0_RESET_STATUS
453
        ldr     r2,[r1]
454
        cmp     r2,#SA11X0_SLEEP_MODE_RESET
455
        bne     45f
456
        ldr     r1,=SA11X0_PWR_MGR_SCRATCHPAD
457
        ldr     r1,[r1]
458
        mov     pc,r1
459
        nop
460
45:     nop
461
 
462
        // Set up a stack [for calling C code]
463
        ldr     r1,=__startup_stack
464
        ldr     r2,=SA11X0_RAM_BANK0_BASE
465
        orr     sp,r1,r2
466
 
467
#ifdef DEBUG_INIT
468
        mrc     p15,0,r6,c1,c0,0
469
        bl      hexR6
470
        mrc     p15,0,r6,c2,c0,0
471
        bl      hexR6
472
        mrc     p15,0,r6,c3,c0,0
473
        bl      hexR6
474
 
475
        mrc     p15,0,r5,c2,c0,0
476
        ldr     r6,=0xFFFFC000
477
        and     r5,r5,r6
478
        ldr     r4,=0x100/32
479
        bl      dump
480
#endif // DEBUG_INIT
481
 
482
        // Create MMU tables
483
        bl      hal_mmu_init
484
 
485
#ifdef DEBUG_INIT
486
        ldr     r5,=0x00000000
487
        ldr     r4,=0x100/32
488
        bl      dump
489
 
490
        ldr     r5,=0xC0020000
491
        ldr     r4,=0x100/32
492
        bl      dump
493
 
494
        mrc     p15,0,r5,c2,c0,0
495
        ldr     r6,=0xFFFFC000
496
        and     r5,r5,r6
497
//        ldr     r4,=0x4000/32
498
        ldr     r4,=0x100/32
499
        bl      dump
500
#endif // DEBUG_INIT
501
 
502
        // Enable MMU
503
        ldr     r2,=10f
504
        ldr     r1,=MMU_Control_Init|MMU_Control_M
505
        mcr     MMU_CP,0,r1,MMU_Control,c0
506
        mov     pc,r2
507
        mcr     MMU_CP,0,r0,MMU_InvalidateCache,c7,0      // Flush data and instruction cache
508
        mcr     MMU_CP,0,r0,MMU_TLB,c7,0          // Flush ID TLBs
509
10:
510
        nop
511
        nop
512
        nop
513
 
514
#ifdef DEBUG_INIT
515
        ldr     r5,=0x00022000
516
        ldr     r4,=0xDEADDEAD
517
        str     r4,[r5],#4
518
        str     r4,[r5],#4
519
        str     r4,[r5],#4
520
        str     r4,[r5],#4
521
 
522
        ldr     r5,=0x00022000
523
        ldr     r4,=0x100/32
524
        bl      dump
525
#endif // DEBUG_INIT
526
 
527
        // Save shadow copy of BCR
528
        ldr     r1,=_ipaq_EGPIO
529
#ifdef DEGUG_INIT
530
        ldr     r4,=SA1110_EIO_MIN
531
#endif // DEBUG_INIT
532
        str     r4,[r1]
533
        .endm
534
 
535
#if defined(CYG_HAL_STARTUP_Compaq)
536
#define CYG_HAL_STARTUP_ROM
537
#define CYG_HAL_ROM_RESET_USES_JUMP
538
#endif
539
 
540
#else // defined(CYG_HAL_STARTUP_ROM)
541
#define PLATFORM_SETUP1
542
#endif
543
 
544
#define PLATFORM_VECTORS         _platform_vectors
545
        .macro  _platform_vectors
546
        .globl  _ipaq_EGPIO
547
_ipaq_EGPIO:    .long   0       // Extended GPIO shadow
548
 
549
        .globl  _ipaq_LCD_params
550
_ipaq_LCD_params:
551
        .short  0,0,0,0         // Coordinates used by virtual keyboard
552
        .short  0,0,0,0
553
        .short  0               // Checksum of above        
554
        .endm
555
 
556
/*---------------------------------------------------------------------------*/
557
/* end of hal_platform_setup.h                                               */
558
#endif /* CYGONCE_HAL_PLATFORM_SETUP_H */

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.