RTEMS 5 on mcp750 fails

Heinz Junkes junkes at fhi-berlin.mpg.de
Sat May 21 12:39:47 UTC 2022


Hi Mirek,
You can find the configuration of the RTEMS at EPICS here:

epics-base/modules/libcom/RTEMS/posix/rtems_config.c

There for example
...
#define CONFIGURE_EXTRA_TASK_STACKS         (4000 * RTEMS_MINIMUM_STACK_SIZE)

#define CONFIGURE_UNLIMITED_ALLOCATION_SIZE 32
#define CONFIGURE_UNLIMITED_OBJECTS
#define CONFIGURE_UNIFIED_WORK_AREAS
…

best regards,
Heinz

> On 21. May 2022, at 00:21, Joel Sherrill <joel at rtems.org> wrote:
> 
> On Fri, May 20, 2022 at 3:55 PM Miroslaw Dach <miroslaw.dach at gmail.com>
> wrote:
> 
>> Hi Chris,
>> 
>> Thank you very much for your expertise and attached links which are very
>> helpful.
>> As regards the INTERNAL_ERROR_TOO_LITTLE_WORKSPACE error message:
>> Is it possible to determine with some debug information what is the
>> foreseen by RTEMS WORKSPACE size?
>> 
> 
> This CONFIGURE_MEMORY_OVERHEAD is there as a mechanism to toss
> extra memory at the workspace in case confdefs.h makes a mistake. I think
> this
> is more likely to be something else like a misconfigured system. But adding
> this
> to your RTEMS configuration with some chunk of memory like 128K might
> allow this to proceed. But if it is a memory allocation error in the BSP
> like
> not assigning memory right to RTEMS, this won't fix it. See:
> 
> https://docs.rtems.org/branches/master/c-user/config/general.html#configure-memory-overhead
> 
> Chris has touched one of the boards in the motorola_powerpc family
> more recently than I have. I would think this would work unless something
> is off in the EPICS configuration of RTEMS. There was a discussion of the
> EPICS RTEMS configuration with Till recently on tech-talk and I thought
> it looked ok.
> 
> --joel
> 
>> 
>> Best Regards
>> Mirek
>> 
>> śr., 18 maj 2022 o 00:53 Chris Johns <chrisj at rtems.org> napisał(a):
>> 
>>> On 18/5/2022 9:36 am, Miroslaw Dach wrote:
>>>> Dear RTEMS Users and Developers,
>>>> 
>>>> I have built RTEMS 5 with EPICS 7 and tried to boot my application on
>>>> mcp750 cPCI board.
>>>> The first thing that I have encountered is that the boot file is in the
>>> elf
>>>> format so I have
>>>> converted it to the binary one.:
>>>> powerpc-rtems5-objcopy -I elf32-powerpc -O binary myApp.boot
>>> myApp.boot.bin
>>> 
>>> We removed the various post-link hooks.
>>> 
>>>> So far so good
>>>> Next, I booted the system with my app and it fails in the *bsp_early*
>>>> function in
>>>> bsps/powerpc/motorola_powerpc/start/bspstart.c
>>>> 
>>>> The boot sequence:
>>>> Network Boot File load in progress... To abort hit <BREAK>
>>>> 
>>>> Bytes Received =&1270208, Bytes Loaded =&1270208
>>>> Bytes/Second =&635104, Elapsed Time =2 Second(s)
>>>> 
>>>> Residual-Data Located at: $01F88000
>>>> 
>>>> Model: (e2)
>>>> Serial: MOT0000000
>>>> Processor/Bus frequencies (Hz): 366680480/66671508
>>>> Time Base Divisor: 4000
>>>> Memory Size: 2000000
>>>> Residual: 1f88000 (length 27148)
>>>> 
>>>> PCI: Probing PCI hardware
>>>> 
>>>> RTEMS 5.0.0/PPC load:
>>>> Uncompressing the kernel...
>>>> done
>>>> Now booting...
>>>> -----------------------------------------
>>>> Welcome to rtems-5.0.0 (PowerPC/Generic (classic FPU)/mcp750) on
>> Mesquite
>>>> cPCI (MCP750)
>>>> -----------------------------------------
>>>> idreg 0 = 0x1208029271
>>>> OpenPIC found at 0xc1000000.
>>>> pci : Configuring interrupt routing for 'Mesquite cPCI (MCP750)'
>>>> pci : No bridge from bus 0 towards root found
>>>> pci : No bridge from bus 0 towards root found
>>>> pci : Device 1:0x0b:0 routed to interrupt_line 27
>>>> pci : Device 1:0x0d:0 routed to interrupt_line 25
>>>> Cleared PCI errors: pci_stat was 0x2280
>>>> OpenPIC Version ? (2 CPUs and 16 IRQ sources) at 0x3238002688
>>>> OpenPIC Vendor 0 (Unknown), Device 0 (Unknown), Stepping 2
>>>> OpenPIC timer frequency is 8333848 Hz
>>> 
>>> This all looks OK.
>>> 
>>>> 
>>>> *** FATAL ***
>>>> fatal source: 0 (INTERNAL_ERROR_CORE)
>>>> fatal code: 2 (INTERNAL_ERROR_TOO_LITTLE_WORKSPACE)
>>>> RTEMS version: 5.0.0.fc89cc76804499eba3f3bc4097b795a84f07571a-modified
>>>> RTEMS tools: 7.5.0 20191114 (RTEMS 5, RSB 5 (6225eadda1de), Newlib
>>> 7947581)
>>>> executing thread is NULL
>>>> 
>>>> My application in the binary format uncompressed with stripped symbols
>>> is a
>>>> 2.3M + 501K bootloader so I do not think that it
>>>> is an issue with the WORKSPACE? The mcp750 has 32MB of RAM.
>>>> How to detect what is the real cause of
>>> INTERNAL_ERROR_TOO_LITTLE_WORKSPACE
>>>> ?
>>>> Would it be the problem with the linker script ppcboot.lds?
>>> 
>>> I do not think so. I suggest you check the Classic API Guide here:
>>> 
>>> 
>>> 
>> https://ftp.rtems.org/pub/rtems/releases/5/5.1/docs/html/c-user/config/intro.html#sizing-the-rtems-workspace
>>> 
>>> The accounting of memory is better and this means the extra space needed
>>> may
>>> need to be adjusted. I am not sure where in EPCIS this is controlled and
>>> if it
>>> can be overridden in your local configuration.
>>> 
>>> RTEMS 5 has a unified workspace and heap. This means the heap and
>>> workspace can
>>> use memory until it is all used. The benefit is not need to manage the
>>> workspace
>>> size statically:
>>> 
>>> 
>>> 
>> https://ftp.rtems.org/pub/rtems/releases/5/5.1/docs/html/c-user/config/general.html#configure-unified-work-areas
>>> 
>>> Chris
>>> 
>> _______________________________________________
>> users mailing list
>> users at rtems.org
>> http://lists.rtems.org/mailman/listinfo/users
> _______________________________________________
> users mailing list
> users at rtems.org
> http://lists.rtems.org/mailman/listinfo/users



More information about the users mailing list