[RTEMS Project] #3849: Fix PSIM memory map

RTEMS trac trac at rtems.org
Thu Jan 2 11:53:28 UTC 2020


#3849: Fix PSIM memory map
------------------------------+--------------------
  Reporter:  Sebastian Huber  |      Owner:  (none)
      Type:  defect           |     Status:  new
  Priority:  normal           |  Milestone:  5.1
 Component:  arch/powerpc     |    Version:  5
  Severity:  normal           |   Keywords:
Blocked By:                   |   Blocking:
------------------------------+--------------------
 [changeset:"b08278e8520d14e5b809bb07785b724c7a127e29/rtems" b08278e/rtems]
 leads to the following run-time error on PSIM:

 {{{
 BATs must not overlap; area 0x08000000..0x09000000 hits DBAT 0
 BATs must not overlap; area 0x0c000000..0x0d000000 hits DBAT 0
 }}}

 The RAM overlaps with the PCI area:
 {{{
   /*
    * Setup BATs and enable MMU
    */
   /* Memory */
   setdbat(0, 0x0<<28, 0x0<<28, 1<<28, _PAGE_RW);
   setibat(0, 0x0<<28, 0x0<<28, 1<<28,        0);
   /* PCI    */
   setdbat(1, 0x8<<24, 0x8<<24, 1<<24,  IO_PAGE);
   setdbat(2, 0xc<<24, 0xc<<24, 1<<24,  IO_PAGE);
 }}}
 Increasing the RAM size to 256MiB (0x10000000) on PSIM breaks also the
 shared memory support:

 {{{
 typedef struct {
   /* 0x0c000000 - 0x0c007FFF - AMD 29F040 */
   volatile uint8_t Flash[ 512 * 1024 ];

   /* 0x0c080000 - 0x0c0FFFFF - NVRAM/NVRAM */
   volatile uint8_t nvram[ 512 * 1024 ];

   /* 0x0c100000 - 0x0c100007 - NVRAM/RTC */
   psim_rtc_t RTC;

   /* 0x0c100008 - 0x0c10000F - NVRAM/RTC */
   uint8_t gap1[8];

   /* 0x0c100010 - 0x0c10001b - System V IPC Semaphore */
   psim_sysv_sem_t Semaphore;

   /* 0x0c10001c - 0x0c10001f - NVRAM/RTC */
   uint8_t gap2[4];

   /* 0x0c100020 - 0x0c10005F - Ethernet */
   volatile uint8_t Ethtap[ 64 ];

   /* 0x0c100060 - 0x0c10FFFF - NVRAM/RTC */
   uint8_t gap3[65440];

   /* 0x0c110000 - 0x0c12FFFF - System V IPC Shared Memory */
   uint8_t SharedMemory[ 128 * 1024 ];

   /* 0x0c130000 - 0x0c170000 - OpenPIC IRQ Controller */
   volatile uint8_t OpenPIC[ 256 * 1024 ];

 } psim_registers_t;
 }}}

 Proposed solution is to adjust the memory map so that 256MiB of RAM are
 supported. Probably needs changes in rtems-tools.

--
Ticket URL: <http://devel.rtems.org/ticket/3849>
RTEMS Project <http://www.rtems.org/>
RTEMS Project


More information about the bugs mailing list