Hi,

> At the very least we shouldn't overlap with the BDA (starting at
> 0040:0000 and iirc covering up to 256 bytes, which is why DOS
> never used any memory below 0050:0000).

Mmm, I misread the assembly the low limit applied to the multi boot
value was 0x4000 and not 0x1000 ...

Would this logic be acceptable :

high_limit = 0xa0000
low_limit  = 0x40000

if (MBI_MEMLIMITS available and >= low_limit)
 -> use that - 64k

if (low_limit <= EBDA location < high_limit)
 -> use that - 64k

if (BDA memory size >= low_limit)
 -> use that - 64k

if all failed:
 print_err("No low memory available")

(in pseudo code, didn't really want to code it in assembly if it's not
acceptable :p)


If that looks ok, I can write and test a patch implementing that.

Cheers,

    Sylvain Munaut

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
https://lists.xen.org/xen-devel

Reply via email to