khypervisor
v1
|
Go to the source code of this file.
Data Structures | |
struct | atag_header |
struct | atag_core |
struct | atag_mem |
struct | atag_serialnr |
struct | atag_revision |
struct | atag_cmdline |
struct | atag_ramdisk |
struct | atag_videotext |
struct | atag_initrd2 |
struct | atag_videolfb |
struct | atag |
Defines | |
#define | ATAG_NONE 0x00000000 |
#define | ATAG_CORE 0x54410001 |
#define | ATAG_MEM 0x54410002 |
#define | ATAG_VIDEOTEXT 0x54410003 |
#define | ATAG_RAMDISK 0x54410004 |
#define | ATAG_INITRD2 0x54420005 |
#define | ATAG_SERIAL 0x54410006 |
#define | ATAG_REVISION 0x54410007 |
#define | ATAG_VIDEOLFB 0x54410008 |
#define | ATAG_CMDLINE 0x54410009 |
#define | tag_next(t) ((struct atag *)((uint32_t *)(t) + (t)->hdr.size)) |
#define | tag_size(type) ((sizeof(struct atag_header) + sizeof(struct type)) >> 2) |
Functions | |
static void | setup_core_tag (void *address, long pagesize) |
static void | setup_revision_tag (void) |
static void | setup_cmdline_tag (const char *line) |
static void | setup_mem_tag (uint32_t start, uint32_t len) |
static void | setup_end_tag (void) |
void | loadlinux_setup_tags (uint32_t *src) |
Variables | |
static struct atag * | _params |
#define ATAG_CMDLINE 0x54410009 |
Definition at line 15 of file loadlinux.c.
#define ATAG_CORE 0x54410001 |
Definition at line 7 of file loadlinux.c.
#define ATAG_INITRD2 0x54420005 |
Definition at line 11 of file loadlinux.c.
#define ATAG_MEM 0x54410002 |
Definition at line 8 of file loadlinux.c.
#define ATAG_NONE 0x00000000 |
Definition at line 6 of file loadlinux.c.
#define ATAG_RAMDISK 0x54410004 |
Definition at line 10 of file loadlinux.c.
#define ATAG_REVISION 0x54410007 |
Definition at line 13 of file loadlinux.c.
#define ATAG_SERIAL 0x54410006 |
Definition at line 12 of file loadlinux.c.
#define ATAG_VIDEOLFB 0x54410008 |
Definition at line 14 of file loadlinux.c.
#define ATAG_VIDEOTEXT 0x54410003 |
Definition at line 9 of file loadlinux.c.
Definition at line 17 of file loadlinux.c.
#define tag_size | ( | type | ) | ((sizeof(struct atag_header) + sizeof(struct type)) >> 2) |
Definition at line 18 of file loadlinux.c.
void loadlinux_setup_tags | ( | uint32_t * | src | ) |
Definition at line 154 of file loadlinux.c.
{ char *commandline = "root=/dev/ram rw earlyprintk console=ttyAMA0 mem=256M rdinit=/sbin/init"; setup_core_tag(src+(0x100/4), 4096); /* standard core tag 4k pagesize */ setup_cmdline_tag(commandline); /* commandline setting root device */ setup_revision_tag(); setup_mem_tag((uint32_t)(src-(0x20000000/4)), 0x10000000); /* end of tags */ setup_end_tag(); }
static void setup_cmdline_tag | ( | const char * | line | ) | [static] |
Definition at line 121 of file loadlinux.c.
{ int linelen = strlen(line); if(!linelen) return; /* do not insert a tag for an empty commandline */ _params->hdr.tag = ATAG_CMDLINE; /* Commandline tag */ _params->hdr.size = (sizeof(struct atag_header) + linelen + 1 + 4) >> 2; strcpy(_params->u.cmdline.cmdline,line); /* place commandline into tag */ _params = tag_next(_params); /* move pointer to next tag */ }
static void setup_core_tag | ( | void * | address, |
long | pagesize | ||
) | [static] |
Definition at line 100 of file loadlinux.c.
{ _params = (struct atag *)address; /* Initialise parameters to start at given address */ _params->hdr.tag = ATAG_CORE; /* start with the core tag */ _params->hdr.size = tag_size(atag_core); /* size the tag */ _params->u.core.flags = 1; /* ensure read-only */ _params->u.core.pagesize = pagesize; /* systems pagesize (4k) */ _params->u.core.rootdev = 0; /* zero root device (typicaly overidden from commandline )*/ _params = tag_next(_params); /* move pointer to next tag */ }
static void setup_end_tag | ( | void | ) | [static] |
static void setup_mem_tag | ( | uint32_t | start, |
uint32_t | len | ||
) | [static] |
Definition at line 136 of file loadlinux.c.
{ printh("setup_mem_tag start : %x len : %x\n", start, len); _params->hdr.tag = ATAG_MEM; /* Memory tag */ _params->hdr.size = tag_size(atag_mem); /* size tag */ _params->u.mem.start = start; /* Start of memory area (physical address) */ _params->u.mem.size = len; /* Length of area */ _params = tag_next(_params); /* move pointer to next tag */ }
static void setup_revision_tag | ( | void | ) | [static] |
Definition at line 98 of file loadlinux.c.