Lifetouch note notes
Accessing APX Mode
There’s a unplaced switch just above the Nvidia Tegra 250 CPU shield (see image above). Connect pins 3 and 4 of SW2 while pressing the power button to enable APX mode.
Flashing a partition using nvflash
nvflash –bl /usr/lib/nvflash/fastboot.bin –download 11 ./lubuntu-12.10-preinstalled-desktop-armhf+ac100.bootimg
The Lifetouch note appears to have the LNX partition on partition 11, not 6 as the ac100.
Note: The ac100 bootimage does NOT work. The screen does some funky stuff, but nothing to indicate that it’s actually booting a kernel. (update: The SOSBoot kernel boots and the serial console works, but not the display.)
Partition table
The partition table can be dumped with nvflash –bl
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 | PartitionId=2 Name=BCT DeviceId=18 StartSector=0 NumSectors=1536 BytesPerSector=2048 PartitionId=3 Name=PT DeviceId=18 StartSector=1536 NumSectors=128 BytesPerSector=2048 PartitionId=4 Name=EBT DeviceId=18 StartSector=1664 NumSectors=1024 BytesPerSector=2048 PartitionId=5 Name=NVC DeviceId=18 StartSector=2688 NumSectors=256 BytesPerSector=2048 PartitionId=6 Name=MBR DeviceId=18 StartSector=2944 NumSectors=512 BytesPerSector=2048 PartitionId=7 Name=MSC DeviceId=18 StartSector=3456 NumSectors=1024 BytesPerSector=2048 PartitionId=8 Name=MFG DeviceId=18 StartSector=4480 NumSectors=76800 BytesPerSector=2048 PartitionId=9 Name=SOS DeviceId=18 StartSector=81280 NumSectors=2560 BytesPerSector=2048 PartitionId=10 Name=ER1 DeviceId=18 StartSector=83840 NumSectors=128 BytesPerSector=2048 PartitionId=11 Name=LNX DeviceId=18 StartSector=83968 NumSectors=4096 BytesPerSector=2048 PartitionId=12 Name=ER2 DeviceId=18 StartSector=88064 NumSectors=128 BytesPerSector=2048 PartitionId=13 Name=APP DeviceId=18 StartSector=88192 NumSectors=98304 BytesPerSector=2048 PartitionId=14 Name=ER3 DeviceId=18 StartSector=186496 NumSectors=128 BytesPerSector=2048 PartitionId=15 Name=CAC DeviceId=18 StartSector=186624 NumSectors=76800 BytesPerSector=2048 PartitionId=16 Name=ER4 DeviceId=18 StartSector=263424 NumSectors=128 BytesPerSector=2048 PartitionId=17 Name=USP DeviceId=18 StartSector=263552 NumSectors=128000 BytesPerSector=2048 PartitionId=18 Name=ER5 DeviceId=18 StartSector=391552 NumSectors=128 BytesPerSector=2048 PartitionId=19 Name=UDA DeviceId=18 StartSector=391680 NumSectors=3520000 BytesPerSector=2048 |
nvflash output
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | nvflash --bl /usr/lib/nvflash/fastboot.bin --download 11 ./ubuntu-12.04-preinstalled-desktop-armhf+ac100.bootimg Nvflash started rcm version 0X20001 System Information: chip name: t20 chip id: 0x20 major: 1 minor: 3 chip sku: 0x8 chip uid: XXXXXX macrovision: disabled hdcp: enabled sbk burned: false dk burned: false boot device: emmc operating mode: 3 device config strap: 0 device config fuse: 0 sdram config strap: 0 downloading bootloader -- load address: 0x108000 entry point: 0x108000 sending file: /usr/lib/nvflash/fastboot.bin | 940112/940112 bytes sent /usr/lib/nvflash/fastboot.bin sent successfully waiting for bootloader to initialize bootloader downloaded successfully sending file: ./ubuntu-12.04-preinstalled-desktop-armhf+ac100.bootimg / 8388608/8388608 bytes sent ./ubuntu-12.04-preinstalled-desktop-armhf+ac100.bootimg sent successfully |
PCB Images:
Bootable kernel
Kernel from: http://developer.download.nvidia.com/assets/mobile/files/tegra-linux-12.alpha.1.0.tar.gz
Boot image built with: ./bootloader/mkbootimg –kernel ./kernel/zImage –ramdisk NONE -o ~/m.img –cmdline “debug mem=128M”
Update: sosboot and probably other ac100 kernel boot and show data on the serial port.
Serial Port
There’s a 3.3v level serial port located under the SD Card slot (see additional post). No connector is mounted, you’ll need to solder one. The output is as follows:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | **********Aos DebugSemiHosting Initialized******* --------------------------------------------------- ODM CPU freq request beyond SOC limit ADJUSTED CLOCKS: MC clock is set to 333000 KHz EMC clock is set to 666000 KHz (DDR clock is at 333000 KHz) PLLX0 clock is set to 1000000 KHz PLLC0 clock is set to 600000 KHz CPU clock is set to 1000000 KHz System and AVP clock is set to 240000 KHz GraphicsHost clock is set to 108000 KHz 3D clock is set to 111000 KHz 2D clock is set to 111000 KHz Epp clock is set to 111000 KHz Mpe clock is set to 111000 KHz Vde clock is set to 240000 KHz DTT: TMON initialization failed Bootloader version: eng.NEC.20110609.091639 I2C Slave is *New* ***NVEC:Received Spurious Response from EC.Checking for android ota recovery OS will cold boot in 0 seconds if no input is detected Key driver not found.. Booting OS Cold-booting Linux |
Source code
There’s a source code release by NEC. I’ve uploaded it here.
Framebuffer notes
From the NEC source release:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | // these values are just defaults. they will be over-written with th // correct values from the boot args. .var = { .xres = 800, .yres = 480, .xres_virtual = 800, .yres_virtual = 480, .bits_per_pixel = 16, .red = {11, 5, 0}, .green = {5, 6, 0}, .blue = {0, 5, 0}, .transp = {0, 0, 0}, .activate = FB_ACTIVATE_NOW, .height = -1, .width = -1, .pixclock = 24500, .left_margin = 0, .right_margin = 0, .upper_margin = 0, .lower_margin = 0, .hsync_len = 0, .vsync_len = 0, .vmode = FB_VMODE_NONINTERLACED, }, |
AC100 config, patch to use different display:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | --- marvin-2.6.38.8-oc/arch/arm/mach-tegra/board-paz00-panel.c.old 2011-09-19 19:33:24.000000000 +0100 +++ marvin-2.6.38.8-oc/arch/arm/mach-tegra/board-paz00-panel.c 2011-12-29 23:56:45.588167000 +0000 @@ -251,7 +251,7 @@ { .name = "fbmem", .start = 0x1fd95000, - .end = 0x1fd95000 + 0x26B000 - 1, // 2.4 MB @ 509 MB + .end = 0x1fd95000 + 0x384000 - 1, // 2.4 MB @ 509 MB .flags = IORESOURCE_MEM, }, }; @@ -279,15 +279,15 @@ static struct tegra_dc_mode paz00_panel_modes[] = { { - .pclk = 42430000, + .pclk = 71735520, .h_ref_to_sync = 4, .v_ref_to_sync = 2, .h_sync_width = 136, .v_sync_width = 4, .h_back_porch = 138, .v_back_porch = 21, - .h_active = 1024, - .v_active = 600, + .h_active = 1280, + .v_active = 720, .h_front_porch = 34, .v_front_porch = 4, }, @@ -295,8 +295,8 @@ static struct tegra_fb_data paz00_fb_data = { .win = 0, - .xres = 1024, - .yres = 600, + .xres = 1280, + .yres = 720, .bits_per_pixel = 16, }; |
Great work!
I asked NEC Japan to get modified kernel source and sure they have it for Life touch note.
To get source for LTN you must register your product serial number written on the back side of the body at following url.
https://www.nec.co.jp/solution/cloud/communicator/gpl/LifeTouch_NOTE_LTNA7/form.html
They must have one for ac100 outside of Japan. It’s certain you can get the optimized source for your ac100, because they said “yes, it’s the GPL requirement to provide the sources”.
The rep do not know who provide the kernel source for ac100 outside of Japan, so that you have to find out. I heard that they provide sources just for LTN because they don’t sell ac100 in Japan. It’s logical lol.
It’s good to ask your local NEC service reps.
hi,
Yes, I have the source code now! I put the kernel source up on my github account at http://github.com/new299