BusBlaster-v2.0a1.sch.landscape.pdf
http://dangerousprototypes.com/docs/Bus_Blaster_v2_design_overview
Xilinx CoolRunner-II
I have two boards: v2.0a1 and v2.5
Contents: [Dobrica Pavlinušić's random unstructured stuff]
|
UrJTAG
root@blue:/bluez/FPGA/Altera-x300# jtag
UrJTAG 0.10 #2007
Copyright (C) 2002, 2003 ETC s.r.o.
Copyright (C) 2007, 2008, 2009 Kolja Waschk and the respective authors
UrJTAG is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
There is absolutely no warranty for UrJTAG.
warning: UrJTAG may damage your hardware!
Type "quit" to exit, "help" for help.
jtag> cable jtagkey vid=0x0403 pid=0x6010 interface=1
Connected to libftdi driver.
jtag> detect
IR length: 8
Chain length: 1
Device Id: 00000110111000011100000010010011 (0x06E1C093)
Manufacturer: Xilinx (0x093)
Part(0): xc2c32a-vq44 (0x6E1C)
Stepping: 0
Filename: /usr/share/urjtag/xilinx/xc2c32a-vq44/xc2c32a-vq44
Segmentation fault
# WTF?
So, compile urjtag with libft2xx
You must remove kernel modules:
jtag> cable ft2232 interface=1
error: Couldn't connect to suitable USB device.
error: ftdi/ftd2xx error: ftdi_usb_open_desc() failed: device not found
jtag> quit
root@blue:~# rmmod ftdi_sio
root@blue:~# jtag
jtag> cable ft2232 interface=1
Connected to libftd2xx driver.
jtag> detect
IR length: 8
Chain length: 1
Device Id: 00000110111000011100000010010011 (0x06E1C093)
Manufacturer: Xilinx (0x093)
Part(0): xc2c32a-vq44 (0x6E1C)
Stepping: 0
Filename: /usr/local/share/urjtag/xilinx/xc2c32a-vq44/xc2c32a-vq44
Update CPLD logic
http://dangerousprototypes.com/docs/Bus_Blaster_buffer_logic
root@blue:~# jtag
UrJTAG 0.10 #2051
Copyright (C) 2002, 2003 ETC s.r.o.
Copyright (C) 2007, 2008, 2009 Kolja Waschk and the respective authors
UrJTAG is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
There is absolutely no warranty for UrJTAG.
warning: UrJTAG may damage your hardware!
Type "quit" to exit, "help" for help.
jtag> cable ft2232 interface=1
Connected to libftd2xx driver.
jtag> detect
IR length: 8
Chain length: 1
Device Id: 00000110111000011100000010010011 (0x06E1C093)
Manufacturer: Xilinx (0x093)
Part(0): xc2c32a-vq44 (0x6E1C)
Stepping: 0
Filename: /usr/local/share/urjtag/xilinx/xc2c32a-vq44/xc2c32a-vq44
jtag> svf /blue-zfs/dangerous-prototypes-open-hardware/Bus_Blaster/buffer_logic/BBv2-JTAGkey-v1.4-VHDL.svf stop progress
detail: Parsing 660/664 ( 99%)detail:
detail: Scanned device output matched expected TDO values.
Updated by Dobrica Pavlinušić on Feb 14 7:59am
Posted by Dobrica Pavlinušić on Aug 3 1:44pm
I will try to collect useful info about Linux I2C infrastructure
Updated by Dobrica Pavlinušić on Feb 2 4:34am
Posted by Dobrica Pavlinušić on Jan 28 9:21am
Lenovo Thinkpad Tablet
Contents: [Dobrica Pavlinušić's random unstructured stuff]
|
EC_battery
https://github.com/dpavlin/linux/blob/thinktabletopensource-2.6.36/drivers/power/EC_battery.c
battery info from shell
dpavlin@tegra20:~$ cat batt-info.sh
#!/bin/sh
printf 'BatCapacity: %d %%\n' `i2cget -y 5 0x58 0x00 w`
printf 'BatFullCapacity: %d\n' `i2cget -y 5 0x58 0x07 w`
printf 'BatDesignCapacity: %d\n' `i2cget -y 5 0x58 0x08 w`
printf 'ChargerStatus: %d\n' `i2cget -y 5 0x58 0x0b w`
printf 'UsbStatus: %d\n' `i2cget -y 5 0x58 0x5b w`
printf 'voltage: %d\n' `i2cget -y 5 0x58 0x01 w`
printf 'temperature: %d\n' `i2cget -y 5 0x58 0x0a w`
ec_status=`i2cget -y 5 0x58 0x0b w`
case $ec_status in
0x0000) ec_status_dec="discharging" ;;
0x0001) ec_status_dec="charging" ;;
0x0002) ec_status_dec="full" ;;
*) echo "unknown $ec_status" && exit 1
esac
printf 'EC_status: %d [%s]\n' $ec_status $ec_status_dec
dpavlin@tegra20:~$ sudo ./batt-info.sh
BatCapacity: 29 %
BatFullCapacity: 2670
BatDesignCapacity: 3250
ChargerStatus: 1
UsbStatus: 0
voltage: 7477
temperature: 2912
EC_status: 1 [charging]
kernel 2.6 /sys/EcControl
shell@android:/sys/EcControl # grep . *
AssetNumber:
BTMAC:6c71d912972f
BatCapacity:66
BatCtlDisable:BatCtlDisable
BatCtlEnable:0
BatCurrent:-21
BatDesignCapacity:3250
BatFullCapacity:2786
BatLifeTime:0
BatLock:ok
BatStatus:Charging
BatteryUpdateMode:-2
BoardID:-258
Brandname:ThinkPad Tablet
ChargeLED:ChargeLED
ChargerStatus:1
Coldboot:0
DeviceStatus:0000000000001000
ECFwStatus:aa
ECRead:0x0c12
ECWrite:ECWrite
ECflashMode:0
ECflashread:B
ECflashwrite:ECflashwrite
EcVer:3f001900
FactoryStatus:INAKRUIN
GPSPower:0
IMEIwithBarcode:ffffffffffffff15
LEDAndroidOff:LEDAndroidOff
MFGBuildDate:2012/10/31
MTMSN:����������������
ManufactureDate:ffff-ff-ff
MicSwitch:2
NBUsbChargingCurrent:65278
OffLED:OffLED
OriStsLED:OriStsLED
PassCode:ECEG
PlanarSN:11S63Y1836Z1ZLFT2A70PT
PowerLED:PowerLED
PsensorPower:2
RebootAfterEcUpdate:RebootAfterEcUpdate
RecoveryMode:RecoveryMode
Reset:Reset
Resume:0
SerialNumber:49834956515650807177804989678086
SerialNumberwithoutBarcode:����������������������
Shutdown:Shutdown
SkuNumber:003f
Suspend:Suspend
SysStatus:1
ThreeGPower:1
UUID:5668546668516867494852664949695065575056546755496857495057555070
UsbStatus:0
WIFIMAC:ffffffffffff
shell i2c tests
Sensor is not detected in i2cdetect since it returns 00 as first byte.
Arbitration errors on this bus (which are probably caused caused by scanning
other side of i2c mux or parent i2c controller -- I have to re-check this)
break communication with EC.
linux-2.6/drivers/power/EC_battery.c
# ready?
root@tegra20:/mnt/nuc/Tegra# i2cget -y 5 0x58 0x48 w
0x0008
# ready = ret & 0x00000008;
# BatCtlEnable_show
root@tegra20:/mnt/nuc/Tegra# i2cget -y 5 0x58 0x5b w
0x0000
# EcVer_show
root@tegra20:/mnt/nuc/Tegra# i2cget -y 5 0x58 0x30 w
0x3f00
root@tegra20:/mnt/nuc/Tegra# i2cget -y 5 0x58 0x31 w
0x2100
# UUID_show
for(i=0;i<16;i++)
{
val32 = i2c_smbus_read_word_data(EC_Bat_device->client,0x60);
val16 = val32 & 0x0000ffff;
TransformToByte(val16, &val8[2*i], &val8[2*i+1]);
msleep(10);
}
root@tegra20:/mnt/nuc/Tegra# i2cget -y 5 0x58 0x60 w
0x5768
root@tegra20:/mnt/nuc/Tegra# i2cget -y 5 0x58 0x60 w
0x6668
root@tegra20:/mnt/nuc/Tegra# i2cget -y 5 0x58 0x60 w
0x6567
root@tegra20:/mnt/nuc/Tegra# i2cget -y 5 0x58 0x60 w
0x5456
root@tegra20:/mnt/nuc/Tegra# i2cget -y 5 0x58 0x60 w
0x5070
root@tegra20:/mnt/nuc/Tegra# i2cget -y 5 0x58 0x60 w
0x5552
root@tegra20:/mnt/nuc/Tegra# i2cget -y 5 0x58 0x60 w
0x5651
root@tegra20:/mnt/nuc/Tegra# i2cget -y 5 0x58 0x60 w
0x5770
root@tegra20:/mnt/nuc/Tegra# i2cget -y 5 0x58 0x60 w
0x6948
root@tegra20:/mnt/nuc/Tegra# i2cget -y 5 0x58 0x60 w
0x4949
root@tegra20:/mnt/nuc/Tegra# i2cget -y 5 0x58 0x60 w
0x5549
root@tegra20:/mnt/nuc/Tegra# i2cget -y 5 0x58 0x60 w
0x6856
root@tegra20:/mnt/nuc/Tegra# i2cget -y 5 0x58 0x60 w
0x4966
root@tegra20:/mnt/nuc/Tegra# i2cget -y 5 0x58 0x60 w
0x4869
root@tegra20:/mnt/nuc/Tegra# i2cget -y 5 0x58 0x60 w
0x6965
root@tegra20:/mnt/nuc/Tegra# i2cget -y 5 0x58 0x60 w
0x4854
root@tegra20:/mnt/nuc/Tegra# i2cget -y 5 0x58 0x60 w # 17 repeat?
0x5768
# BatCapacity_show
root@tegra20:/mnt/nuc/Tegra# i2cget -y 5 0x58 0x00 w
0x004d
# BatFullCapacity_show
root@tegra20:/mnt/nuc/Tegra# i2cget -y 5 0x58 0x07 w
0x0773
# BatDesignCapacity_show
root@tegra20:/mnt/nuc/Tegra# i2cget -y 5 0x58 0x08 w
0x0965
# BTMAC_show
root@tegra20:/mnt/nuc/Tegra# i2cget -y 5 0x58 0x62 w
0xbd9d
root@tegra20:/mnt/nuc/Tegra# i2cget -y 5 0x58 0x62 w
0x68ac
root@tegra20:/mnt/nuc/Tegra# i2cget -y 5 0x58 0x62 w
0x742f
## repeat?
root@tegra20:/mnt/nuc/Tegra# i2cget -y 5 0x58 0x62 w
0xbd9d
# ChargerStatus_show
root@tegra20:/mnt/nuc/Tegra# i2cget -y 5 0x58 0x0b w
0x0001
# UsbStatus_show
root@tegra20:/mnt/nuc/Tegra# i2cget -y 5 0x58 0x5b w
0x0000
# ECRead_show
root@tegra20:/mnt/nuc/Tegra# i2cget -y 5 0x58 0xF1 w
0x0c12
# Shutdown_store
i2c_smbus_write_word_data(EC_Bat_device->client,0x52,0);
# Suspend_store
i2c_smbus_write_word_data(EC_Bat_device->client,0x53,0);
# Coldboot_store
Coldboot_val = buffer & 0x0000FFFF;
i2c_smbus_write_word_data(EC_Bat_device->client,0x55,Coldboot_val);
# Resume_store
Resume_val = buffer & 0x0000FFFF;
i2c_smbus_write_word_data(EC_Bat_device->client,0x56,Resume_val);
# RecoveryMode_store
i2c_smbus_write_word_data(EC_Bat_device->client,0x58,val);
# MicSwitch_store
//echo 0 > MicSwitch(front) , echo 1 > MicSwitch(back), echo 2 > MicSwitch(normal)
//echo 3 > MicSwitch(echo cancellation test), echo 4 > MicSwitch(disable echo cancellation)
i2c_smbus_write_word_data(EC_Bat_device->client,0x44,MicSwitch_val);
# ThreeGPower_store
//echo 1 > ThreeGPower(poweron) , echo 0 > ThreeGPower(poweroff), echo 2 > ThreeGPower(backtoOriginstate)
i2c_smbus_write_word_data(EC_Bat_device->client,0x45,ThreeGPower_val);
# enable_ThreeGPower
ThreeGPower_val = 1; # 1 = enable, 0 = disable
i2c_smbus_write_word_data(EC_Bat_device->client,0x45,ThreeGPower_val);
# SerialNumber_show
for(i=0;i<=7;i++) {
val32 = i2c_smbus_read_word_data(EC_Bat_device->client,0x66);
root@tegra20:/mnt/nuc/Tegra# i2cget -y 5 0x58 0x66 w # 0
0x5451
root@tegra20:/mnt/nuc/Tegra# i2cget -y 5 0x58 0x66 w # 1
0x5468
root@tegra20:/mnt/nuc/Tegra# i2cget -y 5 0x58 0x66 w # 2
0x8048
root@tegra20:/mnt/nuc/Tegra# i2cget -y 5 0x58 0x66 w # 3
0x5277
root@tegra20:/mnt/nuc/Tegra# i2cget -y 5 0x58 0x66 w # 4
0x8290
root@tegra20:/mnt/nuc/Tegra# i2cget -y 5 0x58 0x66 w # 5
0x5157
root@tegra20:/mnt/nuc/Tegra# i2cget -y 5 0x58 0x66 w # 6
0x4956
root@tegra20:/mnt/nuc/Tegra# i2cget -y 5 0x58 0x66 w # 7
0x4983
root@tegra20:/mnt/nuc/Tegra# i2cget -y 5 0x58 0x66 w # 0
0x5451
# SkuNumber_show
root@tegra20:/mnt/nuc/Tegra# i2cget -y 5 0x58 0x68 w
0xffff
# LEDAndroidOff_store
i2c_smbus_write_word_data(EC_Bat_device->client,0x5a,0);
# Reset_store
i2c_smbus_write_word_data(EC_Bat_device->client,0x54,0);
# BatCurrent_show
i2c_smbus_read_word_data(EC_Bat_device->client,0x03);
root@tegra20:/mnt/nuc/Tegra# i2cget -y 5 0x58 0x03 w
0xff43
root@tegra20:/mnt/nuc/Tegra# i2cget -y 5 0x58 0x03 w
0xff42
# BatLifeTime_show
root@tegra20:/mnt/nuc/Tegra# i2cget -y 5 0x58 0x70 w
0x0000
# BoardID_show
root@tegra20:/mnt/nuc/Tegra# i2cget -y 5 0x58 0x32 w
0xfefe
# GPSPower_store
# if(GPS_val == 0) OFF
i2c_smbus_write_word_data(EC_Bat_device->client,0x47,0);
# else if(GPS_val == 1) ON
i2c_smbus_write_word_data(EC_Bat_device->client,0x4a,0);
# PsensorPower_store
//echo 0 > PsensorPower(off), echo 1 > PsensorPower(on), echo 2 > PsensorPower(normal control)
i2c_smbus_write_word_data(EC_Bat_device->client,0x4b, PsensorPower_val);
root@tegra20:/mnt/nuc/Tegra# i2cset -y 5 0x58 0x4b 0x1 w
Updated by Dobrica Pavlinušić on Jan 30 10:06am
Posted by Dobrica Pavlinušić on Jan 30 1:56am
Seven Segment Optical Character Recognition
https://github.com/jiweibo/SSOCR
Digitizes numbers from videos & images of seven segment displays
opencv + python: https://github.com/suyashkumar/seven-segment-ocr
dpavlin@x200:/mnt/nuc/seven-segment-ocr/seven-segment-ocr$ sudo apt-get install python-opencv python-matplotlib
dpavlin@x200:/mnt/nuc/seven-segment-ocr/seven-segment-ocr$ python seven_segment_ocr.py --video /dev/video1 --output /mnt/nuc/Tegra/usb-charging.txt --period 1
VIDEOIO ERROR: V4L2: Pixel format of incoming image is unsupported by OpenCV
Unable to stop the stream: Device or resource busy
VIDEOIO(cvCreateFileCapture_Images (filename)): raised C++ exception:
v4l2-ctl -d /dev/video0 --list-formats
dpavlin@x200:/mnt/nuc/seven-segment-ocr/seven-segment-ocr$ v4l2-ctl -d /dev/video1 --list-formats
ioctl: VIDIOC_ENUM_FMT
Type: Video Capture
[0]: 'YUYV' (YUYV 4:2:2)
[1]: 'H264' (H.264, compressed)
[2]: 'MJPG' (Motion-JPEG, compressed)
Posted by Dobrica Pavlinušić on Jan 29 12:05am
al3000a i2c light sensor
found in Lenovo Thinkpad Tablet
Contents: [Dobrica Pavlinušić's random unstructured stuff]
|
alternative driver, different from one in 2.6 kernel, contains some registar names but not full description of values:
https://github.com/vhda/linux_kernel_TF101/blob/master/drivers/hwmon/al3000a.c
#define AL3000A_REG_CONFIGURATION 0x00
#define AL3000A_REG_TIMING_CONTROL 0x01
#define AL3000A_REG_ALS_CONTROL 0x02
#define AL3000A_REG_INTERRUPT_STATUS 0x03
#define AL3000A_REG_DATA 0x05
#define AL3000A_REG_ALS_WINDOW 0x08
#define AL3000A_MODE_POWER_UP 0
#define AL3000A_MODE_POWER_DOWN 2
#define AL3000A_MODE_RESET 3
#define AL3000A_OPERATION_ACTIVE 0
#define AL3000A_OPERATION_IDLE 3
i2c usage
kernel 2.6 driver: https://github.com/dpavlin/linux/blob/thinktabletopensource-2.6.36/drivers/misc/al3000a.c
# al_init
//F/W Initial Flow
//Power Down & Idle
ret = i2c_smbus_write_byte_data(client, 0x00, 0x0B);
// Integration Cycle = 4; Integration Time = 100ms;
// Interrupt trigger when lux detection has changed 4 times
// at 100ms intervals.
ret = i2c_smbus_write_byte_data(client, 0x01, 0x11);
//AL3000A ADC resolution = 64 levels; Low lux threshold = 0
ret = i2c_smbus_write_byte_data(client, 0x02, 0xA0);
//ALS Window Loss = 0
//It isn't covered by shell so no window loss, need to modify at DVT
ret = i2c_smbus_write_byte_data(client, 0x08, 0x00);
//Read Data to clear INT Flag
ret = i2c_smbus_read_i2c_block_data(client, 0x05, 1, &data);
# ls_enable
//Read Data to clear INT Flag
i2c_smbus_read_i2c_block_data(client, 0x05, 1, &data);
//Power Up & Enable ALS
i2c_smbus_write_byte_data(client, 0x00, 0x00);
# ls_disable
//Power Down & Idle
i2c_smbus_write_byte_data(client, 0x00, 0x0B);
re-create in shell
root@tegra20:/home/dpavlin# i2cget -y 0 0x1c 0x05 b
0x00
root@tegra20:/home/dpavlin# i2cset -y 0 0x1c 0x00 0 b
root@tegra20:/home/dpavlin# i2cget -y 0 0x1c 0x05 b
0x10
root@tegra20:/home/dpavlin# i2cget -y 0 0x1c 0x05 b
0x10
root@tegra20:/home/dpavlin# i2cget -y 0 0x1c 0x05 b
0x1f
root@tegra20:/home/dpavlin# i2cget -y 0 0x1c 0x05 b
0x1f
root@tegra20:/home/dpavlin# i2cget -y 0 0x1c 0x05 b
0x10
root@tegra20:/home/dpavlin# i2cget -y 0 0x1c 0x05 b
0x10
root@tegra20:/home/dpavlin# i2cdump -y 0 0x1c
No size specified (using byte-data access)
0 1 2 3 4 5 6 7 8 9 a b c d e f 0123456789abcdef
02: 00 11 a0 01 4a 01 00 00 00 ff ff ff ff ff ff ff .???J?..........
Updated by Dobrica Pavlinušić on Jan 28 11:13pm
Posted by Dobrica Pavlinušić on Jan 28 10:55am
https://github.com/leaflabs/maple/blob/master/maple-r5/maple-r5-schematic.pdf
Contents: [Dobrica Pavlinušić's random unstructured stuff]
|
specification
STM32 F103RB: a 32-bit ARM Cortex M3 microprocessor
Clock Speed: 72 MHz
Operating Voltage: 3.3V
Input Voltage (recommended): 3.0V-12V
39 Digital I/O Pins (GPIO)
16 Analog Input Pins
12-bit ADC resolution (ADC)
15 PWM pins at 16-bit resolution (PWM)
Dedicated USB port for programming and communications (USB)
External JTAG interface (USB)
128 Flash and 20KB SRAM
64 Channel nested vector interrupt handler (including external interrupt on GPIO’s)
Integrated SPI (SPI)
Integrated I2C (I2C)
7 Channels of Direct Memory Access (DMA)
3 USART devices
Four 4-channel Timers (Timers)
Supplies up to 500mA @ 3.3v
Support for low power and sleep modes (<500uA)
serial flash
Press boot 0, press reset, release reset, release boot 0
dpavlin@nuc:/nuc/stm32$ git clone https://github.com/jsnyder/stm32loader
dpavlin@nuc:/nuc/stm32/stm32loader$ ./stm32loader.py -p /dev/ttyUSB0
Bootloader version 22
Chip id: 0x410 (STM32 Medium-density)
dpavlin@nuc:/nuc/stm32/stm32loader$ ./stm32loader.py -p /dev/ttyUSB0 -e -w -v maple_rev5_boot20.bin
Bootloader version 22
Chip id: 0x410 (STM32 Medium-density)
Write 256 bytes at 0x8000000
Write 256 bytes at 0x8000100
...
maple boot loader
dpavlin@nuc:/nuc/stm32/stm32loader$ wget http://docs.leaflabs.com/static.leaflabs.com/pub/leaflabs/maple-bootloader/maple_boot.bin
dpavlin@nuc:/nuc/stm32/stm32loader$ ./stm32loader.py -p /dev/ttyUSB0 -e -w -v maple_boot.bin
STM32 Arduino upgrade
bootloader
dpavlin@nuc:/nuc/stm32/stm32loader$ wget https://github.com/rogerclarkmelbourne/STM32duino-bootloader/raw/master/STM32F1/binaries/maple_rev5_boot20.bin
maple r5 is not reported with dfu-util
https://github.com/rogerclarkmelbourne/STM32duino-bootloader/pull/20
build
dpavlin@nuc:/nuc/stm32/STM32duino-bootloader$ make maple-rev5
...
Copying to binaries folder
cp build/maple_boot.bin bootloader_only_binaries/maple_rev5_boot20.bin
Updated by Dobrica Pavlinušić on Jan 21 12:00pm
Posted by Dobrica Pavlinušić on Apr 8 12:40am
How to setup netboot for u-boot easily...
To make this work, you need supported usb network card:
root@tegra20:/home/dpavlin# lsusb -d 0b95:7720
Bus 003 Device 002: ID 0b95:7720 ASIX Electronics Corp. AX88772
This card has to be enabled in kernel setup so that we can nfsboot from it!
Contents: [Dobrica Pavlinušić's random unstructured stuff]
|
network setup
root@x200:/export/tegra20# cat /etc/network/interfaces.d/enp0s25
#auto enp0s25
#iface enp0s25 inet dhcp
auto enp0s25
iface enp0s25 inet static
address 192.168.4.1
netmask 255.255.255.0
post-up iptables -t nat -A POSTROUTING -s 192.168.4.0/24 -o wls1 -j MASQUERADE
root@x200:/export/tegra20# grep tegra20 /etc/hosts
192.168.4.100 tegra20
dnsmasq (dhcp, tftp)
dpavlin@x200:~$ cat /etc/dnsmasq.d/dhcp.conf
#interface=enp0s25
dhcp-range=192.168.4.50,192.168.4.150,12h
# this should be mac address of usb network adapter for target device
dhcp-host=00:14:d1:b0:63:1c,192.168.4.100
enable-tftp
#tftp-root=/srv/tftp
# Set the boot filename for netboot/PXE. You will only need
# this is you want to boot machines over the network and you will need
# a TFTP server; either dnsmasq's built in TFTP server or an
# external one. (See below for how to enable the TFTP server.)
#dhcp-boot=pxelinux.0
tftp-root=/export/tegra20
dhcp-boot=boot/boot.scr
log-queries
log-dhcp
nfs
apt-get install nfs-kernel-server
dpavlin@x200:~$ grep tegra20 /etc/exports
/export/tegra20 192.168.4.0/24(rw,sync,no_root_squash,no_subtree_check,fsid=1)
u-boot
Name of u-boot script file was found by looking into dnsmasq log and deducing which files u-boot requests as
boot name, hence symlink.
dpavlin@x200:/export/tegra20$ ls -al boot.scr.uimg
lrwxrwxrwx 1 dpavlin dpavlin 13 Jan 13 11:51 boot.scr.uimg -> boot/boot.scr
dpavlin@x200:/export/tegra20$ cat boot/boot.cmd
tftpboot ${kernel_addr_r} /boot/zImage
tftpboot ${fdt_addr_r} /boot/tegra20-ventana.dtb
tftpboot ${ramdisk_addr_r} /boot/uInitrd
setenv bootargs root=/dev/nfs nfsroot=192.168.4.1:/export/tegra20 ip=192.168.4.100:192.168.4.1:192.168.4.1:255.255.255.0:tegra20:eth0 panic=10 nfsrootdebug
#setenv bootargs ip=bootp root=/dev/nfs nfsroot=192.168.4.1:/export/tegra20 panic=10 nfsrootdebug init=/bin/sh
bootz ${kernel_addr_r} ${ramdisk_addr_r} ${fdt_addr_r}
# mkimage -C none -A arm -T script -d boot.cmd boot.scr
ip=dhcp should work here, but doesn't for me, mostly because kernel tries to init dummy0 and wifi network first instead of eth0, so we never get successfully mounted nfsroot :-(
kernel setup
To make this work, kernel for target device also has to have usb network drivers built in (I did try with modules but in combination with Debian's initrd it will never boot).
I have following usb network configuration enabled:
dpavlin@klin:/klin/Tegra/linux$ grep USB_NET .config | grep -v ^#
CONFIG_USB_NET_DRIVERS=y
CONFIG_USB_NET_AX8817X=y
CONFIG_USB_NET_AX88179_178A=y
CONFIG_USB_NET_CDCETHER=y
CONFIG_USB_NET_CDC_NCM=y
CONFIG_USB_NET_SMSC75XX=y
CONFIG_USB_NET_SMSC95XX=y
CONFIG_USB_NET_NET1080=y
CONFIG_USB_NET_CDC_SUBSET_ENABLE=y
CONFIG_USB_NET_CDC_SUBSET=y
CONFIG_USB_NET_ZAURUS=y
links
Updated by Dobrica Pavlinušić on Jan 21 5:05am
Posted by Dobrica Pavlinušić on Jan 13 9:44am
Updated by Dobrica Pavlinušić on Jan 17 9:41am
Posted by Dobrica Pavlinušić on Apr 6 5:54am
Samsung_UExxEH45_53_ES55_57_58_U78A.pdfSamsung шасси U71A, U71B.pdf
Contents: [Dobrica Pavlinušić's random unstructured stuff]
|
https://wiki.samygo.tv/index.php?title=Service_Menu
Enter service menu: UE,LE models:INFO MENU MUTE POWER
This has to be pressed fast, within second or two. To disable sound, select HDMI input.
T-MST10PDEUC-2007.0
T-MST10PDEUS-1002
E-Manual:XTDVBEUE-1042
EDID SUCCESS
HDCP SUCCESS
CALIB: AV / COMP / PC / HDMI /
Option: 40A6AF0D,EU,5450,NONE
FactoryCS: 0x5ce5c95
T-MSXDEUCIP-1000
Onboot : 1003
SDAL-3.63.0.0
RFS:*X10P 0072
2016-04-01
FUNC-TAG-ERR
Type: 40A6AF0D
Model: UE40EH5450
Wired MAC ----
CIP SUCCESS
DRM : ----
Factory Data Ver : 216
EERC Version : 2124
DTP-AP-COMP-945-X10P_DEU-107
DTP-BP-HAL-0381-X10P_DEU-204-01
DTP-BP-0874-42
POP-FLA-12-0009.19
Date of purchase : 1/4/2019
Sigh, I did reset with default PIN 0000 before entering service menu, so counter and date is reset.
I also changed Control > Sub Option > RS-232 Jack -> Debug
Ex-Link Cable (service port TTL serial)
https://wiki.samygo.tv/index.php?title=Ex-Link_Cable_for_C/D/E_Series_and_BD_players

3.5mm jack "service" on TV:
- 1 - tip - Tx
- 2 - ring - Rx
- 3 - ring - GND
If you have TRRR jack, just use first three pins. Others are not connected to anything in TV.
To find ground pin check continuity between your jack breakout and USB connector. One you found
ground, pins from it towards tip are Rx and Tx.
I also measured Rx and Tx pins which where around 3.3V, so safe to connect to usb serial.
dump of serial console
It's 115200 8n1 3.3V serial console:
samsung-UE40EH5450-serial.txt.gz
https://wiki.samygo.tv/index.php?title=Top_Debug_Menu:_TDM
Console unlock and TDM codes
MStar (Series 5 & 6):
1198282
20089999
Just blindly start typing numbers:
20089999
====================================
[ TOP Debug Menu]
------------------------------------
1 : SubSystem Print On/Off
2 : Platform Print Setting
3 : TD Print Setting
4 : Performance Print Setting
5 : Sdal Print Setting
6 : Sdal Trace Setting
11 : TD Debug
12 : SubSystem DBG
13 : SubSystem Info Print
21 : Louvre Print Setting
30 : Auto Lock DBG
------------------------------------
70 : Jade Debug
80 : PVR Debug
81 : CSP debug
====================================
99 : Exit
====================================
service manuals
http://tel-spb.ru/tv/samsung-ue40eh5450
Updated by Dobrica Pavlinušić on Jan 16 8:55am
Posted by Dobrica Pavlinušić on Jan 5 1:43am
Updated by Dobrica Pavlinušić on Jan 6 10:41pm
Posted by Dobrica Pavlinušić on Feb 24 11:43am
|
Weblog Navigation
Loading...
|