From 560ba567a08f995fe5e2d24f47b504e3aca28fa6 Mon Sep 17 00:00:00 2001 From: Andrew Cagney Date: Fri, 26 Oct 2001 04:37:54 +0000 Subject: Chirp fixes: * hw_htab.c (htab_map_binary): Don't try to map the text section when it is empty. * emul_chirp.c (map_over_chirp_note): Default load-base to -1 not CHIRP_LOAD_BASE. (emul_chirp_create): Map in the interrupt table. --- sim/ppc/ChangeLog | 9 +++++++++ sim/ppc/emul_chirp.c | 14 +++++++++++++- sim/ppc/hw_htab.c | 10 ++++++---- 3 files changed, 28 insertions(+), 5 deletions(-) (limited to 'sim') diff --git a/sim/ppc/ChangeLog b/sim/ppc/ChangeLog index e325321..3600c79 100644 --- a/sim/ppc/ChangeLog +++ b/sim/ppc/ChangeLog @@ -1,3 +1,12 @@ +2001-10-25 Andrew Cagney + + * emul_generic.c (OEA_MEMORY_SIZE): Increase to 4mb. + * hw_htab.c (htab_map_binary): Don't try to map the text section + when it is empty. + * emul_chirp.c (map_over_chirp_note): Default load-base to -1 not + CHIRP_LOAD_BASE. + (emul_chirp_create): Map in the interrupt table. + 2001-07-16 Daniel Jacobowitz * Makefile.in: Add dependencies on $(CPU_H). diff --git a/sim/ppc/emul_chirp.c b/sim/ppc/emul_chirp.c index c9bb89c..c4deb18 100644 --- a/sim/ppc/emul_chirp.c +++ b/sim/ppc/emul_chirp.c @@ -1537,7 +1537,7 @@ map_over_chirp_note(bfd *image, if (head.descsz == sizeof(note->desc)) note->desc.load_base = bfd_get_32(image, (void*)¬e->desc.load_base); else - note->desc.load_base = CHIRP_LOAD_BASE; + note->desc.load_base = (signed32)-1; } } @@ -1904,6 +1904,18 @@ emul_chirp_create(device *root, tree_parse(node, "./pp %d", 0x2); } + /* map in the interrupt vectors */ + + if (!chirp->real_mode) { + node = tree_parse(root, "/openprom/init/htab/pte@0x0"); + tree_parse(node, "./psim,description \"map in interrupt vectors"); + tree_parse(node, "./virtual-address 0x0"); + tree_parse(node, "./real-address 0x0"); + tree_parse(node, "./nr-bytes 0x3000"); + tree_parse(node, "./wimg %d", 0x7); + tree_parse(node, "./pp %d", 0x2); + } + return chirp; } diff --git a/sim/ppc/hw_htab.c b/sim/ppc/hw_htab.c index 35aa571..50a7b6a 100644 --- a/sim/ppc/hw_htab.c +++ b/sim/ppc/hw_htab.c @@ -571,10 +571,12 @@ htab_map_binary(device *me, } /* set up virtual memory maps for each of the regions */ - htab_map_region(me, memory, sizes.text_ra, sizes.text_base, - sizes.text_bound - sizes.text_base, - wimg, pp, - htaborg, htabmask); + if (sizes.text_bound - sizes.text_base > 0) { + htab_map_region(me, memory, sizes.text_ra, sizes.text_base, + sizes.text_bound - sizes.text_base, + wimg, pp, + htaborg, htabmask); + } htab_map_region(me, memory, sizes.data_ra, sizes.data_base, sizes.data_bound - sizes.data_base, -- cgit v1.1