Thanks Peter!

Couple of new things now that I had an afternoon to look again. I have 
discovered that the eval board I can get my hands on is a 5272 and not a 5282, 
and although the eval board for a 5208 comes with a kernel the 5282 does not. 
It only has the ROM debugger. Which makes me want to jump directly to what I 
really want to do anyway, which is to run the FLASH out of an Allen Bradley PLC 
that has a 5282 in it. Ultimately I want to monitor what the code in the PLC 
does when you hit it with (for example) HTTP requests. So...

1) First, on the ColdFire 5208 with time uClinux kernel I can’t seem to get the 
networking to go. I figured I should make sure that works on the 5208 before I 
try to get it to work on the PLC code. I’m trying to use “user” networking but 
no combination of -net user,id= … seems to work at all even with restrict=off. 
Can someone aim me at a known-to-work process for this? I sure can’t get any 
netcat between the guest and a netcat running on Linux. I don’t need traffic to 
leave the VM at all, just be able to let me get to ports in the guest from an 
additional xterm or local browser.

2) I rebuilt all of qemu with tracing on, and followed the bouncing ball on 
numerous websites on setting up the events file (e.g. /tmp/events). 
./simpletrace.py seems to want to say:

Traceback (most recent call last):
  File "./qemu/scripts/simpletrace.py", line 262, in <module>
    run(Formatter())
  File "./qemu/scripts/simpletrace.py", line 236, in run
    events = read_events(open(sys.argv[1], 'r'))
  File 
"/mnt/hgfs/billmahoney/Dropbox/Projects/PLC_on_QEMU/qemu/scripts/tracetool/__init__.py",
 line 309, in read_events
    event = Event.build(line)
  File 
"/mnt/hgfs/billmahoney/Dropbox/Projects/PLC_on_QEMU/qemu/scripts/tracetool/__init__.py",
 line 224, in build
    assert m is not None
AssertionError

I could start reading the python but I followed the documentation… Hm...




> On Sep 15, 2017, at 4:39 PM, Peter Maydell <peter.mayd...@linaro.org> wrote:
> 
> On 15 September 2017 at 21:41, William Mahoney <wmaho...@unomaha.edu> wrote:
> 
>> 3) Can of worms. The 5282 allows you to move the base address
>> of the control registers, the start address of the SRAM, all
>> sorts of things. The control registers are all offset from a
>> default address when the chip is reset but in theory the code
>> can come along and say “well from now on the base address for
>> the control registers is so-and-so”. In the startup code,
>> there’s those calls such as “memory_region_allocate_system_memory”
>> and “…add_subregion” and so on. What happens if after a system
>> starts and is being emulated, we need to move the regions or
>> subregions?
> 
> You can rearrange things at runtime if you need to. You basically
> need to keep hold of a pointer to the MemoryRegion (typically
> by having them owned by some device or other which is also
> the thing with the control registers), and then you can
> enable/disable/map/unmap etc as required. Depending on
> exactly what the level of control provided is, this task
> may be made easier by adding in suitable "container" memory
> regions, so you can just move or the entire container
> (which automatically moves all the regions inside it)
> rather than moving multiple individual regions.
> 
>> So also, philosophically you might say, does a qemu for a new
>> target emulate everything that the chip can do, or only what’s
>> needed for, say, Linux?
> 
> Our general principle is that it should start with enough
> to do something useful, but it doesn't have to have
> complete functionality. You may find create_unimplemented_device()
> useful as a way to stub out things you don't provide --
> it allows the user to turn on logging of when the guest
> accesses them.
> 
> thanks
> -- PMM

Reply via email to