]> git.kernelconcepts.de Git - karo-tx-uboot.git/blob - include/configs/svm_sc8xx.h
at91sam9260ek: move board id setup to config header
[karo-tx-uboot.git] / include / configs / svm_sc8xx.h
1 /*
2  * (C) Copyright 2000, 2001, 2002
3  * Wolfgang Denk, DENX Software Engineering, wd@denx.de.
4  *
5  * See file CREDITS for list of people who contributed to this
6  * project.
7  *
8  * This program is free software; you can redistribute it and/or
9  * modify it under the terms of the GNU General Public License as
10  * published by the Free Software Foundation; either version 2 of
11  * the License, or (at your option) any later version.
12  *
13  * This program is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16  * GNU General Public License for more details.
17  *
18  * You should have received a copy of the GNU General Public License
19  * along with this program; if not, write to the Free Software
20  * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
21  * MA 02111-1307 USA
22  */
23
24 /*
25  * board/config.h - configuration options, board specific,
26  *                  for SinoVee Microsystems SC8xx series SBC
27  *                  http://www.fel.com.cn (Chinese)
28  *                  http://www.sinovee.com (English)
29  */
30
31 #ifndef __CONFIG_H
32 #define __CONFIG_H
33
34 #define CONFIG_SYS_TEXT_BASE    0x40000000
35
36 /* Custom configuration */
37 /* SC823,SC850,SC860SAR, FEL8xx-AT(823/850/860) */
38 /* SC85T,SC860T, FEL8xx-AT(855T/860T) */
39 /*#define CONFIG_FEL8xx_AT */
40 /*#define CONFIG_LCD */
41 /*#define CONFIG_MPC8XX_LCD*/
42 /* if core > 50MHz , un-comment CONFIG_BUS_DIV2 */
43 /* #define CONFIG_50MHz */
44 /* #define CONFIG_66MHz */
45 /* #define CONFIG_75MHz */
46 #define CONFIG_80MHz
47 /*#define CONFIG_100MHz */
48 /* #define CONFIG_BUS_DIV2      1 */
49 /* for BOOT device port size */
50 /* #define CONFIG_BOOT_8B */
51 #define CONFIG_BOOT_16B
52 /* #define CONFIG_BOOT_32B */
53 /* #define CONFIG_CAN_DRIVER */
54 /* #define DEBUG */
55 #define CONFIG_FEC_ENET
56
57 /* #define CONFIG_SDRAM_16M */
58 #define CONFIG_SDRAM_32M
59 /* #define CONFIG_SDRAM_64M */
60 #define CONFIG_SYS_RESET_ADDRESS 0xffffffff
61 /*
62  * High Level Configuration Options
63  * (easy to change)
64  */
65
66 /* #define CONFIG_MPC823                1 */
67 /* #define CONFIG_MPC850                1 */
68 #define CONFIG_MPC855           1
69 /* #define CONFIG_MPC860                1 */
70 /* #define CONFIG_MPC860T               1 */
71
72 #undef  CONFIG_WATCHDOG                 /* watchdog */
73
74 #define CONFIG_SVM_SC8xx                1       /* ...on SVM SC8xx series       */
75
76 #ifdef  CONFIG_LCD                      /* with LCD controller ?        */
77 /* #define CONFIG_NEC_NL6448BC20 1 / * use NEC NL6448BC20 display       */
78 #endif
79
80 #define CONFIG_8xx_CONS_SMC1    1       /* Console is on SMC1           */
81 #undef  CONFIG_8xx_CONS_SMC2
82 #undef  CONFIG_8xx_CONS_NONE
83 #define CONFIG_BAUDRATE         19200   /* console baudrate = 115kbps   */
84 #if 0
85 #define CONFIG_BOOTDELAY        -1      /* autoboot disabled            */
86 #else
87 #define CONFIG_BOOTDELAY        1       /* autoboot after 5 seconds     */
88 #endif
89
90 #define CONFIG_CLOCKS_IN_MHZ    1       /* clocks passsed to Linux in MHz */
91
92 #define CONFIG_BOARD_TYPES      1       /* support board types          */
93
94 #define CONFIG_PREBOOT  "echo;echo Welcome to U-Boot SVM port;echo;echo Type \"? or help\" to get on-line help;echo"
95
96 #undef  CONFIG_BOOTARGS
97 #define CONFIG_EXTRA_ENV_SETTINGS                                       \
98         "nfsargs=setenv bootargs root=/dev/nfs rw "                     \
99          "nfsroot=${serverip}:${rootpath}\0"                     \
100         "ramargs=setenv bootargs root=/dev/ram rw\0"                    \
101         "addip=setenv bootargs ${bootargs} "                            \
102                "ip=${ipaddr}:${serverip}:${gatewayip}:${netmask}"      \
103                 ":${hostname}:${netdev}:off panic=1\0"                  \
104                 "flash_nfs=run nfsargs addip;"                                  \
105              "bootm ${kernel_addr}\0"                                \
106         "flash_self=run ramargs addip;"                                 \
107                "bootm ${kernel_addr} ${ramdisk_addr}\0"                \
108         "net_nfs=tftp 0x210000 ${bootfile};run nfsargs addip;bootm\0"     \
109         "rootpath=/opt/sinovee/ppc8xx-linux-2.0/target\0"                                  \
110         "bootfile=pImage-sc855t\0"                           \
111         "kernel_addr=48000000\0"                                        \
112         "ramdisk_addr=48100000\0"                                       \
113         ""
114 #define CONFIG_BOOTCOMMAND                                                      \
115         "setenv bootargs root=/dev/nfs rw nfsroot=${serverip}:${rootpath} "     \
116         "ip=${ipaddr}:${serverip}:${gatewayip}:${netmask}:${hostname}::off; "   \
117         "tftpboot 0x210000 pImage-sc855t;bootm 0x210000"
118
119 #define CONFIG_LOADS_ECHO       1       /* echo on for serial download  */
120 #undef  CONFIG_SYS_LOADS_BAUD_CHANGE            /* don't allow baudrate change  */
121
122
123 #ifdef CONFIG_LCD
124 # undef  CONFIG_STATUS_LED              /* disturbs display             */
125 #else
126 # define CONFIG_STATUS_LED      1       /* Status LED enabled           */
127 #endif  /* CONFIG_LCD */
128
129 #undef  CONFIG_CAN_DRIVER               /* CAN Driver support disabled  */
130
131 /*
132  * BOOTP options
133  */
134 #define CONFIG_BOOTP_SUBNETMASK
135 #define CONFIG_BOOTP_GATEWAY
136 #define CONFIG_BOOTP_HOSTNAME
137 #define CONFIG_BOOTP_BOOTPATH
138 #define CONFIG_BOOTP_BOOTFILESIZE
139
140 #define CONFIG_MAC_PARTITION
141 #define CONFIG_DOS_PARTITION
142
143 #define CONFIG_RTC_MPC8xx               /* use internal RTC of MPC8xx   */
144
145
146 /*
147  * Command line configuration.
148  */
149 #include <config_cmd_default.h>
150
151 #define CONFIG_CMD_ASKENV
152 #define CONFIG_CMD_DHCP
153 #define CONFIG_CMD_DATE
154
155 /*
156  * Miscellaneous configurable options
157  */
158 #define CONFIG_SYS_LONGHELP                     /* undef to save memory         */
159 #define CONFIG_SYS_PROMPT       "=> "           /* Monitor Command Prompt       */
160
161 #ifdef  CONFIG_SYS_HUSH_PARSER
162 #endif
163
164 #if defined(CONFIG_CMD_KGDB)
165 #define CONFIG_SYS_CBSIZE       1024            /* Console I/O Buffer Size      */
166 #else
167 #define CONFIG_SYS_CBSIZE       256             /* Console I/O Buffer Size      */
168 #endif
169 #define CONFIG_SYS_PBSIZE (CONFIG_SYS_CBSIZE+sizeof(CONFIG_SYS_PROMPT)+16) /* Print Buffer Size */
170 #define CONFIG_SYS_MAXARGS      16              /* max number of command args   */
171 #define CONFIG_SYS_BARGSIZE     CONFIG_SYS_CBSIZE       /* Boot Argument Buffer Size    */
172
173 #define CONFIG_SYS_MEMTEST_START        0x0400000       /* memtest works on     */
174 #define CONFIG_SYS_MEMTEST_END          0x0C00000       /* 4 ... 12 MB in DRAM  */
175
176 #define CONFIG_SYS_LOAD_ADDR            0x100000        /* default load address */
177
178 #define CONFIG_SYS_HZ           1000            /* decrementer freq: 1 ms ticks */
179
180 /*
181  * Low Level Configuration Settings
182  * (address mappings, register initial values, etc.)
183  * You should know what you are doing if you make changes here.
184  */
185 /*-----------------------------------------------------------------------
186  * Internal Memory Mapped Register
187  */
188 #define CONFIG_SYS_IMMR         0xFF000000
189
190 /*-----------------------------------------------------------------------
191  * Definitions for initial stack pointer and data area (in DPRAM)
192  */
193 #define CONFIG_SYS_INIT_RAM_ADDR        CONFIG_SYS_IMMR
194 #define CONFIG_SYS_INIT_RAM_SIZE        0x2F00  /* Size of used area in DPRAM   */
195 #define CONFIG_SYS_GBL_DATA_OFFSET      (CONFIG_SYS_INIT_RAM_SIZE - GENERATED_GBL_DATA_SIZE)
196 #define CONFIG_SYS_INIT_SP_OFFSET       CONFIG_SYS_GBL_DATA_OFFSET
197
198 /*-----------------------------------------------------------------------
199  * Start addresses for the final memory configuration
200  * (Set up by the startup code)
201  * Please note that CONFIG_SYS_SDRAM_BASE _must_ start at 0
202  */
203 #define CONFIG_SYS_SDRAM_BASE           0x00000000
204 #define CONFIG_SYS_FLASH_BASE           0x40000000
205 #define CONFIG_SYS_MONITOR_LEN          (384 << 10)     /* Reserve 192 kB for Monitor   */
206 #define CONFIG_SYS_MONITOR_BASE CONFIG_SYS_FLASH_BASE
207 #define CONFIG_SYS_MALLOC_LEN           (128 << 10)     /* Reserve 128 kB for malloc()  */
208
209 /*
210  * For booting Linux, the board info and command line data
211  * have to be in the first 8 MB of memory, since this is
212  * the maximum mapped by the Linux kernel during initialization.
213  */
214 #define CONFIG_SYS_BOOTMAPSZ            (8 << 20)       /* Initial Memory map for Linux */
215
216 /*-----------------------------------------------------------------------
217  * FLASH organization
218  */
219 #define CONFIG_SYS_MAX_FLASH_BANKS      2       /* max number of memory banks           */
220 #define CONFIG_SYS_MAX_FLASH_SECT       67      /* max number of sectors on one chip    */
221
222 #define CONFIG_SYS_FLASH_ERASE_TOUT     120000  /* Timeout for Flash Erase (in ms)      */
223 #define CONFIG_SYS_FLASH_WRITE_TOUT     500     /* Timeout for Flash Write (in ms)      */
224
225 #define CONFIG_ENV_IS_IN_FLASH  1
226
227 #ifdef CONFIG_BOOT_8B
228 #define CONFIG_ENV_OFFSET               0x10000 /*   Offset   of Environment Sector     */
229 #define CONFIG_ENV_SIZE         0x10000 /* Total Size of Environment Sector     */
230 #elif defined (CONFIG_BOOT_16B)
231 #define CONFIG_ENV_OFFSET               0x10000 /*   Offset   of Environment Sector     */
232 #define CONFIG_ENV_SIZE         0x10000 /* Total Size of Environment Sector     */
233 #elif defined (CONFIG_BOOT_32B)
234 #define CONFIG_ENV_OFFSET               0x8000  /*   Offset   of Environment Sector     */
235 #define CONFIG_ENV_SIZE         0x4000  /* Total Size of Environment Sector     */
236 #endif
237
238 /* Address and size of Redundant Environment Sector     */
239 #define CONFIG_ENV_OFFSET_REDUND   (CONFIG_ENV_OFFSET+CONFIG_ENV_SIZE)
240 #define CONFIG_ENV_SIZE_REDUND     (CONFIG_ENV_SIZE)
241
242
243 /*-----------------------------------------------------------------------
244  * Hardware Information Block
245  */
246 #define CONFIG_SYS_HWINFO_OFFSET        0x0003FFC0      /* offset of HW Info block */
247 #define CONFIG_SYS_HWINFO_SIZE          0x00000040      /* size   of HW Info block */
248 #define CONFIG_SYS_HWINFO_MAGIC 0x46454C38      /* 'SVM8' */
249
250 /*-----------------------------------------------------------------------
251  * Cache Configuration
252  */
253 #define CONFIG_SYS_CACHELINE_SIZE       16      /* For all MPC8xx CPUs                  */
254 #if defined(CONFIG_CMD_KGDB)
255 #define CONFIG_SYS_CACHELINE_SHIFT      4       /* log base 2 of the above value        */
256 #endif
257
258 /*-----------------------------------------------------------------------
259  * SYPCR - System Protection Control                            11-9
260  * SYPCR can only be written once after reset!
261  *-----------------------------------------------------------------------
262  * Software & Bus Monitor Timer max, Bus Monitor enable, SW Watchdog freeze
263  */
264 #if defined(CONFIG_WATCHDOG)
265 /*#define CONFIG_SYS_SYPCR      (SYPCR_SWTC | SYPCR_BMT | SYPCR_BME | SYPCR_SWF | \
266                          SYPCR_SWE  | SYPCR_SWRI| SYPCR_SWP)
267 */
268 #define CONFIG_SYS_SYPCR        (SYPCR_SWTC | SYPCR_BMT | SYPCR_SWF | \
269                          SYPCR_SWE  | SYPCR_SWRI| SYPCR_SWP)
270 #else
271 #define CONFIG_SYS_SYPCR 0xffffff88
272 #endif
273
274 /*-----------------------------------------------------------------------
275  * SIUMCR - SIU Module Configuration                            11-6
276  *-----------------------------------------------------------------------
277  * PCMCIA config., multi-function pin tri-state
278  */
279 #ifndef CONFIG_CAN_DRIVER
280 /*#define CONFIG_SYS_SIUMCR 0x00610c00  */
281 #define CONFIG_SYS_SIUMCR 0x00000000
282 #else   /* we must activate GPL5 in the SIUMCR for CAN */
283 #define CONFIG_SYS_SIUMCR       (SIUMCR_DBGC11 | SIUMCR_DBPC00 | SIUMCR_MLRC01)
284 #endif  /* CONFIG_CAN_DRIVER */
285
286 /*-----------------------------------------------------------------------
287  * TBSCR - Time Base Status and Control                         11-26
288  *-----------------------------------------------------------------------
289  * Clear Reference Interrupt Status, Timebase freezing enabled
290  */
291 #define CONFIG_SYS_TBSCR        0x0001
292
293 /*-----------------------------------------------------------------------
294  * RTCSC - Real-Time Clock Status and Control Register          11-27
295  *-----------------------------------------------------------------------
296  */
297 #define CONFIG_SYS_RTCSC        0x00c3
298
299 /*-----------------------------------------------------------------------
300  * PISCR - Periodic Interrupt Status and Control                11-31
301  *-----------------------------------------------------------------------
302  * Clear Periodic Interrupt Status, Interrupt Timer freezing enabled
303  */
304 #define CONFIG_SYS_PISCR        0x0000
305
306 /*-----------------------------------------------------------------------
307  * PLPRCR - PLL, Low-Power, and Reset Control Register          15-30
308  *-----------------------------------------------------------------------
309  * Reset PLL lock status sticky bit, timer expired status bit and timer
310  * interrupt status bit
311  */
312 #if defined (CONFIG_100MHz)
313 #define CONFIG_SYS_PLPRCR 0x06301000
314 #define CONFIG_8xx_GCLK_FREQ 100000000
315 #elif defined (CONFIG_80MHz)
316 #define CONFIG_SYS_PLPRCR 0x04f01000
317 #define CONFIG_8xx_GCLK_FREQ 80000000
318 #elif defined(CONFIG_75MHz)
319 #define CONFIG_SYS_PLPRCR 0x04a00100
320 #define CONFIG_8xx_GCLK_FREQ 75000000
321 #elif defined(CONFIG_66MHz)
322 #define CONFIG_SYS_PLPRCR 0x04101000
323 #define CONFIG_8xx_GCLK_FREQ 66000000
324 #elif defined(CONFIG_50MHz)
325 #define CONFIG_SYS_PLPRCR 0x03101000
326 #define CONFIG_8xx_GCLK_FREQ 50000000
327 #endif
328
329 /*-----------------------------------------------------------------------
330  * SCCR - System Clock and reset Control Register               15-27
331  *-----------------------------------------------------------------------
332  * Set clock output, timebase and RTC source and divider,
333  * power management and some other internal clocks
334  */
335 #define SCCR_MASK       SCCR_EBDF11
336 #ifdef  CONFIG_BUS_DIV2
337 #define CONFIG_SYS_SCCR 0x02020000 | SCCR_RTSEL
338 #else                   /* up to 50 MHz we use a 1:1 clock */
339 #define CONFIG_SYS_SCCR    0x02000000 | SCCR_RTSEL
340 #endif
341
342 /*-----------------------------------------------------------------------
343  * PCMCIA stuff
344  *-----------------------------------------------------------------------
345  *
346  */
347 #define CONFIG_SYS_PCMCIA_MEM_ADDR      (0xE0000000)
348 #define CONFIG_SYS_PCMCIA_MEM_SIZE      ( 64 << 20 )
349 #define CONFIG_SYS_PCMCIA_DMA_ADDR      (0xE4000000)
350 #define CONFIG_SYS_PCMCIA_DMA_SIZE      ( 64 << 20 )
351 #define CONFIG_SYS_PCMCIA_ATTRB_ADDR    (0xE8000000)
352 #define CONFIG_SYS_PCMCIA_ATTRB_SIZE    ( 64 << 20 )
353 #define CONFIG_SYS_PCMCIA_IO_ADDR       (0xEC000000)
354 #define CONFIG_SYS_PCMCIA_IO_SIZE       ( 64 << 20 )
355
356 /*-----------------------------------------------------------------------
357  * IDE/ATA stuff (Supports IDE harddisk on PCMCIA Adapter)
358  *-----------------------------------------------------------------------
359  */
360
361 #undef  CONFIG_IDE_8xx_PCCARD           /* Use IDE with PC Card Adapter */
362
363 #define CONFIG_IDE_PREINIT      1       /* Use preinit IDE hook */
364 #define CONFIG_IDE_INIT_POSTRESET       1       /* Use postreset IDE hook */
365 #define CONFIG_IDE_8xx_DIRECT   1       /* Direct IDE    not supported  */
366 #undef  CONFIG_IDE_LED                  /* LED   for ide not supported  */
367 #undef  CONFIG_IDE_RESET                /* reset for ide not supported  */
368
369 #define CONFIG_SYS_IDE_MAXBUS           1       /* max. 1 IDE bus               */
370 #define CONFIG_SYS_IDE_MAXDEVICE        1       /* max. 1 drive per IDE bus     */
371
372 #define CONFIG_SYS_ATA_BASE_ADDR       0xFE100010
373 #define CONFIG_SYS_ATA_IDE0_OFFSET     0x0000
374 /*#define CONFIG_SYS_ATA_IDE1_OFFSET     0x0C00 */
375 #define CONFIG_SYS_ATA_DATA_OFFSET     0x0000  /* Offset for data I/O
376                                            */
377 #define CONFIG_SYS_ATA_REG_OFFSET      0x0200  /* Offset for normal register accesses
378                                            */
379 #define CONFIG_SYS_ATA_ALT_OFFSET      0x0210  /* Offset for alternate registers
380                                            */
381 #define CONFIG_ATAPI
382 #define CONFIG_SYS_PIO_MODE 0
383
384 /*-----------------------------------------------------------------------
385  *
386  *-----------------------------------------------------------------------
387  *
388  */
389 /*#define       CONFIG_SYS_DER  0x2002000F*/
390 #define CONFIG_SYS_DER  0x0
391
392 /*
393  * Init Memory Controller:
394  *
395  * BR0/1 and OR0/1 (FLASH)
396  */
397
398 #define FLASH_BASE0_PRELIM      0x40000000      /* FLASH bank #0        */
399 #define FLASH_BASE1_PRELIM      0x60000000      /* FLASH bank #0        */
400
401 /* used to re-map FLASH both when starting from SRAM or FLASH:
402  * restrict access enough to keep SRAM working (if any)
403  * but not too much to meddle with FLASH accesses
404  */
405 #define CONFIG_SYS_REMAP_OR_AM          0x80000000      /* OR addr mask */
406 #define CONFIG_SYS_PRELIM_OR_AM 0xE0000000      /* OR addr mask */
407
408 /*
409  * FLASH timing:
410  */
411 #if defined(CONFIG_100MHz)
412 #define CONFIG_SYS_OR_TIMING_FLASH 0x000002f4
413 #define CONFIG_SYS_OR_TIMING_DOC   0x000002f4
414 #define CONFIG_SYS_MxMR_PTx 0x61000000
415 #define CONFIG_SYS_MPTPR 0x400
416
417 #elif  defined(CONFIG_80MHz)
418 #define CONFIG_SYS_OR_TIMING_FLASH 0x00000ff4
419 #define CONFIG_SYS_OR_TIMING_DOC   0x000001f4
420 #define CONFIG_SYS_MxMR_PTx 0x4e000000
421 #define CONFIG_SYS_MPTPR 0x400
422
423 #elif defined(CONFIG_75MHz)
424 #define CONFIG_SYS_OR_TIMING_FLASH 0x000008f4
425 #define CONFIG_SYS_OR_TIMING_DOC   0x000002f4
426 #define CONFIG_SYS_MxMR_PTx 0x49000000
427 #define CONFIG_SYS_MPTPR 0x400
428
429 #elif defined(CONFIG_66MHz)
430 #define CONFIG_SYS_OR_TIMING_FLASH     (OR_ACS_DIV1  | OR_TRLX | OR_CSNT_SAM | \
431         OR_SCY_3_CLK | OR_EHTR | OR_BI)
432 /*#define CONFIG_SYS_OR_TIMING_FLASH 0x000001f4 */
433 #define CONFIG_SYS_OR_TIMING_DOC   0x000003f4
434 #define CONFIG_SYS_MxMR_PTx  0x40000000
435 #define CONFIG_SYS_MPTPR 0x400
436
437 #else           /*   50 MHz */
438 #define CONFIG_SYS_OR_TIMING_FLASH 0x00000ff4
439 #define CONFIG_SYS_OR_TIMING_DOC   0x000001f4
440 #define CONFIG_SYS_MxMR_PTx  0x30000000
441 #define CONFIG_SYS_MPTPR 0x400
442 #endif  /*CONFIG_??MHz */
443
444
445 #if  defined (CONFIG_BOOT_8B)   /* 512K X 8 ,29F040 , 2MB space */
446 #define CONFIG_SYS_OR0_PRELIM   (0xffe00000 | CONFIG_SYS_OR_TIMING_FLASH)
447 #define CONFIG_SYS_BR0_PRELIM   ((FLASH_BASE0_PRELIM & BR_BA_MSK) | BR_V | BR_PS_8)
448 #elif  defined (CONFIG_BOOT_16B)   /* 29lv160 X 16 , 4MB space */
449 #define CONFIG_SYS_OR0_PRELIM   (0xffc00000 | CONFIG_SYS_OR_TIMING_FLASH)
450 #define CONFIG_SYS_BR0_PRELIM   ((FLASH_BASE0_PRELIM & BR_BA_MSK) | BR_V | BR_PS_16)
451 #elif defined( CONFIG_BOOT_32B )  /* 29lv160 X 2 X 32, 4/8/16MB , 64MB space */
452 #define CONFIG_SYS_OR0_PRELIM   (0xfc000000 | CONFIG_SYS_OR_TIMING_FLASH)
453 #define CONFIG_SYS_BR0_PRELIM   ((FLASH_BASE0_PRELIM & BR_BA_MSK) | BR_V )
454 #else
455 #error Boot device port size missing.
456 #endif
457
458 /*
459  * Disk-On-Chip configuration
460  */
461
462 #define CONFIG_SYS_DOC_SHORT_TIMEOUT
463 #define CONFIG_SYS_MAX_DOC_DEVICE      1       /* Max number of DOC devices    */
464
465 #define CONFIG_SYS_DOC_SUPPORT_2000
466 #define CONFIG_SYS_DOC_SUPPORT_MILLENNIUM
467 #define CONFIG_SYS_DOC_BASE 0x80000000
468
469 #endif  /* __CONFIG_H */