libpayload: Add vboot handoff parsing on ARM
This is needed by depthcharge on ARM if coreboot is loading its ramstage from the RW section of the ROM. Change-Id: I96c6c04a0cee39854b45f2eda169e93461da0694 Signed-off-by: Stefan Reinauer <reinauer@google.com> Reviewed-on: https://chromium-review.googlesource.com/176757 Reviewed-by: Gabe Black <gabeblack@chromium.org> Commit-Queue: Stefan Reinauer <reinauer@chromium.org> Tested-by: Stefan Reinauer <reinauer@chromium.org> (cherry picked from commit cf26be4cb527b0fc4212d401a8c77ceb1c7992d0) Signed-off-by: Isaac Christensen <isaac.christensen@se-eng.com> Reviewed-on: http://review.coreboot.org/6906 Tested-by: build bot (Jenkins) Reviewed-by: Ronald G. Minnich <rminnich@gmail.com>
This commit is contained in:
		
				
					committed by
					
						
						Isaac Christensen
					
				
			
			
				
	
			
			
			
						parent
						
							03784fa97a
						
					
				
				
					commit
					406bad127b
				
			@@ -79,6 +79,14 @@ static void cb_parse_serial(void *ptr, struct sysinfo_t *info)
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifdef CONFIG_LP_CHROMEOS
 | 
					#ifdef CONFIG_LP_CHROMEOS
 | 
				
			||||||
 | 
					static void cb_parse_vboot_handoff(unsigned char *ptr, struct sysinfo_t *info)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						struct cb_range *vbho = (struct cb_range *)ptr;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						info->vboot_handoff = (void *)(uintptr_t)vbho->range_start;
 | 
				
			||||||
 | 
						info->vboot_handoff_size = vbho->range_size;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static void cb_parse_vbnv(unsigned char *ptr, struct sysinfo_t *info)
 | 
					static void cb_parse_vbnv(unsigned char *ptr, struct sysinfo_t *info)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	struct lb_range *vbnv = (struct lb_range *)ptr;
 | 
						struct lb_range *vbnv = (struct lb_range *)ptr;
 | 
				
			||||||
@@ -267,6 +275,9 @@ static int cb_parse_header(void *addr, int len, struct sysinfo_t *info)
 | 
				
			|||||||
		case CB_TAG_VBNV:
 | 
							case CB_TAG_VBNV:
 | 
				
			||||||
			cb_parse_vbnv(ptr, info);
 | 
								cb_parse_vbnv(ptr, info);
 | 
				
			||||||
			break;
 | 
								break;
 | 
				
			||||||
 | 
							case CB_TAG_VBOOT_HANDOFF:
 | 
				
			||||||
 | 
								cb_parse_vboot_handoff(ptr, info);
 | 
				
			||||||
 | 
								break;
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
		case CB_TAG_DMA:
 | 
							case CB_TAG_DMA:
 | 
				
			||||||
			cb_parse_dma(ptr);
 | 
								cb_parse_dma(ptr);
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user