ngdevkit:bramfix

Last commit made on 2023-02-18
Get this branch:
git clone -b bramfix https://git.launchpad.net/ngdevkit

Branch merges

Branch information

Name:
bramfix
Repository:
lp:ngdevkit

Recent commits

4be5e7a... by Damien Ciabrini

Fix linking when backup RAM is used

Follow-up fix of linkscript after [1]. The linkscript
incorrectly relies on lazy evaluation to computes the
start of the .bss segment in RAM, leaving all linked
symbols incorrectly shifted in memory.

Re-work the backup RAM definition in the linkscript
with a proper MEMORY command, and expose macros in
the ngdevkit API to override the start and length of
the backup RAM at link-time.

Closes #86

[1] 4ccd470cd0039fbaf18e7f915f45d0d36d5e09d5

4ccd470... by Damien Ciabrini

Fix linking of backup RAM and bss segments

After the linkscript update to support large P-ROMs [1,2],
the ordering of the bss and backup RAM segments has changed,
and this broke the logic used to compute the start of the .bss
segment in RAM. Fix accordingly.

Closes #82

[1] a83e75129f4bf6d4a7c3f71487b9dfe3372d4189
[2] db99afdd12c28150b1916ccb588155e6488a130d

db99afd... by Damien Ciabrini

Fix init of .bss and .data in crt0

After #78 and #81, the .bss segment is now linked prior to the
.data segment. The crt0 still assumes the opposite, so the
memory is incorrectly initialized.

Since the linker now exposes symbol __bss_start_in_ram, the crt0
no longer needs to assume any ordering. Fix it accordingly.

a83e751... by Damien Ciabrini

Initial support for P-ROM bank-switching

New API to map a specific chunk of the the second P-ROM into the
P-ROM2 memory address space at runtime (0x200000..0x2fffff).

To support bank-switching transparently, the order in which the
ELF sections are linked is modified: the devkit's code is always
linked in the first P-ROM, as well as all data. The user code
gets linked last, and all files whose path contain the substring
`__bank` get implicitly linked in the second P-ROM.

Closes #81

6f07991... by Damien Ciabrini

Support for large and non-contiguous P-ROM

This changes the way the program ROM are linked. The
BRAM, BSS and RAM segments go first, the code itself being
linked at the very end of the P-ROM adress space.

The linker now allows the full 1MiB address space for
large P-ROM, as well as 2MiB non-contiguous P-ROM (2x1MiB).

This is a breaking change, the .text sections in the output
ELF file are no longer padded automatically. You now need to
add the proper padding when extracting code with objcopy.
dciabrin/ngdevkit-examples@03c250a0ee55bb05501a79ebb4c9401217d9959d
has been updated to implement padding appropriately.

Ref dciabrin/ngdevkit#78

a180072... by Damien Ciabrini

Fix typos in old MinWG README

Closes #79

6d50d4f... by Damien Ciabrini

Ability to configure backup RAM segment in ROM

A new section in ngdevkit linkscript and an associated
C macro allows variables to be stored in a location that
gets automatically saved to backup RAM on MVS.

Closes #70

4b379c2... by Damien Ciabrini

Add instructions to install nightly RPM

Closes #57

0b38239... by Damien Ciabrini

Fix dependency in deployment workflow

60a1628... by Damien Ciabrini

Enable automatic nightly RPM rebuild on COPR