U-Boot Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Alexander Graf <agraf@suse.de>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH v9 12/18] sandbox: Enhance map_to_sysmem() to handle foreign pointers
Date: Sat, 15 Sep 2018 10:16:45 +0200	[thread overview]
Message-ID: <aaab57cb-7ef7-9ed3-d7a5-4999fdc71ed8@suse.de> (raw)
In-Reply-To: <CAPnjgZ39+T=Hm8EkBUSKo_8CAySCjgnF2Xi0uMNThtbY=ySzAA@mail.gmail.com>



On 14.09.18 17:46, Simon Glass wrote:
> Hi Alex,
> 
> On 26 August 2018 at 19:11, Alexander Graf <agraf@suse.de> wrote:
>>
>>
>> On 08.08.18 11:54, Simon Glass wrote:
>>> At present map_sysmem() maps an address into the sandbox RAM buffer,
>>> return a pointer, while map_to_sysmem() goes the other way.
>>>
>>> The mapping is currently just 1:1 since a case was not found where a more
>>> flexible mapping was needed. PCI does have a separate and more complex
>>> mapping, but uses its own mechanism.
>>>
>>> However this arrange cannot handle one important case, which is where a
>>> test declares a stack variable and passes a pointer to it into a U-Boot
>>> function which uses map_to_sysmem() to turn it into a address. Since the
>>> pointer is not inside emulated DRAM, this will fail.
>>>
>>> Add a mapping feature which can handle any such pointer, mapping it to a
>>> simple tag value which can be passed around in U-Boot as an address.
>>>
>>> Signed-off-by: Simon Glass <sjg@chromium.org>
>>
>> I think you are aware that this logic will fall apart spectacularly if
>> any arithmetic operation happens on the virtual (U-Boot) address, right?
>> So simple code like
>>
>>   readl(vaddr + 1);
>>
>> will just fail (hopefully) or (more likely) return a completely
>> incorrect value.
>>
>> I assume this is intentional, but shouldn't the tag increment be
>> something slightly larger then?
> 
> What do you expect readl() to do on sandbox? At present it is just a
> no-op. I suppose we could support memory-mapped I/O but it has not
> been attempted yet.

It was really just meant as an arbitrary example of something where you
assume "address + 1" == "pointer(address) + 1".


Alex

  reply	other threads:[~2018-09-15  8:16 UTC|newest]

Thread overview: 48+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-08-08  9:54 [U-Boot] [PATCH v9 00/18] efi: Enable sandbox support for EFI loader Simon Glass
2018-08-08  9:54 ` [U-Boot] [PATCH v9 01/18] Revert "efi_loader: Rename sections to allow for implicit data" Simon Glass
2018-08-23 20:18   ` [U-Boot] [U-Boot, v9, 01/18] Partially revert " Tom Rini
2018-08-08  9:54 ` [U-Boot] [PATCH v9 02/18] efi: Don't allow CMD_BOOTEFI_SELFTEST on sandbox Simon Glass
2018-08-26 16:53   ` Alexander Graf
2018-09-14 15:46     ` Simon Glass
2018-08-08  9:54 ` [U-Boot] [PATCH v9 03/18] efi: sandbox: Add distroboot support Simon Glass
2018-08-26 16:54   ` Alexander Graf
2018-08-08  9:54 ` [U-Boot] [PATCH v9 04/18] efi: sandbox: Enable EFI loader build for sandbox Simon Glass
2018-08-26 16:55   ` Alexander Graf
2018-09-14 15:46     ` Simon Glass
2018-09-15  8:11       ` Alexander Graf
2018-09-15  8:32         ` Simon Glass
2018-08-08  9:54 ` [U-Boot] [PATCH v9 05/18] efi: Split out test init/uninit into functions Simon Glass
2018-08-08  9:54 ` [U-Boot] [PATCH v9 06/18] efi: sandbox: Add a simple 'bootefi test' command Simon Glass
2018-08-26 16:58   ` Alexander Graf
2018-09-14 15:46     ` Simon Glass
2018-08-08  9:54 ` [U-Boot] [PATCH v9 07/18] efi: Create a function to set up for running EFI code Simon Glass
2018-08-08  9:54 ` [U-Boot] [PATCH v9 08/18] efi: Rename bootefi_test_finish() to bootefi_run_finish() Simon Glass
2018-08-08  9:54 ` [U-Boot] [PATCH v9 09/18] sandbox: Align RAM buffer to the machine page size Simon Glass
2018-08-26 17:01   ` Alexander Graf
2018-08-08  9:54 ` [U-Boot] [PATCH v9 10/18] sandbox: Try to start the RAM buffer at a particular address Simon Glass
2018-08-26 17:01   ` Alexander Graf
2018-09-14 15:46     ` Simon Glass
2018-10-15 20:07       ` Simon Glass
2018-08-08  9:54 ` [U-Boot] [PATCH v9 11/18] sandbox: Add support for calling abort() Simon Glass
2018-08-08  9:54 ` [U-Boot] [PATCH v9 12/18] sandbox: Enhance map_to_sysmem() to handle foreign pointers Simon Glass
2018-08-26 17:11   ` Alexander Graf
2018-09-14 15:46     ` Simon Glass
2018-09-15  8:16       ` Alexander Graf [this message]
2018-09-15  8:31         ` Simon Glass
2018-08-08  9:54 ` [U-Boot] [PATCH v9 13/18] efi: Add a call to exit() along with why we can't use it Simon Glass
2018-08-23 20:37   ` Heinrich Schuchardt
2018-08-26 17:13     ` Alexander Graf
2018-09-14 15:46       ` Simon Glass
2018-08-08  9:54 ` [U-Boot] [PATCH v9 14/18] efi: Relocate FDT to 127MB instead of 128MB Simon Glass
2018-08-26 17:23   ` [U-Boot] [U-Boot, v9, " Alexander Graf
2018-08-08  9:54 ` [U-Boot] [PATCH v9 15/18] efi: sandbox: Tidy up copy_fdt() to work with sandbox Simon Glass
2018-08-26 17:23   ` [U-Boot] [U-Boot, v9, " Alexander Graf
2018-08-08  9:54 ` [U-Boot] [PATCH v9 16/18] efi: Add more debugging for memory allocations Simon Glass
2018-08-23 20:49   ` Heinrich Schuchardt
2018-08-26 18:27     ` Simon Glass
2018-08-26 17:22   ` Alexander Graf
2018-08-08  9:54 ` [U-Boot] [PATCH v9 17/18] efi_loader: Pass address to fs_read() Simon Glass
2018-08-26 17:23   ` [U-Boot] [U-Boot, v9, " Alexander Graf
2018-08-08  9:54 ` [U-Boot] [PATCH v9 18/18] efi: sandbox: Enable selftest command Simon Glass
2018-08-26 17:28 ` [U-Boot] [PATCH v9 00/18] efi: Enable sandbox support for EFI loader Alexander Graf
2018-09-14 15:46   ` Simon Glass

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=aaab57cb-7ef7-9ed3-d7a5-4999fdc71ed8@suse.de \
    --to=agraf@suse.de \
    --cc=u-boot@lists.denx.de \
    /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