For more interesting projects done by Flameman, be sure to check out his [[Flameman#master_index|project index]]

= DHT-Walnut-Flameman =

= DHT-Walnut-Flameman =

Line 7:

Line 7:

'''please note''' this page is actively being updated, it is merged from the old version of wiki. so keep patient, i will rewrite this documentation as soon as possible

'''please note''' this page is actively being updated, it is merged from the old version of wiki. so keep patient, i will rewrite this documentation as soon as possible

−

in case you need a pdf copy of the old doc, or if you need attachments feel free to ask me for them ( flameman, email speeder@alice.it, msn mr.ddc@hotmail.com)

+

in case you need a pdf copy of the old doc, or if you need attachments feel free to ask me for them ( flameman, email flamemaniii@gmail.com)

about the jtag software: the one provided with the url will not work 'cause they remove the support for amcc44x. In case you need this software i stored the old version here, so feel free to ask me about.

about the jtag software: the one provided with the url will not work 'cause they remove the support for amcc44x. In case you need this software i stored the old version here, so feel free to ask me about.

Line 18:

Line 18:

* describe how to build a jtag cable (to debug and recover from "Brickage")

* describe how to build a jtag cable (to debug and recover from "Brickage")

* describe something useful with you can do with the board

* describe something useful with you can do with the board

−

* describe other Operating System avalaible for the board

+

* describe other Operating System available for the board

Line 279:

Line 279:

about issues, and ideas, they are also reported here [[Flameman/dht-walnut/rootfs#firmware_issues_with]]

about issues, and ideas, they are also reported here [[Flameman/dht-walnut/rootfs#firmware_issues_with]]

+

+

+

== about uboot ==

+

+

[[Flameman/uboot]]

= rootfs =

= rootfs =

Line 495:

Line 500:

! toolchain

! toolchain

! note

! note

+

! boot format

|-

|-

| 2.6.15.4

| 2.6.15.4

Line 501:

Line 507:

| gcc-4.1.2-glibc binutils-2.17

| gcc-4.1.2-glibc binutils-2.17

| ramrootfs (uclibc) works great! no issues, no NPTL kernel

| ramrootfs (uclibc) works great! no issues, no NPTL kernel

+

| uImage old style

|-

|-

| 2.6.19

| 2.6.19

Line 507:

Line 514:

| gcc-4.1.2-glibc binutils-2.17

| gcc-4.1.2-glibc binutils-2.17

| ramrootfs (uclibc) works great! no issues

| ramrootfs (uclibc) works great! no issues

+

| uImage old style

|-

|-

| 2.6.22

| 2.6.22

Line 513:

Line 521:

| gcc-4.1.2-glibc binutils-2.17

| gcc-4.1.2-glibc binutils-2.17

| ramrootfs (uclibc) works great! no issues

| ramrootfs (uclibc) works great! no issues

+

| uImage old style

|-

|-

| 2.6.26

| 2.6.26

Line 519:

Line 528:

| gcc-4.1.2-glibc binutils-2.17

| gcc-4.1.2-glibc binutils-2.17

| it does not compile!

| it does not compile!

+

| uImage new style ???

|-

|-

| 2.6.30

| 2.6.30

Line 525:

Line 535:

| gcc-4.1.2-glibc binutils-2.17

| gcc-4.1.2-glibc binutils-2.17

| it does not compile!

| it does not compile!

+

| uImage new style ???

+

|-

+

| 2.6.32

+

| compiled on ppc-7410, minerva

+

| arch=powerpc, target=ppc 603/4 core

+

| gcc-4.1.2-glibc binutils-2.17

+

| it compiles

+

| uImage new style = treeImage.walnut

|}

|}

Line 575:

Line 593:

please report any other working hardware here, or @ flamemaniii@gmail.com

please report any other working hardware here, or @ flamemaniii@gmail.com

−

+

or feel free to add newer lines to [[Flameman/dht-walnut#Hardware_that_is_known_to_work_with_2]]

== development ==

== development ==

Line 581:

Line 599:

thinking new things ... but it should be compatible with "free time constraints" =P

thinking new things ... but it should be compatible with "free time constraints" =P

−

[[Flameman/dht-walnut/develop]]

+

See also [[Flameman/dht-walnut/develop]]

+

+

+

+

== if you need pci-riser ==

+

+

PCI Riser Card 5V 32-bit 2 Slot passive Edge connector X1 of the riser card is inserted in a free 5 V 32-bit slot on the PC motherboard. Slot X2 is then connected and ready for use. The second PCI slot X3 receives its special signals for bus arbitration and interrupt control via the cable from card X4, which is inserted in any other slot on the PCI motherboards. The assembly does not contain any active components. This means that the board is suitable for operation with V(I/O) = 5 V as well as V(I/O) = 3.3 V. The coding of connectors X2 and X3 with this variant is for V(I/O) = 5 V.

+

+

== Misc ==

+

+

* See also [[Flameman/dht-walnut/proof]]

+

+

[[Category:DHT-Walnut]]

+

[[Category:PowerPC]]

Revision as of 04:59, 17 April 2012

For more interesting projects done by Flameman, be sure to check out his project index

DHT-Walnut-Flameman

Note

please note this page is actively being updated, it is merged from the old version of wiki. so keep patient, i will rewrite this documentation as soon as possible

in case you need a pdf copy of the old doc, or if you need attachments feel free to ask me for them ( flameman, email flamemaniii@gmail.com)

about the jtag software: the one provided with the url will not work 'cause they remove the support for amcc44x. In case you need this software i stored the old version here, so feel free to ask me about.

Introduction

The Target-goal of this page is

install gentoo-ppc32 into harddisk

make the board able to boot from it

describe how to build a jtag cable (to debug and recover from "Brickage")

describe something useful with you can do with the board

describe other Operating System available for the board

logical steps about installing gentoo

add the JTAG connector at J10 (you could skip it, it is suggested)

build the JTAG cable (you could skip it, it is suggested))

replace the bootloader with ppcboot 1.1.6/U-boot 1.1.4

make partitions on the Hard Disk

populate them

set the bootloader environment to boot from the Hard Disk

People you could contact if you need help

flameman, i'm currently use this board for a project, email

msn daredevil-coder@hotmail.it

email flamemaniii@gmail.com

irc.nick flameman (channel #edev, #gentoo-ppc)

you ... if you want ;-)

About the board

DHT-Walnut is a shortened name for the Digital Home Technologies PCB 01070201 Rev. 1.1.

The DHT-Walnut board is based on the AMCC-Walnut (still available, and still expensive :P). It is a more improved board described at www.amcc.com.

A "walnut" searching will inform about schematic and software.

Also keep attention @ DENX: they have developed a lot for the AMCC-Walnut board, and you could find a linux patch for your problem, prettier documentation, developer suit, and much more: in case, you are suggested to have a look to their web pages.

you could find it on ebay, search for "walnut", or "powerpc"

MIND UP the differences between "DHT WALNUT" and "AMCC WALNUT" (ALSO CALLED "IBM WALNUT")

Starting bid: US $35.00
Standard Flat Rate Shipping Service
Service to United States
Ships to: Worldwide
Item location: Dallas, Texas, United States
Payment methods: PayPal (preferred)
Tested, In Good Working Order. Please check our store for more items
Interfaces:

* Ethernet
* IEEE 1394 “Firewire”
* RS-232
* IDE
* PCI

Operating System : Embedded Open Source Linux on 4Mbit Flash chip
Comes with a copy of the Boot Loader

other place where to find this board ?

...

Overview

The board consists of:

CPU PowerPC 405GP running at 266mhz

RAM PC133 SDRAM slot, currently, only supports single sidded DIMMs

LAN On-chip 405GP ethernet, board doesn't have an ethernet MAC address (the monitor/bootloader is able to fix it)

UART DCE serial port, speeds up to 230k, only tested to 115200bps

PCI two pci slots, keyed for 5V only cards

IDE Promise Technologies PDC20265 IDE

ROM 512k of boot flash, AMD 29LV040B (amd29lv040b.pdf), soldered on the PCB, if you like to use a socket you have to consider the bootloader will check for the flash manufactor ID, so or you replace the 29LV040B with an other socked-29LV040B, or you have to modify the bootloader

POWER the board need to be 12v dc powered 2A max, it is able to feed the hard disk

System PCB 6.00" x 7.5" board size

RTC the real time clock chip is missing

RAM 32M PC133 SDRAM DIMM, the board has issues with more than 128M: if you inspect the pcb, you will see that the DIMM connector has same pin missing, this is the reason why you can't use DIMM bigger than 128M

PCI IEEE-1394 card supported by OHCI driver

PCI additional ethernet board needed cause the on board ethernet is implemented by the IBM-ppc-405GP, for example netbsd is not able to drive it, so in case you need an additional board, the one provided with DHT is good enough

FIRMWARE PPCBoot v.1.1.2 in flash (it has issues with environment, it need to be replaced with a gooder one)

the u-boot image "sits" at the end of the flash, the 4xx PPC's boot from location 0xfffffffc, so the bootloader needs to be located at the end,
so if u-boot is 256kbyte then it is located 0xfffc0000 ... 0xffffffff

about the memory & the MMU

The PowerPC 405 supports 4 GB of flat (non-segmented) address space. The Memory Management Unit (MMU) provides Address Translation, Protection Functions, and Storage Attribute Control for this address space. The MMU supports demand-paged virtual memory using multiple page sizes of 1 KB up to16 MB. When supported by system software, the MMU provides the following functions:

Translation of the 4 GB logical address space into a physical address space

Independent enabling of instruction translation and protection from that of data translation and protection

Page-level access control using the translation mechanism

Software control over the page replacement strategy

Additional protection control using zones

Storage attributes for cache policy and speculative memory access control

The Translation Look-aside Buffer (TLB) is used to control memory translation and protection. Each one of its 64 entries specifies a page translation. It is fully associative and can simultaneously hold translations for any combination of page sizes. To prevent TLB contention between data and instruction accesses, a 4-entry instruction and an 8-entry data shadow TLB are maintained by the processor transparently to the software. Software manages the initialization and replacement of TLB entries.

The PowerPC 405 includes instructions for managing TLB entries by software running in privileged mode. This capability gives significant control to system software over the implementation of a page replacement strategy. Storage attributes are provided to control access of memory regions. When memory translation is enabled, storage attributes are maintained on a page basis and read from the TLB when a memory access occurs. When memory translation is disabled, storage attributes are maintained in storage attribute control registers. A zone protection register (ZPR) is provided to allow system software to override the TLB access controls without requiring the manipulation of individual TLB entries.

Problems

uboot (tested on 1.1.4) has issues in PCI/DMA initialization. More will be post in the future

hi,
i found a problem using a pci sound card in the DHT-WALNUT.
It has been correctly recognized by the kernel, the DMA feature (ppc405-dma) is setted, but the card is not working.
somebody says it is a bug, somebody says ppcboot solves the problem inizializing the pci in the correct way. I don't know, i'm using the uboot v1.1.4 and it is not working
also have a look to this
<> but i already thought so when i saw the "pci long" output
<> no BAR was assigned with an address
<> this was different some time ago
<> could be something changed in the last few months in the common pci support
<> i'll check with an ex-kollegue and let you know
<> this will take till beginning of next week though
<> hey, i just checked the source (sometimes helpful)
<> you just need to enable the host bridge configuration via an env variable
<> => setenv pciconfighost yes
<> then
<> => saveenv
<> => reset
<> after this reset the BAR1 will be configured:
<> => pci long
<> Scanning PCI devices on bus 0
<> Found PCI device 00.00.00:
<> vendor ID = 0x1014
<> device ID = 0x0156
<> command register = 0x0006
<> status register = 0x2210
<> revision ID = 0x01
<> class code = 0x0b (Processor)
<> sub class code = 0x20
<> programming interface = 0x00
<> cache line = 0x00
<> latency time = 0x87
<> header type = 0x00
<> BIST = 0x00
<> base address 0 = 0x00000000
<> base address 1 = 0x80000008
could you help me to understand how to plug a soundcard ?
:)

about uboot

rootfs

OS

Operating System available for this board

NetBSD

Netbsd has a port for "IBM PowerPC 405GP based Walnut evaluation board", this is not the DHT-Walnut, this is an other way to call the AMCC-Walnut (yes just to be confusing). Ok, it is not for DHT-Walnut, but this port could be (easealy / hardly) adapted to the DHT-Walnut with some work / over work

Hardware that is known to work with

see netbsd web, the hw could be (easealy / hardly) adapted to the DHT-Walnut with some work / over work

.

Gentoo-PPC/32

Version 2.4 (Mostly) working kernel binary and config from jbevren with matrox fbcon and usb input support. Current issues: USB keyboard input doesnt seem to work, but events reach /dev/input/event0

boot from HD

Work In Progress

ppcboot/U-Boot provides only basic functionality to access Hard disks: you can print the partition table and read and write blocks (addressed by absolute block number), but there is no support to create new partitions or to read files from any type of filesystem. The current version of ppcboot-1.1.6 has a problem with writing to hdd, however, once the Linux kernel is loaded and the userland initialized, the hdd can be accesses normally through PIO and DMA modes. This may or may-not be fixed in the future.

As usual, you can get some information about the available IDE commands using the help command in ppcboot:

You may create the needed partitions by tftpbooting Linux and an appropriate userland, then use fdisk to partition the disk. Then reboot back to ppcboot.

ppcboot can be configured for DOS and Mac OS? type partition tables. Since ppcboot cannot read files from a filesystem you should create one (or more) small partitions (maybe 1 or 2 MB) if you want to boot from the "disk". (The size of these partitions will depend on how large your kernel and userland images are)

The diskboot command expects a load address in RAM, and a combination of device and partition numbers, separated by a colon. It then reads the image from disk and stores it in memory. We can now boot it using the bootm command [to automatically boot the image define the ppcboot environment autostart with the value =yes=].

Hardware that is known to work with

There is a list of the Hardware that is known to work (and not to work) with this board. Feel free to add, comment, feedback about it.

device

class

devname

tested on

note

matrox millennium I/II

framebuffer

matroxfb

2.6.16, 2.6.19, 2.6.22

pretty working

3com-netcard

net-wiredlan

adaptec 2940

diskctrl/scsi

2.6.16, 2.6.19, 2.6.22

pretty working, a bit issue with DMA

Compile from sources

kernel 2.6 has issues in the source's tree: the dht-Walnut has been originally ported to arch=ppc, while the new kernel tree is around arch=powerpcc, for this reason you need to specify the right arch or your compiler will have issues. Developers will port everything to arch=powerppc in the future

01-2010:

kernel >2.6.25 can't compile with ARCH=PPC, they need ARCH=POWERPC, they compile fine but they do not boot in uImage format cause of uBoot needs new style

kernel <=2.6.25 can be compiled with ARCH=PPC and they boot fine with my uboot-1.2-hack

kernel

report

version

host

target

toolchain

note

boot format

2.6.15.4

compiled on ppc-7410, minerva

arch=ppc, target=ppc 603/4 core

gcc-4.1.2-glibc binutils-2.17

ramrootfs (uclibc) works great! no issues, no NPTL kernel

uImage old style

2.6.19

compiled on ppc-7410, minerva

arch=ppc, target=ppc 603/4 core

gcc-4.1.2-glibc binutils-2.17

ramrootfs (uclibc) works great! no issues

uImage old style

2.6.22

compiled on ppc-7410, minerva

arch=ppc, target=ppc 603/4 core

gcc-4.1.2-glibc binutils-2.17

ramrootfs (uclibc) works great! no issues

uImage old style

2.6.26

compiled on ppc-7410, minerva

arch=ppc/powerpc, target=ppc 603/4 core

gcc-4.1.2-glibc binutils-2.17

it does not compile!

uImage new style ???

2.6.30

compiled on ppc-7410, minerva

arch=powerpc, target=ppc 603/4 core

gcc-4.1.2-glibc binutils-2.17

it does not compile!

uImage new style ???

2.6.32

compiled on ppc-7410, minerva

arch=powerpc, target=ppc 603/4 core

gcc-4.1.2-glibc binutils-2.17

it compiles

uImage new style = treeImage.walnut

29-01-2010: i am using 2.6.22 for production

2.6.25 ARCH=ppc -- boots

2.6.25 ARCH=powerpc -- hangs before any output

28..31 have ARCH issues (probably case it was not properly ported from PPC to POWERPC)

32..33 unchecked, but they should have device name inversion bug + LZMA bug

download

2007: kernel 2.6.19 full tested and working (suggested for production, there are issue with this wiki upload page, so if you need this kernel, you could email me, i will send by emaul)

compiled with gcc-3.4.6, basically it is a vanilla, with a bit of my patches i added in order to avoid myself from the differences between a common "ppc" platform and .. the 405GP/walnut.

Project: do something useful with the board

DHT-Walnut as N.A.S.

I turned a DHT-Walnut + 300Gb hard disk into a file server to have my data files connected and shared to the LAN (Local Area Network).

N.A.S. stands for Network Attached Storage. They are storage devices attached to the lan. A NAS should be able to be connected to every kind of network. It should use both the access protocols NFS (Network File System) and CIFS (Common Internet File System)

I only enabled NFS service in the kernel configure because i don't need CIFS. UNIX servers use NFS, while Microsoft systems use CIFS, fortunately i don't have any Microsoft systems here :P Gentoo is installed in the first little partition of the hard disk (it is PC-partition style, so you can only have 4 partitions). It runs openssh, telnet, ftp, tftp, and NFS. As the fact there is no RTC chip installed i added special /etc/init.d/clock-sync to set the local time. The scrips uses rdata to retrieve the current time of an other machine.

In the photo you could see the case i realized: the hard drive is connected to the opened door, the DHT-walnut PCD has been placed inside, the green LED has been used to the frontal case to say "the booting has been completed, the system is ready" (used the gpio hack provided in patches for the 2.6.16-rc3). The black platform is from sony playstation2 and is is only a nice way to have the case vertically seated.

Don't keep about the ALS4000 pci sound board plugged in the upper PCI bus. It has been plugged just to use the NAS as the giant (300Gb) ipod you have ever seen .... but this is an other story ....

Note:
also scsi adaptec-2940 is working !!! i added 3x40Gb sca-scsi stored in a sun box

to be checked: sATA pci controller

please report any other working hardware here, or @ flamemaniii@gmail.com

development

if you need pci-riser

PCI Riser Card 5V 32-bit 2 Slot passive Edge connector X1 of the riser card is inserted in a free 5 V 32-bit slot on the PC motherboard. Slot X2 is then connected and ready for use. The second PCI slot X3 receives its special signals for bus arbitration and interrupt control via the cable from card X4, which is inserted in any other slot on the PCI motherboards. The assembly does not contain any active components. This means that the board is suitable for operation with V(I/O) = 5 V as well as V(I/O) = 3.3 V. The coding of connectors X2 and X3 with this variant is for V(I/O) = 5 V.