Difference between revisions of "Flameman/sandpoint3"

From eLinux.org
Jump to: navigation, search
(interesting links)
(2 intermediate revisions by the same user not shown)
Line 1: Line 1:
For more interesting projects done by Flameman, be sure to checkout his [[Flameman#master_index|project index]]
+
For more interesting projects done by Flameman & Legacy, be sure to checkout his [[Flameman#master_index|project index]]
  
 
'''SandpointX3/Altimus with MPC7410/7445 (G4) and MPC107'''
 
'''SandpointX3/Altimus with MPC7410/7445 (G4) and MPC107'''
Line 1,017: Line 1,017:
  
  
 
+
[[Category:PowerPC]]
[[Category:Ppc]]
 

Revision as of 13:57, 29 August 2014

For more interesting projects done by Flameman & Legacy, be sure to checkout his project index

SandpointX3/Altimus with MPC7410/7445 (G4) and MPC107

Motorola Sandpoint X3, a bit about the ppc reference platform

The Sandpoint is a reference platform designed by Motorola to help people develop hardware and software around various PowerPC processors. The basic system is an ATX form-factor motherboard with standard PC devices (IDE, floppy, serial, parallel), 4 PCI slots, and a mezzanine slot to which several different processor modules may be attached.

The Sandpoint evaluation system demonstrates the capabilities of Freescale PowerPC™ processors and the Tundra Tsi107™ PowerPC Host Bridge. The Sandpoint Evaluation System is the ideal platform for software development and debug, as well as for hardware development.

The Sandpoint evaluation system provides an example that can be used in designing other systems based on implementations of the PowerPC instruction set architecture, and a platform for developing and debugging software for these processors and associated bridge chips.

The motherboard inside the Sandpoint evaluation system is an ATX form factor with PCI Mezzanine (PMC) connectors that accepts a processor module. The processor module options are listed below. Links to the processor module web pages can be found under Evaluation/Development Boards and Systems on this page.

Sandpoint II Evaluation System

The Sandpoint II Evaluation System demonstrates the capabilities of the PowerPC® processors and the MPC107 PCI Bridge/Integrated Memory Controller, and is the ideal platform for software development and debug, as well as for hardware development.

The Sandpoint Evaluation System allows system designers to take months off their system design cycle by providing a complete PowerPC system that hardware and software development teams can both begin working on immediately. This eliminates the need to wait until the hardware team gets a board running to start application software development.

Sandpoint can be used as the starting point or a baseline design to help determine the best system design for a new product. It allows performance testing and evaluation of a number of PowerPC processors running at various speeds and configurations.

Sandpoint is housed in an ATX mini-tower case. The Sandpoint motherboard is an ATX form factor with a PCI Mezzanine Card (PMC) connector for the PowerPC processor. The Sandpoint PPCEVAL-SP2-750 processor is a MPC750/107 PMC module with 1 MB L2 cache. The PMC includes 32-MB of SDRAM already installed. Debug monitor software, DINK32, is also provided with the system.

Up to four PCI slot-based devices are supported. Two of these PCI slots are 5 volts and 32-bit. The other two PCI slots are 3.3 volts and 64-bit. The super I/O chip provides two standard 16650 compatible serial ports, an IEEE 1284 parallel port, a floppy disk port, two IDE ports, and PS/2 mouse and keyboard connectors.

Emerson Sandpoint III Flexible processor development platform

Emerson Sandpoint III Boards for

  • LynxOS embedded RTOS v. 4.0
  • BlueCat Embedded Linux v. 4.0
  • Architecture: PowerPC / Power Architecture
  • Processor group: PowerPC 750 (Freescale and IBM)

Many of our target-support guides for BlueCat Linux are available for download. Please consult the board-support guide or contact us for specific platform features supported.

Sandpoint is Emerson's flexible processor development platform. Using Sandpoint, you can evaluate current Emerson host processors and integrated processors based on the PowerPC® architecture using MPMC (Emerson Processor PCI Mezzanine Cards). These cards are interchangable and one Sandpoint platform can support numerous processor-specific PPMC cards (but just one at a time).

The Sandpoint III motherboard is an evaluation baseboard which accepts one Emerson Processor PMC (MPMC) or PrPMC card, as well as up to four PCI cards, and supplies typical PC-I/O peripherals. Sandpoint provides a flexible base for the evaluation of new Emerson processor devices, and for early software design for customer project using Emerson processors.

[[1]]

cpu modules

  • Sandpoint X3 with Valis, processor : MPC7400 V2.8 @ 400 MHz, Memory 64MB @ 100Mhz
  • Sandpoint X3 with Gyrus, processor : PC7445 V3.4 @ 997 MHz, Memory 128MB @ 133Mhz


The Sandpoint evaluation system demonstrates the capabilities of Freescale PowerPC™ processors and the Tundra Tsi107™ PowerPC Host Bridge. The Sandpoint Evaluation System is the ideal platform for software development and debug, as well as for hardware development.

The Sandpoint evaluation system provides an example that can be used in designing other systems based on implementations of the PowerPC instruction set architecture, and a platform for developing and debugging software for these processors and associated bridge chips.

The motherboard inside the Sandpoint evaluation system is an ATX form factor with PCI Mezzanine (PMC) connectors that accepts a processor module. The processor module options are listed below. Links to the processor module web pages can be found under Evaluation/Development Boards and Systems on this page. View Product Image Features

   * One MPPMC slot for a processor board (PrPMC compatible with PCI arbitration extensions)
   * Four 32-bit/5V PCI slots
   * PMC and PCI slots auto-sense/auto-select 33 or 66 MHz operation
   * Two standard 16650-compatible ESD-protected serial ports
   * IEEE 1284 parallel port
   * Floppy disk port
   * Two ATA33 bus-master IDE ports
   * PS/2 mouse and keyboard connectors
   * 8K NVRAM/BBRAM
   * Real-Time Clock
   * Switch-selectable operating modes
   * Advanced Power Controller ("soft on/off")
   * LED monitors for critical functions 

Sandpoint X3 PMC Module Processor Options: Each PMC includes at least 64MByte of SDRAM already installed. Debug monitor software, DINK32, is also provided with the system. Options include:

   * Pre-Configured Linux Sandpoint X3 Motherboard with Valis X3 MPC7457 PMC Module (PPCDEV-SP3-7457)
   * Pre-Configured Linux Sandpoint X3 Motherboard with Valis X3 MPC8245 PMC Module (PPCDEV-SP3-8245)
   * Sandpoint X3 Motherboard with Altimus X3 MPC755 PMC module (PPCEVAL-SP3-755)
   * Sandpoint X3 Motherboard with Altimus X3 MPC7410 PMC module (PPCEVAL-SP3-7410)
   * Sandpoint X3 Motherboard with Gyrus X3 MPC7445 PMC module (PPCEVAL-SP3-7445)
   * Sandpoint X3 Motherboard with Gyrus X3 MPC7447 PMC module (PPCEVAL-SP3-7447)
   * Sandpoint X3 Motherboard with Gyrus X3 MPC7447A PMC module (PPCEVAL-SP3-7447A)
   * Sandpoint X3 Motherboard with Valis X3 MPC7451 PMC module (PPCEVAL-SP3-7451)
   * Sandpoint X3 Motherboard with Valis X3 MPC7455 PMC module (PPCEVAL-SP3-7455)
   * Sandpoint X3 Motherboard with Valis X3 MPC7457 PMC module (PPCEVAL-SP3-7457)
   * Sandpoint X3 Motherboard with Unity X4 MPC8240 PMC module (PPCEVAL-SP3-8240)
   * Sandpoint X3 Motherboard with Unity LC X1 MPC8241 PMC module (PPCEVAL-SP3-8241)
   * Sandpoint X3 Motherboard with Unity X4 MPC8245 PMC module (PPCEVAL-SP3-8245)

Overview

Sandpoint3-mobo.pngSandpoint3-block.gif

(Sandpoint X3 with Valis)


  • integrated host processor
  • JTAG connector on PMC module
  • One PMC slot on motherboard to accept processor PMC modules
  • Switch-selectable modes
  • Four 5V 32-bit PCI slots at 33 MHz
  • Two standard 16650-compatible serial ports
  • IEEE 1284 parallel port
  • NVRAM and real-time clock (RTC)
  • Two IDE ports
  • LED monitors critical functions
  • Advanced Power Controller ("soft on/off")

pci slot

PCI slot attached on Winbond W83C553F


flash ROM

PrMC (8245)

SandPoint X3 (PCI flash)
(1)   PLCC		PCI Boot ROM	DINK32 
(2)   AMD 29F016	(?) backup			 
(3)   AMD Am29DL323CB	Local user	u-boot 1.1.6
(4)   AMD Am29DL323CB	Local boot  	DINK32

on Sandpoint X3: DIPSW1 (#1) ROMSEL, PrMC (Local/User flash)


flash ROM

  • 1. SandPoint X3, DIP SW1, ROMSEL(#1)
  • 2. CPU Board, DIP SW2

ff00 0000 -- ffff ffff 16M 4M FLASH


                            (a)           (b)           (c)          (d)
ffff ffff               +----------+  +----------+  +----------+ +----------+ 
fff0 0000 (Reset Vector)|          |  |          |  |          | |          |
              4M        |   PCI    |  |   PCI    |  |   (4)    | |   (3)    |
ffc0 0000		|          |  |          |  |          | |          |
			+----------+  +----------+  +----------+ +----------+
              4M	|          |  |          |  |          | |          |
			|   PCI    |  |   PCI    |  |   (4)    | |   (3)    |
ff80 0000		|          |  |          |  |          | |          |
			+----------+  +----------+  +----------+ +----------+
              4M	|          |  |          |  |          | |          |
			|    (4)   |  |   (3)    |  |   (3)    | |   (4)    |
ff40 0000		|          |  |          |  |          | |          |
			+----------+  +----------+  +----------+ +----------+
              4M	|          |  |          |  |          | |          |
			|    (4)   |  |   (3)    |  |   (3)    | |   (4)    |
ff00 0000		|          |  |          |  |          | |          |
			+----------+  +----------+  +----------+ +----------+
7fff ffff		..	      ..            ..           ..          
			+----------+  +----------+  +----------+ +----------+
 	      64M       |          |  |          |  |          | |          |
			|   (3)    |  |   (4)    |  |          | |          |
7c00 0000		|          |  |          |  |          | |          |
      			+----------+  +----------+  +----------+ +----------+


  • CPU SW2 ROMLOC(#1)
  • CPU SW2 ROMSEL(#6)
  • DIPSW1 (#1) ROMSEL
SW2
#1 	ROMLOC 	PCI or User(3)/Local(4)
#5 	PROGMODE 	7c00 0000
#6 	ROMSEL 	User(3) or Local(4)

Screen shot

I/O system initialized...
Environment is not valid...
Skipping system setup...
RealTime Clock: not running/set.
Memory Enabled: [ 64MB at CL=3 ]
Caches Enabled: [ L1I(32K), L1D(32K) ]
Register Inits: [ 32 GPRs, 32 FPRs, 255 SPRs, 32 VPRs ]
Assembler Init: [ 895 opcodes ]


                 ##  ##            ##
                 ##  ##            ##
                 ##                ##                                           
            #######  ##  #######   ##    ##                                     
           ##    ##  ##  ##    ##  ##   ##                                      
           ##    ##  ##  ##    ##  ######                                       
           ##    ##  ##  ##    ##  ##   ##                                      
            ######   ##  ##    ##  ##    ##                                     
                                                                                
      (        (    (  ( (AltiVec) )  )    )        )                           
                                                                                
   Version : 13.0, Metaware Build                                               
  Released : INTERIM( build 787 on Jan 31 2003 12:07:53 )                       
Written by : Motorola's RISC Applications Group, Austin, TX                     
    System : Sandpoint X3 with Valis (MPMC7400)                                 
 Processor : MPC7400 V2.8 @ 400 MHz, Memory @ 100 MHz                           
    Memory : Map B (CHRP) 64MB at 3/1/1/1                                       
                                                                                
Copyright Motorola Inc. 1993-2002                                               
Refer to `history.c' for release info, changes, errata and fixes. 


Features

  • One MPPMC slot for a processor board (PrPMC compatible with PCI arbitration extensions)
  • Four 32-bit/5V PCI slots
  • PMC and PCI slots auto-sense/auto-select 33 or 66 MHz operation
  • Two standard 16650-compatible ESD-protected serial ports
  • IEEE 1284 parallel port
  • Floppy disk port
  • Two ATA33 bus-master IDE ports
  • PS/2 mouse and keyboard connectors
  • 8K NVRAM/BBRAM
  • Real-Time Clock
  • Switch-selectable operating modes
  • Advanced Power Controller ("soft on/off")
  • LED monitors for critical functions

About the ppc7410 head sink

to replace unscrew the 2 parts, slide the head sink onto the part so the rails catch under the chip Tighten a little


firmware

DINK32

DINK32 was developed as an internal Motorola PowerPC tool to help debug silicon as well as code. It runs on a variety of boards including the Yellowknife, Sandpoint, Excimer and Maximer. DINK32 has the full complement of commands. DINK32 supports all of the currently available PowerPC microprocessors including the 603, 603e, 604 family, the integrated processor, 8200 the 8240, the 7xx family and the 7400. DINK32 is a great source for example code when initializing the MPC105, MPC106, MPC107 memory controllers/bridge chips. DINK32 source code also includes sample code for the MPC8240 subsystems, DMA, EPIC, I2C, and I2O.

memory issue

DINK32 (v13.1, too) initializes the wrong amount which will cause a kernel panic if you rely on the getting the amount of memory from how the memory ctlr regs are set up.

  In the interim, you could write 'correct' values using the 

           dm i2c -a 50 0-7f'


  0x80,0x08,0x04,0x0c,0x09,0x02,0x40,0x00,
  0x01,0x75,0x54,0x00,0x80,0x10,0x00,0x01,
  0x8f,0x04,0x06,0x01,0x01,0x00,0x0e,0xa0,
  0x60,0x00,0x00,0x14,0x0f,0x14,0x2d,0x10,
  0x15,0x08,0x15,0x08,0x00,0x00,0x00,0x00,
  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x97,
  0x7f,0x98,0x00,0x00,0x00,0x00,0x00,0x00,
  0x46,0x4d,0x34,0x20,0x36,0x34,0x53,0x30,
  0x36,0x34,0x43,0x33,0x2f,0x31,0x32,0x38,
  0x00,0x00,0x00,0x00,0x00,0x01,0x1e,0x1f

setting? dunno, what google says about the similar SandpointX3/8240 board

Dunno about the 74** cpu module, but something specific is required to be configured in order to correctly initialize the dram (that fixes kernel panics).

Ok, there is no specific info about 7400,7410,7445, there is no uboot port, but i found uBoot installed in the flash memory of the CPU card of "Sandpoint 8240 X3 board", with the following DIP switch settings:

Motherboard

SW1.1: on       SW1.2: on       SW1.3: on       SW1.4: on
SW1.5: on       SW1.6: on       SW1.7: on       SW1.8: on

SW2.1: on       SW2.2: on       SW2.3: on       SW2.4: on
SW2.5: on       SW2.6: on       SW2.7: on       SW2.8: on


CPU Card:

SW2.1: OFF      SW2.2: OFF      SW2.3: on       SW2.4: on
SW2.5: OFF      SW2.6: OFF      SW2.7: OFF      SW2.8: OFF

SW3.1: OFF      SW3.2: on       SW3.3: OFF      SW3.4: OFF
SW3.5: on       SW3.6: OFF      SW3.7: OFF      SW3.8: on

The followind detailed description of installation and initial steps with U-Boot and QNX was provided by Jim Sandoz sandoz@lucent.com

what doc says about setting for similar cpu module 745*

claiming success about "sandpointX3/MPC745*" with kernel tested at 1Ghz 100Mhz Memory

freescale was suggesting the following

  • AN2660, sandpoint-memory-consideration
  • AN2578, sandpoint-kernel-booting
SW1=01.11.11.10
SW2=10.10.10.00
SW3=10.00.10.01

0 means switch set to ON
1 means switch set to OFF

other combination may not uncompress (bZimage??)

also she suggests the following on DINK13.1 on sandpointX3/ppc7445:

it's necessary to configure the I2c on the PMC for a single bank 128Mb memory.

To do this:

mi -b -w128
dm i2c -a 50 3
d
x

env -c
env L2CACHE=0
env L3CACHE=0
reset

memory map

0x000000400 =   1K
0x000000800 =   2K
0x000001000 =   4K    reserved
0x000002000 =   8K
0x000004000 =  16K
0x000008000 =  32K
0x000010000 =  64K 
0x000020000 = 128K
0x000040000 = 256K
0x000080000 = 512K
0x000090000 = 576K --------------
      do not use, it crashes              
0x000100000 =   1M --------------
0x000200000 =   2M     user ram 
0x000400000 =   4M
0x000800000 =   8M 
0x001000000 =  16M --------------
0x002000000 =  32M     user ram 
0x004000000 =  64M --------------
0x008000000 = 128M
0x010000000 = 256M 
0x020000000 = 512M
0x040000000 =   1G
0x080000000 =   2G
0x100000000 =   4G
  • mt -b 90000 2000000 causes an issue
  • mt -b 100000 2000000 should work

cpu

DINK32[MPC7400] {2} >>cpuinfo
  Processor Name   : MPC7400 ("Max")
  Processor Class  : G4
  Exception handler: PPC7400
  L1I+D Cache Size :   32K
  L2 External Cache: 1024K
  TLBs             : 64
  BATs             : 4 IBAT + 4 DBAT  (extendable: No)
  Floating Point   : Yes
  AltiVec          : Yes (Classic)
  PCI Embedded     : No
  RapidIO Ports    : 0
  Ethernet Ports   : 0

downloading using the net, DINK32.v13

  • instead of using the serial support still (DINK32 r13.0.0 and newer support 115200 baud)
  • you can use the ethernet card support, so loading a kernel will go much less painful

To download via the network, DINK uses fixed IP address and Realtek8139 NIC. The steps are:

  • do "ppr" verify NIC card has been identified vendor/device ID as 10EC/8139
  • do "env IO=COM1:9600 at 100, Then "reset"
  • do "ni -i " to set up your network parameters
  • set up you tftp server at host side
  • the download command is "dl -nw -b -o800000 -fzImage.sandpoint"
  • "go 810000"


For example:


     DINK32[MPC7457] {1} >>ni
     NETWORK INFORMATION
       PCI CARD
         Type 8139/10EC on slot 16

       SETTINGS
         SERVER(TFTP) : 192.168.  1.  1
         GATEWAY      : 192.168.  1.  1
         NETMASK      : 255.255.255.  0
         DHCP         : 192.168.  1.  1
         CLIENT(DINK) : 192.168.  1.  7

       DHCP: Disabled
       SESSION TIMEOUT: Never


You can change IP addr, image name, to fit your setup, and as far as differences in the X2 vs. X3, yes there are important differences.

you can not ping

You cannot 'ping' DINK as the stack is not persistent. It is only usable when networking tasks are being performed. You might be able to ping it while doing a tftp, but I wouldn't count on it.

Use a pretty kernel if you want ping working.

uboot/ppcboot

is it supported about sandpoint ?

This is an actively developed ROM monitor and Linux boot loader ideal for custom boards, derived from 8xxROM and FADSROM. It includes support for BOOTP, RARP and TFTP image downloading and booting.

[[2]]

PPCForth

PPCForth is a minimalist version of the FORTH language (for the PowerPC [tm]) which may be used as a test environment for boards, a bootloader, or even (shudder) a developement environment. I use it to boot my 403GCX board as well as loading C programs and other experiments. FORTH is particularly well suited for interactive testing as it is interpreted and as such may be extended on-the-fly. PPCForth is also rather small, weighing in at under 30K of code for everything, and under 10K for a bare-bones bootloader.

Currently PPCForth has only been ported to 403-based boards, but I am looking at supporting the 8xx series as well, as soon as I can get some actual hardware to try it on (donations anyone?).

[[3]]

gentoo

platform support ???

is there support for 2.6 kernels ? only 2.4 ???

what is supported and what is not ???

boot shot

2.6.19 ramrootfs/uclibc microroot


                 ##  ##            ##
                 ##  ##            ##
                 ##                ##
            #######  ##  #######   ##    ##
           ##    ##  ##  ##    ##  ##   ##
           ##    ##  ##  ##    ##  ######
           ##    ##  ##  ##    ##  ##   ## 
            ######   ##  ##    ##  ##    ##

      (        (    (  ( (AltiVec) )  )    )        )

   Version : 13.1.1, Metaware Build
  Released : May 13, 2003 Built on May 13 2003 13:09:37
Written by : Motorola's RISC Applications Group, Austin, TX
    System : Sandpoint X3 with Gyrus (MPMC7445)
 Processor : MPC7445 V3.4 @ 500 MHz, 100 MHz memory
    Memory : Map B (CHRP) 128MB at CL=2

Copyright Motorola Inc. 1993-2003
Refer to `history.c' for release info, changes, errata and fixes.


DINK32[MPC7445] {1} >>
DINK32[MPC7445] {1} >>dl -nw -b -of00000 -fgentoo-sandpoint.img
Filename = gentoo-sandpoint.img
File format =  Plain binary  
Offset = 0x00F00000
Received 10023 TFTP data blocks.

Successfully read 5131728 bytes via TFTP at  1968216 bytes/sec


DINK32[MPC7445] {2} >>go f10000
[*] dink32 kernel wrapper simple

load_kernel    : decompress_kernel to be hooked into
load_addr      : 00F10000 013E6134
loaded at      : 00F10000 013E6134
relocated to   : 00F00000 013D6134
zimage at      : 00F05F5C 013D3022
initrd at      : 013D4000 013D4000
addressable    : 00000000 03FFFFFF
avail ram      : 013D7000 02000000
decompress at  : 00000000 00F00000

kernel/PPC cmdline="console=ttyS0,9600 rdinit=/sbin/init init=/bin/bash"
Uncompressing kernel...done.
kernel jump
Total memory = 64MB; using 128kB for hash table (at c0640000)
Linux version 2.6.22-manatnees-batman-sandpoint (root@minerva) (gcc version 4.10
Motorola SPS SandpointX3 Development Platform
Zone PFN ranges:
  DMA             0 ->    16384
  Normal      16384 ->    16384
early_node_map[1] active PFN ranges
    0:        0 ->    16384
Built 1 zonelists.  Total pages: 16256
Kernel command line: console=ttyS0,9600 rdinit=/sbin/init init=/bin/bash
OpenPIC Version 1.2 (1 CPUs and 22 IRQ sources) at fdfd0000
OpenPIC timer frequency is 100.000000 MHz
PID hash table entries: 256 (order: 8, 1024 bytes)
time_init: decrementer frequency = 24.358758 MHz
Console: colour dummy device 80x25
Dentry cache hash table entries: 8192 (order: 3, 32768 bytes)
Inode-cache hash table entries: 4096 (order: 2, 16384 bytes)
Memory: 58392k available (1924k kernel code, 616k data, 3832k init, 0k highmem)
Mount-cache hash table entries: 512
NET: Registered protocol family 16
PCI: Probing PCI hardware
PCI: Cannot allocate resource region 1 of device 0000:00:00.0
NET: Registered protocol family 2
IP route cache hash table entries: 1024 (order: 0, 4096 bytes)
TCP established hash table entries: 2048 (order: 2, 16384 bytes)
TCP bind hash table entries: 2048 (order: 1, 8192 bytes)
TCP: Hash tables configured (established 2048 bind 2048)
TCP reno registered
io scheduler noop registered
io scheduler anticipatory registered
io scheduler deadline registered
io scheduler cfq registered (default)
gpio: dht-walnut IBM PPC405
chardev-mac: chardev attached to /dev/chardev-mac c 252 0.
Generic RTC Driver v1.07
Serial: 8250/16550 driver $Revision: 1.90 $ 4 ports, IRQ sharing disabled
serial8250: ttyS0 at MMIO 0x0 (irq = 4) is a NS16550A
serial8250: ttyS1 at MMIO 0x0 (irq = 3) is a NS16550A
RAMDISK driver initialized: 16 RAM disks of 4096K size 1024 blocksize
loop: module loaded
e100: Intel(R) PRO/100 Network Driver, 3.5.17-k4-NAPI
e100: Copyright(c) 1999-2006 Intel Corporation
8139too Fast Ethernet driver 0.9.28
eth0: RealTek RTL8139 at 0xbffe00, 00:e0:5c:00:29:89, IRQ 21
Uniform Multi-Platform E-IDE driver Revision: 7.00alpha2
ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx
hda: SAMSUNG WNR-31601A (1600MB), ATA DISK drive
ide0 at 0xbffff8-0xbfffff,0xbffff6 on irq 14
hda: max request size: 128KiB
hda: 3145968 sectors (1610 MB) w/256KiB Cache, CHS=3121/16/63
 hda: [mac] hda1 hda2 hda3 hda4
serio: i8042 KBD port at 0x60,0x64 irq 1
serio: i8042 AUX port at 0x60,0x64 irq 12
rtc-test rtc-test.0: rtc core: registered test as rtc0
rtc-test rtc-test.1: rtc core: registered test as rtc1
TCP cubic registered
NET: Registered protocol family 1
NET: Registered protocol family 17
rtc-test rtc-test.0: setting the system clock to 2010-02-18 04:32:26 (126646754)
Freeing unused kernel memory: 3832k init
[*] mount 
[*] ttykeymaps 
/dev/tty0 /dev/tty1 /dev/tty2 /dev/tty3 /dev/tty4 /dev/tty5 /dev/tty6 /dev/tty7 
/dev/ttyS0 /dev/ttyS1 
[*] clock 
[*] machine-identify 
[*] hostname 
[*] networking 
eth0: link up, 100Mbps, full-duplex, lpa 0x45E1
[*] telnetd 
[*] env-shared-libraries 
[*] tiniweb 
[*] issue 
[*] sftp-server 
[*] sshd 
                                                                             
   e    a    r    l    y     r    a    m    r    o    o    t    f    s       
   Y O U    H A V E    T H E   P O W E R    U S E    C A R E F U L L Y       
   i   n   s   e   r   t      c  o  i  n  s      p   l   e   a   s   e       
                                                                             

                 ,,,,
                $$$$$$
              $$$$$$$$$  
             $$$$$$$$$$$                                 ,,
             $$$$$$$$$$$$                              $$$$$,
             `$$$$$$$$$$$                            $$$$$$$$
              `$$$$$$$$$Z$      $$$       $$$       $$$$$$$$`
               `$ZzZ$$$Z$$$   $$$$$$$   $$$$$$$    $$$$$$$$`
                `$$$ZZZ$$$$$ $$$$$$$$$ $$$$$$$$$  $$$$$$$$`
                 `$$$$$$$$$$ $$ZZ$$$$$ $$ZZZ$$$$ $$$$$$$$
    u$$$$$$u      `$$$$$$$$$$ $$$ZZZ$$ $$$$$ZZ$$ $$$$$$$`
  $$$$$$$$$$Z$     `$ZZ$$$ZZZ $$$$$$$$ $$$$$$$$$ $$$$$$
 $$$$$$$$$$$Z$$$$  $$$$zzz$$$ $$$$$$$$ $$$$$$$$$ $$$$$$`
 $$$$$$$$$$Z$$$$$$$$$$$$$$$$$ $$ZZ$$$$ $ZZZ$$$$$ $$$$$`
   `$$$$$$$Z$$$$$$$$$$$$$$$$$ $$$$$ZZ$ $ $$$$$$$ $$$$$`
        `$Z$$$$$$$$$$$$$$$$$$ $SB$$$  $$ $$$$$$ $$$$`
          `$$$$$$$$$$$$$$$$$$$,````,$$$$, ````,$$$$`
           `$$$$$$$$$$$$$$$$$$$$$$ $$$$$$$$$$$$$$$`
             `$$$$$$$$$$$$$$$$$$$$$ $$$$$$$$$$$$$`
               `$$$$$$$$$$$$$$$$$$$ $$$$$$$$$$$$`
                  `$$$$$$$$$$$$$$$$ $$$$$$$$$$`
                   `$$$$$$$$$$$$$$$$ $$$$$$$`
                     $$$$$$$$$$$$$$$$$$$$$$ 
 
             P  o  w  e  r  u  c   m  a  c  h  i  n  e 

             genuine interest in the u' n i x platform 
             genuine appreciation of solid engineering 

sandpoint-7445 login: root
Password: 
  M  e  s  s  a  g  e      O  f      T  h  e      D  a  y
  i  n  s  e  r  t     c  o  i  n  s     p  l  e  a  s  e     

proof

> DINK32 12.2 does not correctly initalize the memory controller on-board.
> DINK32 12.3 claims to do this correctly, but in some testing locally it
> still did not get everything correct.

Could you be more specific as to what is missing?

> There's a chance that PPCBoot does get this right, however.  But I'm no
> PPCBoot expert.

I don't know about the 74xx support in PPCBoot, but PPCBoot sets up
the 107 in a MCP8245 on a Sandpoint X3 well-enough to boot linux.
PPCboot does not, however, configure more than one 'bank' on the
SO-DIMM socket, and does not (currently) read the SPDs, if only for
the lack of proper I2C support (at least for the 824x).

YMMV.

My question is how have_of got set:

arch/ppc/mm/init.c:
        if (!have_of)
                FREESEC(openfirmware);

Otherwise...

On the whole "'reset/reboot' the system" thread, I'm interested in
similar solutions for the 824x, since I'm having highly similar
problems on reboot. :-)

Interestingly, the 'gorom' solution works fine for me, as long as my
root filesystem is not jffs2, then only if / is mounted 'rw'.

romfs, cramfs, nfs, or jffs2 (read-only) all reboot just fine.


> Tom Rini writes:
> >
> > On Thu, May 30, 2002 at 11:02:44PM -0700, Sergiy Kovtun wrote:
> >
> > > Hello All,
> > > I try to connect all my 64 Meg memoty on
> > > Sandpoint-X3B,
> > > but received a crash( with 32M all OK).
> > > Source:
> > > SP-X3B + Altimus MPC7410
> > > HHL 2.0
> > > Any ideas??
> >
> > DINK32 12.2 does not correctly initalize the memory controller on-board.
> > DINK32 12.3 claims to do this correctly, but in some testing locally it
> > still did not get everything correct.
>
> Could you be more specific as to what is missing?

On the DINK32 12.2 side it blindly sets some parts up for 64mb total
regardless of the ammount of memory.  I think there's other things as
well, but Mark Greer would know better..

For DINK32 12.3 the first problem I've hit is that I can't seem to
convince it to setup the SPD bits on the memory for the 64mb total that seems
to be on the board, only 128mb.  Using DINK32 12.2 and 12.3 to try and
get all of that done 'correctly' still had things blowing up when I
tried to use 64mb.   But I've been busy tracking down other issues at
the moment..

> My question is how have_of got set:
>
> arch/ppc/mm/init.c:
>         if (!have_of)
>                 FREESEC(openfirmware);

On !CONFIG_ALL_PPC, we have:
#define have_of 0
In include/asm-ppc/processor.h, or so.  And the compiler happily
optimizes things in/out with this.


Tom Rini writes:
> On Fri, May 31, 2002 at 10:01:39AM -0500, Jim Thompson wrote:
> >
> > Tom Rini writes:
> > >
> > > On Thu, May 30, 2002 at 11:02:44PM -0700, Sergiy Kovtun wrote:

> > My question is how have_of got set:
> >
> > arch/ppc/mm/init.c:
> >         if (!have_of)
> >                 FREESEC(openfirmware);
>
> On !CONFIG_ALL_PPC, we have:
> #define have_of 0
> In include/asm-ppc/processor.h, or so.  And the compiler happily
> optimizes things in/out with this.

I should have been more explicit.

in include/asm-ppc/processor.h, I'd found:

#define have_of (_machine == _MACH_chrp || _machine == _MACH_Pmac)

A sandpoint (esp with Dink) is neither CHRP or PMAC, so the call to
FREESEC(openfirmware) shouldn't have occurred.


> Tom Rini writes:
> > On Fri, May 31, 2002 at 10:01:39AM -0500, Jim Thompson wrote:
> > >
> > > Tom Rini writes:
> > > >
> > > > On Thu, May 30, 2002 at 11:02:44PM -0700, Sergiy Kovtun wrote:
>
> > > My question is how have_of got set:
> > >
> > > arch/ppc/mm/init.c:
> > >         if (!have_of)
> > >                 FREESEC(openfirmware);
> >
> > On !CONFIG_ALL_PPC, we have:
> > #define have_of 0
> > In include/asm-ppc/processor.h, or so.  And the compiler happily
> > optimizes things in/out with this.
>
> I should have been more explicit.
>
> in include/asm-ppc/processor.h, I'd found:
>
> #define have_of (_machine == _MACH_chrp || _machine == _MACH_Pmac)

Thanks for the memory jog :)

Up near the top, we have:
#ifdef CONFIG_ALL_PPC
...
int _machine;
...
#else
#define _machine 0
#endif

So have_of becomes: (0 == 0x4 || 0 == 0x2)

> A sandpoint (esp with Dink) is neither CHRP or PMAC, so the call to
> FREESEC(openfirmware) shouldn't have occurred.

It's !have_of, so we really did want to free the __openfirmware stuff.

> > Tom Rini writes:
> > > On Fri, May 31, 2002 at 10:01:39AM -0500, Jim Thompson wrote:
> > > >
> > > > Tom Rini writes:
> > > > >
> > > > > On Thu, May 30, 2002 at 11:02:44PM -0700, Sergiy Kovtun wrote:
> >
> > > > My question is how have_of got set:
> > > >
> > > > arch/ppc/mm/init.c:
> > > >         if (!have_of)
> > > >                 FREESEC(openfirmware);
> > >
> > > On !CONFIG_ALL_PPC, we have:
> > > #define have_of 0
> > > In include/asm-ppc/processor.h, or so.  And the compiler happily
> > > optimizes things in/out with this.
> >
> > I should have been more explicit.
> >
> > in include/asm-ppc/processor.h, I'd found:
> >
> > #define have_of (_machine == _MACH_chrp || _machine == _MACH_Pmac)
>
> Thanks for the memory jog :)
>
> Up near the top, we have:
> #ifdef CONFIG_ALL_PPC
> ...
> int _machine;
> ...
> #else
> #define _machine 0
> #endif
>
> So have_of becomes: (0 == 0x4 || 0 == 0x2)
>
> > A sandpoint (esp with Dink) is neither CHRP or PMAC, so the call to
> > FREESEC(openfirmware) shouldn't have occurred.
>
> It's !have_of, so we really did want to free the __openfirmware stuff.

I dunno guys, I think the compiler usually optimizes that all away and you
should never see "openfirmware".  I don't recall ever seeing it print out.  I
think something fishy is going on...

> > > > Hello All,
> > > > I try to connect all my 64 Meg memoty on
> > > > Sandpoint-X3B,
> > > > but received a crash( with 32M all OK).
> > > > Source:
> > > > SP-X3B + Altimus MPC7410
> > > > HHL 2.0
> > > > Any ideas??
> > >
> > > DINK32 12.2 does not correctly initalize the memory controller on-board.
> > > DINK32 12.3 claims to do this correctly, but in some testing locally it
> > > still did not get everything correct.
> >
> > Could you be more specific as to what is missing?
>
> On the DINK32 12.2 side it blindly sets some parts up for 64mb total
> regardless of the ammount of memory.  I think there's other things as
> well, but Mark Greer would know better..

experience a boot

  Magic:   7f 45 4c 46 01 02 01 00 00 00 00 00 00 00 00 00 
  Class:                             ELF32
  Data:                              2's complement, big endian
  Version:                           1 (current)
  OS/ABI:                            UNIX - System V
  ABI Version:                       0
  Type:                              EXEC (Executable file)
  Machine:                           PowerPC
  Version:                           0x1
  Entry point address:               0x800000
  Start of program headers:          52 (bytes into file)
  Start of section headers:          1511468 (bytes into file)
  Flags:                             0x0
  Size of this header:               52 (bytes)
  Size of program headers:           32 (bytes)
  Number of program headers:         3
  Size of section headers:           40 (bytes)
  Number of section headers:         7
  Section header string table index: 4

Elf file type is EXEC (Executable file)
Entry point 0x800000
There are 3 program headers, starting at offset 52

Program Headers:
  Type           Offset   VirtAddr   PhysAddr   FileSiz MemSiz  Flg Align
  LOAD           0x010000 0x00800000 0x00800000 0x161000 0x163130 RWE 0x10000
  GNU_STACK      0x000000 0x00000000 0x00000000 0x00000 0x00000 RWE 0x4
  PAX_FLAGS      0x000000 0x00000000 0x00000000 0x00000 0x00000     0x4

 Section to Segment mapping:
  Segment Sections...
   00     .text .data .bss 
   01     
   02     


CONFIG_BOOT_LOAD=CONFIG_BOOT_LOAD=0x00800000

kernel has 10000 byte of header, so if it is located at 0x800000, then it can be started by jumping to 0x810000, the first executable instruction following the header


kernel

report

version host target toolchain note
2.4.37.7 compiled on ppc-7410, minerva arc=ppc/powerpc, target=ppc G4-7410 core gcc-4.1.2-glibc binutils-2.17 it compiles, still not tested
2.6.12 compiled on ppc-7410, minerva arc=powerpc, target=ppc G4-7410 core gcc-4.1.2-glibc binutils-2.17 it compiles, still not tested
2.6.19.2 compiled on ppc-7410, minerva arc=powerpc, target=ppc G4-7410 core gcc-4.1.2-glibc binutils-2.17 it compiles, i modified the bootwrapper in order to have ramrootfs and pretty "return to dink32", it boots and works very nice

NetBSD

Currently, NetBSD/sandpoint requires the use of Motorola's DINK32 ROM to load over a serial port. This means that there is no way to boot from a local disk or PCI device.


Supported processor cards

  • mobo sandpoint/X3
  • CPUmodule Altimus MPC7410
  • CPUmodule Altimus MPC7445

Other PMCs should work, but may need minor adjustments or more substantial work to support additional functionality.

Supported devices

  • Ethernet
         - Asante Mac 10/100 PCI Rev A, part number 09-00169-01 (de) 
         - Farallon Fast EtherTX 10/100, part number PN996L-TX (de) 
         - SMC Etherpower II (9432TX) (epic) 
         - SMC 83c170 (epic) 
         - 3Com 3c905 (ex) 
         - Intel EtherExpress PRO/10+ PCI LAN Adapter (fxp) 
         - Realtek 8029 Ethernet (ne) 
         - VIA Technologies VT86C926 (ne) 
         - D-Link DFE-530TX+ (rtk) 
         - Realtek 8139 (rtk) 
         - Netgear FA-311 (sip) 
         - Lite-On PNIC (tlp) 
         - D-Link DFE-530TX (vr) 
         - Many other PCI Ethernet interfaces, such as Tulip-compatible (de and tlp), 3Com (ep), SMC (epic), Intel (fxp), NE2000-compatible (ne), and Realtek (rtk) 
  • SCSI
         - Adaptec PCI controllers 291x, 2920, 2930C, 294x, 295x, 39xx, 19160, 29160 and AIC-78xx (ahc) 
         - AdvanSys ABP-940UW[68], ABP-970UW[68], ASB3940UW-00 SCSI host adapters (adw) 
         - AdvanSys 1200[A,B], 9xx[U,UA] SCSI controller (adv) 
         - AMD 53c974 (pcscp) 
         - DPT SmartCache/SmartRAID (dpt) 
         - NCR/Symbios 53C8xx (siop or esiop) 
         - Many other PCI SCSI controllers should work, but no one has tried them 
         - Most SCSI disk/tape/CD-ROM devices should work 
  • IDE
         - Promise Ultra66 (pciide) 
         - Some other PCI IDE controllers should work, although no one has had much success 
         - Most IDE disk/CD-ROM/ATAPI devices should work 
  • Audio
         - PCI audio cards, although none have been tested. 
  • Serial ports
         - On-board serial ports (the modem and printer ports) (com0 and com1) 
         - Some PCI serial ports should work, but no one has tried them 
  • PCI cards
         - Most MI PCI cards should work, although very few have been tested with NetBSD/sandpoint http://www.NetBSD.org/support/hardware/pci.html 


Unsupported devices

  • Built-in PS/2 keyboard & mouse
  • Built-in parallel
  • Built-in floppy
  • Built-in IDE

Supported boot devices

Currently, the only way to boot the system is with the DINK32 ROM monitor's serial download or a JTAG device.


Installing

  • Booting the installer
  • Once the kernel is downloaded (s-rec ascii or binary), type "go 90000" to start the kernel.


Example of a normal boot

DINK32 currently only supports loading images through the S-record download command ("dl"). To speed up the process, the baud rate should generally be set to 38.400 baud

   DINK32>> sb -k 38400
   DINK32>> dl -k 38400 -o 90000

In addition, DINK32 supports a binary download feature which is about 150% faster again. To use this facility, srectobin could translate s-record to binary.

   DINK32>> dl -k -b -o 90000


Of course, a lot of the information in this example depends on your model and what your boot method is, but we'll include this anyways just so you get an idea of what to expect (user-typed commands are in bold).

   DINK32>> go 90000
   [ XXX - insert boot w/ installer on ramdisk instead of this example ]

Common Problems and Error Messages Insufficient data.


  1. stty erase '^h'
  2. stty erase '^?'


interesting links