Port-arm archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: panic: extent_alloc_subregion: bad size on HP T5325
On 14/01/2016 13:27, Martin Husemann wrote:
> size 0x4000000 is quite a bit, can you add printfs and see where it comes
> from?
I made the attached changes to the files you mentioned.
By the looks of it, the majority of the events happen in mvsoc_target()
http://pastebin.com/2LgNMqWH
Sevan
Index: ../../arm/marvell/mvsoc.c
===================================================================
RCS file: /cvsroot/src/sys/arch/arm/marvell/mvsoc.c,v
retrieving revision 1.24
diff -u -p -u -r1.24 mvsoc.c
--- ../../arm/marvell/mvsoc.c 6 Nov 2015 12:54:52 -0000 1.24
+++ ../../arm/marvell/mvsoc.c 14 Jan 2016 21:36:37 -0000
@@ -1123,6 +1123,8 @@ mvsoc_target(int tag, uint32_t *target,
uint32_t *size)
{
int i;
+ /* Checkpoint 3 */
+ printf("Past Checkpoint 3\n");
KASSERT(regbase != 0xffffffff);
@@ -1139,6 +1141,8 @@ mvsoc_target(int tag, uint32_t *target,
return 0;
}
+ /* Checkpoint 4 */
+ printf("Past Checkpoint 4\n");
/* sanity check */
for (i = 0; i < __arraycount(mvsoc_tags); i++)
@@ -1151,6 +1155,8 @@ mvsoc_target(int tag, uint32_t *target,
*target = mvsoc_tags[i].target;
if (attr != NULL)
*attr = mvsoc_tags[i].attr;
+ /* Checkpoint 5 */
+ printf("Past Checkpoint 5\n");
if (mvsoc_tags[i].target == MVSOC_UNITID_DDR) {
if (tag == MARVELL_TAG_SDRAM_CS0 ||
@@ -1164,6 +1170,8 @@ mvsoc_target(int tag, uint32_t *target,
} else
return mvsoc_target_peripheral(mvsoc_tags[i].target,
mvsoc_tags[i].attr, base, size);
+ /* Checkpoint 6 */
+ printf("Past Checkpoint 6\n");
}
static int
Index: marvell_machdep.c
===================================================================
RCS file: /cvsroot/src/sys/arch/evbarm/marvell/marvell_machdep.c,v
retrieving revision 1.32
diff -u -p -u -r1.32 marvell_machdep.c
--- marvell_machdep.c 3 Jun 2015 03:25:51 -0000 1.32
+++ marvell_machdep.c 14 Jan 2016 21:36:10 -0000
@@ -830,10 +830,14 @@ marvell_device_register(device_t dev, vo
prop_dictionary_set_uint64(dict, "iostart", start);
prop_dictionary_set_uint64(dict, "ioend", end);
marvell_startend_by_tag(memtag, &start, &end);
+ /* Checkpoint 1 */
+ printf("Past Checkpoint 1\n");
prop_dictionary_set_uint64(dict, "memstart", start);
prop_dictionary_set_uint64(dict, "memend", end);
prop_dictionary_set_uint32(dict,
"cache-line-size", arm_dcache_align);
+ /* Checkpoint 6 */
+ printf("Past Checkpoint 6\n");
}
#endif
}
@@ -844,14 +848,20 @@ marvell_startend_by_tag(int tag, uint64_
{
uint32_t base, size;
int win;
-
+ /* Checkpoint 2 */
+ printf("Past Checkpoint 2\n");
win = mvsoc_target(tag, NULL, NULL, &base, &size);
if (size != 0) {
- if (win < nremap)
+ if (win < nremap) {
*start = read_mlmbreg(MVSOC_MLMB_WRLR(win)) |
((read_mlmbreg(MVSOC_MLMB_WRHR(win)) << 16) << 16);
- else
+ /* Checkpoint 7 */
+ printf("Past Checkpoint 7\n");
+ } else {
*start = base;
+ /* Checkpoint 8 */
+ printf("Past Checkpoint 8\n");
+ }
*end = *start + size - 1;
}
}
Home |
Main Index |
Thread Index |
Old Index