Devicetree
 help / color / mirror / Atom feed
From: David Gibson <david-xT8FGy+AXnRB3Ne2BGzF6laj5H9X9Tb+@public.gmane.org>
To: Olivier Martin <olivier.martin-5wv7dgnIgG8@public.gmane.org>
Cc: devicetree-discuss-uLR06cmDAlY/bJ5BZ2RsiQ@public.gmane.org
Subject: Re: UEFI port of Fdtlib
Date: Mon, 12 Sep 2011 11:39:30 +1000	[thread overview]
Message-ID: <20110912013930.GL9025@yookeroo.fritz.box> (raw)
In-Reply-To: <00cd01cc6f23$0c9f5990$25de0cb0$@martin-5wv7dgnIgG8@public.gmane.org>

On Fri, Sep 09, 2011 at 08:02:40PM +0100, Olivier Martin wrote:
> Hello all,
> 
> I have ported the libfdt to Tianocore project [1] (under BSD license) which
> is an implementation of UEFI specification supported by Intel, ARM Ltd and
> other major companies.
> I took the libfdt directory from the head revision of
> git://git.jdl.com/software/dtc.git and ported it to the Tianocore project.
> I had just needed to edit the libfdt_env.h to translate the POSIX types and
> functions into their Tianocore equivalents.
> I was advised to send my changes to this mailing-list (please find the
> edited lifdt_env.h attached to this email).
> 
> I am using this libfdt library to add/update information to the Device Tree
> (Linux kernel cmd line, etc) that is passed to the Linux kernel. I am
> planning to push upstream my changes in the next couple of days.
> 
> Questions and comment are welcome !
> 
> Best Regards,
> Olivier
> 
> [1] http://sourceforge.net/apps/mediawiki/tianocore/

> #ifndef _LIBFDT_ENV_H
> #define _LIBFDT_ENV_H
> 
> #include <Library/BaseLib.h>
> #include <Library/BaseMemoryLib.h>
> 
> typedef UINT8 uint8_t;
> typedef UINT32 uint32_t;
> typedef UINT64 uint64_t;
> typedef UINTN uintptr_t;
> typedef UINTN size_t;
> 
> #define _B(n)	((unsigned long long)((uint8_t *)&x)[n])
> static inline uint32_t fdt32_to_cpu(uint32_t x)
> {
> 	return (_B(0) << 24) | (_B(1) << 16) | (_B(2) << 8) | _B(3);
> }
> #define cpu_to_fdt32(x) fdt32_to_cpu(x)
> 
> static inline uint64_t fdt64_to_cpu(uint64_t x)
> {
> 	return (_B(0) << 56) | (_B(1) << 48) | (_B(2) << 40) | (_B(3) << 32)
> 		| (_B(4) << 24) | (_B(5) << 16) | (_B(6) << 8) | _B(7);
> }
> #define cpu_to_fdt64(x) fdt64_to_cpu(x)
> #undef _B

Tianocore really doesn't have any byte swapping functions?  I only
used these nasty versions, because they're portable, whereas very
little about userspace endian.h/bytesex.h is.

> static inline void* memcpy(void* dest, const void* src, size_t len) {
>   return CopyMem (dest, src, len);
> }
> 
> static inline void *memmove(void *dest, const void *src, size_t n) {
>   return CopyMem (dest, src, n);
> }

Ok, I take it that Tianocore's CopyMem can operate on overlapping
source and destination, like memmove()?


-- 
David Gibson			| I'll have my music baroque, and my code
david AT gibson.dropbear.id.au	| minimalist, thank you.  NOT _the_ _other_
				| _way_ _around_!
http://www.ozlabs.org/~dgibson

       reply	other threads:[~2011-09-12  1:39 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <00cd01cc6f23$0c9f5990$25de0cb0$@martin@arm.com>
     [not found] ` <00cd01cc6f23$0c9f5990$25de0cb0$@martin-5wv7dgnIgG8@public.gmane.org>
2011-09-12  1:39   ` David Gibson [this message]
     [not found]     ` <20110912013930.GL9025-787xzQ0H9iQXU02nzanrWNbf9cGiqdzd@public.gmane.org>
2011-09-12 10:00       ` UEFI port of Fdtlib Olivier Martin
2011-09-09 19:02 Olivier Martin
  -- strict thread matches above, loose matches on Subject: below --
2011-09-09 10:16 Olivier Martin
2011-09-08 14:14 Olivier Martin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20110912013930.GL9025@yookeroo.fritz.box \
    --to=david-xt8fgy+axnrb3ne2bgzf6laj5h9x9tb+@public.gmane.org \
    --cc=devicetree-discuss-uLR06cmDAlY/bJ5BZ2RsiQ@public.gmane.org \
    --cc=olivier.martin-5wv7dgnIgG8@public.gmane.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox