Notice: We have migrated to GitLab launching 2024-05-01 see here: https://gitlab.rtems.org/

#1761 closed enhancement

2kB of memory are lost in the SpaceWire Driver — at Initial Version

Reported by: Cláudio Silva Owned by: Joel Sherrill
Priority: highest Milestone: 4.11
Component: bsps Version: 4.10
Severity: minor Keywords:
Cc: Blocked By:
Blocking:

Description

The structure GRSPW_DEV has two members that are the Descriptor Tables
used for the DMA engines. These members are allocated statically (“char
_txtable[SPACEWIRE_BDTABLE_SIZE*2];” ) with twice the size they need
to be. They should have 1024 bytes of size and have 2048. This extra
size is needed because the descriptor table needs to be “1024 aligned
(0x400)”.

In the function “grspw_hw_init” these memory areas are passed to the
function SPW_ALIGN which returns the first aligned address in the
memory area. This way the driver is allocating twice the memory
needed in order to find an aligned base address for the table inside
the memory area.

For example if the _txtable start address is 0x40000001, the address
returned by SPW_ALIGN will be 0x40000400 and the used memory area
will be 0x40000400-0x40000800. Addresses in the range 0x80000001-
0x40000399 will not be used, but will remain allocated.

This way we are losing 2kB in the descriptor tables.

Change History (0)

Note: See TracTickets for help on using tickets.