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

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [rtos/] [ecos-3.0/] [packages/] [hal/] [mips/] [vrc437x/] [current/] [include/] [platform.inc] - Blame information for rev 786

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 786 skrzyp
#ifndef CYGONCE_HAL_PLATFORM_INC
2
#define CYGONCE_HAL_PLATFORM_INC
3
##=============================================================================
4
##
5
##      platform.inc
6
##
7
##      DDB-VRC4373 board assembler header file
8
##
9
##=============================================================================
10
## ####ECOSGPLCOPYRIGHTBEGIN####
11
## -------------------------------------------
12
## This file is part of eCos, the Embedded Configurable Operating System.
13
## Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
14
##
15
## eCos is free software; you can redistribute it and/or modify it under
16
## the terms of the GNU General Public License as published by the Free
17
## Software Foundation; either version 2 or (at your option) any later
18
## version.
19
##
20
## eCos is distributed in the hope that it will be useful, but WITHOUT
21
## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
22
## FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
23
## for more details.
24
##
25
## You should have received a copy of the GNU General Public License
26
## along with eCos; if not, write to the Free Software Foundation, Inc.,
27
## 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
28
##
29
## As a special exception, if other files instantiate templates or use
30
## macros or inline functions from this file, or you compile this file
31
## and link it with other works to produce a work based on this file,
32
## this file does not by itself cause the resulting work to be covered by
33
## the GNU General Public License. However the source code for this file
34
## must still be made available in accordance with section (3) of the GNU
35
## General Public License v2.
36
##
37
## This exception does not invalidate any other reasons why a work based
38
## on this file might be covered by the GNU General Public License.
39
## -------------------------------------------
40
## ####ECOSGPLCOPYRIGHTEND####
41
##=============================================================================
42
#######DESCRIPTIONBEGIN####
43
##
44
## Author(s):   nickg
45
## Contributors:        nickg
46
## Date:        1999-04-06
47
## Purpose:     VRC4373 board definitions.
48
## Description: This file contains various definitions and macros that are
49
##              useful for writing assembly code for the VRC4373 board.
50
## Usage:
51
##              #include 
52
##              ...
53
##
54
##
55
######DESCRIPTIONEND####
56
##
57
##=============================================================================
58
 
59
#include 
60
 
61
##-----------------------------------------------------------------------------
62
## VRC4372 registers
63
 
64
#define CYGHWR_HAL_MIPS_VRC4373_BASE            0xbc000000
65
#define CYGHWR_HAL_MIPS_VRC4373_INTC_POL        (CYGHWR_HAL_MIPS_VRC4373_BASE+0x200)
66
#define CYGHWR_HAL_MIPS_VRC4373_INTC_TRIG       (CYGHWR_HAL_MIPS_VRC4373_BASE+0x204)
67
#define CYGHWR_HAL_MIPS_VRC4373_INTC_PINS       (CYGHWR_HAL_MIPS_VRC4373_BASE+0x208)
68
#define CYGHWR_HAL_MIPS_VRC4373_INTC_MASK0      (CYGHWR_HAL_MIPS_VRC4373_BASE+0x20c)
69
#define CYGHWR_HAL_MIPS_VRC4373_INTC_STAT0      (CYGHWR_HAL_MIPS_VRC4373_BASE+0x210)
70
#define CYGHWR_HAL_MIPS_VRC4373_INTC_MASK1      (CYGHWR_HAL_MIPS_VRC4373_BASE+0x214)
71
#define CYGHWR_HAL_MIPS_VRC4373_INTC_STAT1      (CYGHWR_HAL_MIPS_VRC4373_BASE+0x218)
72
#define CYGHWR_HAL_MIPS_VRC4373_INTC_MASK2      (CYGHWR_HAL_MIPS_VRC4373_BASE+0x21c)
73
#define CYGHWR_HAL_MIPS_VRC4373_INTC_STAT2      (CYGHWR_HAL_MIPS_VRC4373_BASE+0x220)
74
 
75
##-----------------------------------------------------------------------------
76
## configure the architecture HAL to define the right things.
77
 
78
## ISR tables are defined in platform.S
79
#define CYG_HAL_MIPS_ISR_TABLES_DEFINED
80
 
81
## VSR table is at a fixed RAM address defined by the linker script
82
#define CYG_HAL_MIPS_VSR_TABLE_DEFINED
83
 
84
##-----------------------------------------------------------------------------
85
 
86
#if defined(CYGSEM_HAL_USE_ROM_MONITOR_PMON)
87
 
88
## Initial SR value for use with PMON:
89
## CP0 usable
90
## Vectors to RAM
91
## All hw ints disabled
92
#define INITIAL_SR_PLF  0x10000000
93
 
94
#elif defined(CYGSEM_HAL_USE_ROM_MONITOR_GDB_stubs)
95
 
96
## Initial SR value for use with GDB stubs:
97
## CP0 and CP1 usable
98
## FP registers are 64 bit
99
## Vectors to RAM
100
## All hw ints disabled
101
#define INITIAL_SR_PLF  0x34000000
102
 
103
#else
104
 
105
## Initial SR value for use standalone:
106
## CP0 usable
107
## Vectors to RAM
108
## All hw ints disabled
109
#define INITIAL_SR_PLF  0x10000000
110
 
111
#endif
112
 
113
#------------------------------------------------------------------------------
114
## Load Address and Relocate. This macro is used in code that may be
115
## linked to execute out of RAM but is actually executed from ROM. The
116
## code that initializes the memory controller and copies the ROM
117
## contents to RAM must work in this way, for example. This macro is used
118
## in place of an "la" macro instruction when loading code and data
119
## addresses.  There are two versions of the macro here. The first
120
## assumes that we are executing in the ROM space at 0xbfc00000 and are
121
## linked to run in the RAM space at 0x80000000.  It simply adds the
122
## difference between the two to the loaded address.  The second is more
123
## code, but will execute correctly at either location since it
124
## calculates the difference at runtime.  The second variant is enabled
125
## by default.
126
 
127
 
128
#ifdef CYG_HAL_STARTUP_ROMRAM
129
 
130
#if 0
131
        .macro  lar     reg,addr
132
        .set    noat
133
        la      \reg,\addr
134
        la      $at,0x3fc00000
135
        addu    \reg,\reg,$at
136
        .set    at
137
        .endm
138
#else
139
        .macro  lar     reg,addr
140
        .set    noat
141
        move    $at,ra                  # save ra
142
        la      \reg,\addr              # get address into register
143
        la      ra,x\@                  # get linked address of label
144
        subu    \reg,\reg,ra            # subtract it from value
145
        bal     x\@                     # branch and link to label
146
        nop                             #  to get current actual address
147
x\@:
148
        addu    \reg,\reg,ra            # add actual address
149
        move    ra,$at                  # restore ra
150
        .set    at
151
        .endm
152
 
153
#endif
154
 
155
#define CYGPKG_HAL_MIPS_LAR_DEFINED
156
 
157
#endif
158
 
159
#------------------------------------------------------------------------------
160
# MMU macros.
161
# The MMU must be set up on this board before we can access any external devices,
162
# including the memory controller, so we have no RAM to work with yet.
163
# Since the setup code must work only in registers, we do not do a subroutine
164
# linkage here, instead the setup code knows to jump back here when finished.
165
 
166
#if defined(CYG_HAL_STARTUP_ROM) || defined(CYG_HAL_STARTUP_ROMRAM)
167
 
168
        .macro  hal_mmu_init
169
        .extern hal_mmu_setup
170
        lar     k0,hal_mmu_setup
171
        jr      k0
172
        nop
173
        .global hal_mmu_setup_return
174
hal_mmu_setup_return:
175
        .endm
176
 
177
#define CYGPKG_HAL_MIPS_MMU_DEFINED
178
 
179
#endif
180
 
181
#------------------------------------------------------------------------------
182
# MEMC macros.
183
#
184
 
185
#if defined(CYG_HAL_STARTUP_ROM) || defined(CYG_HAL_STARTUP_ROMRAM)
186
 
187
        .macro  hal_memc_init
188
        .extern hal_memc_setup
189
        lar     k0,hal_memc_setup
190
        jalr    k0
191
        nop
192
 
193
#if defined(CYG_HAL_STARTUP_ROMRAM)
194
        # Having got the RAM working, we must now relocate the Entire
195
        # ROM into it and then continue execution from RAM.
196
 
197
        la      t0,reset_vector         # dest addr
198
        lar     t1,reset_vector         # source addr
199
        la      t3,__ram_data_end       # end dest addr
200
1:
201
        lw      v0,0(t1)                # get word
202
        sw      v0,0(t0)                # write word
203
        addiu   t1,t1,4
204
        addiu   t0,t0,4
205
        bne     t0,t3,1b
206
        nop
207
 
208
        la      v0,2f                   # RAM address to go to
209
        jr      v0
210
        nop
211
2:
212
        # We are now executing out of RAM!
213
#endif
214
 
215
        .endm
216
 
217
#define CYGPKG_HAL_MIPS_MEMC_DEFINED
218
 
219
#endif
220
 
221
#------------------------------------------------------------------------------
222
# Interrupt controller initialization.
223
 
224
        # initialize all interrupts to disabled
225
        .macro  hal_intc_init
226
        mfc0    v0,status
227
        nop
228
        la      v1,0xFFFF00FF
229
        and     v0,v0,v1                # clear the IntMask bits
230
        ori     v0,v0,0x3800            # set 3 IPL bits
231
        mtc0    v0,status
232
        nop
233
        nop
234
        nop
235
        # mask them all in the VRC4372 interrupt controller too,
236
        # and write zeros to the status registers to clear any
237
        # pending interrupts.
238
        la      v0,CYGHWR_HAL_MIPS_VRC4373_INTC_MASK0
239
        sw      zero,0(v0)
240
        sw      zero,4(v0)
241
        sw      zero,8(v0)
242
        sw      zero,12(v0)
243
        sw      zero,16(v0)
244
        sw      zero,20(v0)
245
        .endm
246
 
247
#define CYGPKG_HAL_MIPS_INTC_INIT_DEFINED
248
 
249
#------------------------------------------------------------------------------
250
# Interrupt Translator.
251
# This translates an interrupt number into an ISR table offset. Vector 0
252
# contains a special ISR for dealing with spurious interrupts from the
253
# Vrc437x, and vectors 1-3 contain springboards, so we chain via vector 4.
254
# This macro translates interrupt 0 to vector 0 and all others to vector 4.
255
 
256
#ifndef CYGPKG_HAL_MIPS_INTC_TRANSLATE_DEFINED
257
#ifdef CYGIMP_HAL_COMMON_INTERRUPTS_CHAIN
258
        .macro  hal_intc_translate inum,vnum
259
        beqz    \inum,1f        # jump if interrupt is zero
260
         move   v0,zero         # set v0=0 in delay slot
261
        addi    v0,v0,4         # non zero vector, inc v0
262
1:      move    \vnum,v0        # store 0 or 4 in vnum
263
        .endm
264
#define CYGPKG_HAL_MIPS_INTC_TRANSLATE_DEFINED
265
#endif
266
#endif
267
 
268
#------------------------------------------------------------------------------
269
# Monitor initialization.
270
 
271
#ifndef CYGPKG_HAL_MIPS_MON_DEFINED
272
 
273
 
274
        .macro  hal_mon_init
275
 
276
        hal_mon_copy_trampoline
277
 
278
        hal_mon_init_vsr_table
279
 
280
        .endm
281
 
282
 
283
#if defined(CYGSEM_HAL_USE_ROM_MONITOR_PMON)
284
 
285
        # Copy the other_vector trampoline code into the RAM
286
        # area so we intercept all interrupts.
287
 
288
        .macro  hal_mon_copy_trampoline
289
        la      a0,other_vector
290
        la      a1,other_vector_end
291
        la      t0,0xa0000180
292
1:
293
        lw      v0,0(a0)
294
        sw      v0,0(t0)
295
        addiu   a0,a0,4
296
        bne     a0,a1,1b
297
        addiu   t0,t0,4
298
        .endm
299
 
300
 
301
        # plant a pointer to the breakpoint springboard into the
302
        # correct vsr table slot.
303
 
304
        .macro  hal_mon_init_vsr_table
305
        .extern hal_breakpoint_springboard
306
        la      v1,hal_vsr_table
307
 
308
        # Plant the interrupt VSR
309
        la      v0,__default_interrupt_vsr
310
        sw      v0,(0*4)(v1)
311
 
312
        # And the breakpoint VSR
313
        la      v0,hal_breakpoint_springboard
314
        sw      v0,(9*4)(v1)
315
 
316
        # Temporarily also plant all the others, so all exceptions
317
        # go to PMON.
318
        sw      v0,(4*4)(v1)
319
        sw      v0,(5*4)(v1)
320
        sw      v0,(6*4)(v1)
321
        sw      v0,(7*4)(v1)
322
        sw      v0,(8*4)(v1)
323
        sw      v0,(10*4)(v1)
324
        sw      v0,(11*4)(v1)
325
        sw      v0,(12*4)(v1)
326
        sw      v0,(13*4)(v1)
327
        sw      v0,(14*4)(v1)
328
        sw      v0,(15*4)(v1)
329
 
330
 
331
        .endm
332
 
333
#elif defined(CYGSEM_HAL_USE_ROM_MONITOR_GDB_stubs)
334
 
335
        # The stubs have a trampoline of their own installed which
336
        # already goes through the VSR table.
337
 
338
        .macro  hal_mon_copy_trampoline
339
        .endm
340
 
341
        # plant a pointer to the interrupt VSR handler in the
342
        # correct vsr table slot. Leave the rest for the monitor.
343
 
344
        .macro  hal_mon_init_vsr_table
345
        la      v0,__default_interrupt_vsr
346
        la      v1,hal_vsr_table
347
        sw      v0,(0*4)(v1)
348
 
349
        # plant a pointer to our own bus error handler. See the
350
        # comments in platform.S.
351
        .extern hal_bus_error_vsr
352
        la      v0,hal_bus_error_vsr
353
        sw      v0,(7*4)(v1)
354
 
355
        .endm
356
 
357
#else
358
        # The other_vector trampoline is already installed as part of
359
        # the executable image. However, the TLB exception is, in RAM
360
        # in the analogous place to the reset vector in ROM. In a
361
        # ROM or ROMRAM startup we need to copy it into place.
362
 
363
#if defined(CYG_HAL_STARTUP_ROM) || defined(CYG_HAL_STARTUP_ROMRAM)
364
        .macro  hal_mon_copy_trampoline
365
        la      a0,utlb_vector
366
        la      a1,utlb_vector_end
367
        la      t0,0xa0000000
368
1:
369
        lw      v0,0(a0)
370
        sw      v0,0(t0)
371
        sw      v0,0x80(t0)
372
        addiu   a0,a0,4
373
        bne     a0,a1,1b
374
        addiu   t0,t0,4
375
#if defined(CYG_HAL_STARTUP_ROM)
376
        la      a0,other_vector
377
        la      a1,other_vector_end
378
        la      t0,0xa0000180
379
1:
380
        lw      v0,0(a0)
381
        sw      v0,0(t0)
382
        addiu   a0,a0,4
383
        bne     a0,a1,1b
384
        addiu   t0,t0,4
385
#endif
386
        .endm
387
#else
388
        .macro  hal_mon_copy_trampoline
389
        .endm
390
#endif
391
 
392
        # Fill the VSR table with the default VSRs.
393
        # If we contain the stubs, the default VSR will pass
394
        # exceptions on to the stubs.
395
 
396
        .macro  hal_mon_init_vsr_table
397
        la      v0,__default_exception_vsr
398
        la      v1,hal_vsr_table
399
 
400
        sw      v0,(1*4)(v1)
401
        sw      v0,(2*4)(v1)
402
        sw      v0,(3*4)(v1)
403
        sw      v0,(4*4)(v1)
404
        sw      v0,(5*4)(v1)
405
        sw      v0,(6*4)(v1)
406
#       sw      v0,(7*4)(v1)    # Bus error
407
        sw      v0,(8*4)(v1)
408
        sw      v0,(9*4)(v1)
409
        sw      v0,(10*4)(v1)
410
        sw      v0,(11*4)(v1)
411
        sw      v0,(12*4)(v1)
412
        sw      v0,(13*4)(v1)
413
        sw      v0,(14*4)(v1)
414
        sw      v0,(15*4)(v1)
415
        sw      v0,(23*4)(v1)
416
        sw      v0,(24*4)(v1)
417
#       sw      v0,(32*4)(v1)   # debug
418
        sw      v0,(33*4)(v1)   # utlb
419
        sw      v0,(34*4)(v1)   # nmi
420
 
421
        la      v0,__default_interrupt_vsr
422
        sw      v0,(0*4)(v1)
423
 
424
        # plant a pointer to our own bus error handler. See the
425
        # comments in platform.S.
426
        .extern hal_bus_error_vsr
427
        la      v0,hal_bus_error_vsr
428
        sw      v0,(7*4)(v1)
429
 
430
        .endm
431
 
432
#endif
433
 
434
 
435
#define CYGPKG_HAL_MIPS_MON_DEFINED
436
 
437
#endif
438
 
439
#------------------------------------------------------------------------------
440
# Diagnostic macros
441
 
442
 
443
#ifndef CYGPKG_HAL_MIPS_DIAG_DEFINED
444
 
445
#if 0
446
 
447
        # This code generates characters and hex values to a
448
        # Grammar Engine PromICE AI interface.
449
 
450
#define AILOC   0xbfc70000
451
 
452
        .macro  hal_diag_init
453
        la      v0,AILOC
454
1:
455
        lbu     v1,3(v0)
456
        nop ; nop ; nop
457
        subu    v1,0xCC
458
        beqz    v1,1b
459
        nop
460
        lbu     v1,2(v0)
461
 
462
        b       9f
463
        nop
464
 
465
        .global hal_diag_ai_write_char
466
hal_diag_ai_write_char:
467
 
468
        .set    noat
469
        la      v0,AILOC        # v0 = AI location
470
 
471
1:
472
        lbu     v1,3(v0)        # v1 = status register
473
        nop ; nop ; nop
474
        andi    v1,v1,1         # v1 = TDA bit
475
        bnez    v1,1b           # loop while non-zero
476
        nop
477
 
478
        sll     a0,a0,1         # a0 = a0<<1
479
        ori     a0,a0,0x0201    # or in start and stop bits
480
        li      $at,10          # we have 10 bits to send
481
2:
482
        andi    v1,a0,1         # v1 = ls bit of char
483
        add     v1,v0,v1        # v1 = address of ZERO or ONE register
484
        lbu     zero,0(v1)      # read it to send bit
485
        la      v1,100          # delay a bit to let PROMICE deal with it
486
3:      bnez    v1,3b           # loop while non-zero
487
        add     v1,v1,-1        # decrement in delay slot
488
        srl     a0,a0,1         # a0 = a0>>1
489
        subu    $at,1           # decrement count
490
        bnez    $at,2b          # loop while non-zero
491
        nop
492
 
493
        jr      ra              # all done, return
494
        nop
495
 
496
        .set    at
497
 
498
        .global hal_diag_ai_write_hex1
499
hal_diag_ai_write_hex1:
500
        la      v0,9
501
        andi    a0,a0,0xf
502
        ble     a0,v0,1f
503
        nop
504
        addi    a0,a0,('A'-'9'-1)
505
1:      addi    a0,a0,'0'
506
        b       hal_diag_ai_write_char
507
        nop
508
 
509
        .global hal_diag_ai_write_hex2
510
hal_diag_ai_write_hex2:
511
        move    t0,ra           # save ra
512
        move    t1,a0           # save arg
513
        srl     a0,a0,4         # ms nibble
514
 
515
        bal     hal_diag_ai_write_hex1
516
        nop
517
 
518
        move    a0,t1           # retrieve a0
519
        move    ra,t0           # retrieve ra
520
        b       hal_diag_ai_write_hex1
521
        nop
522
 
523
        .global hal_diag_ai_write_hex4
524
hal_diag_ai_write_hex4:
525
        move    t2,ra           # save ra
526
        move    t3,a0           # save arg
527
        srl     a0,a0,8         # ms byte
528
 
529
        bal     hal_diag_ai_write_hex2
530
        nop
531
 
532
        move    a0,t3           # retrieve a0
533
        move    ra,t2           # retrieve ra
534
        b       hal_diag_ai_write_hex2
535
        nop
536
 
537
 
538
        .global hal_diag_ai_write_hex8
539
hal_diag_ai_write_hex8:
540
        move    t4,ra           # save ra
541
        move    t5,a0           # save arg
542
        srl     a0,a0,16        # ms short
543
 
544
        bal     hal_diag_ai_write_hex4
545
        nop
546
 
547
        move    a0,t5           # retrieve a0
548
        move    ra,t4           # retrieve ra
549
        b       hal_diag_ai_write_hex4
550
        nop
551
 
552
 
553
9:
554
        # Output a '!' to check that the interface is working
555
 
556
        li      a0,'!'
557
        bal     hal_diag_ai_write_char
558
        nop
559
 
560
        .endm
561
 
562
        # Utility macro to emit a character
563
        .macro  hal_diag_writec char
564
        .extern hal_diag_ai_write_char
565
        la      a0,\char
566
        lar     v0,hal_diag_ai_write_char
567
        jalr    v0
568
#       bal     hal_diag_ai_write_char
569
        nop
570
        .endm
571
 
572
#if 0
573
        # This macro outputs a '+', the exception number as a
574
        # character offset from 'A' and the exception address
575
        # in hex.
576
        .macro  hal_diag_excpt_start
577
        hal_diag_writec '+'
578
        srl     k0,k0,2
579
        addi    a0,k0,'A'
580
        jal     hal_diag_ai_write_char
581
        nop
582
        move    a0,t6                   # we know t6 contains the epc value
583
        jal     hal_diag_ai_write_hex8
584
        nop
585
        .endm
586
#else
587
        .macro  hal_diag_excpt_start
588
        .endm
589
#endif
590
 
591
#if 0
592
        # This macro outputs a '=' and the vector number as a
593
        # character offset from 'A'.
594
        .macro  hal_diag_intr_start
595
        .extern hal_diag_ai_write_char
596
        hal_diag_writec '='
597
        addi    a0,s2,'A'
598
        jal     hal_diag_ai_write_char
599
        nop
600
        .endm
601
#else
602
        .macro  hal_diag_intr_start
603
        .endm
604
#endif
605
 
606
#if 0
607
        .macro  hal_diag_restore
608
        hal_diag_writec '^'
609
        lw      a0,mipsreg_pc(sp)
610
        lar     k0,hal_diag_ai_write_hex8
611
        jalr    k0
612
        .endm
613
#else
614
        .macro  hal_diag_restore
615
        .endm
616
#endif
617
 
618
#define CYGPKG_HAL_MIPS_DIAG_DEFINED
619
 
620
#elif 0
621
 
622
#define DELAY(n) \
623
        li      $at,n;          \
624
9:      bnez    $at,9b;         \
625
        subu    $at,1;          \
626
 
627
 /* Zilog Access Delay */
628
#define DELZ            DELAY( (200) )
629
 
630
 
631
        .macro  hal_diag_init
632
        la      v0,0xc2000000
633
        DELZ
634
        lbu     v1,8(v0)
635
        andi    v1,v1,0xfc
636
        DELZ
637
        sb      v1,8(v0)
638
        .endm
639
 
640
        .macro  hal_diag_excpt_start
641
        .endm
642
 
643
        .macro  hal_diag_intr_start
644
        la      v0,0xc2000000
645
        DELZ
646
        lbu     v1,8(v0)
647
        xori    v1,v1,0x01
648
        DELZ
649
        sb      v1,8(v0)
650
        .endm
651
 
652
        .macro  hal_diag_restore
653
        la      v0,0xc2000000
654
        DELZ
655
        lbu     v1,8(v0)
656
        xori    v1,v1,0x01
657
        DELZ
658
        sb      v1,8(v0)
659
 
660
#       li      a0,0x0310                       # a0 = type = INTR,RAISE
661
#       lw      a1,mipsreg_sr(sp)               # a1 = sr
662
#       mfc0    a2,status
663
#       jal     cyg_instrument                  # call instrument function
664
#       nop
665
 
666
        .endm
667
 
668
#define CYGPKG_HAL_MIPS_DIAG_DEFINED
669
 
670
 
671
#endif
672
 
673
#endif
674
 
675
 
676
 
677
#------------------------------------------------------------------------------
678
#endif // ifndef CYGONCE_HAL_PLATFORM_INC
679
# end of platform.inc

powered by: WebSVN 2.1.0

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