openssl: bump to 1.1.1j
[librecmc/librecmc.git] / docs / Ben_Nanonote.md
1
2 ## Overview
3
4 * [JZ4720](https://web.archive.org/web/20110904201104/http://en.ingenic.cn/product.aspx?ID=60) 336 MHz MIPS compatible processor from [Ingenic Semiconductor Co.](http://www.ingenic.cn)
5
6 * 3.0" 320x240 pixels [[LCD|colour TFT LCD]] (40x15 character in a text console)
7
8 * 32MB [[SDRAM]] 
9
10 * 2GB [[NAND|NAND Flash]] Memory
11
12 * 1 [[SD|microSDHC]] slot (SDIO capable)
13
14 * 59 keys Keyboard
15
16 * Stereo headphones connector, mono speaker and microphone [[Audio_IN_OUT|audio interfaces]].
17
18 * [USB](http://wiki.qi-hardware.com/wiki/USB_host) 2.0 High-Speed Device, [Mini B](http://en.wikipedia.org/wiki/USB#Connector_types) connector
19
20 * 3.7V 850mAh Li-ion Battery ( [[Compatible_batteries|Compatible batteries]]) and 5V 500mA [[Power_Supply_Circuit|DC input through USB port]]
21
22 * Measured battery life time, idle, screen off: 12h59
23
24 * Overall dimension (lid closed): 99 * 75 * 17.5mm. (display: 7.5mm, keyboard: 10mm)
25
26 * Weight: 126g (includes battery)
27
28 ## Status
29
30 * Flashing bootloader, kernel, and rootfs via USB works.
31 * Serial console via GND/RXD/TXD pads under the battery works.
32 * LCD works
33 ** After a few minutes of inactivity on the console, it will go blank. Pressing any key brings it back.
34 * Keyboard works
35 * Audio/ALSA works.
36 * ...
37
38 ## Pinouts
39
40 PCB 08.50 (ben)
41
42 '''Micro-SD pins on testpads:'''
43
44  Pin  TP     note
45  ------------------
46  #1   TP14   data2
47  #2   TP15   cd/data3 / _CS
48  #3   TP17   cmd / mosi
49  #4   sdVCC  switched by Q4 (fet?) controlled via line from cpu (on TP11)
50  #5   TP16   clock
51  #6   GND
52  #7   TP12   data0 / miso
53  #8   TP13   data1
54
55 '''Serial pins:'''
56
57 See [[Ben_source_code#serial_console]].
58
59 == System information ==
60
61  $ '''cat /proc/cpuinfo'''
62  system type             : JZ4740
63  processor               : 0
64  cpu model               : Ingenic JZRISC V4.15
65  BogoMIPS                : 335.05
66  wait instruction        : yes                                                   
67  microsecond timers      : no                                                    
68  tlb_entries             : 32                                                    
69  extra interrupt vector  : yes                                                   
70  hardware watchpoint     : yes, count: 1, address/irw mask: [0x0fff]             
71  ASEs implemented        :                                                       
72  shadow register sets    : 1                                                     
73  core                    : 0                                                     
74  VCED exceptions         : not available                                         
75  VCEI exceptions         : not available                                         
76
77  $ '''cat /proc/mtd'''
78  dev:    size   erasesize  name
79  mtd0: 00400000 00080000 "NAND BOOT partition"
80  mtd1: 00400000 00080000 "NAND KERNEL partition"
81  mtd2: 20000000 00080000 "NAND ROOTFS partition"
82  mtd3: 5f800000 00080000 "NAND DATA partition"
83
84  $ '''uname -a'''
85  Linux BenNanoNote 2.6.32.27 #1 PREEMPT Sat Mar 5 03:54:50 MSK 2011 mips GNU/Linux
86
87  $ '''cat /proc/iomem'''
88  00000000-01ffffff : System RAM
89    00010000-0031162b : Kernel code
90    0031162c-0040877f : Kernel data
91  10003000-10003037 : jz4740-rtc
92    10003000-10003037 : jz4740-rtc
93  10020000-10020037 : jz4740-i2s
94    10020000-10020037 : jz4740-i2s
95  10020080-10020087 : jz4740-codec
96    10020080-10020087 : jz4740-codec
97  10021000-10030fff : jz4740-mmc.0
98    10021000-10030fff : jz4740-mmc
99  10070000-10070030 : jz4740-adc
100    10070000-10070030 : jz4740-adc
101  13010000-1301ffff : jz4740-nand.0
102    13010000-1301ffff : jz4740-nand
103  13030000-1303ffff : jz-ohci.0
104  13040000-1304ffff : jz-udc
105    13040000-1304ffff : jz-udc
106  13050000-1305ffff : jz4740-fb
107    13050000-1305ffff : jz4740-fb
108
109  $ '''cat /proc/interrupts'''
110            CPU0       
111    2:      33611            MIPS  JZ4740 cascade interrupt
112   17:         20            INTC  serial
113   20:         56            INTC  jz4740-adc
114   22:         47            INTC  MMC/SD
115   23:          0            INTC  jz4740-rtc
116   28:          0            INTC  DMA
117   31:      32374            INTC  jz4740-timerirq
118   32:        527            INTC  jz-udc
119  147:          0     GPIO Bank C  jz4740-battery
120  152:          0     GPIO Bank D  MMC/SD detect changed
121  170:          0     GPIO Bank D  matrix-keypad
122  171:         94     GPIO Bank D  matrix-keypad
123  172:         77     GPIO Bank D  matrix-keypad
124  173:         17     GPIO Bank D  matrix-keypad
125  174:        151     GPIO Bank D  matrix-keypad
126  175:         13     GPIO Bank D  matrix-keypad
127  176:        235     GPIO Bank D  matrix-keypad
128  178:          0     GPIO Bank D  matrix-keypad
129  180:          0     GPIO Bank D  gpio-charger.0
130  181:          0     GPIO Bank D  Power
131  ERR:          0
132
133 == GPIO pins ==
134
135 The Jz4720 has only a limited number of pins as outputs to the board.  Furthermore, several functions take up gpio pins which are therefore not usable for other functions.  Those devices are the sdram and nand controller, lcd controller and mmc+sd controller.  Below is a table showing how they are used.  Please complete this table.  The missing entries are not connected to a pad in the Jz4720.
136
137 '''Port A:'''
138 * 01      sdram data 0
139 * 03      sdram data 1
140 * 05      sdram data 2
141 * 07      sdram data 3
142 * 08      sdram data 4
143 * 09      sdram data 5
144 * 10      sdram data 6
145 * 11      sdram data 7
146 * 12      sdram data 8
147 * 13      sdram data 9
148 * 15      sdram data 10
149 * 17      sdram data 11
150 * 22      sdram data 12
151 * 26      sdram data 13
152 * 28      sdram data 14
153 * 30      sdram data 15
154
155 '''Port B:'''
156 * 00      sdram address 0
157 * 01      sdram address 1
158 * 02      sdram address 2
159 * 03      sdram address 3
160 * 04      sdram address 4
161 * 05      sdram address 5
162 * 06      sdram address 6
163 * 07      sdram address 7
164 * 08      sdram address 8
165 * 09      sdram address 9
166 * 10      sdram address 10
167 * 11      sdram address 11
168 * 12      sdram address 12
169 * 13      sdram address 13
170 * 14      sdram address 14
171 * 15      nand command latch
172 * 16      nand address latch
173 * 17      not connected (was marked "SHDN_HOST???", but schematic disagrees)
174 * 18      TP23 (free)
175 * 19      sdram dcs
176 * 20      sdram ras
177 * 21      sdram cas
178 * 22      sdram write enable
179 * 23      sdram cke
180 * 24      sdram cko
181 * 25      sdram cs1
182 * 26      sdram cs2
183 * 27      not connected (was marked "USB ID", but schematic disagrees)
184 * 28      not connected
185 * 29      Audio output enable (anti-pop control)
186 * 30      TP25 (free)
187 * 31      sdram write enable 0
188
189 '''Port C:'''
190 * 00      lcd data 0
191 * 01      lcd data 1
192 * 02      lcd data 2
193 * 03      lcd data 3
194 * 04      lcd data 4
195 * 05      lcd data 5
196 * 06      lcd data 6
197 * 07      lcd data 7
198 * 08      TP 35 (free)
199 * 09      TP 36 (free)
200 * 10      keyboard out 1, TP59
201 * 11      keyboard out 2, TP60
202 * 12      keyboard out 3, TP61
203 * 13      keyboard out 4, TP62
204 * 14      keyboard out 5, TP63
205 * 15      keyboard out 6, TP64
206 * 16      keyboard out 7, TP65
207 * 17      keyboard out 8, TP66
208 * 18      lcd pixel clock
209 * 19      lcd hsync
210 * 20      lcd vsync
211 * 21      lcd SPI chipselect
212 * 22      lcd SPI data
213 * 23      lcd SPI clock
214 * 24      sdram write enable 1
215 * 27      Charge detect (analog input to read battery voltage).
216 * 28      nand read enable
217 * 29      nand write enable
218 * 30      nand flash ready/busy
219 * 31      not connected to a pad; PCSEL31 selects jtag (PCSEL31==0) or uart0 (PCSEL31==1) on pad 147(TxD)+148(RxD) (TP5+TP4).
220
221 '''Port D:'''
222 * 00      SD Card detect
223 * 02      SD Card power enable
224 * 04      Speaker AMP enable (no audio unless this output is pulled low).
225 * 06      Low power indicator (if 0, battery power is low).
226 * 08      SD Card command
227 * 09      SD Card clock
228 * 10      SD Card data 1
229 * 11      SD Card data 2
230 * 12      SD Card data 3
231 * 13      SD Card data 4
232 * 15      TP 38 (free)
233 * 18      Keyboard in 1, TP67
234 * 19      Keyboard in 2, TP68
235 * 20      Keyboard in 3, TP69
236 * 21      Keyboard in 4, TP70
237 * 22      Keyboard in 5, TP71
238 * 23      Keyboard in 6, TP72
239 * 24      Keyboard in 7, TP73
240 * 25      uart0 transmit, TP75
241 * 26      Keyboard in 8 (uart0 receive), TP74
242 * 27      Buzzer, controlled with pwm4.  Piezo-electric buzzer; not related to soundcard output.
243 * 28      USB detect (0 if usb power is present).
244 * 29      power button (0 if pressed).
245
246 === Sorted by function ===
247 * buzzer: D27
248 * audio: B29, D4
249 * power button: D29
250 * keyboard: C10, C11, C12, C13, C14, C15, C16, C17, D18, D19, D20, D21, D22, D23, D24, D26(also uart receive)
251 * uart: C31, D25, D26(also keyboard), uart is also available on jtag pads TP4+TP5 (without gpio overload).
252 * sd/mmc: D0, D2, D8, D9, D10, D11, D12, D13
253 * usb: D28
254 * battery: C27, D6
255 * sdram: A1, A3, A5, A7, A8, A9, A10, A11, A12, A13, A15, A17, A22, A26, A28, A30, B0, B1, B2, B3, B4, B5, B6, B7, B8, B9, B10, B11, B12, B13, B14, B19, B10, B21, B22, B23, B24, B25, B26, B31, C24
256 * nand: B15, B16, C28, C29, C30
257 * lcd: C0, C1, C2, C3, C4, C5, C6, C7, C18, C19, C20, C21, C22, C23
258 * only test points: B18, B30, C8, C9, D15
259 * unconnected pads: B17, B27, B28
260
261 [[Category:Ben NanoNote]]
262
263 This content is dual licensed under CC-BY-SA and GFDL and was obtained from [http://en.qi-hardware.com/wiki/Hardware-Ben](http://en.qi-hardware.com/wiki/Hardware-Ben)