xref: /rk3399_rockchip-uboot/include/jffs2/load_kernel.h (revision fe8c2806cdba70479e351299881a395dc2be7785)
1*fe8c2806Swdenk #ifndef load_kernel_h
2*fe8c2806Swdenk #define load_kernel_h
3*fe8c2806Swdenk /*-------------------------------------------------------------------------
4*fe8c2806Swdenk  * Filename:      load_kernel.h
5*fe8c2806Swdenk  * Version:       $Id: load_kernel.h,v 1.3 2002/01/25 01:34:11 nyet Exp $
6*fe8c2806Swdenk  * Copyright:     Copyright (C) 2001, Russ Dill
7*fe8c2806Swdenk  * Author:        Russ Dill <Russ.Dill@asu.edu>
8*fe8c2806Swdenk  * Description:   header for load kernel modules
9*fe8c2806Swdenk  *-----------------------------------------------------------------------*/
10*fe8c2806Swdenk /*
11*fe8c2806Swdenk  *
12*fe8c2806Swdenk  * This program is free software; you can redistribute it and/or modify
13*fe8c2806Swdenk  * it under the terms of the GNU General Public License as published by
14*fe8c2806Swdenk  * the Free Software Foundation; either version 2 of the License, or
15*fe8c2806Swdenk  * (at your option) any later version.
16*fe8c2806Swdenk  *
17*fe8c2806Swdenk  * This program is distributed in the hope that it will be useful,
18*fe8c2806Swdenk  * but WITHOUT ANY WARRANTY; without even the implied warranty of
19*fe8c2806Swdenk  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
20*fe8c2806Swdenk  * GNU General Public License for more details.
21*fe8c2806Swdenk  *
22*fe8c2806Swdenk  * You should have received a copy of the GNU General Public License
23*fe8c2806Swdenk  * along with this program; if not, write to the Free Software
24*fe8c2806Swdenk  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
25*fe8c2806Swdenk  *
26*fe8c2806Swdenk  */
27*fe8c2806Swdenk 
28*fe8c2806Swdenk /* this struct is very similar to mtd_info */
29*fe8c2806Swdenk struct part_info {
30*fe8c2806Swdenk 	u32 size;	 /* Total size of the Partition */
31*fe8c2806Swdenk 
32*fe8c2806Swdenk 	/* "Major" erase size for the device. Na�ve users may take this
33*fe8c2806Swdenk 	 * to be the only erase size available, or may use the more detailed
34*fe8c2806Swdenk 	 * information below if they desire
35*fe8c2806Swdenk 	 */
36*fe8c2806Swdenk 	u32 erasesize;
37*fe8c2806Swdenk 
38*fe8c2806Swdenk 	/* Where in memory does this partition start? */
39*fe8c2806Swdenk 	char *offset;
40*fe8c2806Swdenk 
41*fe8c2806Swdenk 	/* used by jffs2 set to NULL */
42*fe8c2806Swdenk 	void *jffs2_priv;
43*fe8c2806Swdenk 
44*fe8c2806Swdenk 	/* private filed used by user */
45*fe8c2806Swdenk 	void *usr_priv;
46*fe8c2806Swdenk };
47*fe8c2806Swdenk 
48*fe8c2806Swdenk struct part_info*
49*fe8c2806Swdenk jffs2_part_info(int part_num);
50*fe8c2806Swdenk 
51*fe8c2806Swdenk struct kernel_loader {
52*fe8c2806Swdenk 
53*fe8c2806Swdenk 	/* Return true if there is a kernel contained at src */
54*fe8c2806Swdenk 	int (* check_magic)(struct part_info *part);
55*fe8c2806Swdenk 
56*fe8c2806Swdenk 	/* load the kernel from the partition part to dst, return the number
57*fe8c2806Swdenk 	 * of bytes copied if successful, zero if not */
58*fe8c2806Swdenk 	u32 (* load_kernel)(u32 *dst, struct part_info *part, const char *kernel_filename);
59*fe8c2806Swdenk 
60*fe8c2806Swdenk 	/* A brief description of the module (ie, "cramfs") */
61*fe8c2806Swdenk 	char *name;
62*fe8c2806Swdenk };
63*fe8c2806Swdenk 
64*fe8c2806Swdenk #define ldr_strlen	strlen
65*fe8c2806Swdenk #define ldr_strncmp	strncmp
66*fe8c2806Swdenk #define ldr_memcpy	memcpy
67*fe8c2806Swdenk #define putstr(x)	printf("%s", x)
68*fe8c2806Swdenk #define mmalloc		malloc
69*fe8c2806Swdenk #define UDEBUG		printf
70*fe8c2806Swdenk 
71*fe8c2806Swdenk #define putnstr(str, size)	printf("%*.*s", size, size, str)
72*fe8c2806Swdenk #define ldr_output_string(x)	puts(x)
73*fe8c2806Swdenk #define putLabeledWord(x, y)	printf("%s %08x\n", x, (unsigned int)y)
74*fe8c2806Swdenk #define led_blink(x, y, z, a)
75*fe8c2806Swdenk 
76*fe8c2806Swdenk #endif /* load_kernel_h */
77