Merge git://git.denx.de/u-boot-fdt
This commit is contained in:
commit
f1737152c0
@ -194,6 +194,31 @@ static inline int fdt_setprop_uxx(void *fdt, int nodeoffset, const char *name,
|
||||
return fdt_setprop_u32(fdt, nodeoffset, name, (uint32_t)val);
|
||||
}
|
||||
|
||||
int fdt_root(void *fdt)
|
||||
{
|
||||
char *serial;
|
||||
int err;
|
||||
|
||||
err = fdt_check_header(fdt);
|
||||
if (err < 0) {
|
||||
printf("fdt_root: %s\n", fdt_strerror(err));
|
||||
return err;
|
||||
}
|
||||
|
||||
serial = getenv("serial#");
|
||||
if (serial) {
|
||||
err = fdt_setprop(fdt, 0, "serial-number", serial,
|
||||
strlen(serial) + 1);
|
||||
|
||||
if (err < 0) {
|
||||
printf("WARNING: could not set serial-number %s.\n",
|
||||
fdt_strerror(err));
|
||||
return err;
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int fdt_initrd(void *fdt, ulong initrd_start, ulong initrd_end)
|
||||
{
|
||||
|
@ -471,6 +471,10 @@ int image_setup_libfdt(bootm_headers_t *images, void *blob,
|
||||
int ret = -EPERM;
|
||||
int fdt_ret;
|
||||
|
||||
if (fdt_root(blob) < 0) {
|
||||
printf("ERROR: root node setup failed\n");
|
||||
goto err;
|
||||
}
|
||||
if (fdt_chosen(blob) < 0) {
|
||||
printf("ERROR: /chosen node create failed\n");
|
||||
goto err;
|
||||
|
4
doc/device-tree-bindings/root.txt
Normal file
4
doc/device-tree-bindings/root.txt
Normal file
@ -0,0 +1,4 @@
|
||||
The root node
|
||||
|
||||
Optional properties:
|
||||
- serial-number : a string representing the device's serial number
|
@ -16,8 +16,35 @@ u32 fdt_getprop_u32_default_node(const void *fdt, int off, int cell,
|
||||
const char *prop, const u32 dflt);
|
||||
u32 fdt_getprop_u32_default(const void *fdt, const char *path,
|
||||
const char *prop, const u32 dflt);
|
||||
|
||||
/**
|
||||
* Add data to the root of the FDT before booting the OS.
|
||||
*
|
||||
* See doc/device-tree-bindings/root.txt
|
||||
*
|
||||
* @param fdt FDT address in memory
|
||||
* @return 0 if ok, or -FDT_ERR_... on error
|
||||
*/
|
||||
int fdt_root(void *fdt);
|
||||
|
||||
/**
|
||||
* Add chosen data the FDT before booting the OS.
|
||||
*
|
||||
* In particular, this adds the kernel command line (bootargs) to the FDT.
|
||||
*
|
||||
* @param fdt FDT address in memory
|
||||
* @return 0 if ok, or -FDT_ERR_... on error
|
||||
*/
|
||||
int fdt_chosen(void *fdt);
|
||||
|
||||
/**
|
||||
* Add initrd information to the FDT before booting the OS.
|
||||
*
|
||||
* @param fdt FDT address in memory
|
||||
* @return 0 if ok, or -FDT_ERR_... on error
|
||||
*/
|
||||
int fdt_initrd(void *fdt, ulong initrd_start, ulong initrd_end);
|
||||
|
||||
void do_fixup_by_path(void *fdt, const char *path, const char *prop,
|
||||
const void *val, int len, int create);
|
||||
void do_fixup_by_path_u32(void *fdt, const char *path, const char *prop,
|
||||
|
Loading…
Reference in New Issue
Block a user