RTEMS 5 on mcp750 fails

Joel Sherrill joel at rtems.org
Sat May 21 17:06:27 UTC 2022


On Sat, May 21, 2022, 11:02 AM Miroslaw Dach <miroslaw.dach at gmail.com>
wrote:

> Hi Hainz,
>
> Thanks for the indication. I have exactly found this setting and am going
> to reduce
> CONFIGURE_EXTRA_TASK_STACKS which is currently setup by default in EPICS
> to 32MB.
> The mcp750 has just 32MB so it is no wonder that it does not work.
>

If it is configured for unified workspace, you wouldn't specify extra
stacks and this wouldn't have been tripped.

Unified and unlimited can avoid some issues.

--joel

>
> I will test the new configuration next week.
> Have a nice weekend
> Best Regards
> Mirek
>
>
> sob., 21 maj 2022 o 05:39 Heinz Junkes <junkes at fhi-berlin.mpg.de>
> napisał(a):
>
>> 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