2410loader.h
来自「2410 boot loader,usb ftp」· C头文件 代码 · 共 127 行
H
127 行
/* * Usage: * - do not go blindly adding fields, add them at the end * - when adding fields, don't rely on the address until * a patch from me has been released * - unused fields should be zero (for future expansion) * - this structure is relatively short-lived - only * guaranteed to contain useful data in setup_arch() */#define COMMAND_LINE_SIZE 1024#define BLOCK_SIZE (512*32)#define PAGE_SIZE (512)#define FILE_SIZE (128)#define SIZE_1K (1024)#define SIZE_1M (1024*1024)/* This is the old deprecated way to pass parameters to the kernel */struct param_struct { union { struct { unsigned long page_size; /* 0 */ unsigned long nr_pages; /* 4 */ unsigned long ramdisk_size; /* 8 */ unsigned long flags; /* 12 */#define FLAG_READONLY 1#define FLAG_RDLOAD 4#define FLAG_RDPROMPT 8 unsigned long rootdev; /* 16 */ unsigned long video_num_cols; /* 20 */ unsigned long video_num_rows; /* 24 */ unsigned long video_x; /* 28 */ unsigned long video_y; /* 32 */ unsigned long memc_control_reg; /* 36 */ unsigned char sounddefault; /* 40 */ unsigned char adfsdrives; /* 41 */ unsigned char bytes_per_char_h; /* 42 */ unsigned char bytes_per_char_v; /* 43 */ unsigned long pages_in_bank[4]; /* 44 */ unsigned long pages_in_vram; /* 60 */ unsigned long initrd_start; /* 64 */ unsigned long initrd_size; /* 68 */ unsigned long rd_start; /* 72 */ unsigned long system_rev; /* 76 */ unsigned long system_serial_low; /* 80 */ unsigned long system_serial_high; /* 84 */ unsigned long mem_fclk_21285; /* 88 */ } s; char unused[256]; } u1; union { char paths[8][128]; struct { unsigned long magic; char n[1024 - sizeof(unsigned long)]; } s; } u2; char commandline[COMMAND_LINE_SIZE];};#define PARTITION_OFFSET 0#define PARTITION_TOTAL 5#define PARTITION_NAMESIZE 50#define PARTITION_FIXED (0x01)#define PARTITION_RO (0x02)#define PARTITION_RW (0x04)#define PARTITION_VALID (PARTITION_FIXED|PARTITION_RO|PARTITION_RW)#define PARTITION_RESTSIZE (0xFFFFFFFF)typedef struct { U8 name[PARTITION_NAMESIZE]; U8 mask; U32 offset; U32 size;}PARTITION;typedef struct { U8 systype; U32 ramaddr; U32 cfgaddr; U32 imgblk; U8 bootdown; U8 mac[6]; U32 loip; U32 rmip; char file[FILE_SIZE+1]; char cmd[COMMAND_LINE_SIZE+1]; char mtdname[PARTITION_NAMESIZE]; PARTITION part[PARTITION_TOTAL]; U32 magic;}LOADER_CONFIG;#define CFG_READ(addr) {U32 idx=0; U8 *ptr=(U8 *)addr; while(idx<32) { NF_ReadPage(DOWN_KERNEL_START_BLOCK-1, idx, (U8 *)ptr); ptr+=PAGE_SIZE; idx++; }; }#define CFG_WRITE(addr) NF_Program((U8 *)addr, DOWN_KERNEL_START_BLOCK-1, BLOCK_SIZE)/* Default parameters */#define SYS_LINUX (193)#define SYS_WINCE (194)#define SYS_MAGIC (0x20051120)#define SYS_DFT_LOIP (0xc0a80002) // 192.168.0.2#define SYS_DFT_RMIP (0xc0a80001) // 192.168.0.1#define SYS_MAC_ADDR "\x00\x01\x02\x03\x04\x05"#define SYS_BOOT_FILE "boot.bin"#define SYS_BOOT_FLASH (0x01)#define SYS_BOOT_DOWNLOAD (0x02)#define SYS_BOOT_MENU (0x04)#define SYS_DOWNLOAD_USB (0x10)#define SYS_DOWNLOAD_ETH (0x20)#define SYS_DOWNLOAD_ETH_BOOTP (0x40)#define SYS_DOWNLOAD_ETH_TFTP (0x80)#define RAM_LINUX (0x30008000)#define RAM_WINCE (0x30200000)#define CFG_LINUX (0x30000100)#define CFG_WINCE (0)#define CMD_LINUX "console=tty1 console=ttyS0 console=ttySAC0 root=/dev/nfs nfsroot=192.168.1.180:/friendly-arm/root ip=192.168.1.190:192.168.1.180:192.168.1.254:255.255.255.0:matrix4.arm9.net:eth0:off"#define CMD_WINCE ""
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?