Commit Graph

11505 Commits

Author SHA1 Message Date
Joel Sherrill
c500cbc384 LEON3 - Fix spacing 2012-04-06 09:09:35 -05:00
Daniel Hellstrom
3722ff5a73 LEON3: added IRQAMP support 2012-04-06 09:03:40 -05:00
Daniel Hellstrom
684b54a986 LEON3: halt boot if IRQ controller not found
Signed-off-by: Daniel Hellstrom <daniel@gaisler.com>
2012-04-06 09:03:35 -05:00
Daniel Hellstrom
95518e59bd SPARC BSPs: implemented shared-irq using libbsp/shared layer
The implementation use IRQ number instead of vector number since
some IRQs does not have a unique vector, for example the extended
interrupts all enter the same trap vector entry.

Added support for the LEON3 extended interrupt controller when using
the shared IRQ layer.

ERC32 patches untested.

Signed-off-by: Daniel Hellstrom <daniel@gaisler.com>

Regenerate
2012-04-06 08:17:58 -05:00
Daniel Hellstrom
e60e862c64 LEON3: console use register pointers instead of UART indexes
Signed-off-by: Daniel Hellstrom <daniel@gaisler.com>
2012-04-05 14:47:41 -05:00
Daniel Hellstrom
4b557617fd LEON3: cleanup console UART indexing handling
The UART indexing was rather a mess when MP was enabled. The changes
introduces two weak variables syscon_uart_index and debug_uart_index
so that the user can override the default system debug console (printk)
and system console UART (/dev/console).

The two weak variables is updated on boot to reflect the "real" UART
index.

MINOR    DEVICE-FS-NAME       UART
0        /dev/console         Default /dev/console_a, user selectable
1        /dev/console_a       APBUART[0]   (missing by default)
2        /dev/console_b       APBUART[1]
...

/dev/console_a is by default renamed /dev/console and assigned minor=0,
but user can select /dev/console_['a'+N] to be renamed to /dev/console
by setting syscon_uart_index=N.

On a MP system the console renamed to /dev/console is selected by CPU
index (LEON3_Cpu_Index). /dev/console_['a' + LEON3_Cpu_Index] is
renamed unless overrided. Resource sharing is performed by the user,
one should not open/access a console that another OS instance uses.

This patch also moves the initialization of the UART to the open()
call, note that before APBUART[0] was always enabled as debug uart
even on MP systems. The debug UART is initialized at boot time.

Signed-off-by: Daniel Hellstrom <daniel@gaisler.com>
2012-04-05 14:33:48 -05:00
Jennifer Averett
a36d1b4358 Add MIPS/Malta BSP. 2012-04-04 12:21:15 -05:00
Jennifer Averett
0c0181dee2 PR 1993 - Convert MIPS to PIC IRQ model 2012-04-04 08:43:08 -05:00
Sebastian Huber
eb6362dccb bsp/mpc55xx: Add and use chip features
Add defines MPC55XX_HAS_SIU and MPC55XX_HAS_SIU_LITE.
2012-04-03 17:12:14 +02:00
Sebastian Huber
ba56882cd9 bsp/tqm8xx: Install header file <bsp/irq-info.h> 2012-04-02 14:08:42 +02:00
Sebastian Huber
270fa1e800 bsp/qemuppc: Install header file <bsp/irq-info.h> 2012-04-02 14:08:42 +02:00
Sebastian Huber
b0b32b8906 bsps: Fix for clock driver
Do not use the e300 core decrementer auto-reload feature.  We have to
use the normal decrementer handler since otherwise it is impossible to
pass test sptests/spnsext01.
2012-04-02 13:40:16 +02:00
Sebastian Huber
c988f180c7 bsp/gen83xx: Fix console driver configuration 2012-04-02 13:40:16 +02:00
Sebastian Huber
15fde68c28 bsp/gen83xx: Removed file 2012-04-02 13:40:16 +02:00
Sebastian Huber
06b6a03dc1 bsp/gen83xx: Regenerate 2012-04-02 13:40:16 +02:00
Sebastian Huber
8bb00ace50 bsps: More accurate PowerPC clock driver
The clock driver used previously the bsp_clicks_per_usec value.  For a
33333333Hz time base frequency this leads to a relative error of one per
cent for example due to integer truncation.
2012-04-02 13:40:15 +02:00
Sebastian Huber
1bb72a9487 bsp/gen83xx: Support cache BSP options 2012-04-02 11:40:31 +02:00
Sebastian Huber
a3db5ff4ac bsp/gen83xx: Support for MPC830X 2012-04-02 11:40:31 +02:00
Sebastian Huber
31ea310949 bsp/gen83xx: Add sections for BSD support 2012-04-02 11:40:31 +02:00
Sebastian Huber
73f1b303c3 bsp/gen83xx: Install new header file 2012-04-02 11:40:30 +02:00
Sebastian Huber
69237c1696 bsp/virtex5: Regenerate 2012-04-02 11:40:30 +02:00
Ric Claus
16a86162a2 Add Virtex4 and Virtex5 BSPs
This commit covers at least PR2020, 2022, and 2023. This
patch adds all of the code for both BSPs, modifications
to libcpu/powerpc for the ppc440, and some updates to the
BSPs from follow up review and testing.

These BSPs should be good baselines for future development.
The configurations used by Ric are custom and have a non-standard
NIC. They also do not have a UART.  Thus the current console
driver just prints to a RAM buffer.

The NIC and UART support are left for future work. When the UART
support is added, moving the existing "to RAM" console driver to
a shared location is likely desirable because boards with no debug
UART port are commonly deployed. This would let printk() go to RAM.
2012-03-30 10:03:43 -05:00
Jennifer Averett
0b095f7673 Resolve link problems with psim irq-server
Add IRQ support components needed by new BSD code.
2012-03-30 08:41:15 -05:00
Jennifer Averett
97f82fcdc0 Resolve link problems with psim irq-server 2012-03-30 08:38:14 -05:00
Joel Sherrill
8d0913b865 PC386 - Add files missed in previous commit 2012-03-29 15:53:16 -05:00
Joel Sherrill
2cc30b0d0c PC386 Add RTD316 and Exar 17D15x multi-port serial card support
- RTD316 is a PC-104 board with one Z85C30 SCC for two synchronous
    or asynchronous serial ports.
      http://www.rtd.com/PC104/UM/network/CM316HR.htm
  - Exar 17D15X is a chip with 2, 4, or 8 NS16550 compatible
    serial ports with a PCI interface. It may be found on
    many multi-port serial ports including:
     http://www.rtd.com/PC104/UM/network/CM17320HR.htm
2012-03-29 15:28:13 -05:00
Daniel Hellstrom
2cee553138 LEON3: various cleanups in leon.h
Removed old LEON2 definitions never used in LEON3 leon.h.

Signed-off-by: Daniel Hellstrom <daniel@gaisler.com>
2012-03-29 16:01:19 -04:00
Daniel Hellstrom
226771c5bc LEON3: IRQ index mask was bad, but always shifted out anyway
Signed-off-by: Daniel Hellstrom <daniel@gaisler.com>
2012-03-29 15:08:35 -04:00
Daniel Hellstrom
4fa6be9779 LEON3: clock timer indexing should be consequent
Signed-off-by: Daniel Hellstrom <daniel@gaisler.com>
2012-03-29 15:08:26 -04:00
Jennifer Averett
752f876e3b Address Conflicts:
c/src/lib/libbsp/powerpc/psim/startup/linkcmds
2012-03-29 12:07:30 -05:00
Daniel Hellstrom
0729e2a7af SPARC: bsp_early_malloc() routine for startup memory allocation
If bsp_early_malloc() is called early during boot room will be
allocated after BSS END. If the function is called after boot
is will call malloc() instead. The returned memory is not freeable
and always 8-byte aligned.

If the bsp_early_malloc() isn't called the function is not
dragged in and the workspace will be unmodified in size.

Signed-off-by: Daniel Hellstrom <daniel@gaisler.com>
2012-03-29 12:33:01 -04:00
Daniel Hellstrom
b9d8cd3389 SMC91111: remove old unused LEON2/LEON3 intialization code
Signed-off-by: Daniel Hellstrom <daniel@gaisler.com>
2012-03-29 11:17:42 -05:00
Daniel Hellstrom
d0dbcf8a1a LEON3: fix GRETH interrupt initialization bug
Fixed a bug where the vector number is used to clean and unmask
the IRQ at the IRQ controller, the irq number must be used.

Signed-off-by: Daniel Hellstrom <daniel@gaisler.com>
2012-03-29 11:17:42 -05:00
Daniel Hellstrom
e6f327c785 GRETH: removed the use of rtems_set_clock() in auto-nego timeout
Signed-off-by: Daniel Hellstrom <daniel@gaisler.com>
2012-03-29 11:17:42 -05:00
Daniel Hellstrom
39671330dc GRETH: added support for non-snooping GRETH 10/100 systems
When data cache snooping is not present the cache needs
flushing, the SPARC LEON CPUs does not have to ability
to flush individual cache rows and flushing all cache is
expensive. Instead the LDA instruction is used to force
cache miss on individual loads during the IP-align copy
operation required anyway.

GRETH GBIT non-snooping systems are still unsupported,
since it use zero-copy (can deal with unaligned DMA).

Let the bsp.h select if the GRETH driver is supported.
Currently only the LEON2/LEON3 platforms BSPs builds the
driver.

Signed-off-by: Daniel Hellstrom <daniel@gaisler.com>
2012-03-27 16:29:22 -04:00
Sebastian Huber
a73884e9a5 bsp/lm3s69xx: Reflect new Qemu patch 2012-03-24 23:00:18 +01:00
Sebastian Huber
bd0fb473c3 bsps: Shared ARMv7-M interrupt support 2012-03-24 23:00:08 +01:00
Sebastian Huber
0f31fddcac bsps: Add shared default IRQ handler 2012-03-24 23:00:00 +01:00
Sebastian Huber
b2ee4d5fef bsp/lm3s69xx: Format 2012-03-24 22:59:48 +01:00
Sebastian Huber
954393caec bsp/lm3s69xx: Use shared timer stub driver 2012-03-24 22:59:39 +01:00
Sebastian Huber
1ed238ec43 bsp/lm3s69xx: Use shared start.S 2012-03-24 22:59:27 +01:00
Sebastian Huber
34c6151754 bsps: Shared ARMv7-M clock driver 2012-03-24 20:31:22 +01:00
Sebastian Huber
3c0e7f9b4a bsp/lm3s69xx: New Qemu patch 2012-03-24 20:30:55 +01:00
Sebastian Huber
5cc813f2b5 bsps: Provide optional prototype 2012-03-24 17:33:22 +01:00
Sebastian Huber
e8adc8e355 bsp/lpc24xx: Use proper clock value 2012-03-24 17:03:59 +01:00
Sebastian Huber
f3cdf27975 bsp/lpc24xx: More CAN pin definitions 2012-03-24 17:03:45 +01:00
Daniel Hellstrom
67b1ce4a69 SMC91111: ERC32 was never supported by driver
Moved the intelligence whether the driver is supported or not
completely to the BSP, now that bsp.h is included (even though it
is a driver... hmm). The ERC32 was never supported, so HAS_SMC91111
is not added to erc32/include/bsp.h.

Signed-off-by: Daniel Hellstrom <daniel@gaisler.com>
2012-03-21 12:36:02 -04:00
Daniel Hellstrom
f636ba640e shared-irq: add support for custom BSP vector verification
Signed-off-by: Daniel Hellstrom <daniel@gaisler.com>
2012-03-21 12:36:00 -04:00
Daniel Hellstrom
b4dfce9b7a LEON3: spurious trap handler print out trap in hex instead
Signed-off-by: Daniel Hellstrom <daniel@gaisler.com>
2012-03-21 12:35:56 -04:00
Daniel Hellstrom
80d01b3cf8 SPARC: added libcpu lowlevel access and byteorder routines/definitions
The low level routines can be used in different occasions, it will be
required when accessing PCI.

Note the difference between byteorder.h (inlined functions) and access.S
where the functions will be declared in the library archive librtemscpu.a.
Function names starting with _ are in library and can be referenced by
function pointers.

Signed-off-by: Daniel Hellstrom <daniel@gaisler.com>
2012-03-21 12:35:47 -04:00