mirror of
				https://github.com/Stichting-MINIX-Research-Foundation/u-boot.git
				synced 2025-11-03 18:55:00 -05:00 
			
		
		
		
	Add zero-copy ramdisk support (requires corresponding kernel support!)
This commit is contained in:
		
							parent
							
								
									4c3b21a5f9
								
							
						
					
					
						commit
						38b99261c1
					
				@ -2,6 +2,8 @@
 | 
			
		||||
Changes since U-Boot 0.3.1:
 | 
			
		||||
======================================================================
 | 
			
		||||
 | 
			
		||||
* Add zero-copy ramdisk support (requires corresponding kernel support!)
 | 
			
		||||
 | 
			
		||||
* Patch by Kyle Harris, 20 May 2003:
 | 
			
		||||
  In preparation for an ixp port, rename cpu/xscale and arch-xscale
 | 
			
		||||
  into cpu/pxa and arch-pxa.
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										8
									
								
								README
									
									
									
									
									
								
							
							
						
						
									
										8
									
								
								README
									
									
									
									
									
								
							@ -1988,6 +1988,14 @@ Some configuration options can be set using Environment Variables:
 | 
			
		||||
 | 
			
		||||
		  setenv initrd_high 00c00000
 | 
			
		||||
 | 
			
		||||
                  If you set initrd_high to 0xFFFFFFFF, this is an
 | 
			
		||||
                  indication to U-Boot that all addresses are legal
 | 
			
		||||
                  for the Linux kernel, including addresses in flash
 | 
			
		||||
                  memory. In this case U-Boot will NOT COPY the
 | 
			
		||||
                  ramdisk at all. This may be useful to reduce the
 | 
			
		||||
                  boot time on your system, but requires that this
 | 
			
		||||
                  feature is supported by your Linux kernel.
 | 
			
		||||
 | 
			
		||||
  ipaddr	- IP address; needed for tftpboot command
 | 
			
		||||
 | 
			
		||||
  loadaddr	- Default load address for commands like "bootp",
 | 
			
		||||
 | 
			
		||||
@ -374,6 +374,7 @@ do_bootm_linux (cmd_tbl_t *cmdtp, int flag,
 | 
			
		||||
	ulong	cmd_start, cmd_end;
 | 
			
		||||
	ulong	initrd_high;
 | 
			
		||||
	ulong	data;
 | 
			
		||||
	int	initrd_copy_to_ram = 1;
 | 
			
		||||
	char    *cmdline;
 | 
			
		||||
	char	*s;
 | 
			
		||||
	bd_t	*kbd;
 | 
			
		||||
@ -385,6 +386,8 @@ do_bootm_linux (cmd_tbl_t *cmdtp, int flag,
 | 
			
		||||
		 * turning the "load high" feature off. This is intentional.
 | 
			
		||||
		 */
 | 
			
		||||
		initrd_high = simple_strtoul(s, NULL, 16);
 | 
			
		||||
		if (initrd_high == ~0)
 | 
			
		||||
			initrd_copy_to_ram = 0;
 | 
			
		||||
	} else {	/* not set, no restrictions to load high */
 | 
			
		||||
		initrd_high = ~0;
 | 
			
		||||
	}
 | 
			
		||||
@ -567,6 +570,10 @@ do_bootm_linux (cmd_tbl_t *cmdtp, int flag,
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if (data) {
 | 
			
		||||
	    if (!initrd_copy_to_ram) {	/* zero-copy ramdisk support */
 | 
			
		||||
		initrd_start = data;
 | 
			
		||||
		initrd_end = initrd_start + len;
 | 
			
		||||
	    } else {
 | 
			
		||||
		initrd_start  = (ulong)kbd - len;
 | 
			
		||||
		initrd_start &= ~(4096 - 1);	/* align on page */
 | 
			
		||||
 | 
			
		||||
@ -621,6 +628,7 @@ do_bootm_linux (cmd_tbl_t *cmdtp, int flag,
 | 
			
		||||
		memmove ((void *)initrd_start, (void *)data, len);
 | 
			
		||||
#endif	/* CONFIG_HW_WATCHDOG || CONFIG_WATCHDOG */
 | 
			
		||||
		printf ("OK\n");
 | 
			
		||||
	    }
 | 
			
		||||
	} else {
 | 
			
		||||
		initrd_start = 0;
 | 
			
		||||
		initrd_end = 0;
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user