U-Media HCA-100
From GPLdevWiki
Contents |
Overview
The U-Media HCA-100 is a small "kitchen radio" like device that - apart from FM radio - supports playback of digital Audio. Audio sources can be a locally-attached USB storage device, Internet Streaming Radio, as well as [[UPnP AV] sources available via WLAN.
OEM versions
Hardware
Components visible on PCB
- RTL8651B
- 32bit MIPS SoC with MMU (runs uClinux, though !?!)
- Lattice LC4128C-75TN100
- FPGA used to interconnect peripheral devices with SoC
- AMIC FQV04L12J
- Flash for FPGA config
- MX 29LV320ABTC-906
- Flash for RTL
- PT8406-LQ
- MPEG3 / WMA audio decoder
- Wolfson Micro WM8761
- Low cost stereo audio DAC
- ESMT M12L128168A-7T
- SDRAM 128Mbit (16MByte)
- WMD-200A
- WiFi miniPCI based on Atheros chipset
- Princeton Technology PT-2225
- IR Receiver (RS232 or parallel output)
Notes
Next to the USB A socket, there is an unpopulated RJ-45 jack and footprint for matching magnetics. Since the SoC is mainly intended to be used for Ethernet switches/routers, it's quite surprising that this jack is not populated.
Serial Console
There is a populated four-pin header on top of the device. If you place the main pcb in a way that the "alarm" button faces downwards (FM antenna left, WLAN antenna right), then the pinout is as follows (from left to right):
- 1: RxD (into SoC)
- 2: TxD (from SoC)
- 3: GND
- 4: +5V
Bootup Log
(c)Copyright Realtek, Inc. 2003
Project ROME LOADER
Version 00.00.08(uClinux) (Dec 28 2004 10:08:12)
[865xB] CPU Clock Rate: 200MHz, Memory Clock Rate: 130MHz
Detected flash size: total 4MB.
SDRAM size: 16MB
Press 'r' to update run image, or 'a' to change config,
or 'l' to update loader, or 'g' to load run image without updating Flash,
or '2' to enter L2 switch mode(50A), or '3' to enter L2 switch mode(50B),
or 'h' to enter hub mode,
or 't' to test flash memory, or 'e' to erase flash memory ...
Found logo BMP at offset 0x0011f000
Loading runtime image ...
Image OK. Version 1.0.1 build:1
Unzip image from address: 0xbe020000
Start image at address: 0x80080000
************************************
Powered by Realtek RTL8651B SoC, rev 1
************************************
CPU revision is: 0000ff00
Init MMU (16 entries)
Primary instruction cache 0kB, linesize 0 bytes.
Primary data cache 0kB, linesize 0 bytes.
Linux version 2.4.26-uc0 (maxyin@Titan) (gcc version 3.3.3) #204 Mon Jul 18 09:54:52 CST 2005
Determined physical RAM map:
memory: 01000000 @ 00000000 (usable)
NOFS reserved @ 0x80362ad0
On node 0 totalpages: 4096
zone(0): 4096 pages.
zone(1): 0 pages.
zone(2): 0 pages.
Kernel command line: root=/dev/mtdblock2
Calibrating delay loop... 198.65 BogoMIPS
Memory: 12732k/16384k available (2490k kernel code, 3652k reserved, 128k data, 100k init, 0k highmem)
Dentry cache hash table entries: 2048 (order: 2, 16384 bytes)
Inode cache hash table entries: 1024 (order: 1, 8192 bytes)
Mount cache hash table entries: 512 (order: 0, 4096 bytes)
Buffer cache hash table entries: 1024 (order: 0, 4096 bytes)
Page-cache hash table entries: 4096 (order: 2, 16384 bytes)
Checking for 'wait' instruction... unavailable.
POSIX conformance testing by UNIFIX
NEW PCI Driver...isLinuxCompliantEndianMode=False
Memory Space 0 data=0xebffdf7a size=0x10
Memory Space 1 data=0xebffdf7a size=0x10
Memory Space 2 data=0xebffdf7a size=0x10
Memory Space 3 data=0xebffdf7a size=0x10
Memory Space 4 data=0xebffdf7a size=0x10
Memory Space 5 data=0xebffdf7a size=0x10
PCI device exists: slot 0 function 0 VendorID df7a DeviceID ebff bbd40000
Memory Space 0 data=0xebffdf7a size=0x10
Memory Space 1 data=0xebffdf7a size=0x10
Memory Space 2 data=0xebffdf7a size=0x10
Memory Space 3 data=0xebffdf7a size=0x10
Memory Space 4 data=0xebffdf7a size=0x10
Memory Space 5 data=0xebffdf7a size=0x10
PCI device exists: slot 0 function 1 VendorID df7a DeviceID ebff bbd40100
Memory Space 0 data=0xebffdf7a size=0x10
Memory Space 1 data=0xebffdf7a size=0x10
Memory Space 2 data=0xebffdf7a size=0x10
Memory Space 3 data=0xebffdf7a size=0x10
Memory Space 4 data=0xebffdf7a size=0x10
Memory Space 5 data=0xebffdf7a size=0x10
PCI device exists: slot 0 function 2 VendorID df7a DeviceID ebff bbd40200
Memory Space 0 data=0xebffdf7a size=0x10
Memory Space 1 data=0xebffdf7a size=0x10
Memory Space 2 data=0xebffdf7a size=0x10
Memory Space 3 data=0xebffdf7a size=0x10
Memory Space 4 data=0xebffdf7a size=0x10
Memory Space 5 data=0xebffdf7a size=0x10
PCI device exists: slot 0 function 3 VendorID df7a DeviceID ebff bbd40300
Memory Space 0 data=0xebffdf7a size=0x10
Memory Space 1 data=0xebffdf7a size=0x10
Memory Space 2 data=0xebffdf7a size=0x10
Memory Space 3 data=0xebffdf7a size=0x10
Memory Space 4 data=0xebffdf7a size=0x10
Memory Space 5 data=0xebffdf7a size=0x10
PCI device exists: slot 0 function 4 VendorID df7a DeviceID ebff bbd40400
Memory Space 0 data=0xebffdf7a size=0x10
Memory Space 1 data=0xebffdf7a size=0x10
Memory Space 2 data=0xebffdf7a size=0x10
Memory Space 3 data=0xebffdf7a size=0x10
Memory Space 4 data=0xebffdf7a size=0x10
Memory Space 5 data=0xebffdf7a size=0x10
PCI device exists: slot 0 function 5 VendorID df7a DeviceID ebff bbd40500
Memory Space 0 data=0xebffdf7a size=0x10
Memory Space 1 data=0xebffdf7a size=0x10
Memory Space 2 data=0xebffdf7a size=0x10
Memory Space 3 data=0xebffdf7a size=0x10
Memory Space 4 data=0xebffdf7a size=0x10
Memory Space 5 data=0xebffdf7a size=0x10
PCI device exists: slot 0 function 6 VendorID df7a DeviceID ebff bbd40600
Memory Space 0 data=0xebffdf7a size=0x10
Memory Space 1 data=0xebffdf7a size=0x10
Memory Space 2 data=0xebffdf7a size=0x10
Memory Space 3 data=0xebffdf7a size=0x10
Memory Space 4 data=0xebffdf7a size=0x10
Memory Space 5 data=0xebffdf7a size=0x10
PCI device exists: slot 0 function 7 VendorID df7a DeviceID ebff bbd40700
memory mapping BAnum=0 slot=0 func=0
memory mapping BAnum=1 slot=0 func=0
memory mapping BAnum=2 slot=0 func=0
memory mapping BAnum=3 slot=0 func=0
memory mapping BAnum=4 slot=0 func=0
memory mapping BAnum=5 slot=0 func=0
memory mapping BAnum=0 slot=0 func=1
memory mapping BAnum=1 slot=0 func=1
memory mapping BAnum=2 slot=0 func=1
memory mapping BAnum=3 slot=0 func=1
memory mapping BAnum=4 slot=0 func=1
memory mapping BAnum=5 slot=0 func=1
memory mapping BAnum=0 slot=0 func=2
memory mapping BAnum=1 slot=0 func=2
memory mapping BAnum=2 slot=0 func=2
memory mapping BAnum=3 slot=0 func=2
memory mapping BAnum=4 slot=0 func=2
memory mapping BAnum=5 slot=0 func=2
memory mapping BAnum=0 slot=0 func=3
memory mapping BAnum=1 slot=0 func=3
memory mapping BAnum=2 slot=0 func=3
memory mapping BAnum=3 slot=0 func=3
memory mapping BAnum=4 slot=0 func=3
memory mapping BAnum=5 slot=0 func=3
memory mapping BAnum=0 slot=0 func=4
memory mapping BAnum=1 slot=0 func=4
memory mapping BAnum=2 slot=0 func=4
memory mapping BAnum=3 slot=0 func=4
memory mapping BAnum=4 slot=0 func=4
memory mapping BAnum=5 slot=0 func=4
memory mapping BAnum=0 slot=0 func=5
memory mapping BAnum=1 slot=0 func=5
memory mapping BAnum=2 slot=0 func=5
memory mapping BAnum=3 slot=0 func=5
memory mapping BAnum=4 slot=0 func=5
memory mapping BAnum=5 slot=0 func=5
memory mapping BAnum=0 slot=0 func=6
memory mapping BAnum=1 slot=0 func=6
memory mapping BAnum=2 slot=0 func=6
memory mapping BAnum=3 slot=0 func=6
memory mapping BAnum=4 slot=0 func=6
memory mapping BAnum=5 slot=0 func=6
memory mapping BAnum=0 slot=0 func=7
memory mapping BAnum=1 slot=0 func=7
memory mapping BAnum=2 slot=0 func=7
memory mapping BAnum=3 slot=0 func=7
memory mapping BAnum=4 slot=0 func=7
memory mapping BAnum=5 slot=0 func=7
assign mem base 1bf00000 at bbd40010 total_size=0
assign mem base 1bf00010 at bbd40014 total_size=16
assign mem base 1bf00020 at bbd40018 total_size=32
assign mem base 1bf00030 at bbd4001c total_size=48
assign mem base 1bf00040 at bbd40020 total_size=64
assign mem base 1bf00050 at bbd40024 total_size=80
assign mem base 1bf00060 at bbd40110 total_size=96
assign mem base 1bf00070 at bbd40114 total_size=112
assign mem base 1bf00080 at bbd40118 total_size=128
assign mem base 1bf00090 at bbd4011c total_size=144
assign mem base 1bf000a0 at bbd40120 total_size=160
assign mem base 1bf000b0 at bbd40124 total_size=176
assign mem base 1bf000c0 at bbd40210 total_size=192
assign mem base 1bf000d0 at bbd40214 total_size=208
assign mem base 1bf000e0 at bbd40218 total_size=224
assign mem base 1bf000f0 at bbd4021c total_size=240
assign mem base 1bf00100 at bbd40220 total_size=256
assign mem base 1bf00110 at bbd40224 total_size=272
assign mem base 1bf00120 at bbd40310 total_size=288
assign mem base 1bf00130 at bbd40314 total_size=304
assign mem base 1bf00140 at bbd40318 total_size=320
assign mem base 1bf00150 at bbd4031c total_size=336
assign mem base 1bf00160 at bbd40320 total_size=352
assign mem base 1bf00170 at bbd40324 total_size=368
assign mem base 1bf00180 at bbd40410 total_size=384
assign mem base 1bf00190 at bbd40414 total_size=400
assign mem base 1bf001a0 at bbd40418 total_size=416
assign mem base 1bf001b0 at bbd4041c total_size=432
assign mem base 1bf001c0 at bbd40420 total_size=448
assign mem base 1bf001d0 at bbd40424 total_size=464
assign mem base 1bf001e0 at bbd40510 total_size=480
assign mem base 1bf001f0 at bbd40514 total_size=496
assign mem base 1bf00200 at bbd40518 total_size=512
assign mem base 1bf00210 at bbd4051c total_size=528
assign mem base 1bf00220 at bbd40520 total_size=544
assign mem base 1bf00230 at bbd40524 total_size=560
assign mem base 1bf00240 at bbd40610 total_size=576
assign mem base 1bf00250 at bbd40614 total_size=592
assign mem base 1bf00260 at bbd40618 total_size=608
assign mem base 1bf00270 at bbd4061c total_size=624
assign mem base 1bf00280 at bbd40620 total_size=640
assign mem base 1bf00290 at bbd40624 total_size=656
assign mem base 1bf002a0 at bbd40710 total_size=672
assign mem base 1bf002b0 at bbd40714 total_size=688
assign mem base 1bf002c0 at bbd40718 total_size=704
assign mem base 1bf002d0 at bbd4071c total_size=720
assign mem base 1bf002e0 at bbd40720 total_size=736
assign mem base 1bf002f0 at bbd40724 total_size=752
Find Total 8 PCI functions
Found 00:00 [df7a/ebff] 00ebff 7f
PCI: device 00:00.0 has unknown header type 7f, ignoring.
Linux NET4.0 for Linux 2.4
Based upon Swansea University Computer Society NET3.039
Initializing RT netlink socket
Load UM Audio Driver
um_audio: request irq:7
FIFO size: 4096
Load UM Decoder Driver
um_decoder: request irq:7
Starting kswapd
pty: 256 Unix98 ptys configured
Serial driver version 5.05c (2001-07-08) with MANY_PORTS SERIAL_PCI enabled
Generic MIPS RTC Driver v1.0
loop: loaded (max 8 devices)
Probing RTL8651 10/100 NIC...
Rx shift=c4000002
creating eth0~eth1...
eth0 added. vid=8 Member port 0x1...
eth1 added. vid=9 Member port 0x1e...
IRQ 6 allocated for 8650 NIC
SCSI subsystem driver Revision: 1.00
physmap flash device: 200000 at 1e000000
physmap_map.map_priv_1:0xbe000000
Amd/Fujitsu Extended Query Table v1.1 at 0x0040, device type:2
number of CFI chips: 1
cfi_cmdset_0002: Disabling fast programming due to code brokenness.
Using physmap partition definition
Creating 6 MTD partitions on "Physically mapped flash":
0x00000000-0x00020000 : "BootROM"
0x00020000-0x00120000 : "kernel"
0x00120000-0x00320000 : "rootfs"
0x00320000-0x00360000 : "nvram"
0x00360000-0x00400000 : "userdata"
0x00020000-0x00400000 : "fwupgrade"
ath_pci: 0.9.4.5 (EXPERIMENTAL)
ath_pci: No devices found, driver not installed.
ath_rate_onoe: 1.0
ath_hal: 0.9.14.4
usb.c: registered new driver usbdevfs
usb.c: registered new driver hub
USB configurate change f0000001
host/usb-ohci-rtl865x.c: USB OHCI at membase 0xbd000000, IRQ 1
host/usb-ohci-rtl865x.c: usb-
usb.c: new USB bus registered, assigned bus number 1
write minterval 27782edf swap df2e7827
read fminterval 27782edf swap df2e7827
hub.c: USB hub found
hub.c: 1 port detected
usb.c: registered new driver serial
usbserial.c: USB Serial support registered for Generic
usbserial.c: USB Serial Driver core v1.4
usbserial.c: USB Serial support registered for PL-2303
pl2303.c: Prolific PL2303 USB to serial adaptor driver v0.10.1
Initializing USB Mass Storage driver...
usb.c: registered new driver usb-storage
USB Mass Storage support registered.
NET4: Linux TCP/IP 1.0 for NET4.0
IP Protocols: ICMP, UDP, TCP, IGMP
IP: routing cache hash table of 512 buckets, 4Kbytes
TCP: Hash tables configured (established 1024 bind 2048)
NET4: Unix domain sockets 1.0/SMP for Linux NET4.0.
wlan: 0.8.4.2 (EXPERIMENTAL)
Register a crypto cipher WEP
Register a crypto cipher TKIP
VFS: Mounted root (cramfs filesystem) readonly.
Freeing unused kernel memory: 100k freed
initial console created on /dev/ttyS1
Algorithmics/MIPS FPU Emulator v1.5
Shell invoked to run file: /etc/rc
Command: mount -t proc proc /proc
Command: mount -t ramfs ramfs /tmp
Command: mount -t ramfs ramfs /var
Command: mount -t ramfs ramfs /mnt/usb
Command: mkdir /var/tmp
Command: mkdir /var/ppp
Command: mkdir /var/log
Command: mkdir /var/run
Command: mkdir /var/lock
Command: mkdir /var/lib
Command: mkdir /var/etc
Command:
Command: mknod /dev/mem c 1 1
Command: mknod /dev/kmem c 1 2
Command: mknod /dev/null c 1 3
Command: mknod /dev/port c 1 4
Command: mknod /dev/zero c 1 5
Command: mknod /dev/random c 1 8
Command: mknod /dev/urandom c 1 9
Command: mknod /dev/rtc c 10 135
Command: /sbin/makedevs /dev/loop b 7 0 0 10
Command: /sbin/makedevs /dev/tty c 4 1 1 10
Command: /sbin/makedevs /dev/sda b 8 0 0 9
Command: /sbin/makedevs /dev/sdb b 8 16 0 9
Command: /sbin/makedevs /dev/sdc b 8 32 0 9
Command: /sbin/makedevs /dev/sdd b 8 48 0 9
Command: /sbin/makedevs /dev/mtdblock b 31 0 0 16
Command: mknod /dev/ptmx c 5 2
Command: mkdir /dev/pts
Command: mount -t devpts none /dev/pts
Command: /sbin/sysctl -w net.ipv4.tcp_sack=0
net.ipv4.tcp_sack = 0
Command: /sbin/sysctl -w net.ipv4.tcp_window_scaling=0
net.ipv4.tcp_window_scaling = 0
Command: /sbin/sysctl -w net.ipv4.tcp_timestamps=0
net.ipv4.tcp_timestamps = 0
Command:
Command: /sbin/ifconfig lo up 127.0.0.1
Command: /sbin/confd &
[26]
Command: /usr/sbin/usbhdmond &
[27]
Command: /bin/DMA_Launcher &
[28]
Command:
Execution Finished, Exiting
Cannot umount /var/etc ...
Sash command shell (version 1.1.1)
/> DMALauncher: Launch avPlay ...
DMALauncher: Launch DMA UI ...
Begin to check confd.dat consistancy
size matched, begin to scan data...
Done, runtime config.data structure is the same as default!
Group 1000 is going to be deactivated.
Apply settings to eth1...
Cannot open arp_filter: No such file or directory
DMALauncher: Launch UPnP Renderer ...
DMALauncher: Launch UPnP Control Point ...
DMALauncher: Launch UMinput ...
No such process
pid 35: failed 256
No such process
pid 40: failed 256
DMALauncher: Launch TestServer ...
Apply settings to ath0...
Cannot open arp_filter: No such file or directory
killall: wpa_supplicant: no process killed
pid 45: failed 256
No such process
pid 48: failed 256
No such process
pid 50: failed 256
SIOCSIFADDR: No such device
SIOCGIFFLAGS: No such device
pid 52: failed 512
Group 1001 is enabled
ioctl failed: No such device
ioctl failed: No such device
ioctl failed: No such device
HW address set failed
ioctl failed: No such device
ioctl failed: No such device
Bring up WLAN interface...
ioctl failed: No such device
ioctl failed: No such device
Error for wireless request "Set ESSID" (8B1A) :
SET failed on device ath0 ; No such device.
Error for wireless request "Set Mode" (8B06) :
SET failed on device ath0 ; No such device.
Error for wireless request "Set Encode" (8B2A) :
SET failed on device ath0 ; No such device.
Error for wireless request "Set ESSID" (8B1A) :
SET failed on device ath0 ; No such device.
Group 1050 is enabled
killall: ntpd: no process killed
pid 55: failed 256
Firmware
The firmware is based on linux 2.4.26-uc0. It contains busybox and some device-specific binary programs (containing DMA in their name) which actually implement the radio functionality.
Object Code
There are no known legal sources for binary firmware images anymore. Allnet seems to have removed the object code from their server, though allegedly it was there at some point in the past.
Firmware Image
The vmlinux kernel image can be extracted from the firmware image via
dd if=ALLSOUND-EN-1.2.2.1.img bs=16 skip=1 | zcat > vmlinux
Source Code
20070108: There is a sourcecode tar file available at http://www.allnet.de/downloads.php?produkt=ALLSOUND. However there seems to be no instruction how to build an image and no source for the graphic interface.

