X8SIL-F IPMI Serial (debug) port»

After reading a blog post on it, I went probing around my X8SIL-F board looking for a hidden serial port. After entirely too long, I discovered it’s right near the IPMI controller, and is labeled J25 (TX) and J26 (RX). You’ll need an adapter though, this is a 3.3v serial port. I (badly) soldered some headers on, and am now able to interact with the IPMI controller.

It looks like this:

Watching it boot up is pretty interesting:

BL: SERIAL BAUD RATE - 115200 bps
[OEM Setup GPIO Pin]:2 Port:2 Dir:1 Value:1
 BL: FLASH - MX25L12805D FOUND



WPCM450 Boot Loader [ Version:1.0.14 ]
Rebuilt on Mar 23 2012
HardCoded CPU: 180 MHz
Memory Size is 0x8000000 Bytes, Flash Size is 0x1000000 Bytes
Board designed by Winbond
Hardware support provided at Winbond
Copyright (c) Winbond Limited 2001 - 2006. All rights reserved.


For help on the available commands type 'h'

Press ESC to enter debug mode... Remain 10s
Press ESC to enter debug mode... Remain 9s
Press ESC to enter debug mode... Remain 8s
Press ESC to enter debug mode... Remain 7s
Press ESC to enter debug mode... Remain 6s
Press ESC to enter debug mode... Remain 5s
Press ESC to enter debug mode... Remain 4s
Press ESC to enter debug mode... Remain 3s
Press ESC to enter debug mode... Remain 2s
Press ESC to enter debug mode... Remain 1s

Processing image 1 ...
Processing image 2 ...
Processing image 3 ...
Unzip image 3 ...
Executing image 3 ...
init started: BusyBox v1.12.0 (2014-01-02 18:15:33 PST)
starting pid 685, tty '': '/etc/init.d/rcS'
rm: cannot remove '/nv/system_log': No such file or directory
***** load kernel module for bonding channel *****
ls: /nv/ipctrl/*.sav: No such file or directory
USB HID Module insert, Build Time 18:15:18
register reboot notifier for usb k/m
cp: cannot stat '/etc/IPMIdevicedesc_sample.xml': No such file or directory
[Linda Debug] num_lan= 0, board_id= 0
Create debug files - /tmp/message
[run_shellcmd] insmod /bin/module/eth_wpcm450mac.ko ChannelNum1=1
PhyTblIdx[0] 1 Auto scan phy completed, phyname RTL8201N phyaddr = 5
Detect Phy in EMC0
WPCM450 Ethernet(eth0) driver has been initialized successfully!
Can't detect Phy in EMC1
[NCSI 1] Select package ID 0
[NCSI 1] Discovery all NCSI channels for this Package.
[NCSI 1] DeSelect package ...............
WPCM450 Ethernet(eth1) driver has been initialized successfully!
[UtilInsertDrvier] Insert the driver module insmod /bin/module/eth_wpcm450mac.ko ChannelNum1=1
[run_shellcmd] insmod /bin/module/i2c.ko
[UtilInsertDrvier] Insert the driver module insmod /bin/module/i2c.ko
[run_shellcmd] insmod /bin/module/ipmb.ko
[UtilInsertDrvier] Insert the driver module insmod /bin/module/ipmb.ko
Load Default SDR from firmware(/etc/conf)
NVRamInit() fails to initial SDR
NVRamInit() fails to initial
[run_shellcmd] insmod /bin/module/wdt_drv.ko
[UtilInsertDrvier] Insert the driver module insmod /bin/module/wdt_drv.ko
Enable HW WDT timer
[run_shellcmd] insmod /bin/module/gpiodrv.ko
[UtilInsertDrvier] Insert the driver module insmod /bin/module/gpiodrv.ko
setup
[PltCHASSIS_PowerInit] at_St_OEMPS.a_b_PSTimeoutEnable=0x1, at_St_OEMPS.a_w_PSTimeoutValue=0x1E
[run_shellcmd] insmod /bin/module/uart_drv.ko
[UtilInsertDrvier] Insert the driver module insmod /bin/module/uart_drv.ko
[UtilUsbHidSetMouseMode] The current Modes Relative Mode
 Before Sensor_Init_Agent(1)
the amount number of SDR records = 0
the amount number of Sensors  = 0
[GetSELTimeFromME] Fail in reading SEL Time from ME
[GetSELTimeFromME] Retry Get SEL Time from ME.......0
[GetSELTimeFromME] Retry Get SEL Time from ME.......1
[GetSELTimeFromME] Retry Get SEL Time from ME.......2
Got Error I2C From ME for Get SEL Time
[OEMPostOS_Init]
start dcmi_init
[run_shellcmd] insmod /bin/module/kcs_drv.ko
semaphore create done!SOLMsgHandler:SOL and UART share the same port
PEFEntryTablePreConfig
1 ninit.c:at_FW_UpdateMode = 0x0
mknod: /dev/ipmb5: File exists
[run_shellcmd] ip link set bond0 up; ifenslave bond0 eth0 eth1
ifenslave: bond0: can't set hw address
ifenslave: can't enslave eth0 to bond0: Cannot assign requested address
ifenslave: bond0: can't set hw address
ifenslave: can't enslave eth1 to bond0: Cannot assign requested address
[run_shellcmd] ip link set bond0 down
[debug] cmd = ip link set bond0 down
[run_shellcmd] ip link set eth0 addr ff:ff:ff:ff:ff:ff
video source:INT_VGA
[UtilInsertDrvier] Insert the driver module insmod /bin/module/kcs_drv.ko
Empty IKVM Port in PS,use default port 5900
UART_NONFLOWCTRL
ip: SIOCSIFHWADDR: Cannot assign requested address
[UtilSetMACAddr Debug] cmd = ip link set eth0 addr ff:ff:ff:ff:ff:ff
[run_shellcmd] ip link set eth1 addr ff:ff:ff:ff:ff:ff
dma_alloc_coherent LogAddr= ffc2c000
dma_alloc_coherent PhyAddr= 03600000
mknod: /dev/usb0: File exists
Waiting for ready message from kernel
Recieve Events from NIC Drive
LAN Notifier Ready
ip: SIOCSIFHWADDR: Cannot assign requested address
[UtilSetMACAddr Debug] cmd = ip link set eth1 addr ff:ff:ff:ff:ff:ff
[run_shellcmd] ip link set bond0 up; ifenslave bond0 eth0 eth1
ifenslave: bond0: can't set hw address
ifenslave: can't enslave eth0 to bond0: Cannot assign requested address
ifenslave: bond0: can't set hw address
ifenslave: can't enslave eth1 to bond0: Cannot assign requested address
[run_shellcmd] /sbin/udhcpc -b -i bond0&
[run_shellcmd] dhcp6c -c /etc/dhcpv6/dhcp6c.conf-stateless  -p /tmp/dhcp6c.pid bond0&
mknod: /dev/usb1: File exists
mknod: /dev/ipmb4: File exists
mknod: /dev/usb2: File exists
udhcpc (v1.12.0) started
[LanConfigApply Debug] arpping , cmd = arping -b -c 2 0.0.0.0 -I bond0 >>/dev/null
[run_shellcmd] arping -b -c 2 0.0.0.0 -I bond0 >>/dev/null
SSL Certificate is not yet valid. Time maybe lost.
arping: cannot connect to remote host (0.0.0.0): No such device
[run_shellcmd] /etc/network/network6 bond0 start
start Web server .............
Jan  1 00:00:30 [844] Loading plugin: /wsman/openwsman/lib/openwsman/plugins/libwsman_test.so
Jan  1 00:00:30 [844] Loading plugin: /wsman/openwsman/lib/openwsman/plugins/libwsman_identify_plugin.so
Jan  1 00:00:31 [844] Loading plugin: /wsman/openwsman/lib/openwsman/plugins/libwsman_cim_plugin.so
Jan  1 00:00:31 [844] Plugin 'Test', version: 2.1.0
Jan  1 00:00:31 [844] Plugin 'IdentifyResponse', version: 2.1.0
Jan  1 00:00:31 [844] reading configuration file options
Jan  1 00:00:31 [844] vendor namespaces: OpenWBEM=http://schema.openwbem.org/wbem/wscim/1/cim-schema/2,Linux=http://sblim.sf.net/wbem/wscim/1/cim-schema/2,OMC=http://schema.omc-project.org/wbem/wscim/1/cim-schema/2,PG=http://schema.openpegasus.org/wbem/wscim/1/cim-schema/2,IPMI=http://ipmi.aten.com/wbem/wscim/1/cim-schema/2
Jan  1 00:00:31 [844] cim namespace: root
Jan  1 00:00:31 [844] Registering interface
Jan  1 00:00:31 [844] Plugin 'CIM Resource', version: 2.1.0
Jan  1 00:00:31 [844] make new callback entry
Jan  1 00:00:31 [844] make new callback entry
Jan  1 00:00:31 [844] Registering 3 plugins
Jan  1 00:00:31 [844] Registering Endpoint: http://schemas.xmlsoap.org/ws/2004/09/transfer/Get
Jan  1 00:00:31 [844] Registering endpoint for Get
Jan  1 00:00:31 [844] Registering Endpoint: http://schemas.xmlsoap.org/ws/2004/09/enumeration/Enumerate
Jan  1 00:00:31 [844] Registering endpoint for Enumerate
Jan  1 00:00:31 [844] Registering Endpoint: http://schemas.xmlsoap.org/ws/2004/09/enumeration/Pull
Jan  1 00:00:31 [844] Registering endpoint for direct Pull
Jan  1 00:00:31 [844] Registering Endpoint: http://schemas.xmlsoap.org/ws/2004/09/enumeration/Pull
Jan  1 00:00:31 [844] Registering endpoint for Pull
Jan  1 00:00:31 [844] Registering Endpoint: http://schemas.xmlsoap.org/ws/2004/09/enumeration/Release
Jan  1 00:00:31 [844] Registering endpoint for Release
Jan  1 00:00:31 [844] Registering Endpoint: http://schemas.xmlsoap.org/ws/2004/09/transfer/Put
Jan  1 00:00:31 [844] Registering endpoint for Put
Jan  1 00:00:31 [844] Registering Endpoint: http://schemas.xmlsoap.org/ws/2004/08/eventing/Subscribe
Jan  1 00:00:31 [844] Registering endpoint for Subscribe
Jan  1 00:00:31 [844] Registering Endpoint: http://schemas.xmlsoap.org/ws/2004/08/eventing/Unsubscribe
Jan  1 00:00:31 [844] Registering endpoint for Unsubscribe
Jan  1 00:00:31 [844] Registering Endpoint: http://schemas.xmlsoap.org/ws/2004/08/eventing/Renew
Jan  1 00:00:31 [844] Registering Endpoint: (null)
Jan  1 00:00:31 [844] Registering endpoint for Identify
Jan  1 00:00:31 [844] Registering Endpoint: http://schemas.xmlsoap.org/ws/2004/09/transfer/Get
Jan  1 00:00:31 [844] Registering endpoint for direct Get
Jan  1 00:00:31 [844] Registering Endpoint: http://schemas.xmlsoap.org/ws/2004/09/transfer/Put
Jan  1 00:00:31 [844] Registering endpoint for direct Put
Jan  1 00:00:31 [844] Registering Endpoint: http://schemas.xmlsoap.org/ws/2004/09/transfer/Create
Jan  1 00:00:31 [844] Registering endpoint for direct Create
Jan  1 00:00:31 [844] Registering Endpoint: http://schemas.xmlsoap.org/ws/2004/09/transfer/Delete
Jan  1 00:00:31 [844] Registering endpoint for Delete
Jan  1 00:00:31 [844] Registering Endpoint: http://schemas.xmlsoap.org/ws/2004/09/enumeration/Enumerate
Jan  1 00:00:31 [844] Registering endpoint for Enumerate
Jan  1 00:00:31 [844] Registering Endpoint: http://schemas.xmlsoap.org/ws/2004/09/enumeration/Pull
Jan  1 00:00:31 [844] Registering endpoint for direct Pull
Jan  1 00:00:31 [844] Registering Endpoint: http://schemas.xmlsoap.org/ws/2004/09/enumeration/Release
Jan  1 00:00:31 [844] Registering endpoint for Release
Jan  1 00:00:31 [844] Registering Endpoint: http://schemas.xmlsoap.org/ws/2004/08/eventing/Subscribe
Jan  1 00:00:31 [844] Registering endpoint for Subscribe
Jan  1 00:00:31 [844] Registering Endpoint: http://schemas.xmlsoap.org/ws/2004/08/eventing/Unsubscribe
Jan  1 00:00:31 [844] Registering endpoint for Unsubscribe
Jan  1 00:00:31 [844] Registering Endpoint: http://schemas.xmlsoap.org/ws/2004/08/eventing/Renew
Jan  1 00:00:31 [844] Registering Endpoint: http://schemas.xmlsoap.org/ws/2004/09/enumeration/Pull
Jan  1 00:00:31 [844] Registering endpoint for Pull
Jan  1 00:00:31 [844] Registering Endpoint: (null)
Jan  1 00:00:31 [844] Registering endpoint for private EndPoint
Jan  1 00:00:31 [844] subscription_repository_uri = /var/lib/openwsman/subscriptions
Jan  1 00:00:31 [844]      Working on port 5985
Jan  1 00:00:31 [844] Basic File authentication uses password file: /wsman/openwsman/etc/openwsman/simple_auth.passwd
Verify the ssh key-/nv/dropbear/dropbear_rsa_host_key. Please wait.
Jan  1 00:00:32 [844] Using Basic Authorization libwsman_file_auth.so
Jan  1 00:00:32 [844] Initializing http server
Jan  1 00:00:32 [844] init_ctx: initialized context 0x22d80
Jan  1 00:00:32 [844] Registered CIM Indication Listener: /cimindicationlistener/*
Jan  1 00:00:32 [844] Using Basic Authorization libwsman_file_auth.so for /cimindicationlistener
Jan  1 00:00:32 [844] Using Basic Authorization libwsman_file_auth.so for /wsman
Jan  1 00:00:32 [844] shttpd_listen: added socket 3
Sending discover...

Please press Enter to activate this console. PWSnrTask() at_b_HotSwapController=0
Verify the ssh key-/nv/dropbear/dropbear_dss_host_key. Please wait.
Configure IPv6 Network........
==== Channel bonding task for IPv6 =====
Sending discover...
Starting SMASH daemon .....
============ Done =============
[run_shellcmd] killall -9 lldpd; /bin/lldpd &
killall: lldpd: no process killed
LLDP Service Restart...OK
[run_shellcmd] ip route del default
ip: RTNETLINK answers: No such process
route: SIOCADDRT: Invalid argument
[run_shellcmd] route add default gw 0.0.0.0 dev bond0
route: SIOCADDRT: Invalid argument
Sending discover...
sysinfo.machine: armv5tejl
sysinfo.sysname: Linux
sysinfo.release: 2.6.17.WB_WPCM450.1.3
lldp_systemdesc: armv5tejl/Linux 2.6.17.WB_WPCM450.1.3
lldp_systemname: (none).(none)
Find the footer, check the ATEN SYMBOL
Find ATEN SYMBOL, Find the checksum
CheckSum = 0x29618c71
crc32 = 0x29618c71
udhcpc leasefail
No lease, forking to background

There’s still a lot to do, but this makes debugging new firmware possible, rather then just having to blindly test things.