Flameman/sandpoint3

For more interesting projects done by Flameman, 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.

[]

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


(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) 1 	ROMLOC 	PCI or User(3)/Local(4)
 * 2) 5 	PROGMODE 	7c00 0000
 * 3) 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

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.

[]

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?).

[]

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: In include/asm-ppc/processor.h, or so. And the compiler happily optimizes things in/out with this.
 * 1) define have_of 0

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:


 * 1) 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: ... int _machine; ...
 * 1) ifdef CONFIG_ALL_PPC
 * 1) else
 * 2) define _machine 0
 * 3) 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

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
- 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)
 * Ethernet


 * 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 =


 * good seller about embedded board http://www.brightstareng.com/products.htm
 * good info http://penguinppc.org/embedded/howto/x97.html
 * pretty link http://www.ki.nu/hardware/sandpoint