Ejemplo n.º 1
0
Archivo: fdt.c Proyecto: raoy1990/linux
/**
 * early_init_fdt_scan_reserved_mem() - create reserved memory regions
 *
 * This function grabs memory from early allocator for device exclusive use
 * defined in device tree structures. It should be called by arch specific code
 * once the early allocator (i.e. memblock) has been fully activated.
 */
void __init early_init_fdt_scan_reserved_mem(void)
{
	int n;
	u64 base, size;

	if (!initial_boot_params)
		return;

	/* Process header /memreserve/ fields */
	for (n = 0; ; n++) {
		fdt_get_mem_rsv(initial_boot_params, n, &base, &size);
		if (!size)
			break;
		early_init_dt_reserve_memory_arch(base, size, 0);
	}

	of_scan_flat_dt(__fdt_scan_reserved_mem, NULL);
	fdt_init_reserved_mem();
}
Ejemplo n.º 2
0
/**
 * early_init_fdt_scan_reserved_mem() - create reserved memory regions
 *
 * This function grabs memory from early allocator for device exclusive use
 * defined in device tree structures. It should be called by arch specific code
 * once the early allocator (i.e. memblock) has been fully activated.
 */
void __init early_init_fdt_scan_reserved_mem(void)
{
	int n;
	u64 base, size;

	if (!initial_boot_params)
		return;

	/* Reserve the dtb region */
	// boot_param = dtb 시작 영역(가상주소)
	// dtb 영역을 reserved영역으로 잡아줌.
	early_init_dt_reserve_memory_arch(__pa(initial_boot_params),	// DTB(fdt header. structure block, ..., string block)영역 전체를 reserved 영역으로 잡아줌, 
					  fdt_totalsize(initial_boot_params),
					  0);
	/*
	 * End Driving ...
	 * 
	 * 2016. 05. 14. (토) 18:13:02 KST
	 * name : sim man seop 
	 * 
	 * */

	/* Sat May 21 15:36:17 KST 2016
	 * name : daehee
	 * Start Driving ...
	 *
	 */

	// DBT가 컴파일되서 바이너리로 생성되어 FDT형태로 메모리에 적재된다.
	/* Process header /memreserve/ fields */
	for (n = 0; ; n++) {
		fdt_get_mem_rsv(initial_boot_params, n, &base, &size);	// FDT내의 memory reservation region내에 주소와 사이즈가 있는데, 주소를 따라가서  reserved 영역으로 만들어 줌,
		if (!size)
			break;
		early_init_dt_reserve_memory_arch(base, size, 0);
	}

	of_scan_flat_dt(__fdt_scan_reserved_mem, NULL);
	fdt_init_reserved_mem();
}