mirror of
				git://git.openwrt.org/openwrt/openwrt.git
				synced 2025-10-31 14:04:26 -04:00 
			
		
		
		
	Run tested on a NSLU2. Signed-off-by: Jonas Gorski <jogo@openwrt.org> SVN-Revision: 37124
		
			
				
	
	
		
			39 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			39 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
| --- a/arch/arm/mach-ixp4xx/wg302v1-setup.c
 | |
| +++ b/arch/arm/mach-ixp4xx/wg302v1-setup.c
 | |
| @@ -117,6 +117,35 @@ static struct platform_device *wg302v1_d
 | |
|  	&wg302v1_eth[0],
 | |
|  };
 | |
|  
 | |
| +static char wg302v1_mem_fixup[] __initdata = "mem=32M ";
 | |
| +
 | |
| +static void __init wg302v1_fixup(struct tag *tags, char **cmdline,
 | |
| +				 struct meminfo *mi)
 | |
| +{
 | |
| +	struct tag *t = tags;
 | |
| +	char *p = *cmdline;
 | |
| +
 | |
| +	/* Find the end of the tags table, taking note of any cmdline tag. */
 | |
| +	for (; t->hdr.size; t = tag_next(t)) {
 | |
| +		if (t->hdr.tag == ATAG_CMDLINE) {
 | |
| +			p = t->u.cmdline.cmdline;
 | |
| +		}
 | |
| +	}
 | |
| +
 | |
| +	/* Overwrite the end of the table with a new cmdline tag. */
 | |
| +	t->hdr.tag = ATAG_CMDLINE;
 | |
| +	t->hdr.size = (sizeof (struct tag_header) +
 | |
| +		strlen(wg302v1_mem_fixup) + strlen(p) + 1 + 4) >> 2;
 | |
| +	strlcpy(t->u.cmdline.cmdline, wg302v1_mem_fixup, COMMAND_LINE_SIZE);
 | |
| +	strlcpy(t->u.cmdline.cmdline + strlen(wg302v1_mem_fixup), p,
 | |
| +		COMMAND_LINE_SIZE - strlen(wg302v1_mem_fixup));
 | |
| +
 | |
| +	/* Terminate the table. */
 | |
| +	t = tag_next(t);
 | |
| +	t->hdr.tag = ATAG_NONE;
 | |
| +	t->hdr.size = 0;
 | |
| +}
 | |
| +
 | |
|  static void __init wg302v1_init(void)
 | |
|  {
 | |
|  	ixp4xx_sys_init();
 |